Linux常用命令(本篇包括,Linux目录结构介绍、Linux Shell介绍、9个常见命令介绍、文件的概念、文件的操作(20个)、目录的操作、文件和目录的权限、文件压缩及解压缩)

Linux常用命令(本篇包括,Linux目录结构介绍、Linux Shell介绍、9个常见命令介绍、文件的概念、文件的操作(20个)、目录的操作、文件和目录的权限、文件压缩及解压缩)
            
            https://truedei.blog.csdn.net/article/details/105319294
                
                    
                                        
                                        
                                        
                                        
                                        
                                                                                    
                         VIP文章
                                                                                                    TrueDei
                    2020-04-04 23:18:55
                    
                    2276
                    
                        
                        
                        已收藏
                        
                                                42                                                
                    
                                        
                    原力计划
                                        
                
                                
                
                
                                                                展开
                                    
            
        
    
    
        
        
            
            
                
                
                    Linux系统管理与Shell编程
                    本专栏是面向无Linux基础,或者想提升自己的同学。可以帮助0基础的想学Linux的朋友掌握到很硬的Linux知识,完全没基础的也可以学明白,我会结合大量的图片和gif图片的形式来说明一些问题,可以让你更清晰的了解整个过程。
                    TrueDei
                
                
                
                    ¥9.90
                    
                                                                                                            订阅专栏
                                                                        
                
            

    
        
                 
            
                            
                    
                    
                                            介绍

我认为把知识给别人讲会,讲明白,自己才彻底明白。
努力把文章写好,写明白每一篇文章,分享给更多人。
一个赞、一个评论、一个关注,真的好开心,努力没有白费,得到了这么多人的认可。

到现在已经有6-7年的经验。跟多网友都想让我出一个关于Linux的专栏,也有一个出版社找过我让我出书,我都谢绝了,因为我觉得自己还不够资格。
经过几百位粉丝的认可,我最终还是决定把这一系列的文章写出来。
如果大家想了解我,可以看:这篇文章能让你更了解我
也开可以看一下这篇,是否喜欢我写文章的风格:vi/vim虐我千百遍,我待vi/vim如初恋
我会结合大量的图片以及gif动态图片的形式来展现一些很难理解的内容,可以让你更直观的看细节,更容易理解。
专栏地址:点我直达专栏首页
专栏内容:专栏覆盖内容,点我可了解,不断更新中

本篇包括: Linux目录结构介绍、Linux Shell介绍、9个常见命令介绍、文件的概念、文件的操作(20个)、目录的操作、文件和目录的权限、文件压缩及解压缩。

文章目录介绍一、开篇点题二、目录结构介绍三、Linux shell简单介绍四、常用简单命令echo命令date命令cal命令bc/quit命令whoami命令who命令w命令whereis命令clear命令五、文件概念及操作命令(一)文件概念(二)常用操作命令1、显示文件目录列表(1)ls命令2、创建、移动、复制、删除文件的命令(1)创建文件:`touch`(2)移动文件:`mv`(3)拷贝文件:`cp`(4)删除文件:`rm`3、显示文件内容命令(1)more命令(2)less命令(3)head命令(4)tail命令(5)cat命令4、查找、排序文件内容的命令(1)find命令(查找文件)(2)grep命令(在文件中查找匹配的字符串)(3)sort命令(排序命令)5、链接文件的命令(1)硬链接(2)软连接(符号链接)6、文件内容统计命令(1)wc命令7、文件重定向和管道(1)>,<,>>,|六、目录操作命令1、创建目录(mkdir)2、删除目录(rmdir)3、改变工作目录和显示目录内容的命令4、改变文件/目录存取权限的命令(chmod)七、文件压缩与帮助命令1、tar命令2、gzip命令3、unzip命令4、zgrep命令
一、开篇点题

与UNIX操作系统相同,LInux系统也提供了大量的命令。使用系统命令是和Linux操作系统交流的最直接的方式。


在Linux环境下,利用命令可以有效的完成大量的工作,例如:文件操作、目录、进程管理、文件权限配置、存储配置等。


所以,在Linux系统上工作,离不开系统提供的这些常用的命令。如果你能掌握这些命令,对你的帮助也是很大的,工作效率也会提高。如果你是windows党的话,可能就会质疑了,我有图形界面的windows这么好用,为啥要用linux呢?这个疑问,先暂时放一放,一定会解开的。

通过前面一篇文章的学习,我们已经能够独立安装Linux系统了,那接下来我们来熟悉一下Linux系统各个目录、和常用命令。
二、目录结构介绍
经过前面的学习,详细你一定可以独立安装一个Linux系统了,那么接下来我们熟悉一下Linux系统里面的各个目录文件夹的大致功能。
[root@localhost ~]# ls /
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr
123
可以看到目录树主要有:/、/root、/home、/bin、dev、boot、etc、root等
可以使用tree程序来查看目录树,如果显示:
[root@localhost ~]# 
[root@localhost ~]# tree
bash: tree: 未找到命令...
[root@localhost ~]# 
1234
您可以使用 yum -y install tree来安装tree程序
tree基本语法:
直接tree 则等于tree .都查询当前目录下的目录树
如果想查询其他目录,也很简单,直接在tree后加要查询的目录就好。
例如:tree /如果你真的执行了,请按CTRL+C停止掉现在的进程,不然会把所有的目录都查一遍。
如果查询第一层则:tree / -L 1
结果如下:(因为我这个下面有很多我自己创建的,所以不要在意为什么和你的不一样)
[root@zh ~]# tree / -L  1
/
├── bin -> usr/bin
├── boot
├── code
├── data
├── dev
├── etc
├── frp_0.30.0_darwin_amd64.tar.gz
├── home
├── lib -> usr/lib
├── lib64 -> usr/lib64
├── lost+found
├── media
├── mnt
├── opt
├── proc
├── root
├── run
├── sbin -> usr/sbin
├── soft
├── srv
├── sys
├── tmp
├── usr
└── var

