那些你希望在N年前就掌握的命令
有人在Reddit上发帖询问:有没有哪条命令是你希望自己在几年前就掌握的,下面的回复中提到的一些命令,看看你知道几个,当然,也欢迎补充你的。
units
单位转换程序:
You have: cm^3 You want: gallons * 0.00026417205 / 3785.4118 You have: 1|2 inch You want: cm * 1.27 / 0.78740157
后台运行命令
如果你希望让某条命令在退出SSH后依然保持运行状态,ZSH用户可以在命令后加上&|或是&!,也可以设置Shell的nohup属性,这样所有后台任务都将忽略hangup信号。
取得运行中进程的输出
~$ touch log ~$ gdb -p 22499 (gdb) p close(1) # This closes the stdout of the running process (gdb) p open("/home/.../log", 1) # This will open the log-file with O_WRITE (gdb) c
fc
fc命令会根据$EDITOR变量打开一个编辑器,让你编辑上一条命令,你还可以使用Ctrl-x,Ctrl-e来编辑当前行的命令。
bindkey
绑定键盘快捷键,执行下面这条命令后,你就可以使用Ctrl-j回到上一条命令:
bindkey "^j" history-search-backward
lsof
关于lsof,可以查看我们之前的一篇介绍文章"Unix调试的瑞士军刀:lsof"。
man ascii
以8进制,10进制以及16进制显示ASCII码表
^find^replace
$ /etc/init.d/foo stop $ ^stop^start
下面是一条等价命令:
!:s/foo/bar # 替换第一个 !:gs/foo/bar # 替换全部
cd -
看个例子:
cd /some/complicated/directory cd ~/foo cp some_file `cd -`
更简单的:
cp some_file ~-
:w ! sudo tee %
当你在vi中修改了半天配置文件,然后发现没有写权限,没有比这更令人感到挫败了,此时你需要这条命令。