Linux的常用經典命令(持續更新)
統計使用命令的頻率
$ history | awk '{print $2}' | sort | uniq -c | sort -rn | head -10
RTFM 閱讀那該死的手冊
Read The Fucking Manual的縮寫,翻成中文是“閱讀那該*死的手冊”。
man命令,顯示使用手冊
在手冊中移動
我們來學習如何在手冊頁面中移動:
鍵盤上的方向鍵:向上鍵和向下鍵可以使我們實現上一行和下一行的跳轉。
鍵盤上的PgUp和PgDn(或者空格鍵)鍵:實現上一頁和下一頁的跳轉。
鍵盤上的Home和End鍵:實現開始和結尾的跳轉。
鍵盤上的/鍵(斜槓):實現搜尋,和之前在less命令中功能類似。
鍵盤上的Q鍵:退出手冊頁。
apropos命令:查詢命令
在使用man命令時,我們需要先知道我們要顯示使用手冊的那個命令的名字。那如果不知道那個命令叫什麼怎麼辦呢?
這時候我們就需要請apropos命令上場了,apropos是英語“關於”的意思。
apropos命令的用法很簡單,只要後接一個關鍵字,apropos命令就會為你在所有手冊頁中查詢相關的命令。
因此apropos命令與man命令有點對立的關係,man命令用於顯示命令的使用手冊,而apropos命令用於根據手冊中的關鍵字來找到命令。
想要知道如何用終端的命令來控制音量
apropos sound
-h或–help引數
-h引數中的h是help的首字母,help是英語“幫助”的意思。所以-h或–help引數的作用是顯示幫助文件。
比如我們要檢視apt-get命令的幫助文件,可以這樣:
apt-get -h
whatis命令
what是英語“什麼”的意思,is是英語“是”的第三人稱單數形式。所以連起來what is就是“是什麼”的意思。
whatis命令可以說是man命令的精簡版,它只會列出man命令顯示的手冊的開頭部分,就是概述命令的作用。
例如用whatis命令來檢視ls命令的作用。
whatis ls
快捷鍵
Ctrl + L 用於清理終端的內容,就是清屏的作用。其實clear命令也有同樣效果
Ctrl + D 給終端傳遞EOF (End Of File,檔案結束符)如果你在命令列提示符後什麼也不輸入的情況下直接按下這組快捷鍵,那麼就會關閉當前的終端。
Shift + PgUp 用於向上滾屏,與滑鼠的滾輪向上滾屏是一個效果,但豈不是很方便嗎?
Shift + PgDn 用於向下滾屏,與滑鼠的滾輪向下滾屏是一個效果。
Ctrl + A 游標跳到一行命令的開頭。一般來說,Home鍵有相同的效果。
Ctrl + E 游標跳到一行命令的結尾。一般來說,End鍵有相同的效果。
Ctrl + U 刪除所有在游標左側的命令字元。
Ctrl + K 刪除所有在游標右側的命令字元。
Ctrl + W 刪除游標左側的一個“單詞”,這裡的“單詞”指的是用空格隔開的一個字串。例如 -a 就是一個“單詞”。
Ctrl + Y 貼上用Ctrl + U, Ctrl + K或Ctrl + W“刪除”的字串,有點像“剪下-貼上”。
tmux是一款終端中的分屏工具
sudo apt-get install tmux
flux是一款護眼工具,能根據一天中的不同時間自動調節螢幕亮度
sudo add-apt-repository ppa:nathan-renniewaldock/flux
sudo apt-get update
sudo apt-get install fluxgui
1.自動建立中間目錄
mkdir:建立一個目錄
mkdir也可以同時建立好幾個目錄:
mkdir new_folder new_folder_2
如果我所要建立的目錄的名字裡有空格怎麼辦呢?
很簡單,加上雙引號:
mkdir "new folder"
還可以用 -p 引數來遞迴建立目錄結構。
mkdir -p /tmp/123/345/567
mkdir -p會自動建立中間缺的目錄,而不需要一個個的按順序建立。
就會先建立123這個目錄,在123目錄裡面建立345這個目錄,在345裡面再建立567這個目錄:
touch命令:建立一個空白檔案.
touch在英語中是“觸控,觸碰”的意思,就是說我碰一下那個檔案,讓電腦以為我剛修改過。
touch命令其實一開始的設計初衷是修改檔案的時間戳,就是可以修改檔案的建立時間或修改時間,讓電腦以為檔案是在那個時候被修改或建立的。
用touch命令同時建立多個檔案:
touch new_file new_file_2
在建立檔案的時候,如果需要一次性建立多個檔案,比如:“love_1_linux.txt,love_2_linux.txt,… love_10_linux.txt”。
touch love_{1..10}_linux.txt
如果所要建立的檔案的名字裡有空格怎麼辦呢?
很簡單,加上雙引號:
touch "new file"
cp命令和mv命令:拷貝檔案和移動檔案
cp命令:拷貝檔案或目錄
拷貝剛才建立的new_file檔案怎麼做呢?
cp new_file new_file_copy
第一個檔案new_file是已經存在的檔案,也就是被拷貝的檔案;第二個檔案new_file_copy是需要建立的檔案,是new_file的副本,內容一模一樣。
複製檔案到另一個目錄
只需要把cp命令的第二個引數換成目錄名。
cp new_file one/
上面的命令就把new_file這個檔案拷貝到了one這個目錄中
拷貝目錄
要拷貝目錄,只要在cp命令之後加上-R引數(注意是大寫的R)。拷貝的時候,目錄中的所有內容(子目錄和檔案)都會被拷貝。
cp -R one one_copy
之前,我們建立了一個目錄one,現在我們將其拷貝為one_copy
*使用萬用字元*
*號(星號)是很常用的正則表示式的符號,被稱為“萬用字元”,顧名思義就是百搭,可以替代任意字串。
cp *.txt folder
那麼就會把當前目錄下所有txt檔案拷貝到folder這個子目錄當中。
mv命令:移動檔案
cp命令就好比Windows中的複製+黏貼,而mv命令就好比Windows中的剪下+黏貼。
mv命令來移動目錄很簡單,不需要額外的引數,就跟移動檔案一樣:
mv new_folder one
以上命令將new_folder這個目錄(包括其下的子目錄和檔案)移動到one這個目錄中。
除了移動檔案,mv命令還可以用於重新命名檔案
mv new_file renamed_file
以上命令會將new_file重新命名為renamed_file
rm命令:刪除檔案和目錄
rm是英語remove的縮寫,表示“移除”。這個命令就是用來刪除東西的。
同時刪除多個檔案,只要用空格隔開每個檔案即可。例如:
rm file1 file2 file3
i 引數:向用戶確認是否刪除
保險起見,用rm命令刪除檔案時,可以加上 -i 引數,這樣對於每一個要刪除的檔案,終端都會詢問我們是否確定刪除。i是英語inform的縮寫,表示“告知,通知”。
-f引數:慎用,不會詢問是否刪除,強制刪除
如果在rm命令後加上-f引數,那麼終端不會詢問使用者是否確定刪除檔案,不論如何,檔案會立刻被強制刪除。
f是英語force的縮寫,表示“強迫,強制”。
rm -f file
以上命令會強制刪除file檔案。
-r引數:遞迴地刪除
r是英語recursive的縮寫,表示“遞迴的”。所以使用-r引數,可以使rm命令刪除目錄,並且遞迴刪除其包含的子目錄和檔案。
這個命令也挺危險的,用得不好可能你的子目錄和檔案都沒了。
rm -r one
以上命令會刪除one這個目錄,包括其子目錄和檔案。
rm命令加-r和-f引數:極為危險!
千萬不要這樣做!
rm -rf /* 或者 rm -rf /
rm:rm命令,這個沒問題吧,刪除命令麼。
-r:遞迴刪除。
-f:不詢問,強制刪除。
/:系統的根目錄。後面可以不加萬用字元*,也可以加。
所以整個命令的意思很明確:強制遞迴刪除根目錄下所有檔案!
#linux 複製多個資料夾下的檔案到一個資料夾下面
for i in $(find ./aug_label/ -name \*.tif);do cp -rf $i ./newlabel/;done
for i in $(find ./aug_train/ -name \*.tif);do cp -rf $i ./newtrain/;done
for i in $(find ./train/ -name \*.tif);do cp -rf $i ./newtrain/;done
for i in $(find ./label/ -name \*.tif);do cp -rf $i ./newlabel/;done
#http://www.cnblogs.com/awinlei/archive/2013/02/05/2893292.html
#批量重新命名
for var in *.tif;do mv "$var" "${var%.tif}_train.tif";done
for var in *.tif;do mv "$var" "${var%.tif}_label.tif";done
#http://www.cnblogs.com/pangblog/p/3243931.html
2.網路監控軟體
bwm-ng
iptraf
iftop
Linux流量監控軟體bwm (支援64位系統)
Bandwidth Monitor NG (簡稱為 Bwm-NG)是一個簡單的網路和磁碟頻寬監視程式,可在Linux、BSD、Solaris等平臺上執行。它支援各種各樣的檢測元件,用於收集各種統計資料,包括/proc/net/dev、netstat、getifaddr、sysctl、kstat、 /proc/diskstats /proc/partitions、 IOKit、 devstat 、 libstatgrab等。介面或裝置可以黑白方式列示,這樣使用者就可以只檢視感興趣的資料。Bwm-NG支援多種輸出選項,如圖形、純文字、CVS及 HTML等。檢視流量命令:bwm-ng -d (按u鍵可切換流量單位)
看看會不會拿伺服器被當”肉雞”使用,檢測這一問題的最好辦法就是檢視外面的流量出口,這時候我想到了iftop命令。
iftop是類似於top的實時流量監控工具。iftop可以用來監控網絡卡的實時流量(可以指定網段)、反向解析IP、顯示埠資訊等,詳細的將會在後面的使用引數中說明。
sudo iftop -np
檢視訪問伺服器的IP個數
netstat -pnt | grep :80
netstat -pnt | grep :80 | wc -l # IP個數
IPTraf的是一個IP網路的網路監控工具。它擷取網路上的資料包,並給出了當前的IP流量在它的各條資訊。IPTraf的是一個純軟體的分析儀。它利用內建的原始資料包捕獲的Linux核心,允許它被用於廣泛的乙太網卡,支援FDDI介面卡,支援ISDN介面卡,令牌環網,非同步SLIP / PPP介面和其他網路裝置的介面。不需要特殊的硬體要求。
# 檢視有無異常程序
$ ps aux
#檢視正執行的程序
ps -u username
# grep python的意思是過濾出跟python相關的程序
ps -aux | grep python
......
# 檢視系統資源佔用有無異常
$ top
......
# 有沒有新增異常使用者
$ cat /etc/passwd
......
#查看了root使用者的命令歷史記錄,當然這個對稍有經驗傢伙是沒有意義的,拿到了root許可權後可以清理任何痕跡
# history
......
3.開啟資料夾
nautilus /home
或者
xdg-open /home
檔案管理
file #確定檔案型別,通過file指令,我們得以辨識該檔案的型別
stat #檔案資訊
檔案內容顯示
nl #(新增行號列印)
nl /etc/issue #用 nl 列出 /etc/issue 的內容
head #功能說明,顯示先是檔案的前幾行(預設10行)。
head -n 5 syslog #可以指定顯示的行數,用 -n 這個引數
head -20 test.sh #顯示檔案 test.sh前20行
tail #命令用於檢視純文字文件的後N行
tail -n 5 syslog #預設情況下,tail會顯示檔案的尾10行。可以指定顯示的行數,用 -n 這個引數
head命令和tail命令:顯示檔案的開頭和結尾
Less #功能說明,less 命令的功能幾乎和 more 命令一樣,也是用來按頁顯示檔案,不同之處在於less 命令在顯示檔案時允許使用者既可以向前又可以向後翻閱檔案。
less命令:分頁顯示檔案內容
less test.sh
less命令和cat命令之間最大的區別就是:less命令會分一頁一頁地顯示檔案內容,使我們可以方便地在終端裡閱讀。
more的缺陷就是它沒有less那麼強大,比如more命令雖然也是一頁一頁地顯示檔案,但是我們不能往後翻頁,只能往前,“一路向北”.
less命令的好處是它會先讀入檔案開始的若干行,然後就停在那裡,而這若干行的行數取決於終端螢幕的大小。這樣的好處是我們可以有時間去漸進地讀檔案的內容。
less命令中最基本最常用的快捷鍵:
空格鍵:檔案內容讀取下一個終端螢幕的行數,相當於前進一個螢幕(頁)。很常用的快捷鍵。與鍵盤上的PageDown(下一頁)效果一樣。
回車鍵:檔案內容讀取下一行,也就是前進一行。與鍵盤上的向下鍵效果是一樣的。
d鍵:前進半頁(半個螢幕)。
b鍵:後退一頁。與鍵盤上的PageUp(上一頁)效果一樣。
y鍵:後退一行。與鍵盤上的向上鍵效果是一樣的。
u鍵:後退半頁(半個螢幕)。
q鍵:停止讀取檔案,中止less命令。
less高階的快捷鍵
=號:顯示你在檔案中的什麼位置(會顯示當前頁面的內容是檔案中第幾行到第幾行,整個檔案所含行數,所含字元數,整個檔案所含字元)。
h鍵:顯示幫助文件。按q鍵退出幫助文件。
/(斜槓):進入搜尋模式,只要在斜槓後面輸入你要搜尋的文字,按下回車鍵,就會把所有符合的結果都標識出來。要在搜尋所得結果中跳轉,可以按n鍵(跳到下一個符合專案),N鍵(shift鍵+n。跳到上一個符合專案)。當然了,正則表示式(Regular Expression)也是可以用在搜尋內容中的。
n鍵:跳到下一個符合的搜尋結果。
N鍵:跳到上一個符合的搜尋結果。
檔案顯示總結
cat 由第一行開始顯示內容
tac 從最後一行開始顯示,可以看出 tac 是 cat 的到這寫!
nl 顯示的時候,順道輸出行號。
more 一頁一頁顯示內容
less 與more 類似,但是比 more 更好的是,可以往前翻頁!
head 只看頭幾行,預設前10行。
tail 只看尾巴幾行。
od 以二進位的方式讀取文件內容!
檔案查詢
whereis #由一些特定的目錄中尋找檔案檔名
whereis filename #快速查詢某個檔案
whereis ifconfig #請找出 ifconfig 這個檔名
which #用於查詢PATH路徑下的某個命令是否存在
whatis #顯示命令的簡要描述,即會顯示man手冊頁的第一行描述
find 目錄 -name 檔名
locate命令,快速查詢
locate是英語“定位”的意思。這個命令用於定位要查詢的檔案,而且此命令很快。
locate命令的用法也很直觀,後接需要查詢的檔名(當然也可以用正則表示式)。
例如我們來查詢一個叫做 renamed_file的檔案:
locate renamed_file
檔案的資料庫
在使用locate命令查詢檔案時,大家可能會遇到這樣的問題:我剛建立的檔案,為什麼用locate命令查詢不到呢?
這正好是locate命令的缺陷,我正要說到:locate命令不會對你實際的整個硬碟進行查詢,而是在檔案的資料庫裡查詢記錄。
locate命令的原理如下圖所示:
對於剛建立不久的檔案,因為它們還沒被收錄進檔案資料庫,因此locate命令就找不到其索引,自然就不會返回任何結果。
可以用updatedb命令強制系統立即檔案資料庫。但是updatedb命令只能由root使用者執行。
update是英語“更新”的意思。db是英語database的縮寫,表示“資料庫”。所以連起來就是“更新資料庫”。
sudo updatedb
查詢軟體安裝位置及版本
dpkg -L firefox 檢視軟體firefox的安裝路徑。
dpkg -l firefox 檢視軟體firefox版本
apt-show-versions firefox 檢視軟體firefox版本
aptitude show firefox
find命令詳解
與locate命令不同,find命令不會在檔案資料庫中查詢檔案的記錄,而是遍歷你的實際硬碟。
所以,如果你的硬碟容量很大的話,那find命令會查詢比較久。
find命令的原理如下圖所示
find命令的這種“耿直”的查詢方式保證了我們不會遺漏一天之內建立的檔案。
find命令的用法是這樣的:
find 《何處》《何物》《做什麼》
1. 根據檔名查詢
find -name "france1.jpg"
這裡,我們用-name引數指定了檔名字,是france1.jpg,用雙引號括起來。不加雙引號或者用單引號也是可以的。
假如,現在我位於我的家目錄中,我卻想在其他目錄中進行查詢,怎麼辦呢?
那就須要指定《何處》這個引數了。
例如,我要在/var/log目錄下查詢名為syslog的檔案,我應該這麼輸入:
find /var/log "syslog"
與locate命令不同的是,find命令只會查詢完全符合《何物》的字串表示的檔案。locate會查詢所有包含關鍵字的檔案。比如,如果要用find來找thing這個檔案,那麼只會找到名字就是thing的檔案;而locate命令會查詢到比如thing,thing1,onething,twothings這樣的檔案。
可以用萬用字元:*(星號)來實現匹配多個名稱。
例如,我要查詢所有以syslog這個關鍵字開頭的檔案,可以這樣來實現:
find /var/log -name "syslog*"
那如果我要在整個硬盤裡查詢怎麼做呢?很簡單:
find / -name "syslog"
在Linux的根目錄查詢很花時間,而且,如果你不是以root身份查詢的話,就會有很多目錄提示你“無許可權訪問”。
2. 根據檔案大小查詢
我們可以查詢/var中大小超過10M的檔案(當然你要以root身份):
find /var -size +10M
這次,我們使用了-size引數,來指定查詢檔案的大小。size是英語“尺寸,大小”的意思。
後面緊跟的+10M表示大於10兆位元組。
M是兆,也就是10的6次方;平時我們所說的Ko,Mo,Go其實分別是千位元組,兆位元組,千兆位元組的意思。
如果我們要查詢小於指定大小的檔案,可以用減號。例如:
find /var -size -50K
表示查詢小於50Ko的檔案。
3. 根據檔案的最近訪問時間查詢
如果你記得你近7天裡在家目錄中訪問過JPG格式的圖片,但是你忘記它們的名字了,如何查詢呢?
可以使用-atime引數。atime是access和time的縮寫,access是英語“訪問,進入”的意思,time是英語“時間”的意思。
find -name "*.jpg" -atime -7
-atime引數後面緊跟的-7表示7天之內,減號的作用是表示小於。
4. 僅查詢目錄或檔案
我們可以用-type引數來指定查詢的檔案型別。type是英語“型別”的意思。
-type d:只查詢目錄型別。d是directory的首字母,表示“目錄”。
-type f:只查詢檔案型別。f是file的首字母,表示“檔案”。
如果不用-type引數指定型別,那麼find命令預設是查詢目錄和檔案的。比如說,有syslog這個檔案,和syslog這個目錄,那麼find會把他們都查找出來。
find /var/log -name "mysql" -type d
find命令的高階用法:操作查詢結果
當然了,預設地,find命令會顯示每個查詢到的檔案。
事實上,
find -name "*.jpg"
等價於
find -name "*.jpg" -print
-print引數用於列印結果。print是英語“列印”的意思。
1.格式化列印查詢結果
例如,我們可以這樣列印查詢到的內容:
find ~/Photos -name "*.jpg" -printf "%p - %u\n"
printf是print formatted的縮寫,表示“格式化列印”。
在-printf引數後面寫了”%p - %u\n”,這個格式字串的意思如下:
%p:檔名。
-:就是一個短橫。
%u:檔案的所有者,這裡是小編的使用者名稱,所以是bids。
\n:用於換行。
可以看到,用法和C語言的printf函式很類似。
2.刪除查詢到的檔案
假如我要刪除查詢到的檔案,我可以用-delete引數。用法很簡單:
find -name "*.jpg" -delete
將會刪除當前目錄及其子目錄下所有以.jpg為字尾的檔案。而且不會有確認提示。所以慎用-delete引數。
3.呼叫命令
使用-exec引數,可以後接一個命令,對每個查詢到的檔案進行操作。
exec是execute的縮寫,是英語“執行”的意思。
假設我想要將當前目錄下所有查詢到的JPG檔案的訪問許可權都改為600,那麼我們可以這樣做:
find -name "*.jpg" -exec chmod 600 {} \;
就是說對於每個找到的.jpg結尾的檔案,都進行-exec引數指定的操作:
這個操作不必用雙引號括起來。
{} 會用查詢到的每個檔案來替換。
\; 是必須的結尾。
雖然-exec引數一開始有點看不懂其用法,但是慢慢地你會發現,這個引數太強大了,你可以對查詢到的檔案做任何你想要的操作。
如果你對於沒有確認提示不太放心,你可以將-exec引數換成-ok引數,用法一樣,只不過-ok引數會對每一個查詢到的檔案都做確認提示,輸入y加回車表示對此檔案進行此操作;輸入n加回車表示對此檔案不進行此操作。
與時間有關的選項:共有 -atime, -ctime 與 -mtime ,以 -mtime 說明
-mtime n :n 為數字,意義為在 n 天之前的『一天之內』被更動過內容的檔案;
-mtime +n :列出在 n 天之前(不含 n 天本身)被更動過內容的檔案檔名;
-mtime -n :列出在 n 天之內(含 n 天本身)被更動過內容的檔案檔名。
-newer file :file 為一個存在的檔案,列出比 file 還要新的檔案檔名
-exec: find命令對匹配的檔案執行該引數所給出的shell命令。相應命令的形式為’command’ { } \;,注意{ }和\;之間的空格。
find / -mtime 0 # 那個 0 是重點!0 代表目前的時間,所以,從現在開始到 24 小時前。將過去系統上面 24 小時內有更動過內容 (mtime) 的檔案列出
find / -mtime 3 #有變動過的檔案都被列出。# 有變動過內容的檔案都會被列出來!那如果是三天前的 24 小時內?
find /etc -newer /etc/passwd #尋找 /etc 底下的檔案,如果檔案日期比 /etc/passwd 新就列出
# -newer 用在分辨兩個檔案之間的新舊關係是很有用的!
find /home -user dmtsai #搜尋 /home 底下屬於 dmtsai 的檔案\# 這個東西也很有用的~當我們要找出任何一個使用者在系統當中的所有檔案時,
# 就可以利用這個指令將屬於某個使用者的所有檔案都找出來喔!
find / -nouser #搜尋系統中不屬於任何人的檔案
# 透過這個指令,可以輕易的就找出那些不太正常的檔案。如果有找到不屬於系統任何人的檔案時,# 不要太緊張,那有時候是正常的,尤其是你曾經以原始碼自行編譯軟體時。
find / -name passw #找出檔名包含了 passwd 這個關鍵字的檔案
find / -name "*passwd*" # 利用這個 -name 可以搜尋檔名啊!預設是完整檔名,如果想要找關鍵字,可以使用類似 * 的任意字元來處理
4.tree 檢視目錄樹
tree /
pstree #可以很直接的看到相同的程序數量,最主要的還是我們可以看到所有程序的之間的相關性。
5.清空當前終端的所有輸入輸出顯示記錄
reset
或者
ctrl + L
6.進入上一目錄
cd指令可讓使用者在不同的目錄間切換,但該使用者必須擁有足夠的許可權進入目的
cd ..
cd -
7.顯示CPU資訊
less /proc/cpuinfo 或者 lscpu
8.顯示記憶體資訊
less /proc/meminfo
9.yes 是一個非常有趣又有用的命令,尤其對於指令碼編寫和系統管理員來說,它可以自動地生成預先定義的響應或者將其傳到終端。
yes I LoveLinux
提示: (直到你按下ctrl+c才停止)
————————————————————————–
————————————————————————–
————————————————————————–
————————————————————————–
10.sl (Steam Locomotive)蒸汽機
sl,然後一輛火車來開過
當你敲入的是‘LS‘而不是’ls‘時,這個命令也會執行。
sl -F
飛起來的火車
ls #列出目錄內容。執行ls指令可列出目錄的內容,包括檔案和子目錄的名稱。
ls -l #每列僅顯示一個檔案或目錄名稱。
ls -lh #來更直觀的檢視檔案的大小
ll #以詳細方式顯示所有檔案與資料夾。(相當於 ls -l 命令)
ls -sS #小 s 為顯示檔案大小,大 S 為按檔案大小排序
ls -a或--all #列出所有檔案和目錄
ls -i #列出 inode 號碼
ls -F #檢視目前存在資料夾中的檔案
ls -A #顯示除了 .(當前目錄)和 ..(上一級目錄)之外的所有檔案,包括隱藏檔案
ls -a #檢視檔案包括隱藏檔案
dir #功能說明,列出<檔案>的資訊 (預設為目前的目錄)
dir -l
11.Telnet 是一個文字化的雙向網路協議
telnet towel.blinkenlights.nl
12.Fortune命令是在相同命令列中作為fortune cookies。我們執行這個命令的時候隨機找了一條諺語或資訊。依靠這個命令,Linux可以像個算命師一樣。
13.一個在終端用ASCII碼組成的小牛,這個小牛會說出你想要它說的話。
cowsay I Love nix
cowthink是另一個命令。執行“cowthink Linux is sooo funny ”看看它與cowsay的不同吧。
cowthink Linux is sooo funny
xcowsay是一個圖形介面程式。它與cowsay類似只是以一種圖形的方式來表達,可以說是X版本的cowsay
xcowsay I Love Linux
xcowthink是另一個命令。執行“xcowthink Linux is sooo funny ”看看它與xcowsay的不同吧。
xcowthink Linux is sooo funny
14.如果用管道將‘fortune command’命令重定向到xcowsay會怎樣呢?
fortune | xcowsay
提示:‘|’是管道命令符。通常它是將一個命令的輸出作為下一個命令的輸入。在上面的例子中‘fortune’的輸出作為‘xcowsay’命令的輸出。管道命令會經常用在指令碼和程式編寫中。
儘管這個命令中只出現了cow,但其實它還可以有羊的效果。
cowsay -f sheep "I too love linux"
只需用 ‘-l 就能看到它能提供的所有動物。輸入:
cowsay -l
為了使之更有趣,你可以讓cowsay說出fortune資訊,如輸入:
fortune | cowsay -f hellokitty
15.你可能看多好萊塢的電影‘黑客帝國’並陶醉於被賦予Neo的能看到在矩陣中任何事物的能力,或者你會想到一幅類似於‘Hacker’的桌面的生動畫面。
cmatrix
16.可能你堅信Linux的滑鼠指標永遠是同樣的黑色或白色一點兒也不生動,那你就錯了。“oneko”是一個會讓一個“Jerry”你的滑鼠指標附著到你滑鼠上的一個軟體包。
oneko
提示:關閉執行著oneko的終端時,Jerry也會隨之消失,重新啟動終端時也不會再出項。你可以將這個程式新增到啟動選項中然後繼續使用它。
17.將你的多媒體音箱的音量調到最大,然後在將這個命令複製到你的終端,來看看你聽到上帝的聲音時的反應吧。
espeak "Tecmint is a very good website dedicated to Foss Community"
18.在你的終端放一把火如何。把這個“aafire”敲到你的終端,不需要什麼引號看看這神奇的一幕吧。按下任意鍵中指該程式。
aafire
19.首先安裝“apt-get install bb”,然後敲入“bb”看看會發生什麼吧
ASCIIquarium
這真是一個不可思議的傑作,你的linux終端視窗竟然成了水族館,裡面有水,有石、有魚、有獸。不多說,自己欣賞一下吧。
apt-get install libcurses-perl
cd /tmp
wget http://search.cpan.org/CPAN/authors/id/K/KB/KBAUCOM/Term-Animation-2.4.tar.gz
tar -zxvf Term-Animation-2.4.tar.gz
cd Term-Animation-2.4/
perl Makefile.PL && make && make test
sudo make install
安裝ASCIIquarium
~# cd /tmp
~# wget http://www.robobunny.com/projects/asciiquarium/asciiquarium.tar.gz
~# tar -zxvf asciiquarium.tar.gz
~# cd asciiquarium_1.1/
~# cp asciiquarium /usr/local/bin
~# chmod 0755 /usr/local/bin/asciiquarium
執行效果
~# asciiquarium
命令:factor
該談點兒關於Mathematics的了,這個命令輸出給定數字的所有因子
命令:while
下面的”while“命令是一個指令碼,這個指令碼可以為你提供彩色的日期和檔案直到你按下中斷鍵(ctrl+c)。複製貼上這個命令到你的終端。
while true; do echo "$(date '+%D %T' | toilet -f term -F border --gay)"; sleep 1; done
提示:以上指令碼通過下面的修改也會產生類似的輸出但是還是有點不同的,在你的終端試試吧。
while true; do clear; echo "$(date '+%D %T' | toilet -f term -F border --gay)"; sleep 1; done
20.命令列百科
首先安裝“apt-get install funny-manpages”然後執行下面命令的man手冊。其中一些
baby
celibacy
condom
date 命令用於顯示/設定系統的時間或日期
echo
flame
flog
gong
grope, egrope, fgrope
party
rescrog
rm
rtfm
tm
uubp
woman (undocumented)
xkill
xlart
sex
strfry
man baby
21.這個命令會用大寫方式把我們輸入的字串顯示在標題欄,顯示效果由ASCII字元組成。
由於它不是標準設定,所以要先安裝這一功能。
figlet mylinuxbook
22.它比figlet命令的效果更有藝術感。
toilet mylinuxbook
不過,它還可以新增顏色。我們可以執行下列命令看到顏色:
toilet -f mono12 -F metal mylinuxbook
23.執行xeyes會在螢幕上出現一雙大眼睛,而且眼珠會跟隨你的滑鼠轉動。
xeyes
————————————————————————–
————————————————————————–
————————————————————————–
————————————————————————–
24.把傳遞給它的的每個字串都反過來
rev
Space Invaders:太空侵略者
使用下面這個命令可以安裝,之所以叫 ninvaders 是因為這款遊戲是基於 ncurses 命令列圖形庫做的:
sudo apt-get install ninvaders
25.命令列編輯錯誤,如何修改
重新輸入,然後執行
稍加編輯,再來執行
使用 ^ 刪掉多餘部分
% grep fooo /var/log/auth.log
% ^o
% grep foo /var/log/auth.log
使用 ^old^new 換掉輸錯或輸少的部分
% cat myflie
% ^li^il
% cat myfile
% ansible vod -m command -a 'uptim'
% ^im^ime
% ansible vod -m command -a 'uptime'
使用 !:gs/old/new 將 old 全部換成 new
% ansible nginx -m command -a 'which nginx'
% !:gs/nginx/squid
% ansible squid -m command -a 'which squid'
% ^nginx^squid^:G # zsh
要記住的是:
一刪 使用 ^ 刪掉多餘部分
二換 使用 ^old^new 換掉輸錯或輸少的部分
三全變 使用 !:gs/old/new 將 old 全部換成 new
利用 :s 做替換
% echo this that
% !:s/is/e
echo the that
慣用法: ^is^e
利用 :gs 做全域性操作
% echo abcd abef
% !:gs/ab/cd
echo cdcd cdef
cdcd cdef
26.歷史記錄命令
瞭解歷史記錄的大小
echo $HISTSIZE
歷史記錄的儲存位置
echo $HISTFILE
歷史記錄的儲存大小
echo $HISTFILESIZE # bash
或者
echo $SAVEHIST # zsh
檢視歷史
history
history | less
history 5
檢視系統預設儲存歷史命令記錄條數
echo $HISTSIZE
~/.bash_history #登出系統,那麼會將所有的歷史命令都存入到這裡,只有1000條的預設記錄
修改Linux中history命令儲存條數
sudo gedit ~/.bashrc
shopt-s histappend
HISTSIZE=100000
HISTFILESIZE=1000000
設定命令歷史記錄的時間(臨時生效)
sudo gedit /etc/profile
export HISTTIMEFORMAT='%F %T' #注意有個空格,為了顯示時日期與命令之間有空格分割。
source /etc/profile #命令生效
history
設定命令歷史記錄的時間永久生效
history
sudo gedit /etc/bash.bashrc
export HISTTIMEFORMAT='%F %T'
export HISTFILESIZE=1000000
source /etc/bash.bashrc
history
使用 Ctrl + r 逆向搜尋歷史命令
(reverse-i-search)`h': history 5
使用 Ctrl + p 訪問上一條命令
history >> recordhistory.txt # 將歷史命令記錄輸出到recordhistory.txt 檔案裡面
27. 歷史引用
使用 !! 執行上一條命令
% !!
% sudo !!
例子
% apt-get install figlet
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
% sudo !!
sudo apt-get install figlet
sudo是英語Substitute User DO的縮寫,substitute是“替換,代替,替身”的意思,user是“使用者”的意思,do就是“做”的意思。所以連在一起就是“替換使用者來執行…”的意思。
sudo su #一直成為root
su - #成為root,並直接定位到root的家目錄
使用 !foo 執行以 foo 開頭的命令
% !his
history
使用 !?foo 執行包含 foo 的命令
% !?is
echo $histchars
使用 !n 執行第 n 個命令
% !10
vim lib/TunePage.pm
使用 !-n 執行倒數第 n 個命令
% !-2
htop
關於歷史引用,要記住的是:
!! 執行上一條命令
![?]字串 執行以字串開頭的命令或執行【包含】字串的命令
![-]數字 執行正數【倒數】第 n 個命令
!# 引用當前行
28.word選取
通過 !$ 得到上一條命令的最後一位引數
% mkdir videos
% cd !$
通過 !^ 得到上一條命令的第一個引數
% ls /usr/share/doc /usr/share/man
% cd !^
通過 !:n 得到上一條命令第 n 個引數
touch foo.txt bar.txt baz.txt
% vim !:2
vim bar.txt
通過 !:x-y 得到上一條命令從 x 到 y 的引數
% touch foo.txt bar.txt baz.txt
% vim !:1-2
vim foo.txt bar.txt
通過 !:n* 得到上一條命令從 n 開始到最後的引數
% cat /etc/resolv.conf /etc/hosts /etc/hostname
% vim !:2*
vim /etc/hosts /etc/hostname
通過 !* 得到上一條命令的所有引數
% ls code src
% cp -r !*
關於 Word 選取,要記住的是:
!:n,得到上一條命令第 n 個引數
^|$ 得到上一條命令的第一個引數,得到上一條命令的最後一位引數
[n]* 得到上一條命令從 n 開始到最後的引數
x-y 得到上一條命令從 x 到 y 的引數
29.關於修飾符
利用 :h 選取路徑開頭
% ls /usr/share/fonts/truetype
% cd !$:h
cd /usr/share/fonts
利用 :t 選取路徑結尾
% wget http://nginx.org/download/nginx-1.4.7.tar.gz
% tar zxvf !$:t
tar zxvf nginx-1.4.7.tar.gz
利用 :r 選取檔名
% unzip filename.zip
% cd !$:r
cd filename
利用 :e 選取副檔名
% echo abc.jpg
% echo !$:e**重點內容**
echo .jpg # bash
.jpg
echo jpg # zsh
jpg
利用 :p 列印命令列
% echo *
% !:p
echo *
利用 :s 做替換
% echo this that
% !:s/is/e
echo the that
慣用法: ^is^e
利用 :gs 做全域性操作
% echo abcd abef
% !:gs/ab/cd
echo cdcd cdef
cdcd cdef
利用 :u 將其更改為大寫 (zsh)
% echo $histchars
% echo !$:u
echo $HISTCHARS
利用 :l 將其更改為小寫 (zsh)
% echo !$:l
echo $histchars
關於修飾符,要記住的是:
h|t 選取路徑開頭,選取路徑結尾
r|e 選取檔名,選取副檔名
p 列印
s 替換
g 全部替換
u|l
30.guake:半透明的,F12一鍵彈出,又酷炫又方便
31.choco,可能是三大平臺最牛逼的包管理器之一
32.watch 可以幫你監測一個命令的執行結果,省得你一遍遍的手動執行。
在Linux下,watch是週期性的執行下個程式,並全屏顯示執行結果。
-d, –differences[=cumulative] 高亮顯示變動
-n, –interval=<seconds> 週期(秒)
如:watch -n 1 -d netstat -ant
可以拿他來監測你想要的一切命令的結果變化,比如 tail 一個 log 檔案,ls 監測某個檔案的大小變化。
watch允許你偷看其它terminal正在做什麼,該命令只能讓超級使用者使用。
watch -n 10 uptime #來每秒重新整理一次獲得當前的系統負載情況,每10秒輸出一次系統負載情況
33.命令列瀏覽器
w3m
elinks
—————————————————————————————
下面給出Linux檢測的一些常用命令
34.審計命令
(1)last:這個命令可用於檢視我們系統的成功登入、關機、重啟等情況;這個命令就是將/var/log/wtmp檔案格式化輸出。
(2)lastb:這個命令用於檢視登入失敗的情況;這個命令就是將/var/log/btmp檔案格式化輸出
(3)lastlog:這個命令用於檢視使用者上一次的登入情況;這個命令就是將/var/log/lastlog檔案格式化輸出。
(4)who:這個命令使用者檢視當前登入系統的情況;這個命令就是將/var/log/utmp檔案格式化輸出。
(5)w:與who命令一致。
關於它們的使用:man last,last與lastb命令使用方法類似
(6)檢視訪問伺服器的IP個數
相關推薦
Linux的常用經典命令(持續更新)
統計使用命令的頻率 $ history | awk '{print $2}' | sort | uniq -c | sort -rn | head -10 RTFM 閱讀那該死的手冊 Read The Fuc
Linux常用操作命令(持續更新)
1、Linux防火牆iptables的關閉與啟動 1) 重啟後生效 開啟: chkconfig iptables on 關閉: chkconfig iptables off 2) 即時生效,
Linux - 常用參考資料(持續更新)
linux 磁盤 文件 分區 達內1、MBR 與 GPT 的聯系和區別https://baike.baidu.com/item/GPT/15413476?fr=aladdin本文出自 “不動的流星” 博客,請務必保留此出處http://caihong.blog.51cto.com/277306/1980931
常用DOS命令(持續更新)
1. 目的 瞭解並學習常用DOS命令 2. 更新記錄 2018年11月11日 Version 1 2018年11月15日 Version 2 3. 常用命令 (1)dir 檢視當前目錄 (2)切換碟符-輸入某一碟符的簡稱,加上:,比如切換到F盤的操作
Linux相關操作命令(持續更新)
1、刪除某一目錄下的所有檔案及資料夾,但是剔除某一特定檔案或者資料夾 find . -maxdepth 1 ! -name 特定檔案(夾)名 -exec rm -rf {} \; 2、查詢某一目錄佔用的磁碟空間 du -sh PATH
Linux工作中常用到的一些命令(持續更新)常用的
args 10g $1 conf 運行級別 who 快速 以及 awk 1、查看運行級別3開啟的服務列表: chkconfig --list|grep 3:on 2、查找某類型的文件並計算總大小。 find / -name *.conf -exec w
Linux常用命令(持續更新......)
(1)檢視80埠是否被佔用 :netstat -anp|grep 80 (2)netstat命令各個引數說明如下: -t : 指明顯示TCP埠 -u : 指明顯示UDP埠 -l : 僅顯示監聽套接字 -p : 顯示程序識別符號和
PHP常用Linux命令---(持續更新)
1.apache檢視域名配置的檔案:cat /etc/httpd/conf/httpd.conf 2.下載檔案:sz 【檔名稱】 3.編輯檔案:vi 【檔名稱】 4.進入檔案後,搜尋某個關鍵字:/ 【要搜尋的關鍵字】 5.修改檔案/資料夾許可權 a.把info.php
git常用命令(持續更新)
git pull java com mit res mail dsa 切換 設置 1、設置用戶名和郵箱: git config --global user.name ""; git config --global user.email ""; git config --li
linux學習類目:常見命令(持續更新)
基礎命令mkdir=make directorys=創建目錄例子: mkdir /data=在根/下創建data目錄ls=list=列表目錄文件例子: ls / =列根/目錄下的目錄和文件參數: -l(long)=長格式 -d(directorys)=查
linux 日常中會用到的命令(持續更新)
xargs gre 目錄 技術 所有 圖片 更新 ima alt 1. grep 比如,我要查看www目錄下所有包含 “聊天室” 的文件 grep -rn "聊天室" * 比如我要把 www 目錄下所有文件中的 聊天室 替換為 哈哈
HDFS之常用命令(持續更新)
1. 檔案許可權操作 # 設定檔案或資料夾許可權為所有使用者都可以訪問 hadoop fs -setfacl -m other::rwx /test/test.json # 檢視某個檔案或資料夾許可權 hadoop fs -getfacl /hebei_data/suspect_t
Git常用命令(持續更新...)
克隆專案 git clone [url] 顯示所有本地分支 git branch 顯示所有遠端分支 git branch -r 顯示所有本地分支和遠端分支 git branch -a 新建分支 git branch [name] 切換分支 git c
ceph常用命令(持續更新)
1、檢視狀態常用命令 # 叢集狀態 ceph -s ## 檢視正在操作的動作 ceph -w # 檢視已經建立的磁碟 rbd ls -l # 檢視ceph叢集 ceph osd tree # 檢視ceph授權資訊 ceph auth get client.admin # 移除mon
npm 的一些常用命令(持續更新)
1.安裝淘寶映象的命令:npm install -g cnpm --registry=https://registry.npm.taobao.org 2.移除node_modules 資料夾命令: (1) 安裝:npm install rimraf -g (2)在對應
Linux:面試常被問到的命令(持續更新)
1、du,df區別: du:檢視磁碟空間使用情況,統計目錄或檔案所佔空間的大小。 df:檢視磁碟檔案使用情況,磁碟被佔用的多少空間,還剩多少空間 2、檢視一點時間段內被修改過的檔案: #查
linux常用指令大全(持續更新中)
iptables linux 防火 ins enable name iptable tab str 查看電腦配置命令 查看內核/操作系統/CPU信息:uname -a 查看CPU信息:cat /proc/cpuinfo 查看內存使用:free -m 查看防火墻:su
ScvQ常用的網站(持續更新...)
sta https tac cto stack 開源中國 更新 title com GitHub: https://github.com/ScvQ 開源中國: http://git.oschina.net/ScvQ 博客園: http://www.c
Python常用函數(持續更新)
col 數據顯示 world 如果 wid print 常用函數 cnblogs 技術 在寫函數名時,末尾的左右括號表明它是一個函數的名字。 print()函數 print()函數將括號內的數據顯示在屏幕上。 也可以調用這個函數在屏幕上打印出空行,只要調用print()就可
整理備忘一波liunx命令(持續更新)
監聽 使用 掛載 mysqld IV lan netstat命令 所有 gre # 分區掛載 # 文件操作 # 編輯操作 # 網洛端口 netstat命令各個參數說明如下: -t : 指明顯示TCP端口 -u : 指明顯示U