发布时间:2022-08-09 文章分类:编程知识 投稿人:王小丽 字号: 默认 | | 超大 打印

那些你希望在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中修改了半天配置文件,然后发现没有写权限,没有比这更令人感到挫败了,此时你需要这条命令。