歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> SHELL編程 >> 16個桌面Linux用戶必須要知道的Shell命令

16個桌面Linux用戶必須要知道的Shell命令

日期:2017/2/28 15:51:53   编辑:SHELL編程

有些人仍然會有這中愚蠢的想法,他們認為使用Linux就必須使用Linux shell命令。胡說!你可以不懂得任何Linux命令,比如說ps,grep,ls等,但是你仍然可以使用很多現代的Linux桌面發行版。

Linux的系統管理員與桌面用戶不一樣,他們不像桌面用戶一樣使用Cinnamon, GNOME, Unity, 或者 KDE,他們所有的時間都是用Linux命令。

對於桌面用戶來講,若是了解一部分Linux命令,你可以更好的使用Linux,體驗它的魅力,下面列舉出了一些:

Shell 基礎:

你可以通過打開Linux的terminal(終端)來執行Shell命令。Shell的種類有很多種,例如CSH,Bourne Shell,Korn Shell。在現在的大多數Linux發行版中,默認的Shell一般都是Bourne again shell(bash).

想看看你的Shell是哪一種,執行下面的命令

1 echo $SHELL 在Linux中,$符號代表一個shell 變量。所有的shell都用這種方式使用變量。有一些shell變量在你的系統啟動的時候就有了默認值。例如,$SHELL;$LOGNAME是你的登錄名,而$PATH變量指明了你的shell命令的搜索范圍。 echo命令的作用就是打印出你的輸入。如果你的輸入具有shell的特殊意義,例如shell變量,他就輸出變量的值。

一個重要的地方是,你要注意文本的大小寫。例如,ls,是DOS的dir命令的Linux版本。這個命令列出當前工作目錄下的文件列表。如果你輸入的是LS,你得到的只能是“找不到命令”的錯誤信息。 另外在Linux shell命令中一個重要的地方是,你可以將命令串起來。這是Unix/Linux從第一天開始就有的巧妙的特點。最簡單的將命令連起來的辦法就是使用“|”,我們稱之為“pipe”。第一個命令的輸出就是下一個命令的輸入。 Linux命令有自己的語法規則: 基本的語法就像這樣: 1 command -option file 例如: 1 ls -la 這行命令的意義是輸出當前目錄的所有文件的文件名,l代表“long”,a代表“all”,有了l選項,你會發現,輸出的內容比較豐富,不只包括文件名,還有文件的訪問權限,所有者,所屬組等。你會發現這個命令會在屏幕上輸出大量的信息,如果當前目錄的文件比較多的話。 現在就是“pipe”出場的時候了。 1 ls -la | more

你會在屏幕上看到如下信息:

你也可以在大多數Linux命令中使用通配符。通配符就是可以代表文件名中任何未知的字符或字符串。例如,*就代表任意字符串,?代表單個字符。例如: 1 ls -l a* 這個命令會列出在當前工作目錄下所有的以小寫a開頭的文件,比如說abc.txt,alpha.jpg等等。 1 ls a?cd

這條命令會列出所有以小寫a開頭隔一個未知字符以小寫cd結尾的所有文件。例如adcd,axcd,但是不會列出adfdcd,也不會列出axcd.txt。

一些常用的命令