23 directories, 1 file
[root@zh ~]# 
1234567891011121314151617181920212223242526272829
下面这个图则比较简洁的表达了以/为首的结构。

重要目录的功能以及作用:

/bin


显而易见,bin 就是二进制(binary)英文缩写。


/boot


在这个目录下存放的都是系统启动时要用到的程序。


/dev


目录中包含了所有linux系统中使用的外部设备。但是这里并不是放的外部设备的驱动程序。


/etc


是linux系统中最重要的目录之一。存放了系统管理时要用到的各种配置文件和子目录。


/home


存放用户的主目录。例如:/home/zhenghui


/lib


存放系统动态连接共享库的。


/mnt


这个目录在一般情况下也是空的。可以临时将别的文件系统挂在这个目录下。


/proc


可以在这个目录下获取系统信息。这些信息是在内存中,由系统自己产生的。


/root


如果用户是以超级用户的身份登录的,这个就是超级用户的主目录。


/sbin


存放系统管理程序


/tmp


用来存放不同程序执行时产生的临时文件。


/usr


这是linux系统中占用硬盘空间最大的目录。用户的很多应用程序和文件都存放在这个目录下。


/var


存放着不断在扩充的东西。

三、Linux shell简单介绍
在介绍常用命令之前shell还是很有必要要先介绍的,因为所有执行的命令都是在shell下执行的。
这里简单介绍下,因为以后还会专门学shell编程

Linux终端也称为虚拟控制台。一台计算机的输入输出设备就是一个物理的控制台。


计算机上用软件的方法实现了多个互不干扰独立工作的控制台界面,就是实现了多个虚拟控制台。


Linux终端的工作方式是字符命令行方式,用户通过键盘输入命令进行操作,可以通过Linux终端对系统进行控制。


用户在提示符之后输入命令,由shell予以解释执行。Shell是Linux内核与用户的交互界面,Linux系统提供的命令需在shell环境(命令行界面)下运行。

四、常用简单命令
echo命令
学习计算机离不开大名鼎鼎的hello world,初次与linux打交道,还是先打印一个hello world吧
语法格式:echo [打印的数据]

date命令
date是显示日期的一个命令,提供了丰富的命令组合格式。很强大,但是不能保证日期的正确性,因为查询的是系统的时间,并不是公共的时间服务器的时间例如:NTP时间服务器。
语法格式:date 选项 显示时间格式(以+号开头,后面加格式)

常用选项:-u  使用格林威治时间
常用时间格式:


%T/%r:显示时间格式hh:mm:ss/hh:mm:ss上午或下午
%D:日期mm/dd/yy
%d:显示日期01-31
%m:显示月份03
%Y:年2003
%a/%A(星期几的简称/全名)
%n(换行)

如下:

更全的格式:
  %%    一个文字的 %
  %a    当前locale 的星期名缩写(例如: 日,代表星期日)
  %A    当前locale 的星期名全称 (如:星期日)
  %b    当前locale 的月名缩写 (如:一,代表一月)
  %B    当前locale 的月名全称 (如:一月)
  %c    当前locale 的日期和时间 (如:2005年3月3日 星期四 23:05:25)
  %C    世纪;比如 %Y,通常为省略当前年份的后两位数字(例如:20)
  %d    按月计的日期(例如:01)
  %D    按月计的日期;等于%m/%d/%y
  %e    按月计的日期,添加空格,等于%_d
  %F    完整日期格式,等价于 %Y-%m-%d
  %g    ISO-8601 格式年份的最后两位 (参见%G)
  %G    ISO-8601 格式年份 (参见%V),一般只和 %V 结合使用
  %h    等于%b
  %H    小时(00-23)
  %I    小时(00-12)
  %j    按年计的日期(001-366)
  %k   hour, space padded ( 0..23); same as %_H
  %l   hour, space padded ( 1..12); same as %_I
  %m   month (01..12)
  %M   minute (00..59)
  %n    换行
  %N    纳秒(000000000-999999999)
  %p    当前locale 下的"上午"或者"下午",未知时输出为空
  %P    与%p 类似,但是输出小写字母
  %r    当前locale 下的 12 小时时钟时间 (如:11:11:04 下午)
  %R    24 小时时间的时和分,等价于 %H:%M
  %s    自UTC 时间 1970-01-01 00:00:00 以来所经过的秒数
  %S    秒(00-60)
  %t    输出制表符 Tab
  %T    时间,等于%H:%M:%S
  %u    星期,1 代表星期一
  %U    一年中的第几周,以周日为每星期第一天(00-53)
  %V    ISO-8601 格式规范下的一年中第几周,以周一为每星期第一天(01-53)
  %w    一星期中的第几日(0-6),0 代表周一
  %W    一年中的第几周,以周一为每星期第一天(00-53)
  %x    当前locale 下的日期描述 (如:12/31/99)
  %X    当前locale 下的时间描述 (如:23:13:48)
  %y    年份最后两位数位 (00-99)
  %Y    年份
  %z +hhmm        数字时区(例如,-0400)
  %:z +hh:mm        数字时区(例如,-04:00)
  %::z +hh:mm:ss    数字时区(例如,-04:00:00)
  %:::z            数字时区带有必要的精度 (例如,-04,+05:30)
  %Z            按字母表排序的时区缩写 (例如,EDT)

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
cal命令
cal是查看日历的命令。
如下:
[root@localhost ~]# 
[root@localhost ~]# cal
      四月 2020     
