有那些你相見恨晚的Linux命令
在reddit上看到一個熱門帖子,內容是:一人給一個你相見恨晚的Linux命令。
disown
這是一個bash內置命令,如果你需要將當前程序在後台運行的時候,有兩個方式,1.讓當前程序在新的session中運行。2.程序內部處理SIGUP信號,nohup就只這種工作方式。disown這個命令也能達到相同的功能。更多內容參考: https://www.ibm.com/developerworks/cn/linux/l-cn-nohup/
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的方式來將一個已經正在運行的程序的標準輸出重定向到文件。更多內容參考: https://github.com/nelhage/reptyr
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還有很多快捷鍵,請參考: https://blog.hellojukay.cn/2018/05/23/20180523/。
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 -
這條命令能夠將你待會上一次所在目錄。關於目錄跳轉的還有另外一個很有意思的工具: https://github.com/wting/autojump
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的界面,你的文件就能直接上傳到伺服器上當前終端打開的文件夾了,當然,你當前的賬戶必須要有這個目錄的寫入許可權。
原文鏈接: https://www.reddit.com/r/linux/comments/mi80x/give_me_that_one_command_you_wish_you_knew_years/
推薦閱讀: