有那些你相見恨晚的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


推薦閱讀:

TAG:Linux | Bash | shell腳本 |