文章目录
1 打开文件路径 【cd】
格式: cd 【文档路径】
说明: 文件路径类型说明如下
说明 | 示例 |
---|---|
文件路径 | cd /usr |
当前路径 | cd ./ |
自己的 home 目录 | cd ~ |
上一层目录 | cd ../ |
子级目录 | cd ./sub 或者 cd sub |
2 查看路径文件 【ls】
格式: ls 【 -a | -d | -l | -lh | -iR | -r | -F】 【文件路径 | 文件名】
说明:
【】
内信息为可选内容,可选项使用|
隔- 仅
ls
指令时,仅显示当前目录下非隐藏文件或文件夹名称,示例指令:ls
【 -a | -d | -l | -lh | -iR | -r | -F】
详细说明如下
指令 | 说明 | 示例 |
---|---|---|
-a | 查询所有的文件/文件夹,也包括以.开头的隐藏文件 | ls -a |
-d | 只显示当前目录自身,通常和-l 搭配使用来显示当前目录自身的权限和属性信息 | ls -d 或者 ls-ld 或者ll -d |
-l | 查询文件的详细信息 | ls -l 或者 ll |
-lh | 查询文件的详细信息,文件大小带单位 | ls -lh 或者 ll -h |
-iR | 显示目录和子目录下的文件(夹)以树格式输出 | ls -iR |
-r | 倒叙显示文件,可结合-l 使用 | ls -r 或者ls -lr 或者ll -r |
-F | 列出文件或者目录,其中目录会以/结尾,可结合-l 使用 | ls -F 或者ls -lF 或者ll -F |
-
【文件路径 | 文件名】
后则表示查询指定路径或文件信息。示例如下:
文件路径:ls /home
文件名:ll /home/test.xml
或者ll *.xml
(第二个指令指查询后缀为xml
的文件列表) -
ls -l
或者ll
指令下文件列表说明
示例图片:
说明:
示例以第二条记录drwxr-xr-x 2 root root 6 11月 5 2016 etc
为例
字段示例 | 说明 | 备注 |
---|---|---|
d | 文件类型 | - 普通文件 ,d 目录文件, p 管理文件, l 链接文件, b 块设备文件,c 字符设备文件,s 嵌套文件 |
rwx | 所有者权限 | r 可读 ,w 可写, x 可执行, - 无权限 |
r-x | 组用户权限 | 指与所有者同用户组中除所有者拥有的权限,具体含义同“所有者权限” |
r-x | 其他用户权限 | 指除当前所有者所在用户组外,其他组用户可以进行访问的权限 |
2 | 链接数或子目录数量 | 若为文件则是链接数量; 若为文件夹则是该文件夹下一级子目录数量 |
·root | 用户名 | 文件或文件夹所有者用户名 |
root | 用户组名 | 文件或文件夹所有者用户所在组名 |
6 | 文件大小 | 最小单位为字节 |
11月 5 2016 | 时间 | 文件最新修改时间 |
etc | 文件或文件夹名 |
拓展:
ls -l | grep "^-" | wc -l
—— 统计当前目录文件数量(不包括目录)
ls -lR| grep "^-" | wc -l
—— 统计当前目录下文件数量(包括子目录)
ls -lR | grep "^d" | wc -l
—— 统计当前目录下文件夹数量(包括子目录,不需要子目录将 -lR
改为-l
即可)
注:
1) 指令内 grep "^-"
表示只统计一般文件,grep "^d"
表示只统计文件夹
2) 指令内wc -l
表示统计输出信息的行数,统计结果就是输出信息的行数,一行信息对应一个文件,所以就是文件的个数。因此该指令也可用于统计某文件内数据行数,例如:wc -l test.txt
3 复制文件 【cp】
格式: cp【 -a | -d | -f | -i | -p | -r | -l】 【原文件或路径】 【目标文件或路径】
说明:
【 -a | -d | -f | -i | -p | -r | -l】
说明如下
指令 | 说明 | 示例 |
---|---|---|
-a | 它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpr 参数组合,通常在复制目录时使用 | cp -a /home/a /home/b |
-d | 复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式 | cp -d /home/a /home/b |
-f | 覆盖已经存在的目标文件而不给出提示 | cp -f /home/a /home/b |
-i | 与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答y 时目标文件将被覆盖 | cp -i /home/a /home/b |
-l | 不复制文件,只是生成链接文件 | cp -l /home/a /home/b |
-p | 除复制文件的内容外,还把修改时间和访问权限也复制到新文件中 | cp -p /home/a /home/b |
-r | 若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件 | cp -r /home/a /home/b |
注: 指令属性可互相结合使用。例如:cp -rf /home/a /home/b
4 移动文件 【mv】
格式: mv【 -b | -f | -i | -n | -u】 【原文件或路径】 【目标文件或路径】
说明:
【 -b | -f | -i | -n | -u】
说明如下
指令 | 说明 | 示例 |
---|---|---|
-b | 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份 | mv -b /home/a /home/b |
-i | 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。 | mv -i /home/a /home/b |
-f | 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。 | mv -f /home/a /home/b |
-n | 不要覆盖任何已存在的文件或目录。 | mv -n /home/a /home/b |
-u | 当源文件比目标文件新或者目标文件不存在时,才执行移动操作。 | mv -u /home/a /home/b |
- 文件路径组合模式
源类型 | 目标类型 | 说明 | 示例 |
---|---|---|---|
文件 | 文件 | 将原文件名更换为目标文件名 | mv /home/a.txt /home/b.txt |
文件 | 路径 | 将原文件移动到目标路径下 | mv /home/a.txt /root/ |
路径 | 路径 | 若目标路径存在,则将原路径移动到目标路径下;若不存在,则将原路径更名为目标路径 | mv /test1 /test2/ |
路径 | 文件 | 错误写法 |
5 删除文件 【rm】
格式: rm【 -f | -i | -r】 【文件或路径】
说明:
【 -f | -i | -r】
说明如下
指令 | 说明 | 示例 |
---|---|---|
-f | 即使原档案属性设为唯读,亦直接删除,无需逐一确认。 | rm -f /home/a |
-i | 删除前逐一询问确认,输入 y 表示直接删除,输入 n 表示取消该操作。 | rm -i /home/a |
-r | 将目录及以下之档案亦逐一删除。 | rm -r /home/a |
6 创建文件夹 【mkdir】
格式: mkdir 【-p】【文件夹名】
说明:
-p
: 表示确保目录名称存在,不存在的就建一个。该指令属性可省略,具体区别如下:
指令 | 说明 |
---|---|
mkdir -p /home/a/b | 文件夹a 存在,正常创建;不存在,创建文件夹文件夹a |
mkdir /home/a/b | s文件夹a 存在,正常创建;不存在,报错 |
7 创建/编辑文件 【vi】
格式: vi 【文件名】
说明: 指定文件名存在,则在编辑保存后,更新指定文件名内容;若指定文件名不存在,则在编辑保存后,新建对应文件。
基本操作:
vi 【文件名】
—— 进入命令行模式
i
—— 进入编辑模式
鼠标按ESC
键 —— 从编辑模式,退回命令行模式
:wq
—— 从命令行模式,保存编辑退出
:q
—— 退出命令行模式(未对文件做任何编辑操作时可用)
:q!
—— 强制退出命令行模式,不存盘
注:【vi】指令编辑功能详细,请参考 https://m.php.cn/article/452749.html
8 查看文件 【cat】
格式: cat【 -A | -b | -e | -E | -n | -s | -t | -T | -v】 【文件名】
说明:
指令 | 说明 | 示例 |
---|---|---|
-A 或 --show-all | 等价于 -vET 。 | cat -A /home/a.txt |
-b 或 --number-nonblank | 和 -n 相似,只不过对于空白行不编号。 | cat -b /home/a.txt |
-e | 等价于-vE 选项 | cat -e /home/a.txt |
-E 或 --show-ends | 在每行结束处显示 $。 | cat -E /home/a.txt |
-n 或 --number | 由 1 开始对所有输出的行数编号。 | cat -n /home/a.txt |
-s 或 --squeeze-blank | 当遇到有连续两行以上的空白行,就代换为一行的空白行。 | cat -s /home/a.txt |
-t | 等价于-vT 项 | cat -t /home/a.txt |
-T 或 --show-tabs | 将 TAB 字符显示为 ^I。 | cat -T /home/a.txt |
-v 或 --show-nonprinting | 使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。 | cat -v /home/a.txt |
注: 除常用指令外,cat
指令还有以下指令操作
cat --version
—— 查询指令版本
cat --help
—— 查询指令组合说明
cat dev/null > /home/a.txt
—— 清空/home/a.txt
文件内容
cat a.txt > b.txt
—— 将a.txt
的内容复制到b.txt
中
cat /dev/fd0 > test.img
—— 制作软盘/dev/fd0
的镜像文件test.img
cat test.img > /dev/fd0
—— 将镜像文件test.img
写入软盘/dev/fd0
9 查看文件2 【tail】
格式: tail【+<行号> | -c <数目> | -f | -n <行数>| -q | -v | -s<秒数> | --pid=<进程号> 】 【文件名】
说明:
指令 | 说明 | 示例 |
---|---|---|
+<行号> | 指定行号到文末 | tail +20 /home/a.txt |
-f | 循环读取。常用于查阅正在改变的日志文件。 | tail -f /home/a.txt |
-q 或 --quiet 或 --silent | 不显示处理信息 | tail -q /home/a.txt |
-v | 显示详细的处理信息 | tail -v /home/a.txt |
-c<数目> | 显示的字节数 | tail -c 200 /home/a.txt |
-n<行数> | 显示文件的尾部 n 行内容 | tail -n 200 /home/a.txt |
-s<秒数> | 与“-f”选项连用,指定监视文件变化时间隔的秒数 | tail -f -s 5 /home/a.txt |
–pid=<进程号> | 与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令 | tail -f --pid=5 /home/a.txt |
注: 除常用指令外,tail
指令还有以下指令操作
tail --version
—— 查询指令版本
tail --help
—— 查询指令组合说明
tail dev/null > /home/a.txt
—— 清空/home/a.txt
文件内容
tail -n 200 a.txt > b.txt
—— 将a.txt
的倒数200行内容复制到b.txt
中
10 更改文件权限 【chmod】
格式: chmod 【权限】 【-c | -f | -v | -R 】 【文件/路径名】
说明:
【权限】
—— 待设置权限,由三个0-7的数值组成,分别代表所有者、所有者所在用户组、其他用户组权限,例如:777。
权限说明如下:
数字 | 权限描述 | 权限编码(rwx) | 二进制值 |
---|---|---|---|
7 | 读 + 写 + 执行 | rwx | 111 |
6 | 读 + 写 | rw- | 110 |
5 | 读 + 执行 | r-x | 101 |
4 | 只读 | r– | 100 |
3 | 写 + 执行 | -wx | 011 |
2 | 只写 | -w- | 010 |
1 | 只执行 | –x | 001 |
0 | 无 | — | 000 |
【-c | -f | -v | -R 】
—— 指令属性,即权限对应文件或路径名操作范围。
指令属性说明如下:
指令 | 说明 | 示例 |
---|---|---|
-c | 若该文件权限确实已经更改,才显示其更改动作。 | chmod 777 -c /home/a.txt |
-f | 若该文件权限无法被更改也不要显示错误讯息 | chmod 777 -f /home/a.txt |
-v | 显示权限变更的详细资料 | chmod 777 -v /home/a.txt |
-R | 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更) | chmod 777 -R /home/a.txt |
11 更改文件所有者 【chown】
格式: chown 【-c | -f | -h | -v | -R】 【user】:【group】 【文件/路径名】
说明:
【-c | -f | -h | -v | -R 】
—— 指令属性,即对应文件或路径名操作范围。
指令属性说明如下:
指令 | 说明 | 示例 |
---|---|---|
-c | 显示更改的部分的信息。 | chown -c root:root /home/a.txt |
-f | 忽略错误信息 | chown -f root:root /home/a.txt |
-h | 修复符号链接 | chown -h root:root /home/a.txt |
-v | 显示详细的处理信息 | chown -v root:root /home/a.txt |
-R | 处理指定目录以及其子目录下的所有文件 | chown -R root:root /home/a.txt |
【user】
—— 新的文件拥有者的使用者
【group】
—— 新的文件拥有者的使用者组(group)
12 文件压缩/解压 【tar】
压缩格式: tar -czf 【压缩后文名.tar.gz】 【待压缩文件夹或文件】
示例: tar -czf test.tar.gz test
解压: 根据不同 压缩文件解压指令如下
文件类型 | 解压指令 | 示例 |
---|---|---|
*.tar | 用 tar –xvf 解压 | tar –xvf test.tar |
*.gz | 用 gzip -d 或者gunzip 解压 | gzip -d test.gz |
*.tar.gz 或者 *.tgz | 用 tar –xzf 或者tar -xzvf 解压 | tar –xzf test.tar.gz |
*.bz2 | 用 bzip2 -d 或者bunzip2 解压 | bzip2 -d test.bz2 |
*.tar.bz2 | 用tar –xjf 解压 | tar –xjf test.tar.bz2 |
*.Z | 用 uncompress 解压 | uncompress test.Z |
*.tar.Z | 用tar –xZf 解压 | tar –xZf test.tar.Z |
*.rar | 用 unrar e 解压 | unrar e test.rar |
*.zip | 用 unzip 解压 | unzip test.zip |
*.xz | 用 xz -d 解压 | xz -d`test.xz |
13 文件上传/下载 【rz/sz】
上传格式: rz
说明: 执行rz
指令后会弹出选择文件路径对话框,选择对应文件即可上传至当前路径下。
下载格式: sz 【待下载文件名】
说明: 执行对应指令后,对应文件会下载至系统用户下载文件夹下。
安装: rz
和sz
指令部分linux系统内并没有,需要另外下载安装
- 源码安装
wget https://www.ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz
tar zxvf lrzsz-0.12.20.tar.gz
cd lrzsz-0.12.20
./configure --prefix=/usr/local/lrzsz
make
make install
cd /usr/bin
ln -s /usr/local/bin/lrz rz
ln -s /usr/local/bin/lsz sz
- yum安装(适用于CentOS系统)
yum install -y lrzsz
安装详细参考 https://zhuanlan.zhihu.com/p/347789946
14 文件查找【find】
格式: find 【路径】 【表达式】 【外部指令】
说明:
【路径】
说明:路径指需要查询内容所在的路径。
a. 若当前路径则用.
或者./
代替。
b. 可同时查询多个目录用空格分隔,例如:find /etc /home /usr -name *txt
【表达式】
说明:表达式主要指需要查找的文件筛选条件,具体说明如下
指令 | 说明 | 示例 |
---|---|---|
mount或 -xdev | 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件 | find . mount 或者find . -xdev |
-amin <分钟数> | 在过去设定分钟内被读取过 | find . -amin 10 |
-anewer <文件名> | 比设定文件更晚被读取过的文件 | find . -anewer test.txt |
-atime <天数> | 在过去设定天数内被读取过的文件 | find . -atime 10 |
-cmin <分钟数> | 在过去设定分钟内被修改过 | find . -cmin 10 |
-cnewer <文件名> | 比设定文件更新的文件 | find . -cnewer test.txt |
-ctime <天数> | 在过去 设定天数内创建的文件 | find . -ctime 10 |
-mtime <天数> | 在过去设定天数内修改过的文件 | find . -mtime 10 |
-empty | 空的文件 | find . -empty |
-gid <组id> or -group <组名> | 属于指定分组的文件 | find . -gid 1000 |
-ipath p或者 -path p | 查找路径名称符合 p 的文件,ipath 会忽略大小写 | find . -ipath *static |
-name name或者 -iname name | 查找文件名称符合 name 的文件。iname 会忽略大小写 | find . -name *txt |
-size <大小> | 查找指定大小文件。可用单位:b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组 | find . -size 10b |
-type <类型> | 查找指定类型文件。d: 目录,c: 字型装置文件,b: 区块装置文件,p: 具名贮列,f: 一般文件,l: 符号连结,s: socket | find . -size 10b |
-pid <process id 值> | 查找指定process id 值 的文件 | find . -pid 100 |
-perm <权限制> | 查找指定权限文件,权限制设置参考10 更改文件权限 【chmod】的权限说明 | find . -perm 777 |
【外部指令】
说明:该部分主要设置当找到对应文件之后需要进行的后续操作。使用指令主要有-exec
和 -ok
。
-exec 【其他指令】 {} \;
—— 查找到指定文件后直接执行后续指令。例如:find . -type f -perm 777 -exec ls -l {} \;
-ok【其他指令】 {} \;
—— 查找到指定文件后是否需要后续操作会提供确认对话框。例如:find /var/log -type f -mtime +7 -ok rm {} \;
拓展使用: 使用find
指令可将查询到的信息存储到指定文件中,例如:find . > test.txt