日 一 二 三 四 五 六
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30

[root@localhost ~]# 
[root@localhost ~]# cal -m  2020
                               2020                               

        一月                   二月                   三月        
一 二 三 四 五 六 日   一 二 三 四 五 六 日   一 二 三 四 五 六 日
       1  2  3  4  5                   1  2                      1
 6  7  8  9 10 11 12    3  4  5  6  7  8  9    2  3  4  5  6  7  8
13 14 15 16 17 18 19   10 11 12 13 14 15 16    9 10 11 12 13 14 15
20 21 22 23 24 25 26   17 18 19 20 21 22 23   16 17 18 19 20 21 22
27 28 29 30 31         24 25 26 27 28 29      23 24 25 26 27 28 29
                                              30 31
        四月                   五月                   六月        
一 二 三 四 五 六 日   一 二 三 四 五 六 日   一 二 三 四 五 六 日
       1  2  3  4  5                1  2  3    1  2  3  4  5  6  7
 6  7  8  9 10 11 12    4  5  6  7  8  9 10    8  9 10 11 12 13 14
13 14 15 16 17 18 19   11 12 13 14 15 16 17   15 16 17 18 19 20 21
20 21 22 23 24 25 26   18 19 20 21 22 23 24   22 23 24 25 26 27 28
27 28 29 30            25 26 27 28 29 30 31   29 30

        七月                   八月                   九月        
一 二 三 四 五 六 日   一 二 三 四 五 六 日   一 二 三 四 五 六 日
       1  2  3  4  5                   1  2       1  2  3  4  5  6
 6  7  8  9 10 11 12    3  4  5  6  7  8  9    7  8  9 10 11 12 13
13 14 15 16 17 18 19   10 11 12 13 14 15 16   14 15 16 17 18 19 20
20 21 22 23 24 25 26   17 18 19 20 21 22 23   21 22 23 24 25 26 27
27 28 29 30 31         24 25 26 27 28 29 30   28 29 30
                       31
        十月                  十一月                 十二月       
一 二 三 四 五 六 日   一 二 三 四 五 六 日   一 二 三 四 五 六 日
          1  2  3  4                      1       1  2  3  4  5  6
 5  6  7  8  9 10 11    2  3  4  5  6  7  8    7  8  9 10 11 12 13
12 13 14 15 16 17 18    9 10 11 12 13 14 15   14 15 16 17 18 19 20
19 20 21 22 23 24 25   16 17 18 19 20 21 22   21 22 23 24 25 26 27
26 27 28 29 30 31      23 24 25 26 27 28 29   28 29 30 31
                       30

[root@localhost ~]# 

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
bc/quit命令
bc是一个命令行下的计算器:
输入bc可以进入计算器
输入相关的运算即可计算
输入quit即可退出
[root@localhost ~]# 
[root@localhost ~]# bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 

1+1
2

22222+55515*8521/7222
87722


quit
[root@localhost ~]# 

1234567891011121314151617
whoami命令
查看当前shell使用的账户名
[zhenghui@localhost ~]$ 
[zhenghui@localhost ~]$ 
[zhenghui@localhost ~]$ whoami 
zhenghui
[zhenghui@localhost ~]$ 
[zhenghui@localhost ~]$ 
[zhenghui@localhost ~]$ exit
exit
[root@localhost ~]# 
[root@localhost ~]# whoami 
root
[root@localhost ~]# 
123456789101112
who命令
查看又哪些当前有哪些用户在系统的哪些终端中进行工作。
[root@localhost ~]# who
root     pts/0        2020-04-02 15:58 (:0)
root     :0           2020-03-25 11:03 (:0)
root     tty2         2020-03-25 11:33
root     pts/1        2020-04-02 15:58 (:0)
zhenghui tty3         2020-04-02 15:59
[root@localhost ~]# 
1234567
w命令
查看有哪些用户登录在线,同时显示用户的工作
[root@localhost ~]# w
 16:01:47 up 1 day,  3:26,  6 users,  load average: 0.01, 0.05, 0.15
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    :0               15:58    3.00s  0.04s  0.00s w
root     :0       :0               253月20 ?xdm?  55:25   0.42s /usr/libexec/gn
root     tty2                      253月20  2:43   0.07s  0.07s -bash
root     pts/1    :0               15:58    3:15   0.08s  0.05s bash
zhenghui tty3                      15:59    2:51   0.02s  0.02s -bash
[root@localhost ~]# 
123456789
whereis命令
查看命令的存放目录(当你找一个程序的时候就可以使用此命令)
[root@localhost ~]# 
[root@localhost ~]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
[root@localhost ~]# 
[root@localhost ~]# 
[root@localhost ~]# 
[root@localhost ~]# whereis pwd
pwd: /usr/bin/pwd /usr/include/pwd.h /usr/share/man/man1/pwd.1.gz /usr/share/man/man1p/pwd.1p.gz
[root@localhost ~]# 
123456789
clear命令
当屏幕太多了,可以使用clear命令清理下当前的屏幕
清理前:
[root@localhost ~]# 
[root@localhost ~]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
[root@localhost ~]# 
[root@localhost ~]# 
[root@localhost ~]# 
[root@localhost ~]# whereis pwd
pwd: /usr/bin/pwd /usr/include/pwd.h /usr/share/man/man1/pwd.1.gz /usr/share/man/man1p/pwd.1p.gz
[root@localhost ~]# 
[root@localhost ~]# 
[root@localhost ~]# clear
1234567891011
清理后:
[root@localhost ~]# 
1
五、文件概念及操作命令
(一)文件概念

