cat 只能看普通文本文件。缺点是:内容过多,显示不全
hexdump:查看硬件设备非文本文档
cat | —A | 显示隐藏字符 |
—n | 显示行号 |
重定向,重新定义标准
> 一个是覆盖所有内容 >> 两个是追加
如何合并两个文件?
cat A B > C 竖向,上下合并
paste A B > C 横向,左右合并
标准输入:你输入的指令 }
标准输出:电脑反馈给你的信息 } 都默认在屏幕上显示
错误输出:电脑的一些报错信息 }
管道符:将第一个命令执行的结果当作参数传给后一个命令去执行
命令1 | 命令2 | 命令3 | 命令4 |
左边的命令一定有标准输出
右边的命令一定要接受标准输出
more基本操作
空格下一行 到文末后自动退出
b 上一行
enter 一行一行滚动
q 退出
less基本操作
Page Up 向上翻页,Page Down 向下翻页
head | —n 数字 文件名 | 看文件的前多少数字行 |
—n 3 test | 看test文件的前3行 | |
—c 数字 | 看数字的这一行 | |
—n -数字 | 去掉最后数字几行 | |
seq=10 | head -n -3 | 10行去掉最后3行 |
tail 和head 相反,查看文件或标准输入的倒数行
-f 跟踪显示文件fd新追加的内容,常用日志监控
tail -n 具体数字 文件名 (不加具体的数字,默认结尾十行)
tail -f 具体数字 文件名 实时跟踪最后十行
tail | —n 3 文件名 | 看test文件的后3行 |
—f=tailf 文件名 | 实时追踪查看文件 | |
—n +数字 | 从数字行开始显示 |
wc | —l | 只统计行 |
—w | 只统计单词 | |
—c | 只统计字符 |
[root@localhost ~]# wc a.txt
1 1 11 a.txt
[root@localhost ~]# cat a.txt
das dasdads
[root@localhost ~]# wc a.txt
1 2 12 a.txt
########注意空行和换行符
tab 空格 算单词的分隔符
grep 后面跟正则表达式
grep [选项]… 查找条件 目标文件
grep | —i | 查找时忽略大小写 |
—v | 反向查找,输出与查找条件不相符的行 | |
—o | 只显示匹配项 | |
—f | 对比两个文件的相同行 | |
—r | 递归,不找软连接 | |
—c | 只显示的行数 | |
. | 任意字符 | |
^ | 一行的开头 | |
$ | 一行的结尾 |
grep -e root -e bash /etc/passwd #包含root或者包含bash 的行
grep -E root|bash /etc/passwd
-w 匹配整个单词
grep -w root /etc/passwd
useradd rooter
gerp "^root" passed 以root开头
gerp "root$" passed 以root结尾
gerp "^$" passed 空行
gerp ——v "^$" passed 空行
重点提问: 在某一文件中,快速找到所有含有root 字符的文件?
grep —r 表达式 (root)文件夹
如何快速找到所有含有特殊字符的文件
我有10g的文件,怎么分割小的文件存稿
split 分割文件
split [-b ][-C ][-][-l ][要切割的文件][输出文件名前缀][-a ]
最常用的选项,都在这里了:
-b<字节>:指定按多少字节进行拆分,也可以指定 K、M、G、T 等单位。
-<行数>或-l<行数>:指定每多少行要拆分成一个文件。
输出文件名前缀:设置拆分后的文件的名称前缀,split 会自动在前缀后加上编号,默认从 aa 开始。
-a<后缀长度>:默认的后缀长度是 2,也就是按 aa、ab、ac 这样的格式依次编号。
[root@localhost data]#dd if=/dev/zero bs=1024 count=700000 of=k
记录了700000+0 的读入
记录了700000+0 的写出
716800000字节(717 MB)已复制,2.98155 秒,240 MB/秒
[root@localhost data]#split -b 400M k
[root@localhost data]#ls
k xaa xab
[root@localhost data]#split -b 400M k a
#指定分隔名
root@localhost data]#split -b 400M k a
[root@localhost data]#ll
总用量 1400000
-rw-r--r--. 1 root root 419430400 8月 12 15:50 aaa
-rw-r--r--. 1 root root 297369600 8月 12 15:50 aab
-rw-r--r--. 1 root root 716800000 8月 12 15:46 k
tar [选项] ... 归档文件名 源文件或目录
tar | —f | 表示使用归档文件必须带f |
—c | 建立归档文件 tar-cf | |
—x | 解开归档 tar-xf | |
—j | 代表使用bzip2 压缩 | |
—C | 指定解压的目录 | |
—t | 不解开压缩包,查看压缩包中的内容 |
tar的语法
建立归档
tar fzcv 压缩包的名字(*tar.gz)需要压缩的文件
-p保留权限
vi是vim的升级版本
vim [OPTION]... ...
命令 选项 文件
vim 文件名不存在 是新建
vim 文件名存在 就是修改
+# 打开文件后,让光标处于第#行的行首,+默认行尾
! 打开上一次的文件
+/PATTERN 让光标处于第一个被PATTERN匹配到的行行首用不多
命令模式:此模式下,可使用方向键(上、下、左、右键)或 k、j、h、i 移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等操作。
三种模式:命令模式 | 100G | 跳到100行 |
gg | 首行 | |
G | 末行 | |
数字g | 跳到数字行 | |
o、^ | 行首 | |
end、$ | 行尾 | |
w | 一个一个单词跳 | |
x | 删除 | |
u | 撤销一次操作 | |
U | 撤销全部 | |
y | 复制 | |
yy | 复制一行 | |
10yy | 复制10行 | |
p | 贴在光标下面 | |
P | 贴在光标上面 | |
d | 删除 | |
dd | 删除一行 | |
10dd | 删除10行 | |
dw | 删除一个单词 | |
r | 替换 |
输入模式:使 Vim 进行输入模式的方式是在命令模式状态下输入 i、I、a、A、o、O 等插入命令(各指令的具体功能如表 3 所示),当编辑文件完成后按 Esc 键即可返回命令模式
在命令模式下输入i、o进入输入模式
输入模式按exc 退出命令模式
在命令模式下输入 :进入末行模式
末行模式按exc 退出命令模式
i 当前 光标处输入
o 在光标下插入新一行
末行模式:文件中的指定内容执行保存、查找或替换等操作。使 Vim 切换到编辑模式的方法是在命令模式状态下按“:”(英文冒号)键,此时 Vim 窗口的左下方出现一个“:”符号,这是就可以输入相关指令进行操作了。
# #具体第#行,例如2表示第2行
#,# #从左侧#表示起始行,到右侧#表示结尾行
#,+# #从左侧#表示的起始行,加上右侧#表示的行数,范例:2,+3 表示2到5行
. #当前行
$ #最后一行
.,$-1 #当前行到倒数第二行
% #全文, 相当于1,$
/pattern/ #从当前行向下查找,直到匹配pattern的第一行,即:正则表达式
/pat1/,/pat2/ #从第一次被pat1模式匹配到的行开始,一直到第一次被pat2匹配到的行结束
#,/pat/ #从指定行开始,一直找到第一个匹配pattern的行结束
/pat/,$ #向下找到第一个匹配patttern的行到整个文件的结尾的所有行
修饰符:
i #忽略大小写
g #全局替换,默认情况下,每一行只替换第一次出现
c #全局替换,每次替换前询问