本文来介绍下linux中的ls命令,ls的单词是list files的缩写,意思的列出目录文件。为了方便本文操作和介绍
1.ls的基本使用,不带选项参数
[root@cctg-sjc16-grafana ccatgbld]# ls
eclipseLogs mongodb-linux-x86_64-rhel70-3.2.0.tgz nohup.out
grafana-6.2.5-1.x86_64.rpm ngrok out1.txt
jenkins-api-0.0.1-SNAPSHOT.jar ngrok-stable-linux-amd64.zip test.txt
上面大致步骤是:当前在root@cctg-sjc16-grafana这个路径,这个是用户root@cctg-sjc16-grafana的一个家目录。没一个用户都有一个家目录,一般路径是这个用户的名称,这个和windows上是一样的。
2.ls -a ,显示全部文件,a是单词all的缩写
[root@cctg-sjc16-grafana ccatgbld]# ls -a
. .bash_profile jenkins-api-0.0.1-SNAPSHOT.jar nohup.out .viminfo
.. .bashrc mongodb-linux-x86_64-rhel70-3.2.0.tgz out1.txt
.bash_history eclipseLogs ngrok .ssh
.bash_logout grafana-6.2.5-1.x86_64.rpm ngrok-stable-linux-amd64.zip test.txt
3.ls -l , 长格式显示文件信息,l 是单词Long的缩写
[root@cctg-sjc16-grafana ccatgbld]# ls -l
total 211100
-rw------- 1 ccatgbld ccatgbld 35876 Aug 6 23:14 eclipseLogs
-rw------- 1 ccatgbld ccatgbld 58307414 Jul 12 00:40 grafana-6.2.5-1.x86_64.rpm
-rw------- 1 ccatgbld ccatgbld 54670107 Aug 1 20:00 jenkins-api-0.0.1-SNAPSHOT.jar
-rw------- 1 ccatgbld ccatgbld 63429437 Jul 16 23:24 mongodb-linux-x86_64-rhel70-3.2.0.tgz
-rwxr-xr-x 1 root root 26092507 Jul 19 18:16 ngrok
-rw------- 1 ccatgbld ccatgbld 13607069 Aug 1 21:30 ngrok-stable-linux-amd64.zip
-rwxrwxrwx 1 root root 0 Sep 15 2016 nohup.out
-rw------- 1 root root 661 Aug 6 23:33 out1.txt
-rw------- 1 ccatgbld ccatgbld 17 Aug 6 22:36 test.txt
通过长格式显示,可以看到关于文件或者目录更多详细的信息。一下用第一行解释。
1) 第一列 drwxrwxr -x ,字母d代表目录或者文件,目录directory的意思,r表示read,w表示wirte,-表示是文件,x表示文件执行权限,一般这有三组权限,前三个rwx表示该文件拥有者的权限,中间三个rwx表示文件的所有组权限,最后三个r-x,表示对其他人访问的权限(读,执行,没有写权限)。
2) 第二列 数字2表示有多少个链接指向这个文件
3) 第三列 root@cctg-sjc16-grafana是这个文件或文件夹的拥有者
4) 第四列,表示谁是这个文件或文件夹的所有组
5) 第五列,表示以字节为单位的大小,目录的大小总是4096大小
6) 第六列,文件的最后修改时间
7) 第八列,文件名或者目录名
4.ls -al ,列出所有文件并长格式显示
[root@cctg-sjc16-grafana ccatgbld]# ls -al
total 211132
drwxrwxrwx 3 ccatgbld ccatgbld 4096 Aug 6 23:49 .
drwx--x--x. 9 root root 4096 Jul 17 00:37 ..
-rwxrwxrwx 1 ccatgbld ccatgbld 4017 Aug 1 23:47 .bash_history
-rwxrwxrwx 1 ccatgbld ccatgbld 18 Jul 23 2015 .bash_logout
-rwxrwxrwx 1 ccatgbld ccatgbld 176 Jul 23 2015 .bash_profile
-rwxrwxrwx 1 ccatgbld ccatgbld 124 Jul 23 2015 .bashrc
-rw------- 1 ccatgbld ccatgbld 35876 Aug 6 23:14 eclipseLogs
-rw------- 1 ccatgbld ccatgbld 58307414 Jul 12 00:40 grafana-6.2.5-1.x86_64.rpm
-rw------- 1 ccatgbld ccatgbld 54670107 Aug 1 20:00 jenkins-api-0.0.1-SNAPSHOT.jar
-rw------- 1 ccatgbld ccatgbld 63429437 Jul 16 23:24 mongodb-linux-x86_64-rhel70-3.2.0.tgz
-rwxr-xr-x 1 root root 26092507 Jul 19 18:16 ngrok
-rw------- 1 ccatgbld ccatgbld 13607069 Aug 1 21:30 ngrok-stable-linux-amd64.zip
-rwxrwxrwx 1 root root 0 Sep 15 2016 nohup.out
-rw------- 1 root root 661 Aug 6 23:33 out1.txt
drwxrwxrwx 2 ccatgbld ccatgbld 4096 Apr 22 2016 .ssh
-rw------- 1 ccatgbld ccatgbld 17 Aug 6 22:36 test.txt
-rwxrwxrwx 1 ccatgbld ccatgbld 3348 Aug 6 23:14 .viminfo
PS:点号开头的文件表示隐藏文件。
5.ls / 显示根目录下文件清单,你不需要cd到根目录就可以直接查看它下的文件
[root@cctg-sjc16-grafana ccatgbld]# ls /
bin cctg dev home lib64 media null proc sbin spare sys usr
boot data etc lib lost+found mnt opt root selinux srv tmp var
PS: 在实际练习过程,你可以通过命令clear来清屏,如果你向上滚动鼠标滑轮,你还是可以发现之前输入过的命令的历史记录,clear只是给你翻页,让你感觉清屏的效果。
6.ls ~ , 波浪线,这个可以显示用户的家目录
[root@cctg-sjc16-grafana ccatgbld]# ls ~
1 apache-tomcat-7.0.69.tar.gz err install.log install.log.syslog packages synctime.sh
7.ls .. 和ls ../.. 查看父目录的文件
..表示上一层,如果你要返回上一层的上一层,就 ../..表示
[root@cctg-sjc16-grafana ccatgbld]# ls ~
1 apache-tomcat-7.0.69.tar.gz err install.log install.log.syslog packages synctime.sh
[root@cctg-sjc16-grafana ccatgbld]# ls ..
ccatgbld devops lost+found mongodb mongodb-linux-x86_64-rhel70-3.2.0.tgz sdeadmin wbxbuilds wbxroot
[root@cctg-sjc16-grafana ccatgbld]# ls ../..
bin cctg dev home lib64 media null proc sbin spare sys usr
boot data etc lib lost+found mnt opt root selinux srv tmp var
8.ls -lS, 小写的L和大写的S,表示文件大小排序,S是size的意思
[root@cctg-sjc16-grafana ccatgbld]# ls -lS
total 211100
-rw------- 1 ccatgbld ccatgbld 63429437 Jul 16 23:24 mongodb-linux-x86_64-rhel70-3.2.0.tgz
-rw------- 1 ccatgbld ccatgbld 58307414 Jul 12 00:40 grafana-6.2.5-1.x86_64.rpm
-rw------- 1 ccatgbld ccatgbld 54670107 Aug 1 20:00 jenkins-api-0.0.1-SNAPSHOT.jar
-rwxr-xr-x 1 root root 26092507 Jul 19 18:16 ngrok
-rw------- 1 ccatgbld ccatgbld 13607069 Aug 1 21:30 ngrok-stable-linux-amd64.zip
-rw------- 1 ccatgbld ccatgbld 35876 Aug 6 23:14 eclipseLogs
-rw------- 1 root root 661 Aug 6 23:33 out1.txt
-rw------- 1 ccatgbld ccatgbld 17 Aug 6 22:36 test.txt
-rwxrwxrwx 1 root root 0 Sep 15 2016 nohup.out
9.ls xxx/*.xxx ,有点类似筛选
这里例如我们要只显示test文件夹下的txt文件类型
[root@cctg-sjc16-grafana ccatgbld]# cd ..
[root@cctg-sjc16-grafana home]# ls ccatgbld/*.txt
ccatgbld/out1.txt ccatgbld/test.txt
10.ls -lS > out.txt
在当前相同路径下,把文件清单名称输出到一个out.txt的文件里。
[root@cctg-sjc16-grafana home]# ls -lS > out.txt
[root@cctg-sjc16-grafana home]# cat out.txt
total 61984
-rw------- 1 root root 63429437 Jul 17 00:37 mongodb-linux-x86_64-rhel70-3.2.0.tgz
drwx------. 2 root root 16384 Mar 23 2016 lost+found
drwxrwxrwx 3 ccatgbld ccatgbld 4096 Aug 6 23:49 ccatgbld
drwx------ 2 devops devops 4096 Aug 11 2017 devops
drwx------ 4 root root 4096 Jul 17 00:39 mongodb
drwx------. 3 sdeadmin sde 4096 Mar 23 2016 sdeadmin
drwx------. 3 wbxbuilds wbxbuilds 4096 Mar 24 2016 wbxbuilds
drwx------ 3 wbxroot wbxbuilds 4096 Mar 31 2018 wbxroot
-rw------- 1 root root 0 Aug 7 00:05 out.txt
总结:
以上介绍了常用的ls命令和一些带选项的结合的命令。如果还需要更多了解ls命令,可以在终端输入man ls,man是manual的缩写,man是linxu下命令查询的一个手册。