文件是一些相关信息的集合,有自己的名字、内容、存放地址以及其他一些管理信息(文件的用户、大小等)。文件是Linux操作系统处理信息的基本单位。所有软件都组织成文件。


当使用Linux命令对文件进行操作时,就可以访问存储在一个结构化环境中的信息。所有这些信息都存放在一个分层的结构中,可以方便且有序的管理数据。


重要的是,不仅应学会如何访问这些数据,更应该学会如何控制对信息的访问。对文件与目录进行管理和维护是每个用户最经常做的工作。

说明1:文件的成分

无论文件是一个程序、一个文档、一个数据库,还是一个目录,操作系统都会赋予它同样的结构。


索引结点:


又称为I节点,是在文件系统结构中,包含相应文件信息的一个记录,这些信息包含文件权限、文件主、文件大小、存放位置、建立日期等。


数据:


文件的实际内容,它可以是空的,也可以非常大,并且有自己的结构。

说明2:Linux中对文件名的要求

长度在255个字符以内;
使用可见符号,避免使用特殊含义的字符串;
区分大小写;
以圆点(.)开头的文件是隐含文件,在默认方式下,用ls命令不能把它们显示出来。

说明3:Linux中的文件类型
Linux系统中有三种基本的文件类型,分别为:

普通文件:又分为文本文件和二进制文件;
目录文件:目录文件存储了一组相关文件的位置、大小等与文件有关的信息;
设备文件:Linux系统把每一个I/O设备都堪称一个文件,与普通文件一样处理,这样可以使文件与设备的操作尽可能统一。

文件类型的表示符号:


符号
表示内容


-
常规文件


d
目录文件


b
块特殊设备


c
字符特殊设备文件


p
管道设备文件


l
链接文件


(二)常用操作命令


命令类型
命令


1、显示文件目录列表
ls


2、创建、移动、复制、删除文件的命令
touch、mv、cp、rm


3、显示文件内容命令
cat、more、less、head、tail


4、查找、排序文件内容的命令
find、grep、sort


5、链接文件的命令
ln


6、文件内容统计命令
wc


7、文件重定向和管道
>、|


1、显示文件目录列表
(1)ls命令
语法:ls [选项] [目录路径]
ls命令得功能是显示文件列表。
例如:查看根“/”目录下有什么。
[root@localhost ~]# ls /
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr
[root@localhost ~]# 
1234
例如:我在自己得家目录中直接执行ls会显示什么?
[zhenghui@localhost ~]$ pwd
/home/zhenghui
[zhenghui@localhost ~]$ 
[zhenghui@localhost ~]$ 
[zhenghui@localhost ~]$ ls
公共  模板  视频  图片  文档  下载  音乐  桌面
[zhenghui@localhost ~]$ 
1234567
会把当前目录下的东西给显示出来。为什么呢?
看下面这个例子,就知道了:
[zhenghui@localhost ~]$ ls .
公共  模板  视频  图片  文档  下载  音乐  桌面
[zhenghui@localhost ~]$ 
123
那么就得出:直接执行ls = 执行ls .,也就是说,如果ls命令后不加任何目录的话,会查询当前目录下的文件。
ls --help:显示ls命令的帮助信息。必会的一个命令
[zhenghui@localhost ~]$ ls --help
用法:ls [选项]... [文件]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.

Mandatory arguments to long options are mandatory for short options too.
  -a, --all            不隐藏任何以. 开始的项目
  -A, --almost-all        列出除. 及.. 以外的任何项目
      --author            与-l 同时使用时列出每个文件的作者
