文本文件管理
文本常见命令列表
- cat:正向查看
- tac:反向查看
- more:分页查看
- less:上下滚动查看
- tail:文件尾部
- head:文件头部
- wc:文本统计
- grep:搜索
- cut:按列提取
cut -d ',' -f 1,3 file.txt
- sort:排序,-n正序,-r反序
- uniq:去重,-c统计次数
- diff:比对文件
- vimdiff
- comm:显示两个文件的公共行
- tr:替换或删除字符
- split:分割文件
- find:查找文件
- nl:为内容添加行号显示,-baf非空行显示
- tee:
- pr:
- paste:
- shuf
- column
- xargs
- fmt
- iconv
- pv
文件常用命令
- rmdir:删除空文件夹
shell
# 同时创建两个文件夹 /data/a data/b
mkdir -p -m 755 /data/{a,b}
find
参数 | 说明 |
---|---|
-amin -n | 最后一次访问发生在 n分钟 之内 |
-amin n: | 最后一次访问发生在距离当前时间 n分钟 至 (n+1)分钟 |
-amin +n | 最后一次访问发生在 (n+1)分钟 之外 |
-atime -n | 最后一次访问发生在 n天 之内 |
-atime n | 最后一次访问发生在 n天 至 (n+1)天 |
-atime +n | 最后一次访问发生在 (n+1)天 之外 |
-cmin -n | 最后一次文件状态修改发生在 n分钟 之内 |
-cmin n | 最后一次文件状态修改发生在 n分钟 至 (n+1)分钟 |
-cmin +n | 最后一次文件状态修改发生在 (n+1)分钟 之外 |
-mmin -n | 最后一次文件内容修改发生在 n分钟 之内 |
-mmin n | 最后一次文件内容修改发生在 n分钟 至 (n+1)分钟 |
-mmin +n | 最后一次文件内容修改发生在 (n+1)分钟 之外 |
-mtime -n | 最后一次文件内容修改发生在 n天 之内 |
-mtime n | 最后一次文件内容修改发生在 n天 至 (n+1)天 |
-mtime +n | 最后一次文件内容修改发生在 (n+1)天 之外 |
shell
# 30天之前的文件
find /data/data/ -mtime +30 -type d | xargs rm -rf
awk
格式化输出
shell
awk '{printf("%s %s %s\n", $1, $(NF-2), $(NF-6)) }'
替换
shell
awk '{gsub("/app/|stat_s_standing.py|DEBUG|0.02|\"", "");print}'
分割
shell
awk -F '/' '{print$1 $(NF-1)}'
sed
替换
shell
sed -i "s@http://deb.debian.org@http://mirrors.aliyun.com@g" /etc/apt/sources.list
vim
插入
- 在当前行的下方创建一个新行,并进入插入模式。
- 在当前行的上方创建一个新行,并进入插入模式。
- 进入插入模式,在当前光标前插入。记忆技巧:i 是 insert 的首字母。
- 进入插入模式,在当前光标后插入。记忆技巧:a 是 append 的首字母。
- 进入插入模式,在行首插入。记忆技巧:大写 I,表示更强的插入,即在行首。
- 进入插入模式,在行尾插入。记忆技巧:大写 A,表示更强的附加,即在行尾。
删除
- 删除当前光标上的字符。记忆技巧:x 就像是剪刀,删除当前字符。
- 删除从光标处到单词结尾的字符。记忆技巧:d 是 delete,w 是 word。
- 删除当前行。记忆技巧:dd 是 delete line 的缩写。
复制粘贴
- **yy:**复制当前行(称为“拷贝”)。记忆技巧:yy 是 yank line 的缩写。
- **p:**在当前光标后粘贴。记忆技巧:p 是 paste 的首字母。
- **P:**在当前光标前粘贴。记忆技巧:大写 P 表示前粘贴。
撤销
- **u:**撤销上一个操作。记忆技巧:u 是 undo 的首字母。
- **Ctrl + r:**重做上一个撤销的操作。记忆技巧:r 是 redo 的首字母。
跳转
- **gg:**跳转到文件开头。记忆技巧:gg 是 go to top。
- **G:**跳转到文件末尾。记忆技巧:大写 G 是 go to bottom。
重新加载文件
- 😗*e:**重新加载文件。
可视模式
- v:进入可视模式(字符模式)
- V:进入可视模式(行模式)
- Ctrl + v:进入可视模式(块模式)
搜索和替换
- /pattern:向前搜索 pattern
- ?pattern:向后搜索 pattern
- n:向前跳到下一个搜索结果
- N:向后跳到上一个搜索结果
- :%s/old/new/g:替换整个文件中的 old 为 new
- :n,m s/old/new/g:替换第 n 行到第 m 行中的 old 为 new
其他有用的命令
- .:重复上一个命令
- :%y+:将整个文件复制到系统剪贴板
- :set number:显示行号
- :set nonumber:隐藏行号
- :syntax on:开启语法高亮
- :syntax off:关闭语法高亮
多窗口编辑
- 切换到下一个窗口:Ctrl+w w
- 切换到上一个窗口:Ctrl+w p
- 切换到左侧的窗口:Ctrl+w h
- 切换到右侧的窗口:Ctrl+w l
- 切换到上方的窗口:Ctrl+w k
- 切换到下方的窗口:Ctrl+w j
浏览器ctrl+ww不可用情况下
- 切换到下一个窗口::wincmd w
- 切换到上一个窗口::wincmd p
- 切换到左侧的窗口::wincmd h
- 切换到右侧的窗口::wincmd l
- 切换到上方的窗口::wincmd k
- 切换到下方的窗口::wincmd j
Mount
cifs
- install
shell
yum install -y cifs-utils
# mount
mount -t cifs //server/share /mnt/myshare -o username=myuser,password=mypassword
fstab挂载
shell
//server/share /mnt/myshare cifs credentials=/etc/mycreds,_netdev 0 0
Swap扩容
centos7
shell
sudo dd if=/dev/zero of=/etc/swap bs=1024 count=15728640
sudo chmod 600 /etc/swap
sudo mkswap /etc/swap
sudo swapon /etc/swap
echo '/etc/swap none swap sw 0 0' | sudo tee -a /etc/fstab
sudo swapon --show