\1. mv xxxx{,.bak}等同于mv xxxx xxxx.bak
比如a{d,c,b}e会被扩展成ade ace abe
所以filename{,.bak}被扩展成filename filename.bak也就好理解了
\2. esc + . 能填充之前命令的最后一个字段
\3. diff <(ssh host1 cat file1) <(ssh host2 cat file2) diff两个远程文件
\4. ctrl + r然后输入xxx,搜索之前包含xxx的命令
\5. Python -m SimpleHTTPServer,启动一个HTTP服务器,可以用来下载文件
\6. vim编辑文件后发现需要root权限, :w !sudo tee % 。(w:表示vim的修改操作,这个命令的输出更改后的文件到“标准输出”
!sudo tee % :执行 一个 shell 命令, % 表示当前打开的这个文件的名字。
整个命令就是 将w的输出传给 tee,tee 在root 权限下 把更改的内容存在文件当中。)
\7. ctrl+z可以把当前程序丢后台,fg命令可以恢复。
\8. 退出su,退出ssh,可以用ctrl+d(真有人不知道这个,手敲exit, logout)。
\9. sudo !!用sudo执行上条命令。
\10. 如果在前台运行了一个程序,但是你需要退出终端,保持程序继续在后台运行,你可以这样:ctrl+z,把程序放在后台;bg让程序继续运行;disown -h %1
(%n是你jobs命令返回的那个,没有其它后台程序的话,一般是%1)。