...
...
...
...
...
1234567891011121314
只介绍几个比较常用的选项。
1、查看隐藏的文件:ls -a
[zhenghui@localhost ~]$ ls -a
.              .bash_profile  .dbus          .mozilla  视频  音乐
..             .bashrc        .esd_auth      .viminfo  图片  桌面
.bash_history  .cache         .ICEauthority  公共      文档
.bash_logout   .config        .local         模板      下载
[zhenghui@localhost ~]$ 
[zhenghui@localhost ~]$ 
1234567
2、查看详细的信息:ls -l
[zhenghui@localhost ~]$ ls -l
总用量 0
drwxr-xr-x. 2 zhenghui zhenghui 6 3月  12 18:01 公共
drwxr-xr-x. 2 zhenghui zhenghui 6 3月  12 18:01 模板
drwxr-xr-x. 2 zhenghui zhenghui 6 3月  12 18:01 视频
drwxr-xr-x. 2 zhenghui zhenghui 6 3月  12 18:01 图片
drwxr-xr-x. 2 zhenghui zhenghui 6 3月  12 18:01 文档
drwxr-xr-x. 2 zhenghui zhenghui 6 3月  12 18:01 下载
drwxr-xr-x. 2 zhenghui zhenghui 6 3月  12 18:01 音乐
drwxr-xr-x. 2 zhenghui zhenghui 6 3月  12 18:01 桌面
[zhenghui@localhost ~]$ 
1234567891011
也可以多个连用
[zhenghui@localhost ~]$ ls -al
总用量 36
drwx------. 15 zhenghui zhenghui 4096 3月  25 10:57 .
drwxr-xr-x.  3 root     root       22 3月  12 18:01 ..
-rw-------.  1 zhenghui zhenghui  204 4月   2 15:55 .bash_history
-rw-r--r--.  1 zhenghui zhenghui   18 4月  11 2018 .bash_logout
-rw-r--r--.  1 zhenghui zhenghui  193 4月  11 2018 .bash_profile
-rw-r--r--.  1 zhenghui zhenghui  231 4月  11 2018 .bashrc
drwx------. 14 zhenghui zhenghui 4096 3月  24 00:19 .cache
drwxr-xr-x. 14 zhenghui zhenghui  261 3月  12 18:01 .config
drwx------.  3 zhenghui zhenghui   25 3月  12 18:01 .dbus
-rw-------.  1 zhenghui zhenghui   16 3月  12 18:01 .esd_auth
-rw-------.  1 zhenghui zhenghui  628 3月  25 10:25 .ICEauthority
drwx------.  3 zhenghui zhenghui   19 3月  12 18:01 .local
drwxr-xr-x.  4 zhenghui zhenghui   39 3月  12 17:45 .mozilla
-rw-------   1 zhenghui zhenghui  641 3月  25 10:57 .viminfo
drwxr-xr-x.  2 zhenghui zhenghui    6 3月  12 18:01 公共
drwxr-xr-x.  2 zhenghui zhenghui    6 3月  12 18:01 模板
drwxr-xr-x.  2 zhenghui zhenghui    6 3月  12 18:01 视频
drwxr-xr-x.  2 zhenghui zhenghui    6 3月  12 18:01 图片
drwxr-xr-x.  2 zhenghui zhenghui    6 3月  12 18:01 文档
drwxr-xr-x.  2 zhenghui zhenghui    6 3月  12 18:01 下载
drwxr-xr-x.  2 zhenghui zhenghui    6 3月  12 18:01 音乐
drwxr-xr-x.  2 zhenghui zhenghui    6 3月  12 18:01 桌面
[zhenghui@localhost ~]$ 
12345678910111213141516171819202122232425
3、递归查询/etc下的所有的文件:ls -Ra /etc
ls -Ra /etc
1
4、排序
默认(排序前):ls -l
[root@localhost ~]# ls -l
总用量 245816
-rw-------. 1 root root      1587 3月  12 17:55 anaconda-ks.cfg
-rw-r--r--. 1 root root      2489 3月  25 01:31 a.txt
drwxrwxr-x. 2 root root      4096 2月  18 10:17 bitmaps
drwxr-xr-x. 6 root root       217 3月  30 08:30 code
drwxr-xr-x. 5 root root       102 3月  25 08:11 HTML
-rw-r--r--. 1 root root     73393 3月  25 08:10 HTML.zip
-rw-r--r--. 1 root root      1635 3月  12 18:00 initial-setup-ks.cfg
drwxr-xr-x. 4 root root        33 3月  25 11:07 javacomplete
-rw-r--r--  1 root root     60635 3月  25 11:04 javacomplete0.77.1.2.zip
-rw-r--r--. 1 root root     30357 3月  25 09:20 javacomplete.zip
-rw-r--r--. 1 root root 195094741 10月  3 2019 jdk-8u221-linux-x64.tar.gz
drwxr-xr-x. 4 root root        52 3月  25 01:07 truedeivimrc
drwxr-xr-x. 7 root root        92 3月  24 23:52 vim-colors-solarized
-r--r--r--. 1 root root  56431201 3月  24 23:26 VMwareTools-10.3.10-13959562.tar.gz
drwxr-xr-x. 9 root root       145 6月  13 2019 vmware-tools-distrib
drwxr-xr-x. 2 root root         6 3月  23 23:00 公共
drwxr-xr-x. 2 root root         6 3月  23 23:00 模板
drwxr-xr-x. 2 root root         6 3月  23 23:00 视频
drwxr-xr-x. 2 root root         6 3月  23 23:00 图片
drwxr-xr-x. 2 root root         6 3月  23 23:00 文档
drwxr-xr-x. 2 root root         6 3月  23 23:00 下载
drwxr-xr-x. 2 root root         6 3月  23 23:00 音乐
drwxr-xr-x. 2 root root        24 3月  25 09:18 桌面
[root@localhost ~]# 
1234567891011121314151617181920212223242526
按大小排序:
[root@localhost ~]# ls -l --sort=size
总用量 245816
-rw-r--r--. 1 root root 195094741 10月  3 2019 jdk-8u221-linux-x64.tar.gz
-r--r--r--. 1 root root  56431201 3月  24 23:26 VMwareTools-10.3.10-13959562.tar.gz
-rw-r--r--. 1 root root     73393 3月  25 08:10 HTML.zip
-rw-r--r--  1 root root     60635 3月  25 11:04 javacomplete0.77.1.2.zip
-rw-r--r--. 1 root root     30357 3月  25 09:20 javacomplete.zip
drwxrwxr-x. 2 root root      4096 2月  18 10:17 bitmaps
-rw-r--r--. 1 root root      2489 3月  25 01:31 a.txt
-rw-r--r--. 1 root root      1635 3月  12 18:00 initial-setup-ks.cfg
-rw-------. 1 root root      1587 3月  12 17:55 anaconda-ks.cfg
drwxr-xr-x. 6 root root       217 3月  30 08:30 code
drwxr-xr-x. 9 root root       145 6月  13 2019 vmware-tools-distrib
drwxr-xr-x. 5 root root       102 3月  25 08:11 HTML
drwxr-xr-x. 7 root root        92 3月  24 23:52 vim-colors-solarized
drwxr-xr-x. 4 root root        52 3月  25 01:07 truedeivimrc
drwxr-xr-x. 4 root root        33 3月  25 11:07 javacomplete
drwxr-xr-x. 2 root root        24 3月  25 09:18 桌面
drwxr-xr-x. 2 root root         6 3月  23 23:00 公共
drwxr-xr-x. 2 root root         6 3月  23 23:00 模板
drwxr-xr-x. 2 root root         6 3月  23 23:00 视频
drwxr-xr-x. 2 root root         6 3月  23 23:00 图片
drwxr-xr-x. 2 root root         6 3月  23 23:00 文档
drwxr-xr-x. 2 root root         6 3月  23 23:00 下载
drwxr-xr-x. 2 root root         6 3月  23 23:00 音乐
[root@localhost ~]# 
1234567891011121314151617181920212223242526
技巧:善于使用帮助命令,例如这个排序:
就可以按时间排序、按大小排序、按版本排序等。
none (-U), size (-S),time (-t), version (-v), extension (-X)
[zhenghui@localhost ~]$ ls --help
......
  -S                         sort by file size
      --sort=WORD            sort by WORD instead of name: none (-U), size (-S),
                               time (-t), version (-v), extension (-X)
      --time=WORD            with -l, show time as WORD instead of default
                               modification time: atime or access or use (-u)
                               ctime or status (-c); also use specified time
                               as sort key if --sort=time
      --time-style=STYLE     with -l, show times using style STYLE:
                               full-iso, long-iso, iso, locale, or +FORMAT;
                               FORMAT is interpreted like in 'date'; if FORMAT
                               is FORMAT1<newline>FORMAT2, then FORMAT1 applies
                               to non-recent files and FORMAT2 to recent files;
                               if STYLE is prefixed with 'posix-', STYLE
                               takes effect only outside the POSIX locale