man:如果你想了解每一個命令代表什麼含義以及他的用法,你就可以使用man(意義為manual)命令,例如: 1 man ls man輸出的內容是為系統管理員和開發者編寫的,如果你想了解更多命令的用法,你可以去找網絡上的Linux命令文檔,有一個非常方便的就是丹尼爾·巴雷特的Linux的袖珍指南。 在以前如果你真的想學習Linux和Unix你必須閱讀man手冊。而在2012年的今天,面對如此好用的圖形界面,這句話顯得不是那麼的重要,但是如果你想了解Linux更深,閱讀man手冊仍然是一個好的開始。 su 和sudo: su命令的作用是切換用戶,這也被稱為超級用戶,因為在有些系統中su命令可以使你以系統的所有權限用戶root登錄。除非你是系統管理員,否則我絕不推薦你使用su切換到root,因為這可能給你帶來很多麻煩。 一個相對安全的多的辦法是使用sudo命令,這個命令可以上你以root權限運行一個命令。 這兩個命令都需要系統密碼。在大多數Linux的桌面發行版中這兩個是相同的,就是你系統的第一個用戶設置的密碼。 grep:grep是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行打印出來。 例如: 1 grep foo /etc/passwd 返回在password文件中所有的含有foo的行 1 grep -i "foo" /etc/passwd -i選項是忽略大小寫,這就意味著若某一行含有FOO或FOo也會被搜索到。 grep還支持遞歸搜索: 1 grep -r "foo" /home/sjvn 這條命令將會搜索/home/sjvn目錄及其子目錄下所有的包含“foo”的行 grep也通常與其他命令串連起來使用,例如: 1 ls -la | grep foo* 列出當前目錄下任何以foo開頭的文件或目錄。例如如下文件將被匹配:foo,foobar,foolish.txt等等。 ps:報告進程的狀態。此命令將顯示哪些程序正在運行。我使用PS和grep比其他任何命令使用的都要多。 現在假如你有一個程序運行出了錯誤,你不能再桌面上把他關掉,(我看准你了,火狐),我運行如下命令就能查看他的進程id: 1 ps -ef | grep firefox 這條命令做了如下事情: 1 kill -9 1234 ·第一,他找出所有當前在我的電腦上運行的程序 ·然後grep命令找出這些文件中叫“firefox”的,顯示到屏幕上。 ·每一行都有一個進程id數字。有了,現在我就可以是用... kill:這條命令就想他的名字一樣,他可以干掉指定的進程。干掉運行錯誤的firefox或者其他我想干掉的進程。 1 kill 1234 這將會干掉所有進程id為1234的程序。為了確保這個程序已經被干掉(強行終止),我使用下面的命令
clear: 如果你覺得你的屏幕上有太多的東西,看起來很討厭,可以使用clear命令清空。

文件/目錄命令

cp:cp代表copy,就是復制,他可以復制一個或多個文件到指定的一個或多個目錄下。 一個通常的用法是: 1 cp fred.txt ethel.txt 把fred.txt中的內容復制到當前文件夾中名為ethel.txt中 1 cp fred.txt /home/sjvn/docs/fred.txt 把fred.txt復制到指定文件中。 1 cp *.txt /home/sjvn/docs/ 復制當前目錄下所有以.txt結尾的文件到指定的目錄下。 1 cp -r /home/sjvn/docs/* /home/sjvn/backup 遞歸的復制在/home/sjvn/docs/目錄下的所有文件到指定的文件夾。 hostname: 顯示你當前登錄進去的計算機的名稱。 mv:mv(意義為move)顧名思義就是移動,可以移動指定文件到指定位置。當然這個命令有的時候還可以用來實現重命名。 例如: 1 mv fred.txt ethel.txt 這條命令的作用你可以簡單的認為是重命名fred.txt為ethel.txt。 當然此命令還有其他用法,此處不再一一羅列,用法與cp類似,只是這條命令不再保留原文件。 rm:rm代表remove,是刪除的意思,所以我運行: 1 rm fred.txt 我將刪除fred.txt。 我強烈推薦你在執行rm命令的時候使用-i選項。這兒選項將在你執行命令的時候詢問你是否要真的刪除文件。就像這樣: 1 rm -i fred.txt

系統信息

uname: uname -a命令用一行簡短的給你總結的電腦的基本信息。這通常包括你的電腦名稱,Linux內核版本,你的發行版名稱等。

對於更詳細的信息,你可以使用cat命令,他可以顯示你的Linux電腦中的文本信息。 1 cat /proc/cpuinfo 展示你的CPU的重要的統計。 1 cat /proc/version展示你的當前運行的Linux發行版的詳細信息。 1 cat /etc/printcap 展示你當前安裝的打印機。 1 set | more: set|more組合命令可以給你更多的呢當前的桌面環境變量的信息。單如果你只是想知道你系統環境變量中的某一個或兩個,可以執行如下命令: 1 echo $PATH

結束或者說是另一個開始

這裡給你展示的只不過是Linux命令的表皮。成百上千的書和網站可以給你更多更復雜的如何使用Linux命令的展示。本文只是讓你在想了解比Linux Gui更深一層時的參考。

如果你想學習更多的關於LInux,推薦你去LinuxCommand.org或者看一看Linux in a Nutshell。如果你想變成一個Linux shell編程的大事,推薦你去學習卡梅倫紐漢姆的 Learning the bash Shell 。

Copyright © Linux教程網 All Rights Reserved