對中級Linux用戶有用的20個(gè)命令
1. 命令: Find
搜索指定目錄下的文件,從開始于父目錄,然后搜索子目錄。
注意: -name‘選項(xiàng)是搜索大小寫敏感。可以使用-iname‘選項(xiàng),這樣在搜索中可以忽略大小寫。(*是通配符,可以搜索所有的文件;‘.sh‘你可以使用文件名或者文件名的一部分來制定輸出結(jié)果)
注意:以上命令查找根目錄下和所有文件夾以及加載的設(shè)備的子目錄下的所有包含‘tar.gz’的文件。
’find’命令的更詳細(xì)信息請參考35 Find Command Examples in Linux
2. 命令: grep
‘grep‘命令搜索指定文件中包含給定字符串或者單詞的行。舉例搜索‘/etc/passwd‘文件中的‘tecmint’
使用’-i’選項(xiàng)將忽略大小寫。
使用’-r’選項(xiàng)遞歸搜索所有自目錄下包含字符串 “127.0.0.1“.的行。
注意:您還可以使用以下選項(xiàng):
-w 搜索單詞 (egrep -w ‘word1|word2‘ /path/to/file).
-c 用于統(tǒng)計(jì)滿足要求的行 (i.e., total number of times the pattern matched) (grep -c ‘word‘ /path/to/file).
–color 彩色輸出 (grep –color server /etc/passwd).
3. 命令: man
‘man‘是系統(tǒng)幫助頁。Man提供命令所有選項(xiàng)及用法的在線文檔。幾乎所有的命令都有它們的幫助頁,例如:
上面是man命令的系統(tǒng)幫助頁,類似的有cat和ls的幫助頁。
注意:系統(tǒng)幫助頁是為了命令的使用和學(xué)習(xí)而設(shè)計(jì)的。
4. 命令: ps
ps命令給出正在運(yùn)行的某個(gè)進(jìn)程的狀態(tài),每個(gè)進(jìn)程有特定的id成為PID。
使用‘-A‘選項(xiàng)可以列出所有的進(jìn)程及其PID。
注意:當(dāng)你要知道有哪些進(jìn)程在運(yùn)行或者需要知道想殺死的進(jìn)程PID時(shí)ps命令很管用。你可以把它與‘grep‘合用來查詢指定的輸出結(jié)果,例如:
ps命令與grep命令用管道線分割可以得到我們想要的結(jié)果。
5. 命令: kill
也 許你從命令的名字已經(jīng)猜出是做什么的了,kill是用來殺死已經(jīng)無關(guān)緊要或者沒有響應(yīng)的進(jìn)程.它是一個(gè)非常有用的命令,而不是非常非常有用.你可能很熟悉 Windows下要?dú)⑺肋M(jìn)程可能需要頻繁重啟機(jī)器因?yàn)橐粋€(gè)在運(yùn)行的進(jìn)程大部分情況下不能夠殺死,即使殺死了進(jìn)程也需要重新啟動操作系統(tǒng)才能生效.但在 linux環(huán)境下,事情不是這樣的.你可以殺死一個(gè)進(jìn)程并且重啟它而不是重啟整個(gè)操作系統(tǒng).
殺死一個(gè)進(jìn)程需要知道進(jìn)程的PID.
假設(shè)你想殺死已經(jīng)沒有響應(yīng)的‘apache2‘進(jìn)程,運(yùn)行如下命令:
搜索‘apache2‘進(jìn)程,找到PID并殺掉它.例如:在本例中‘apache2‘進(jìn)程的PID是1285..
注意:每次你重新運(yùn)行一個(gè)進(jìn)程或者啟動系統(tǒng),每個(gè)進(jìn)程都會生成一個(gè)新的PID.你可以使用ps命令獲得當(dāng)前運(yùn)行進(jìn)程的PID.
另一個(gè)殺死進(jìn)程的方法是:
注意:kill需要PID作為參數(shù),pkill可以選擇應(yīng)用的方式,比如指定進(jìn)程的所有者等.
6. 命令: whereis
whereis的作用是用來定位命令的二進(jìn)制文件\資源\或者幫助頁.舉例來說,獲得ls和kill命令的二進(jìn)制文件/資源以及幫助頁:
注意:當(dāng)需要知道二進(jìn)制文件保存位置時(shí)有用.
7. 命令: service
‘service‘命令控制服務(wù)的啟動、停止和重啟,它讓你能夠不重啟整個(gè)系統(tǒng)就可以讓配置生效以開啟、停止或者重啟某個(gè)服務(wù)。
在Ubuntu上啟動apache2 server:
重啟apache2 server:
停止apache2 server:
注意:要想使用service命令,進(jìn)程的腳本必須放在‘/etc/init.d‘,并且路徑必須在指定的位置。
如果要運(yùn)行“service apache2 start”實(shí)際上實(shí)在執(zhí)行“service /etc/init.d/apache2 start”.
8. 命令: alias
alias是一個(gè)系統(tǒng)自建的shell命令,允許你為名字比較長的或者經(jīng)常使用的命令指定別名。
我經(jīng)常用‘ls -l‘命令,它有五個(gè)字符(包括空格)。于是我為它創(chuàng)建了一個(gè)別名‘l’。
試試它是否能用:
去掉’l’別名,要使用unalias命令:
再試試:
開個(gè)玩笑,把一個(gè)重要命令的別名指定為另一個(gè)重要命令:
想想多么有趣,現(xiàn)在如果你的朋友敲入‘cd’命令,當(dāng)他看到的是目錄文件列表而不是改變目錄;當(dāng)他試圖用’su‘命令時(shí),他會進(jìn)入當(dāng)前目錄。你可以隨后去掉別名,向他解釋以上情況。
9.命令: df
報(bào)告系統(tǒng)的磁盤使用情況。在跟蹤磁盤使用情況方面對于普通用戶和系統(tǒng)管理員都很有用。 ‘df‘ 通過檢查目錄大小工作,但這一數(shù)值僅當(dāng)文件關(guān)閉時(shí)才得到更新。
‘df’命令的更多例子請參閱 12 df Command Examples in Linux.
10. 命令: du
估計(jì)文件的空間占用。 逐層統(tǒng)計(jì)文件(例如以遞歸方式)并輸出摘要。
注意: ‘df‘ 只顯示文件系統(tǒng)的使用統(tǒng)計(jì),但‘du‘統(tǒng)計(jì)目錄內(nèi)容。‘du‘命令的更詳細(xì)信息請參閱10 du (Disk Usage) Commands.
11. 命令: rm
‘rm’ 標(biāo)準(zhǔn)移除命令。 rm 可以用來刪除文件和目錄。
直接刪除目錄時(shí)會報(bào)錯(cuò):
‘rm’ 不能直接刪除目錄,需要加上相應(yīng)的’-rf’參數(shù)才可以。
警告: “rm -rf” 命令是一個(gè)破壞性的命令,假如你不小心刪除一個(gè)錯(cuò)誤的目錄。一旦你使用’rm -rf’ 刪除一個(gè)目錄,在目錄中所有的文件包括目錄本身會被永久的刪除,所以使用這個(gè)命令要非常小心。
12. 命令: echo
echo 的功能正如其名,就是基于標(biāo)準(zhǔn)輸出打印一段文本。它和shell無關(guān),shell也不讀取通過echo命令打印出的內(nèi)容。然而在一種交互式腳本中,echo通過終端將信息傳遞給用戶。它是在腳本語言,交互式腳本語言中經(jīng)常用到的命令。
創(chuàng)建一小段交互式腳本
1. 在桌面上新建一個(gè)文件,命名為 ‘interactive_shell.sh‘ (記住必須帶 ‘.sh‘擴(kuò)展名)。
2. 復(fù)制粘貼如下腳本代碼,確保和下面的一致。
接下來,設(shè)置執(zhí)行權(quán)限并運(yùn)行腳本。
注意: ‘#!/bin/bash‘ 告訴shell這是一個(gè)腳本,并且在腳本首行寫上這句話是個(gè)好習(xí)慣。. ‘read‘ 讀取給定的輸出。
13. 命令: passwd
這是一個(gè)很重要的命令,在終端中用來改變自己密碼很有用。顯然的,因?yàn)榘踩脑颍阈枰喇?dāng)前的密碼。
14. 命令: lpr
這個(gè)命令用來在命令行上將指定的文件在指定的打印機(jī)上打印。
注意: “lpq“命令讓你查看打印機(jī)的狀態(tài)(是開啟狀態(tài)還是關(guān)閉狀態(tài))和等待打印中的工作(文件)的狀態(tài)。
15. 命令: cmp
比較兩個(gè)任意類型的文件并將結(jié)果輸出至標(biāo)準(zhǔn)輸出。如果兩個(gè)文件相同, ‘cmp‘默認(rèn)返回0;如果不同,將顯示不同的字節(jié)數(shù)和第一處不同的位置。
以下面兩個(gè)文件為例:
file1.txt
file2.txt
比較一下這兩個(gè)文件,看看命令的輸出。
16. 命令: wget
Wget是用于非交互式(例如后臺)下載文件的免費(fèi)工具.支持HTTP, HTTPS, FTP協(xié)議和 HTTP 代理。
使用wget下載ffmpeg
17 命令: mount
mount 是一個(gè)很重要的命令,用來掛載不能自動掛載的文件系統(tǒng)。你需要root權(quán)限掛載設(shè)備。
在插入你的文件系統(tǒng)后,首先運(yùn)行”lsblk“命令,識別出你的設(shè)備,然后把分配的設(shè)備名記下來。
從這個(gè)輸出上來看,很明顯我插入的是4GB的U盤,因而“sdb1”就是要掛載上來的文件系統(tǒng)。以root用戶操作,然后切換到/dev目錄,它是所有文件系統(tǒng)掛載的地方。
創(chuàng)建一個(gè)任何名字的目錄,但是最好和引用相關(guān)。
現(xiàn)在將“sdb1”文件系統(tǒng)掛載到“usb”目錄.
現(xiàn)在你就可以從終端進(jìn)入到/dev/usb或者通過X窗口系統(tǒng)從掛載目錄訪問文件。
是時(shí)候讓程序猿見識見識Linux環(huán)境是多么豐富了!
18. 命令: gcc
gcc 是Linux環(huán)境下C語言的內(nèi)建編譯器。下面是一個(gè)簡單的C程序,在桌面上保存為Hello.c (記住必須要有‘.c‘擴(kuò)展名)。
編譯
運(yùn)行
注意: 編譯C程序時(shí),輸出會自動保存到一個(gè)名為“a.out”的新文件,因此每次編譯C程序 “a.out”都會被修改。 因此編譯期間最好定義輸出文件名.,這樣就不會有覆蓋輸出文件的風(fēng)險(xiǎn)了。
用這種方法編譯
這里‘-o‘將輸出寫到‘Hello‘文件而不是 ‘a.out‘。再運(yùn)行一次。
19. 命令: g++
g++是C++的內(nèi)建編譯器。下面是一個(gè)簡單的C++程序,在桌面上保存為Add.cpp (記住必須要有‘.cpp‘擴(kuò)展名)。
編譯并運(yùn)行
注意:編譯C++程序時(shí),輸出會自動保存到一個(gè)名為“a.out”的新文件,因此每次編譯C++程序 “a.out”都會被修改。 因此編譯期間最好定義輸出文件名.,這樣就不會有覆蓋輸出文件的風(fēng)險(xiǎn)了。
用這種方法編譯并運(yùn)行
20. 命令: java
Java 是世界上使用最廣泛的編程語言之一. 它也被認(rèn)為是高效, 安全和可靠的編程語言. 現(xiàn)在大多數(shù)基于網(wǎng)絡(luò)的服務(wù)都使用Java實(shí)現(xiàn).
拷貝以下代碼到一個(gè)文件就可以創(chuàng)建一個(gè)簡單的Java程序. 不妨把文件命名為tecmint.java (記住: ‘.java’擴(kuò)展名是必需的).
用javac編譯tecmint.java并運(yùn)行
注意: 幾乎所有的Linux發(fā)行版都帶有g(shù)cc編譯器, 大多數(shù)發(fā)行版都內(nèi)建了g++ 和 java 編譯器, 有些也可能沒有. 你可以用apt 或 yum 安裝需要的包.
posted on 2014-12-11 23:47 順其自然EVO 閱讀(576) 評論(0) 編輯 收藏 所屬分類: 測試學(xué)習(xí)專欄