......
1234567891011121314151617
2、创建、移动、复制、删除文件的命令

常用命令:

创建文件:touch
移动文件:mv
拷贝文件:cp
删除文件:rm


(1)创建文件:touch
用法:touch [选项]... 文件...
可以看出,选项是可选的,可有可无,但是文件名是必须的。

例如:
[zhenghui@localhost ~]$ touch test.txt
[zhenghui@localhost ~]$ 
[zhenghui@localhost ~]$ ll
总用量 0
-rw-rw-r--  1 zhenghui zhenghui 0 4月   4 20:37 test.txt
12345
常用命令:


touch 1.txt    如果文件1.txt存在,则修改为当前系统时间,否则创建一个当前系统时间的空文件。
touch *   将当前目录下所以文件时间修改为当前系统时间。
touch –d “18:50 03/04/2015” test  将test文件的时间修改为2015年3月4日18点50分


更多可以使用帮助命令:
touch --help
1
(2)移动文件:mv
用法:


mv [选项]... [-T] 源文件 目标文件
或:mv [选项]... 源文件... 目录
或:mv [选项]... -t 目录 源文件...


常用选项:
-f:若目标文件已存在,不提示直接覆盖已有文件。
-i:若目标文件有同名,则先询问是否覆盖已有文件。
-v:  详细:显示文件的移动速度。
例:


