非常實用的Linux命令行技巧
我們每天使用許多Linux命令行。我們從網(wǎng)上知道一些技巧,但如果我們不去練習(xí),我們就有可能忘記。我決定做一個關(guān)于技巧和竅門的列表,這些技巧和竅門對于你來說可能是已經(jīng)忘記的,或者可能是全新的。
輸出顯示為一個表
有時候,當(dāng)你看到一個命令的輸出,由于過度擁擠的字符串可能就無法識別輸出(例如,mount命令的輸出)。那通過表格顯示呢?這很容易做到!
- mount | column –t:
在這個例子中,因為空格,輸出是格式良好的。如果分隔符是別的東西,像冒號?(例如,在cat/etc/passwd的輸出中)。
指定分隔符-s參數(shù),就像下面。
- cat /etc/passwd | column -t -s:
重復(fù)一個命令,直到它運行成功
如果您在Google上搜索此功能,您會發(fā)現(xiàn)很多人會問到如何重復(fù)該命令,直到它成功返回并運行正常。 例如包括ping服務(wù)器,直到它在線,檢查是否從特定目錄上傳具有特定擴展名的文件,檢查特定URL是否已經(jīng)存在等。
您可以使用while true循環(huán)來實現(xiàn):
在這個例子中, >/dev/null 2>&1 重定向你的程序的輸出到 /dev/null。 同時包括了Standard Error和 Standard Out。
對于我來說這是最酷的linux命令行技巧之一。
通過內(nèi)存利用率排序進程
- ps aux | sort -rnk 4:
通過CPU利用率排序進程
- ps aux | sort -nk 3:
檢查你的架構(gòu),執(zhí)行g(shù)etconf LONG_BIT。
同時查看多個日志文件
你可以用tail命令看你日志沒有問題,但有時,你可能想看多個日志文件。你需要使用支持文本高亮顯示、過濾和更多的功能的multi-tail命令:
如果在你的系統(tǒng)上沒有這個命令,你可以用apt-get install multitail。
回到你以前的目錄
只要輸入cd -,你將返回到前面的目錄。
做一個非交互式Shell會話互動
做到這一點, 需要改變設(shè)置從 ~/.bashrc 到 ~/.bash_profile.
定期監(jiān)控命令輸出
使用觀察命令(watch df - h),你可以看任何命令的輸出。例如,你可以查看空閑空間,以及它是如何增長的。
通過watch命令,你可以想象你能用變量做什么。
在關(guān)閉會話后運行程序
當(dāng)您在后臺運行的任何程序,它都會被你的shell關(guān)閉。如何才能在關(guān)閉shell后,你仍然可以繼續(xù)運行這個程序?
這可以通過使用nohup命令——這代表沒有hang-up:
- nohup wget site.com/file.zip
這個命令是一種最被遺忘的Linux命令行技巧,因為我們很多人使用另一個命令screen:
在同一個目錄中將會生成一個叫nohup.out的文件,其中包含正在運行的程序的輸出:
命令很酷,對嗎?
對任何命令自動回答是或者否
如果你想自動實現(xiàn)用戶輸入yes的過程
你可以使用yes命令:yes | apt-get update。
或者你想自動輸入no,你可以使用yes no | command。
創(chuàng)建指定大小的文件
你可以使用dd命令創(chuàng)建指定大小的文件:dd if=/dev/zero of=out.txt bs=1M count=10。
下面創(chuàng)建里面填充0,大小為10MB的文件:
以root用戶身份運行***的命令
有時,你想以root身份運行命令,但忘記輸入sudo命令。你不必重新輸入;僅僅只需輸入sudo!
記錄你的命令行會話
如果你想記錄你在shell上輸入的內(nèi)容,你可以使用腳本命令來保存你所有輸入的內(nèi)容到一個叫typescript:script的文件中。
一旦你輸入exit,所有你輸入的命令將會寫入到那個文件,后面你可以重新查看它。
用占位符代替空格
你可以使用tr命令代替任何其他字符,這很方便: cat geeks.txt | tr ‘:[space]:’ ‘\t’ > out.txt。
將文件轉(zhuǎn)換為大寫或小寫
你可以使用:
- cat myfile | tr a-z A-Z> output.txt
強大的Xargs命令
xargs命令是最重要的Linux命令行技巧之一。 您可以使用此命令將命令的輸出作為參數(shù)傳遞給另一個命令。 例如,您可以搜索PNGpng文件并對其進行壓縮或?qū)ζ溥M行任何操作:
- find. -name *.png -type f -print | xargs tar -cvzf images.tar.gz
或者,也許你在一個文件中有一個URL清單,你想要去下載它們或者用不同的方式處理它們:
- cat urls.txt | xargs wget
記住,***個命令的輸出傳遞到xargs命令的結(jié)尾。
如果你的命令需要在中間輸出怎么辦?簡單!
僅僅使用{}結(jié)合-i參數(shù),如下,用***個命令輸出結(jié)果去代替參數(shù)的位置:
- ls /etc/*.conf | xargs -i cp {} /home/likegeeks/Desktop/out