命令 | 说明 | 格式 | 常用参数 | 实例 | 备注 |
cat | 查看纯文本文件(内容较少) | cat [选项] 文件名称 | -n 显示行号 | cat -n install-setup-ks.cfg |
查看install-setup-ks.cfg |
more |
查看纯文本文件(内容较多) 【左下角显示已阅读的百分比】 【使用空格或回车向下翻页】 |
more [选项] 文件名称 | more install-setup-ks.cfg |
查看install-setup-ks.cfg *不知道文件大小的情况下,建议使用more |
|
head | 查看纯文本文档的前N行内容 | head [选项] 文件名称 | -n 需要查看行数 |
head -n 20 install-setup-ks.cfg |
查看install-setup-ks.cfg前20行 |
tail | 查看纯文本文档的后N行内容 | tail [选项] 文件名称 |
-f 实时查看最新 |
tail -f /var/log/messages |
实时查看messages文件最新内容 |
tr | 替换文本文件中的字符 | tr [原始字符] [需替换字符] | 常与管道符使用 |
cat anaconda-ks.cfg | tr [a-z] [A-Z] |
将anaconda-ks.cfg文件内容中的小写字母(a-z)替换成大写字母(A-Z) *管道符(|):将前一个命令(cat anaconda-ks.cfg)输出的结果 传到后一个命令(tr [a-z] [A-Z])作为一个输入项 |
wc |
统计指定文本的行数、字数、字节数 | wc [参数] 文件名称 |
-l 只显示【行数】 -w 只显示【字数】 -c 只显示【字节数】 |
wc -l /etc/passwd |
显示结果:38 /etc/passwd 即代表 /etc/passwd 文件有38行 |
stat | 查看文件的具体存储信息和时间信息 | stat 文件名称 |
stat anaconda-ks.cfg |
Atime:文件最后一次访问的时间 Mtime:文件最后一次修改时间 Ctime:文件最后一次属性修改时间 |
|
cut | 按"列"提取文本字符 | cut [参数] 文件名称 |
-f 设置需要查看的列 -d 设置间隔符号 |
cut -d : -f 1 /etc/passwd |
提取出/ect/passwd中以":"为间隔符号的第一列内容 参数内容允许没有空格:cut -d: -f1 /etc/passwd |
diff |
比较多个文件的差异 |
diff [参数] 文件名称 文件名称 |
--brief 显示比较后的结果(是否不同) -c 描述文件内容具体不同之处("!"标示) |
diff --brief 文件A 文件B diff -c 文件A 文件B |
详见《linux就该这么学》2019年7月北京第17次印刷50、51页 |
touch |
创建空白文件 或 设置文件的时间 |
touch [选项] 文件名称 |
-a 仅修改"读取时间"(访问时间) Atime -m 仅修改"修改时间" Mtime -d 同时修改 Atime 与 Mtime |
touch -d "19:30" 文件名称 |
-d 修改时间 黑客做法 所以不能通过时间判断文件是否被篡改过 |
mkdir |
创建空白目录 | mkdir [选项] 目录名称 | -p 递归创建目录 | mkdir -p a/b/c/d | |
cp | 复制文件或目录 | cp [选项] 源文件 目标文件 |
-p 保留原始文件 -d 若对象为"链接文件",保留"链接文件"属性 -r 递归持续复制(用于目录) -i 若目标文件存在 询问 是否覆盖 -a 相当于 -pdr |
cp install.log install-copy.log cp install.log /install-copy.log |
复制install.log文件到当前目录名为install-copy.log文件(若install-copy.log存在 则询问是否覆盖) 复制install.log文件到根目录名为install-copy.log文件(若install-copy.log存在 则询问是否覆盖) |
mv | 剪切文件 或 文件重命名 |
mv [选项] 源文件 [目标路径|目标文件名] |
mv x.log linux.log |
当前路径:重命名 其他路径:剪切 默认删除源文件 |
|
rm |
删除文件或目录 |
rm [选项] 文件名称|目录名称 |
-r 删除目录必须参数 -f 强制删除(不询问是否删除) |
rm -f install.log rm -rf /home/user1 |
|
dd |
按照指定大小和个数的数据款来 复制 或 转换文件 (能够在复制过程中转换其中数据) |
dd [参数] |
if 输入的文件名称 input file 分开读 i f of 输出的文件名称 output file 分开读 o f count 设置要复制"块"的个数 bs 设置每个"块"大小 |
dd if=fileA of=fileB count=1 bs=560M | 复制文件fileA 一块为560M大小的内容至fileB中 |
file |
查看文件类型 |
file 文件名称 | file anaconda-ks.cfg | 输入内容:anaconda-ks.cfg: ASCII text | |
tar |
对文件进行打包压缩 或 解压 | tar [选项] [文件名称|目录名称] |
-c 创建压缩文件 -x 解压文件 -z 使用Gzip压缩 或 解压 -j 使用bzip2压缩 或 解压 -v 显示压缩 或 解压过程 -f 目标文件名 |
tar -czvf home.tar.gz /home tar -xzvf home.tar.gz [/] |
打包文件 将home打包压缩为 home.tar.gz文件 解压文件 将home.tar.gz 解压到当前目录 [根目录] *参数可省略"-" 压缩目录可省略(当前目录) 或指定解压路径 [/] |
grep |
在文本执行关键词搜索 并显示匹配结果 |
grep [选项] [文件] |
-b 将可执行文件当作文本文件来执行 -c 仅显示找到的行数 -i 忽略大小写 -n 显示行号 -v 反向选择 仅列出没有"关键词"的行 |
grep /sbin/nologin /etc/passwd |
grep 关键词 文件名称 输出 /etc/passwd 中 包含 /sbin/nologin 的行 提取:cut 按列提取、grep 按行提取 |
find |
按照指定条件来查找文件 |
find [查找路径] 查找条件 操作 |
-name 匹配名称 -user 匹配所有者 -group 匹配所有组 -prune 忽略某个目录 |
find /etc -name "host*" --print find / -user user1 find test -path "test/test3" -prune -o -print |
在 /etc 目录中查找文件名称包含 host 的文件 查找所有归属user1用户的文件(/proc目录报错 比较特殊) 在 test 目录中查找 排除 test/test3(见图1) |
输出重定向&输入重定向