mv  abc  bbb
mv  /user/source/  /home/guest/src/
mv  –i  ./nic/*.png   ./pic


(3)拷贝文件:cp
用法:


cp [选项]... [-T] 源文件 目标文件
或:cp [选项]... 源文件... 目录
或:cp [选项]... -t 目录 源文件...


例:


cp  *.png .txt   /home
*cp   abc  bbb
cp   /user/source/*.c   /home/guest/c
cp   /etc/syslog.conf  ./
cp  -a mydir1 mydir2
cp  -a  /etc/sound/  /home/so/


注意:
如果源是目录,则必须用-a选项;目录可以写成/c,也可以写成./so/
(4)删除文件:rm
用法:

rm [选项]... 文件...

常用选项:
-r:删除目录及以下所有内容,若不用此标志则不删除目录。
-i:删除前询问确认。
-f:强行删除。
-v:详细:显示文件的删除速度。
例如:
rm  –i  /home/*.png
rm –r  /home/tmp
12
3、显示文件内容命令
常用命令:

more、less、head、tail、cat

(1)more命令
用法:

more [选项] 文件...
显示文件内容,每次显示一屏文本,空格键显示下一屏,按Q退出。

选项:
选项:
-d        显示帮助,而不是响铃
-f        统计逻辑行数而不是屏幕行数
-l        抑制换页(form feed)后的暂停
-p        不滚屏,清屏并显示文本
-c        不滚屏,显示文本并清理行尾
-u        抑制下划线
-s        将多个空行压缩为一行
-NUM      指定每屏显示的行数为 NUM
+NUM      从文件第 NUM 行开始显示
+/STRING  从匹配搜索字符串 STRING 的文件位置开始显示
-V        输出版本信息并退出
123456789101112
例如:more -3 .bashrc
显示文件.bashrc的内容,每3行显示一次,按空格可以继续显示下3行。。

(2)less命令
方法:less [选项] 文件
分屏显示文件的内容。按PageUp,PageDown翻页。退出按Q。
(3)head命令
用法:

head [选项]... [文件]...


显示指定文件的开头若干行。显示行数的默认值为10.

选项:
-n,显示前面n行。
-c n,显示前面n个字节。
12
例如:
head -5 mfile
head –c 10 mfile
12
(4)tail命令
用法:

tail [选项]... [文件]...
显示指定文件的末尾若干行。
显示行数的默认值为10。
若给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。

选项:

-n,显示最后n行。


-c n,显示最后n个字节。

例:
tail -5 mfile
tail -c 10 mfile
12
(5)cat命令
用法:

cat [选项]... [文件]...
将[文件]或标准输入组合输出到标准输出。

选项:
-A, --show-all           等于-vET
-b, --number-nonblank    对非空输出行编号
-e                       等于-vE
-E, --show-ends          在每行结束处显示"$"
-n, --number             对输出的所有行编号
-s, --squeeze-blank      不输出多行空行
-t                       与-vT 等价
-T, --show-tabs          将跳格字符显示为^I
-u                       (被忽略)
-v, --show-nonprinting   使用^ 和M- 引用,除了LFD和 TAB 之外
--help        显示此帮助信息并退出
--version        显示版本信息并退出
123456789101112
注意:

Ctrl+S:停止滚屏
Ctrl+q:恢复滚屏
Ctrl+c:中断命令

例如:

4、查找、排序文件内容的命令
常用命令:

find、grep、sort

(1)find命令(查找文件)
用法:

find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path…] [expression]
默认路径为当前目录;默认表达式为 -print


find [查找目录] [匹配标准]

重要选项:

例如:
find / ! -name httpd.conf –print
find / –name *http* -print
find /etc –size (-/+)2500 –print
find / –name “*.txt” -print
1234
下面是以时间特征为查找条件的find命令函数的参数:
amin n: 查找n分钟以前被访问过的所有文件.
atime n: 查找n天以前被访问过的所有文件.
cmin n: 查找n分钟以前文件状态被修改过的所有文件.
ctime n: 查找n天以前文件状态被修改过的所有文件.
mmin n: 查找n分钟以前文件内容被修改过的所有文件.
mtime n: 查找n天以前文件内容被修改过的所有文件.

案例:

(2)grep命令(在文件中查找匹配的字符串)
用法:grep [选项] 文件
常用选项:

-v      只显示不包括匹配字符串的文本行。
-c      只显示文件中包含匹配字符串的行总数。
-x      只显示整个行都严格匹配的行。
-n      在输出包含匹配模式的行之前,加上该行的行号。
-i       产生不区分大小写的匹配,默认区分大小写。

例如:

(3)sort命令(排序命令)
用法:

sort [选项]… [文件]…
或:sort [选项]… --files0-from=F

常用选项:

-r             表示按照反序。
-d             按照字典顺序排序。
-n             按照字符串的数字值。
-k             按照关键字或字段的位置排序。

例子:
原来的:

反序:

按照字典顺序:

按照字符串的数字值:

5、链接文件的命令
常用命令:ln
什么是链接文件呢?
windows下的快捷方式想必大家都知道,那么这个链接(软连接)可以简单的想象成快捷方法,但是(硬链接)还不是快捷方式。
链接有两种:

一种被称为硬链接(Hard Link);
另一种被称为符号链接(软链接)(Symbolic Link)。

(1)硬链接

在硬链接的情况下,相当于一个文件的两个副本,指向同一数据存储区。

硬链接特点:

(1)两个文件,长度相等,总长度不变。
(2)删除其中一个文件,另一个仍然存在。
(3)修改其中一个文件,另一个也修改。

例如:

(2)软连接(符号链接)

在符号链接的情况下,相当于一个文件的快捷方式。


特点:

(1)仅保存一个指针,长度小于原文件。
(2)删除符号链接,不影响原文件。
(3)删除原文件,符号链接即没有意义。

例如:ln –s /root/1.txt /root/mydir


6、文件内容统计命令
(1)wc命令
用法:

wc [选项] 文件列表


统计指定文件中的字节数、字数、行数。
说明:
(1)如果没有给出文件名,则从标准输入读取。
(2)wc同时也给出所有指定文件的总统计数。
(3)字是由空格字符区分开的最大字符串。

选项:

-c: 统计字节数,包括回车换行符、文件结束符。
-l:  统计行数。
-w:统计字数。

例如:

7、文件重定向和管道
(1)>,<,>>,|

​      在Linux系统中,执行一个shell命令行时通常会自动打开三个标准文件,即标准输入文件(stdin),通常对应终端的键盘;标准输出文件(stdout)和标准错误输出文件(stderr),这两个文件也都对应终端的屏幕。
​      Linux重定向可以将文件的标准输出重新定向输出到文件,或将数据文件作为另一程序的标准输入内容。

例如:
ls  -l

ls  -l >file.txt 或 ls –l>>file.txt
同理,可以用输入重定向将文件作为另一程序的标准输入。

grep  keyword<file.txt
管道符‘|’,通常放在两个命令之间,将前一个命令的输出作为下一个命令的输入。

ls –a | grep  /bin

cat sample.txt|grep “High”|wc -l

ls --help |more
12345678910111213

六、目录操作命令
创建目录:mkdir
删除目录:rmdir
1、创建目录(mkdir)
用法:

mkdir [选项]… 目录…
如果目录不存在,则创建

常用选项:


-m:创建目录使,指定目录的权限。

该目录的权限分为:目录所有者的权限、组中其他人对目录的权限和系统中其他人对目录的权限。这三个权限分别用三个数字之和来表示:r(4)、w(2)、x(1)。


-p:创建目录时,如果是创建多层目录的话,如果父目录有不存在的目录,则根据需要创建父目录。


例如:
mkdir tmp
mkdir /home/guest/mydir   /home/guest/src
mkdir –m 700 ./mail/等价于mkdir –m 700 mail
123
2、删除目录(rmdir)
删除一个空的目录:rmdir 目录
[zhenghui@localhost ~]$ mkdir a
[zhenghui@localhost ~]$ rmdir a
12
如果是非空的:
[zhenghui@localhost ~]$ mkdir a
[zhenghui@localhost ~]$ mkdir a/aa
[zhenghui@localhost ~]$ 
[zhenghui@localhost ~]$ rmdir a
rmdir: 删除 "a" 失败: 目录非空
12345
[zhenghui@localhost ~]$ rmdir -p a/aa/
1
3、改变工作目录和显示目录内容的命令


显示当前目录:pwd


改变当前工作目录:
cd [目录名]


例如:
cd~    cd..
cd  /user/bin
cd  ../..
123
4、改变文件/目录存取权限的命令(chmod)
用法:

chmod [选项]... 模式[,模式]... 文件...
或:chmod [选项]... 八进制模式 文件...
或:chmod [选项]... --reference=参考文件 文件...

chmod命令支持两种文件权限设定的方法:

使用字符串设置权限  [ugoa] [±=rwx]
使用数字设置权限  [数字]

注意:

+表示增加权限;
-表示去除权限;
=表示设定权限。

常用选项:

-s   在文件执行时把进程的属主或组ID置为该文件的文件属主。
-c   若该档案权限确实已经更改,才显示其更改动作
-f   若该档案权限无法被更改也不要显示错误讯息
-v   显示权限变更的详细资料
-R   对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)


(1)使用字符串设置权限
chmod ugo+r  file.txt=chmod a+r  file.txt
chmod ug+w,o-w  file1.txt file2.txt
chmod –R  a+r  *

(2)使用八进制数设置权限
三个八进制数字分别代表ugo的权限。
读r(4)、写 w(2)、执行x(1)。
chmod 777 file1.txt=chmod a=rwx file.txt
chmod 772 file=chmod ug=rwx,o=w file

例如:


七、文件压缩与帮助命令
比较常用的文件压缩/解压缩命令有:gzip,unzip,tar
1、tar命令
用法:

用法: tar [选项…] [FILE]…

常用操作选项:

-A, --catenate, --concatenate   追加 tar 文件至归档
-c, --create               创建一个新归档
-d, --diff, --compare      找出归档和文件系统的差异
–delete               从归档(非磁带!)中删除
-r, --append               追加文件至归档结尾
-t, --list                 列出归档内容
–test-label           测试归档卷标并退出
-u, --update               仅追加比归档中副本更新的文件
-x, --extract, --get       从归档中解出文件

例如:
(1)将/home目录下包括他的子目录全部存档,存档文件名为archive.tar。
tar cvf  archive.tar   /home
1

(2)把/home目录下所有文件和目录存档,并对存档文件压缩,压缩后文件名为archive.tar.gz
tar  czvf   archive.tar.gz    /home
1

(3)对存档压缩文件archive.tar.gz解包,以及解压缩。
tar xzvf   archive.tar.gz
1
(4)不解包(还原)archive.tar存档文件,只查看其中内容。
tar  tvf  archive.tar
1
2、gzip命令
gzip文件压缩/解压缩命令。生成.gz文件,其他属性不变。
zip命令与gzip命令的使用完全相同
用法:

gzip [选项] 压缩/解压缩文件名

选项:

-d:解压
-r:递归查找指定目录并压缩其中的所有文件或解压缩
-l:对每个压缩文件,显示压缩文件的大小、未压缩文件的大小、压缩比、未压缩文件名等详细信息
-v:对每一个压缩和解压的文件,显示文件名和压缩比

例:使用/home/tmp为工作目录,且有文件1.txt, 2.txt, test.txt
(1)把/home/tmp下的所有以txt为扩展名的文件压缩。
gzip  *.txt  
1


(2)将(1)中每个压缩的文件解压缩,并列出详细信息。
gzip   -dv   *.gz
1


(3)详细显示(1)中每个压缩文件的信息,不解压。
gzip  -l  *.gz
1

3、unzip命令
unzip命令:解压缩.zip文件。
用法:

unzip 选项  压缩文件名.zip

选项:

-d directory: 解压的directory目录
-v:查看压缩文件目录,但不解压
-n:不覆盖已存在的文件
-o:覆盖已存在的文件且不要求用户确认

例如:
(1)将压缩文件test.zip在当前目录下解压缩。
unzip  test.zip
1

(2)将压缩文件test.zip解压缩到目录/home/tmp下,如果已有文件存在,不覆盖原文件。
unzip –n  test.zip  -d  /home/tmp
1
4、zgrep命令
zgrep命令:与grep命令完全一样。
**例如:查找压缩文件file.txt.gz中有无关键字include
zgrep  include  file.txt.gz
————————————————
版权声明:本文为CSDN博主「TrueDei」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://truedei.blog.csdn.net/article/details/105319294

猜你喜欢

转载自blog.csdn.net/hewusheng10/article/details/106372748