i007.cc

i007.cc

优先队列-降维打击

有那些你相见恨晚的Linux命令

在reddit上看到一个热门帖子,内容是:一人给一个你相见恨晚的Linux命令。

disown

这是一个bash内置命令,如果你需要将当前程序在后台运行的时候,有两个方式,1.让当前程序在新的session中运行。2.程序内部处理SIGUP信号,nohup就只这种工作方式。disown这个命令也能达到相同的功能。更多内容参考: ibm.com/developerworks/


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

这是一种非常hack的方式来将一个已经正在运行的程序的标准输出重定向到文件。更多内容参考: github.com/nelhage/rept


cat ~/.ssh/id_dsa.pub | ssh me@remotebox "cat >> ~/.ssh/authorized_keys"

通过ssh连接跨机器使用管道符,这也是比较hack的一种方式。顺便说一句,scp也是使用的ssh协议,所以在使用scp的时候,如果你配置了秘钥,那么scp是可以使用tab键来进行补全提示的。


fc

fc命令能够将上一次执行的命令在编辑器中打开,这个默认的编辑器可以使EDITOR环境变量来设置。


lsof

lsof能够列出当前操作系统打开的所有文件描述符,包括socket,文件等等,与之类似还有一个fuser命令。


CTRL + L

这是一个快捷键,和clear的功能一样能够快速清空当前的terminal,bash还有很多快捷键,请参考: blog.hellojukay.cn/2018


man ascii

在mac上下能够按照是十六进制的方式处处ascii码表,很多从事嵌入式开发的程序使用这个小技巧,同样的ascii -x也能实现这个功能.


xargs

能够将上一个程序的标准输出传给下一个程序的命令行,我最喜欢的功能是:echo xx | xargs -I {} command {}


convert

convert命令能够进行图片格式转换。


^find^replace

这是一个比较冷门的用法,通常在你输入命令行错误,或者你在用另一个参数再次运行某个命令,用这种凡是来修改命令行,类似的还有!:s/find/replace以及全局替换!:gs/find/replace


rsync

这是一个同步,备份文件的命令。


iftop

这是一个监控网卡流量的命令,类似的监控io情况的命令有:iotop 。


sudo !!

使用sudo权限来执行上一条命令,换句话说,如果只是单纯的再次执行上一条命令就用!!即可。我习惯使用CTRL + P然后CTRL + a,然后输入sudo。


cd -

这条命令能够将你待会上一次所在目录。关于目录跳转的还有另外一个很有意思的工具: github.com/wting/autoju


tail -f file

能够监控文件的变化,实时输出到标准输出。


:w !sudo tee %

这是一条vim的内置命令,当你用普通用户编辑文件,但是没有权限保存的时候,这个条命令能够让你用sudo权限保存当前文件。


python -m SipmleHTTPServe 8080

启动一个简单的http目录,暴露8080端口,将当前目录下的文件暴露出去。这是正针于python2版本,如果是python3环境,则使用python -m http.server 8080


fmt

文件格式化编排后输出到标准输出。


pkill/pgrep

按照名字查找进程号,类似ps aux | grep name| awk '{print $2}'


pv

以进度条的方式显示命令行的执行进度。


pushd/popd

这是是用堆栈的方式来进行目录跳转pushd跳转到目录目录,并将当前目录放在栈定,pop移除栈顶元素,回到上一次目录。


ncdu

查看磁盘空间占用情况。


dmidecode

或者当前系统的硬件信息。


htop

与top命令的功能类似,但是显示界面更加友好。


strace

这是非常hack的一个命令,能够调试一个脚本.


vnstat

一款linux下的性能监控工具。


find . -executable -type f

查找可执行文件。


tree

展示当前目录的树状结构。


pstree

显示一个正在运行中的程序的进程树状结构。


ss

ss 也就是 socket status ,用来展示socket讯通状态的命令,类似于 netstat 命令 。


sl

sl这是一个非常滑稽的命令,如果你想输入ls,但是不小心写错了,终端中会有一个小火车驶过。


2018年12月09日更新

对于文件传输你可能会用到`rz`sz`,他的安装方式如下:

 # deepin
sudo apt install lrzsz

# centos 
sudo yum isntall lrzsz

再告诉你一个小秘密,当你使用xshell的时候,你能够直接本地文件拖拽到xshell的界面,你的文件就能直接上传到服务器上当前终端打开的文件夹了,当然,你当前的账户必须要有这个目录的写入权限。

原文链接: reddit.com/r/linux/comm

编辑于 2019-01-01

发表回复