比较两个文件的异同
$md5sum filename1
反向删除
rm -rf !(file1|file2)
rm `ls | grep -v "aa" `
外面是反引号,grep -v表示过滤掉带“aa”的
磁盘管理
df -i # 查看inode
df -h # 查看磁盘使用和挂载情况
df -h /dir: 可知某个目录还有多少容量
du -sh /dir | grep G # 找到带'G'的大文件
du -sm $dir_name 查看目录大小,以mbytes形式列出
vim
和终端切换
- 在vim文本中esc+shift+1+cmmand,执行结果显示完后按任意键返回vim
- ctrl-z挂起,通过jobs找寻编号,用fg+编号回到
复制
复制多行
将9至15行复制到第16行
:9, 15 copy 16
移动: :9, 15 move 16
全部复制: esc->ggyG
复制游标所在行 yy
剪切游标所在行 dd
粘贴 p
跳跃
->last line: G(shift-g)
->first line: twice 'g'
->first char in current line: '0'(zero)
分屏显示
vim -on file1 file2
小写o表示水平分屏(上下),大写o表示垂直分屏(左右)
窗口间跳转 ctrl-w h左, ctrl-w j下, ctrl-w k上
删除
delete all: esc->dG
全局替换
:%s/1/2/g
把所有1替换成2
%s/acuitynet///g
将acuitynet/
替换为空
撤销与恢复
撤销 u
恢复 ctrl-r
其他
ctrl-s: 暂停终端
ctrl-q: 解锁
ctrl-z: 会产生很多僵尸进程,用fg找到后ctrl-c,或kill
y: 赋值
p: 粘贴
d: 剪切
命令行跳转
ctrl-u: 删除光标前
ctrl-k: 删除光标后
ctrl-a: 移动到命令首
ctrl-e: 移动到命令末
脚本执行方式之区别
- source命令:在当前bash环境下读取并执行file中的命令,该文件可以无执行权限,可简写为 . a.sh
- sh/bash a.sh:都是打开一个subshell去执行a.sh,这样subshell里设置变量就不会影响fathershell,a.sh同样不需要执行权限
- ./a.sh打开一个subshell,文件需要有执行权限, chmod a+x a.sh
ctrl-c没反应
用ctrl-z
看一下,如果可以返回,再用ps
,然后kill -9 $pid
环境变量
export xxx=xxx
取消设置 unset xxx
find查找
find / -name +文件名
find是在指定的目录下遍历查找,如果目录使用 / 则表示在所有目录下查找,find方式查找文件消耗资源比较大,速度也慢一点。
which+可执行文件名
使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令