對中級 Linux 使用者有用的 20 個命令
也許你已經發現第一篇文章非常的有用,這篇文章是繼對初級Linux使用者非常有用的20個命令 的一個延伸。
第一篇文章的目的是為新手準備的而這篇文章則是為了Linux的中高階使用者。在這裡你將學會如何進行自定義搜尋,知道正在進行的程式和停掉程式,如何使用Linux的強勢功能和如何在系統內編譯C,C++和JAVA程式。
21. 命令: Find
搜尋指定目錄下的檔案,從開始於父目錄,然後搜尋子目錄。
注意: `-name‘選項是搜尋大小寫敏感。可以使用`-iname‘選項,這樣在搜尋中可以忽略大小寫。(*是萬用字元,可以搜尋所有的檔案;‘.sh‘你可以使用檔名或者檔名的一部分來制定輸出結果)
注意:以上命令查詢根目錄下和所有資料夾以及載入的裝置的子目錄下的所有包含‘tar.gz'的檔案。
’find'命令的更詳細資訊請參考35 Find Command Examples in Linux
22. 命令: grep
‘grep‘命令搜尋指定檔案中包含給定字串或者單詞的行。舉例搜尋‘/etc/passwd‘檔案中的‘tecmint'
注意:您還可以使用以下選項:
- -w 搜尋單詞 (egrep -w ‘word1|word2‘ /path/to/file).
- -c 用於統計滿足要求的行 (i.e., total number of times the pattern matched) (grep -c ‘word‘ /path/to/file).
- –color 彩色輸出 (grep –color server /etc/passwd).
23. 命令: man
‘man‘是系統幫助頁。Man提供命令所有選項及用法的線上文件。幾乎所有的命令都有它們的幫助頁,例如:
上面是man命令的系統幫助頁,類似的有cat和ls的幫助頁。
注意:系統幫助頁是為了命令的使用和學習而設計的。
24. 命令: ps
ps命令給出正在執行的某個程式的狀態,每個程式有特定的id成為PID。
使用‘-A‘選項可以列出所有的程式及其PID。
注意:當你要知道有哪些程式在執行或者需要知道想殺死的程式PID時ps命令很管用。你可以把它與‘grep‘合用來查詢指定的輸出結果,例如:
ps命令與grep命令用管道線分割可以得到我們想要的結果。
25. 命令: kill
也許你從命令的名字已經猜出是做什麼的了,kill是用來殺死已經無關緊要或者沒有響應的程式.它是一個非常有用的命令,而不是非常非常有用.你可能很熟悉Windows下要殺死程式可能需要頻繁重啟機器因為一個在執行的程式大部分情況下不能夠殺死,即使殺死了程式也需要重新啟動作業系統才能生效.但在linux環境下,事情不是這樣的.你可以殺死一個程式並且重啟它而不是重啟整個作業系統.
殺死一個程式需要知道程式的PID.
假設你想殺死已經沒有響應的‘apache2'程式,執行如下命令:
搜尋‘apache2'程式,找到PID並殺掉它.例如:在本例中‘apache2'程式的PID是1285..
注意:每次你重新執行一個程式或者啟動系統,每個程式都會生成一個新的PID.你可以使用ps命令獲得當前執行程式的PID.
另一個殺死程式的方法是:
注意:kill需要PID作為引數,pkill可以選擇應用的方式,比如指定程式的所有者等.
26. 命令: whereis
whereis的作用是用來定位命令的二進位制檔案\資源\或者幫助頁.舉例來說,獲得ls和kill命令的二進位制檔案/資源以及幫助頁:
注意:當需要知道二進位制檔案儲存位置時有用.
27. 命令: service
‘service‘命令控制服務的啟動、停止和重啟,它讓你能夠不重啟整個系統就可以讓配置生效以開啟、停止或者重啟某個服務。
在Ubuntu上啟動apache2 server:
重啟apache2 server:
停止apache2 server:
注意:要想使用service命令,程式的指令碼必須放在‘/etc/init.d‘,並且路徑必須在指定的位置。
如果要執行“service apache2 start”實際上實在執行“service /etc/init.d/apache2 start”.
28. 命令: alias
alias是一個系統自建的shell命令,允許你為名字比較長的或者經常使用的命令指定別名。
我經常用‘ls -l‘命令,它有五個字元(包括空格)。於是我為它建立了一個別名‘l'。
試試它是否能用:
去掉’l'別名,要使用unalias命令:
再試試:
開個玩笑,把一個重要命令的別名指定為另一個重要命令:
想想多麼有趣,現在如果你的朋友敲入‘cd'命令,當他看到的是目錄檔案列表而不是改變目錄;當他試圖用’su‘命令時,他會進入當前目錄。你可以隨後去掉別名,向他解釋以上情況。
29.命令: df
報告系統的磁碟使用情況。在跟蹤磁碟使用情況方面對於普通使用者和系統管理員都很有用。 ‘df‘ 透過檢查目錄大小工作,但這一數值僅當檔案關閉時才得到更新。
‘df’命令的更多例子請參閱 12 df Command Examples in Linux.
30. 命令: du
估計檔案的空間佔用。 逐層統計檔案(例如以遞迴方式)並輸出摘要。
注意: ‘df‘ 只顯示檔案系統的使用統計,但‘du‘統計目錄內容。‘du‘命令的更詳細資訊請參閱10 du (Disk Usage) Commands.
31. 命令: rm
'rm' 標準移除命令。 rm 可以用來刪除檔案和目錄。
直接刪除目錄時會報錯:
'rm' 不能直接刪除目錄,需要加上相應的'-rf'引數才可以。
警告: "rm -rf" 命令是一個破壞性的命令,假如你不小心刪除一個錯誤的目錄。一旦你使用'rm -rf' 刪除一個目錄,在目錄中所有的檔案包括目錄本身會被永久的刪除,所以使用這個命令要非常小心。
32. 命令: echo
echo 的功能正如其名,就是基於標準輸出列印一段文字。它和shell無關,shell也不讀取透過echo命令列印出的內容。然而在一種互動式指令碼中,echo透過終端將資訊傳遞給使用者。它是在指令碼語言,互動式指令碼語言中經常用到的命令。
建立一小段互動式指令碼
1. 在桌面上新建一個檔案,命名為 ‘interactive_shell.sh‘ (記住必須帶 ‘.sh‘副檔名)。
2. 複製貼上如下指令碼程式碼,確保和下面的一致。
接下來,設定執行許可權並執行指令碼。
注意: ‘#!/bin/bash‘ 告訴shell這是一個指令碼,並且在指令碼首行寫上這句話是個好習慣。. ‘read‘ 讀取給定的輸出。
33. 命令: passwd
這是一個很重要的命令,在終端中用來改變自己密碼很有用。顯然的,因為安全的原因,你需要知道當前的密碼。
34. 命令: lpr
這個命令用來在命令列上將指定的檔案在指定的印表機上列印。
注意: "lpq"命令讓你檢視印表機的狀態(是開啟狀態還是關閉狀態)和等待列印中的工作(檔案)的狀態。
35. 命令: cmp
比較兩個任意型別的檔案並將結果輸出至標準輸出。如果兩個檔案相同, ‘cmp‘預設返回0;如果不同,將顯示不同的位元組數和第一處不同的位置。
以下面兩個檔案為例:
file1.txt
file2.txt
比較一下這兩個檔案,看看命令的輸出。
36. 命令: wget
Wget是用於非互動式(例如後臺)下載檔案的免費工具.支援HTTP, HTTPS, FTP協議和 HTTP 代理。
使用wget下載ffmpeg
37 命令: mount
mount 是一個很重要的命令,用來掛載不能自動掛載的檔案系統。你需要root許可權掛載裝置。
在插入你的檔案系統後,首先執行"lsblk"命令,識別出你的裝置,然後把分配的裝置名記下來。
從這個輸出上來看,很明顯我插入的是4GB的隨身碟,因而“sdb1”就是要掛載上來的檔案系統。以root使用者操作,然後切換到/dev目錄,它是所有檔案系統掛載的地方。
建立一個任何名字的目錄,但是最好和引用相關。
現在將“sdb1”檔案系統掛載到“usb”目錄.
現在你就可以從終端進入到/dev/usb或者透過X視窗系統從掛載目錄訪問檔案。
是時候讓程式猿見識見識Linux環境是多麼豐富了!
38. 命令: gcc
gcc 是Linux環境下C語言的內建編譯器。下面是一個簡單的C程式,在桌面上儲存為Hello.c (記住必須要有‘.c‘副檔名)。
編譯
執行
注意: 編譯C程式時,輸出會自動儲存到一個名為“a.out”的新檔案,因此每次編譯C程式 “a.out”都會被修改。 因此編譯期間最好定義輸出檔名.,這樣就不會有覆蓋輸出檔案的風險了。
用這種方法編譯
這裡‘-o‘將輸出寫到‘Hello‘檔案而不是 ‘a.out‘。再執行一次。
39. 命令: g++
g++是C++的內建編譯器。下面是一個簡單的C++程式,在桌面上儲存為Add.cpp (記住必須要有‘.cpp‘副檔名)。
編譯並執行
注意:編譯C++程式時,輸出會自動儲存到一個名為“a.out”的新檔案,因此每次編譯C++程式 “a.out”都會被修改。 因此編譯期間最好定義輸出檔名.,這樣就不會有覆蓋輸出檔案的風險了。
用這種方法編譯並執行
40. 命令: java
Java 是世界上使用最廣泛的程式語言之一. 它也被認為是高效, 安全和可靠的程式語言. 現在大多數基於網路的服務都使用Java實現.
複製以下程式碼到一個檔案就可以建立一個簡單的Java程式. 不妨把檔案命名為tecmint.java (記住: '.java'副檔名是必需的).
用javac編譯tecmint.java並執行
注意: 幾乎所有的Linux發行版都帶有gcc編譯器, 大多數發行版都內建了g++ 和 java 編譯器, 有些也可能沒有. 你可以用apt 或 yum 安裝需要的包.
英文原文:20 Advanced Commands for Middle Level Linux Users
via http://www.oschina.net/translate/20-advanced-commands-for-middle-level-linux-users
相關文章
- 在 Linux 下 9 個有用的 touch 命令示例Linux
- linux最常用的20個命令(一)Linux
- 10 篇對初學者和專家都有用的 Linux 命令教程Linux
- Linux運維常用的20個命令彙總!Linux運維
- 非常有用的Linux系統操作命令Linux
- 10個超級有用的Python工具!Python
- 掌握Linux中的12個grep命令Linux
- 使用 userdel 命令刪除 Linux 中的使用者Linux
- linux每日命令(20):find命令概覽Linux
- LINUX初級命令Linux
- Java程式設計師應該知道的20個有用的庫Java程式設計師
- Git中級使用者的25個提示Git
- linux20個常用命令詳解和用法 linux常用命令大全介紹Linux
- 工作中5個實用的Linux命令Linux
- Linux 系統中 sudo 命令的 10 個技巧Linux
- Linux中如何禁止普通使用者使用su命令Linux
- 如何在Linux中如何限制對su命令的訪問Linux
- Linux中建立程式常用的三個命令詳解!Linux
- Linux中11個比較實用的命令列Linux命令列
- 超有用的linux筆記Linux筆記
- 『中級篇』容器的操作(20)
- 20 個有用的 Go 語言微服務開發框架吐血總結!!!Go微服務框架
- 6個有趣的Linux命令Linux
- 快速上手Linux核心命令(十一):Linux使用者相關命令Linux
- 給新手的 20 多個 FFmpeg 命令示例
- Linux 中 17 個 tar 命令實用示例Linux
- Linux命令分享- 新建使用者和組命令Linux
- Linux系統中的使用者的基礎認識及操作命令Linux
- 很有用的 GCC 命令列選項GC命令列
- 有用 AT 命令測試過晶片的嗎?晶片
- Linux命令列中幾個使用history相關的技巧Linux命令列
- linux 中 date命令的用法Linux
- Linux的10個風險命令Linux
- linux每日命令(30):Linux 使用者及使用者組相關檔案、命令詳解Linux
- 20個你(可能)不知道的Git命令Git
- 每天一個linux命令--持續更新中~~Linux
- 『學了就忘』Linux基礎命令 — 20、檔案操作的相關命令Linux
- linux使用者管理基本命令Linux
- 幾個Linux命令及指令碼使用中的奇淫巧技Linux指令碼