今天将学习Linux下的一个常见的命令 ls
ls 功能介绍
Linux shell命令ls的功能是列出目标目录中所有的子目录和文件。ls是list的缩写,通过ls不仅可以查看文件子目录和文件,还可以查看文件的权限【包括当前目录、文件、文件夹权限等】,可以这样说 ls 命令是我们在Linux平台下用得最多的命令之一!
下面我们对ls的可选参数做个详细说明
-a 参数
功能:列出所有文件,包括以 "." 开头的隐含文件。
实例:
[hadoop@slave2 test]$ ls -a
备注:上面列出的. 【一个点】表示的是当前目录,..【两个点】 表示的是上级目录,所以返回上级目录用 cd ..,返回上级的上级目录用 cd ../..
-F 参数
功能:将文件夹【目录】用“ / ”后缀予以区分,每个 FIFO 名加“ | ”后缀, 每个可执行文件名加“ * ”后缀,符号链接用"@"后缀表示,"="后缀表示套接字
[hadoop@slave2 test]$ ls -F -- 这里查看的是目录
下面查看的是可执行的文件,可以发现可执行的文件就是用"*"后缀的
后面几种的暂时不列出!
-R 参数
功能:这个参数是递归列出所有的子目录
[hadoop@slave2 ~]$ ls -R test/
-l 参数
功能:以长列表的形似列出所有的信息,除了文件名之外,还将文件的权限、文件类型、硬连接数、所有者、组名、文件大小、以及时间信息【对于6个月以上的文件或超出未来 1 小时的文件,时间信息中的时分将被年代取代】等信息详细列出来。
如下实例:
[hadoop@slave2 test]$ ls -l
通过上面的截图我们可以看到列出了文件的相关信息,这里做一个详细的说明:
这一部分显示出了文件的类型和文件的权限
文件类型看开头的第一位
01、要是以【d】开头的代表的是文件夹,就是目录;
02、以【-】开头代表的是文件;
03、若是【 l 】开头则表示为链接文件,类似windows下的超链接或者可执行文件的快捷键
04、要是以【b 】开头则表示的是接口设备【又一说是块设备】
05、要是以【c】开头,那么代表的就是串行端口设备【又一说是字符设备】,例如键盘、鼠标(一次性读取装置)
文件的权限看后面的9位需要明白以下几点
01、前面的3位表示的是当前用户的权限,中间的三位表示的是用户所在组的权限,后面的3位表示的是其它组的权限;
02、每3位的分别为rwx,要是没有对应的权限就用【-】代替,【r】代表的是该文件或者目录可读,它对应一个数字表示为【4】,【w】表示的是该文件可写,对应的数字表示为【2】,【x】代表的是该文件可执行,对应的数字表示为【1】,所以我们在给一个文件赋予权限的时候可以用 chmod u+x a.txt 表示给当前文件赋予可执行的权限;chmod u+r a.txt 表示给当前文件赋予读的权限;chmod u+w a.txt 表示给当前文件赋予可写的权限!其实我们在为一个文件赋予权限的时候通常喜欢用数字来表示
例如:为 a.txt 文件当前所属用户赋予【rwx】权限
[hadoop@slave2 test]$ chmod u=rwx a.txt
要是执行后没有任何反应多半代表着修改成功,这从另外一个角度来讲就是没有消息就是好消息,生活中也是一样!
下面我们查看修改后的权限:
我们可以看到当前用户的权限已经修改 了!!除了这种方式,我们还可以用数字来修改 chmod 700 a.txt 你会发现也是可以的
实例二:为a.txt 文件所属组赋予【rwx】权限
我们可以查看a.txt当前所属组只要读【r】的权限
修改
[hadoop@slave2 test]$ chmod g=rwx a.txt
修改过后我们发现成功 同样我们也可以 chmod 770 a.txt 来修改
实例三:为a.txt 文件其它组赋予【rwx】权限
修改前也只有读的权限
[hadoop@slave2 test]$ chmod o=rwx a.txt
修改后的权限
同上面一样我们也可以通过 chmod 777 a.txt 来修改文件的权限。
因此下面做个总结:
01、【u】 代表的是当前的用户,【g】代表的是当前用户所属组,【o】代表的是其它组
02、我们可以通过数字组合来赋予权限,也可以直接用rwx来赋予权限,通常我习惯用数字来代表权限赋予
03、文件我们可以赋予权限,也可以收回权限,当赋予的时候就用 +【rwx】,当减少的时候就用-【rwx】
例如:收回a.txt 其他组的写和执行权限:
我们就看到其他组就只有读的权限了
-r 参数
功能:逆序排序,在使用ls命令的时候会按照a-z的顺序进行排序,用-r参数就会 z-a进行逆序
下面是直接查看可得到【a-z】的排序
下面进行逆序:可以看到排序的字母顺序为z-a,逆序排列
-t 参数
功能:这个参数作用是按照时间信息排序,默认的是按照创建时间的最大时间排在前面
下面的查询结果就是按照时间创建的先后顺序排列的
[hadoop@slave2 ~]$ ls -lt --full-time
实例:现在要求按照文件或者目录创建的时间逆序排列【就是先创建的排在前面】
[hadoop@slave2 ~]$ ls -lrt --full-time
-o 参数
功能:这个参数的作用在于以长格式列出目录内容,但是不显示组信息。等于使用“ --format=long --no-group ”选项。
[hadoop@slave2 test]$ ls -o
可以发现没有显示组的信息,只显示了当前用户的信息。
-p 参数
功能:在每个文件名后附上一个字符以说明该文件的类型。类似“ -F ”选项但是不标示可执行文件。
其实实际情况就是在目录后面加上【/】来区别
[hadoop@slave2 test]$ ls -lp
声明:本文档仅是自己学习总结,其中有些知识点可能存在错误,若是学友偶然搜到参考,望斟酌后再使用,以免给您带来困扰,若是发现错误也希望您指出更正,在此提前感谢!! 总结过程中要是有些地方借鉴了各路大神成果,您觉得侵犯了您的知识产权,对您有所冒犯,烦请通知鄙人,鄙人将会尽快修正! 邮箱地址:390835164@qq.com