vim:文本编辑tee:重定向保存wc:文件审计命令sort:按字符进行比较(先将语言统一 export $LANG=en)tr:将前面命令的结果,转换或删除字符,cut:根据制定的分隔符切片,并显示出需要显示的片uniq:移除重复的行paste file1 file2 将文件合并到一个文件diff file1 file2 比较两个文件的不同命令xargs:管道传递tree 查看目录结构命令 rename 更改文件名命令touch 创建文件vim:文本编辑
vim是vi的升级版,它可以颜色的标记出编辑过程中的错误,是Linux中比较好的编辑软件,而一般vi一般Linux都内置了。
安装
yum-yinstallvim
vi/vim 有三种模式:
一般模式(进入时)
编辑模式(i,O,o,A,a插入时)
命令模式(:set nu 等时)
$vimfilename
上下左右键(或hjkl) 移动光标
i 以光标点进入编辑
I 跳到本行首进入编辑
O 以光标向上新开一行进入编辑
o 以光标向下新开一行进入编辑
A 以光标位置开始向前一个字符开始编辑
a 以光标位置开始向后一个字符开始编辑
在一般模式:
(数字0) 移动到本行首
$ 移动到行尾
n 向下移动n行
gg 移动到文本第一行
G 移动到文本最后一行
nG n为数字,移动到第n行 (:set nu 可以标记行号)
ESC 从编辑模式切换到一般模式
/word 向下搜索word
?word 向上搜索word
n 向下将搜索的单词一个个切换
N 同上相反向上切
:set nu 显示行号
:set nonu 取消行号
n1,n2s/word1/word2/g 将n1与n2之间word1改成word2
:1,$s/old/new/gc 加上c后,會逐步提示你替換
:1,$s/word1/word2/g
x,X 向后/向前删除一个字符
nx 向后删除n个字符
dd 删除本行
ndd 向下删n行
d1G 删除1行到本行
dG 删除本行到最后一行
shift+D 删除光标后的所有内容
yy 复制本行
nyy 复制本行及向下n行
p,P p将复制的数据在光标下一行粘贴,P相反
u 复原前一个动作(后悔)
U 撤销所有之前的操作
Ctrl+r 重做上一个动作
编辑完后:
:w 保存
:q 退出 (:q!强制退出)
:wq 保存退出 (:wq!强制保存退出)
ZZ 保存退出
tee:重定向保存
"ls / >txt.txt" 重定向時,無法在屏幕中輸出結果,tee命令就可以實現重定向保存文件的同時,將結果輸出到屏;
# 常见用法
tee 只输出到标准输出,因为没有指定文件嘛
teefile 输出到标准输出的同时,保存到文件file中。如果文件不存在,则创建;如果已经存在,则覆盖之
tee-afile 输出到标准输出的同时,追加到文件file中。如果文件不存在,则创建;如果已经存在,就在末尾追加内容,而不是覆盖。
tee-输出到标准输出两次
teefile1 file2-输出到标准输出两次,同时保存到file1和file2中
#示例:
seq5>1.txt &&cat1.txt |tee2.txt
wc:文件审计命令
-l:统计行数
-c:统计字节数
-w:统计单词数
-i:忽略大小写
$wc-lfilename
sort:按字符进行比较(先将语言统一 export $LANG=en)
格式sort参数filename
-f:忽略大小写
-n:对数字进行排序
-t:指定分隔符
-k数字:指定分隔后进行比较字段
-u:重复的行,只显示一行
-r:倒序
# 示例
#查看系统内存使用最大的10个
$cat /etc/passwd|sort-n
$psaux|sort-nk+4|tail
tr:将前面命令的结果,转换或删除字符,
#转换字符:会把第一个字符集的对应转换为第二个字符集中的对应转换
语法:
tr ‘集合1’ ‘集合2’,必须使用管道
-d:删除出现过的字符集
# 示例
# 将文件中小写换成大写
$ last| tr [a-z] [A-Z]
或
$ last| tr'[a-z]' '[A-Z]'
cut:根据制定的分隔符切片,并显示出需要显示的片
-d字符:指定分隔符
-f数字:指定要显示的字段
单个数字:一个字段
多个离散字段:逗号分隔
多个连续字段:-分隔
uniq:移除重复的行
-c:统计每一行出现的次数(靠着的行)
-d:仅显示出现最少两次的行
-u:仅显示不重复的行
paste file1 file2 将文件合并到一个文件
-d 指定分隔符,每个文件中对应行合并成一行
-s 每个文件为一行
diff file1 file2 比较两个文件的不同命令
xargs:管道传递
catpasswd |cut-d:-f1|xargsmkdir
tree 查看目录结构命令
rename 更改文件名命令
rename old_name new_name file_name
# 批量改名[abc1.txt abc2.txt abc3.txt 改成abc01.txt abc02.txt abc03.txt]
$ renameabc abc0 abc?.txt
touch 创建文件
批量创建a.txt b.txt c.txt d.txt
$ touchtest_.txt
领取专属 10元无门槛券
私享最新 技术干货