一、ls:列出目标目录中的所有子目录和文件
- 命令格式
ls [选项] [目录名]
建议使用别名:alias ls='ls --time-style=long-iso --color=auto'
- 常用参数
-a:列出目录下的所有文件,包括隐藏文件
-A:列出目录下的所有文件,不包括 . 和 ..
-c:配合 -lt:根据 ctime 排序及显示 ctime (文件状态最后更改的时间)
-c:配合 -l:显示 ctime 但根据名称排序否则根据 ctime 排序
-d:显示目录的详细信息
-h:以常见单位显示文件大小
-i:打印每个文件的 inode 号
-k:–block-size=1K,以 k 字节的形式表示文件的大小
-m:所有项目以逗号分隔,并填满整行行宽
-r:–reverse 依相反次序排列
-R:–recursive 同时列出所有子目录层
-s:–size 以块大小为单位列出所有文件的大小
-S:据文件大小排序
-t:以文件修改时间排序
-u:配合 -lt;显示访问时间而且依访问时间排序
-x:逐行列出项目而不是逐栏列出
-X:根据扩展名排序
-1:每行只列出一个文件
例1:递归显示目录下的所有文件和目录
ls -R /home/lcs
例2:只列出目录下的子目录
ls -F /home/lcs | grep /$
例3:显示文件的绝对路径
ls -R /home/lcs | sed "s#^#`pwd`/#"
例4:列出当前目录下的所有文件(包括隐藏文件)的绝对路径, 对目录不做递归
find $PWD -maxdepth 1 | xargs ls -ld
find $PWD | xargs ls -ld
ls -l 显示结果分为以下七列:
第1列字段: 文件属性字段:
"-" 表示该文件是一个普通文件
"d" 表示该文件是一个目录
"l" 表示该文件是一个链接文件
"b" 表示块设备文件(block),一般置于/dev目录下,设备文件是普通文件和程序访问硬件设备的入口,是很特殊的文件。,如硬盘、光盘等。最小数据传输单位为一个数据块(通常一个数据块的大小为512字节)
"c" 表示该文件是一个字符设备文件(character),一般置于/dev目录下,一次传输一个字节的设备被称为字符设备,如键盘、字符终端等,传输数据的最小单位为一个字节。
"p" 表示该文件为命令管道文件
"s" 表示该文件为sock文件
第2列字段:如果是一个文件,此时这一字段表示这个文件所具有的硬链接数;如果是一个目录,则第2字段表示该目录所含子目录的个数
第3列字段:属主
第4列字段:属组
第5列字段:大小(目录都是4096)
第6列字段:最近访问(修改)时间
第7列字段:文件名
二、cp(mv 和 cp 用法基本一致)
- 命令格式
cp 源文件(目录) 目标文件(目录)
建议使用别名:alias cp="cp --backup=t -av"
mv 旧名 新名
建议使用别名:alias mv="mv --backup=t -v"
- 常用参数
-a:相当于 "-dpr"
-d:当复制符号链接时,把目标文件也建立为符号链接,并指向与原始文件(目录)
-f:强行复制文件或目录,不论目标文件或者源文件是否存在
-i:覆盖文件前先询问用户
-p:保留源文件或者目录的属性
-r:递归复制目录下的所有目录和文件
-u:只有在目标文件不存在或者源文件的更新时间比目标文件的更新时间更新时才复制
-v:显示复制文件的过程
--backup=t:目标文件存在时先备份目标文件
例:保留源文件属性,目标文件存在时备份目标文件
alias cp='cp --backup=t -av'
cp manage.py /tmp
三、find:查找符合条件的文件或目录
- 常用参数
-name<范本样式>:指定字符串作为寻找文件或目录的范本样式(只支持通配符)
* 任意多个字符
?一个字符
[]指定范围
-amin<分钟>:查找在指定时间曾被存取过的文件或目录,单位以分钟计算
-cmin<分钟>:查找在指定时间之时被更改过的文件或目录
-mmin<分钟>:查找在指定时间曾被更改过的文件或目录
-atime<24小时数>:查找在指定时间曾被存取过的文件或目录,单位以24小时计算
-ctime<24小时数>:查找在指定时间之时被更改的文件或目录
-mtime<24小时数>:查找在指定时间曾被更改过的文件或目录
-expty:寻找文件大小为0 Byte的文件,或目录下没有任何子目录或文件的空目录
-exec<执行指令>:假设find指令的回传值为True,就执行该指令
-uid<用户识别码>:查找符合指定的用户识别码的文件或目录
-gid<群组识别码>:查找符合指定之群组识别码的文件或目录
-user<拥有者名称>:查找符和指定的拥有者名称的文件或目录
-group<群组名称>:查找符合指定之群组名称的文件或目录
-nouser:找出不属于本地主机用户识别码的文件或目录
-nogroup:找出不属于本地主机群组识别码的文件或目录
-inum<inode编号>:查找符合指定的inode编号的文件或目录
-links<连接数目>:查找符合指定的硬连接数目的文件或目录
-maxdepth<目录层级>:设置最大目录层级
-perm<权限数值>:查找符合指定的权限数值的文件或目录
-print:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为每列一个名称,每个名称前皆有“./”字符串
-size<文件大小>:查找符合指定的文件大小的文件
-type<文件类型>:只寻找符合指定的文件类型的文件
例1:按名称查找符合条件的文件或目录
find / -name "*.rpm"
例2:查找文件大小在1M和5M之间的文件
find / -type f -size +1M -a -size -5M -exec ls -lh {} \;
例3:查找所有具有SUID权限的目录或文件
find / -perm +4000 -exec ls -l {} \;
四、mkdir:创建目录
- 命令格式
mkdir [参数] 目录名
建议使用别名:alias mkdir="mkdir -pv"
- 常用参数
-p:递归创建目录
-v:显示创建目录的信息
例:显示创建目录的信息,递归创建目录
mkdir -pv {zhangsan,lisi}/{wangwu,zhaoliu}
五、pwd:显示当前工作目录
-
常用参数
-P:当当前工作目录是软链接时,显示真正的工作目录
六、rm:删除文件或目录
- 命令格式
rm [选项] 文件(目录)
- 常用参数
-r:删除目录
-f:强制删除文件或目录
七、tree:列出目录树
- 命令格式
tree [-aACdDfFgilnNpqstux][-I <范本样式>][-P <范本样式>][目录...]
建议使用别名:alias tree="tree -CF"
- 命令参数
-C:在文件和目录清单加上色彩,便于区分各种类型。
-d:显示目录名称而非内容。
-D:列出文件或目录的更改时间。
-f :在每个文件或目录之前,显示完整的相对路径名称。
-F:在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","=","@","|"号。
-g:列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。
-i:不以阶梯状列出文件或目录名称。
-I:<范本样式> 不显示符合范本样式的文件或目录名称。
-l:如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。
-n:不在文件和目录清单加上色彩。
-N:直接列出文件和目录名称,包括控制字符。
-p:列出权限标示。
-P:<范本样式> 只显示符合范本样式的文件或目录名称。
-s:列出文件或目录大小。
-t:用文件和目录的更改时间排序。
-u:列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。
例:显示目录下所有带有字符"a"的文件或目录
tree -CF -Pf "*a*" /usr/local/apache2.4.25/bin
八、basename(dirname):打印文件或者目录的基本名称(上级目录名称)
九、lsattr(chattr):查看(修改)文件的第二扩展文件系统属性
- 命令格式
chattr [+|-] [i|a|e]
-
常用参数
a:即append,设定该参数后,只能向文件中添加数据,而不能删除,多用于服务器日志文件安全,只有root才能设定这个属性
i:设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。i参数对于文件 系统的安全设置有很大帮助