《linux就该这么学》课堂笔记04 常用命令cat、mor...tar、find

本节命令汇总
命令 说明 格式 常用参数 实例 备注
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)

 

 

 

 

 

 

 

 

输出重定向&输入重定向

 

 

 

 

posted @ 2019-11-20 10:20  dustin_zheng  阅读(160)  评论(0编辑  收藏  举报