簡介
本指南假定您有權訪問Linux計算機上的Shell。所有示例都使用運行Raspbian的Raspberry Pi。如果還沒有,則應該從“ Linux”開始?什么是命令行?什么是命令行?
選擇自己的冒險
這是Adventure,這款游戲幾乎與Unix一樣古老,并且比Linux更舊:
像外殼一樣,冒險的界面完全由文本組成。
您可以通過鍵入命令并讀取響應與游戲世界互動。例如,請輸入ENTER BUILDING或GET LAMP。
瀏覽機器
外殼與游戲世界很像,只是您要導航計算機的文件系統,而不是放置滿是房間和物體的地圖并處理其中包含的文件。
文件系統,操作系統啟動,運行軟件,保存文件,拍照等所需的一切都組織成目錄。我們通常在Windows和Macintosh世界中將這些文件夾稱為“文件夾”,但是概念是相同的。目錄只是一種特殊的文件,可以包含其他文件,包括目錄。
作為用戶,您有一個主目錄。在外殼中,?(代字號)是此的常用縮寫。在這種情況下,它指向/home/pi。
登錄到您的Pi,獲取一個終端,然后驗證一下:
pwd代表 p rint w d 誘惑。 Unix傳統中的命令傾向于使用簡短的,隱秘的名稱。有些容易記住,因為它們代表明顯的東西。
如果您對Pi有所了解,就會發現它包含各種東西。您只需要知道更多命令。以下頁面快速介紹了一些基礎知識。
列出文件:ls
ls用于 l i s t個文件(請注意第一個字母是字母L,而不是數字1!)
讓我們從主目錄嘗試:
注意第二條命令及其輸出?
ls -a顯示 a ll目錄中的文件,包括隱藏的文件。為什么有隱藏文件?因為在Unix世界中,所有目錄都包含兩個特殊的子目錄:
。指向當前目錄-/home/pi與/home/pi/。
。.指向父目錄,保存當前目錄的目錄-/home/pi/。.實際上只是/home/
ls通常會隱藏所有以點開頭的內容,因為這些內容實際上并不會向用戶傳達任何額外的信息。
更復雜的是,傳統上特殊配置文件存儲在~中,并命名為.something,以便默認情況下它們不會顯示在目錄列表中。
要查看有關單個文件的更多詳細信息?
對于 l 列表,-l選項將為您提供幾列有用的數據。對于名為.bashrc的文件,您具有:
下載:文件
復制代碼
-rw-r--r-- 1 pi pi 3243 Sep 8 20:23 .bashrc -rw-r--r-- 1 pi pi 3243 Sep 8 20:23 .bashrc
-rw-r--r--是文件類型和模式或權限。在這種情況下,該文件是普通的舊文件(不是目錄或其他特殊文件),并且:
r eableable和 w 由其所有者riteable
r 由其小組可食用
r 由所有人可食用
該行的其余部分,依次為:
1是文件的硬鏈接數
pi,重復兩次,告訴您文件的所有者和組
3243是文件占用的字節數
Sep 8 20:23是文件的修改時間
您不需要對此事太擔心了-請記住-l為您提供了更多細節。
更改目錄:cd
要在目錄之間移動,請使用cd進行 c hange d 誘惑。
您可以指定cd 相對路徑,如下所示:
請記住,“ 。.”是“該目錄之上的目錄”的快捷方式。/p》
您還可以使用絕對路徑,如下所示:
請記住,/是文件系統的 root ,
Raspbian中的默認圖形文件管理器以其他操作系統可能熟悉的方式顯示根目錄:
在此處雙擊文件夾圖標等效于鍵入cd foldername。在頂部的位置欄中輸入完整路徑,例如“/home/pi”,等同于鍵入cd /home/pi。
花一些時間在根目錄。 (這里有很多東西,而且像命令名稱一樣,乍一看可能很隱晦。不要擔心它似乎有點壓倒一切;您只是得到了鋪墊。)
一些有趣的地方:
/etc充滿了系統范圍的配置文件
/proc和/sys充滿了有關正在運行的程序和內核的信息
/var包含諸如日志文件之類的東西,這些文件是系統在操作過程中寫入的
/dev包含映射到連接到系統的設備(例如驅動器,網絡接口和虛擬終端)的文件
查找內部文件:貓,少,頭和尾
我說過“環顧根目錄”,但是我省略了一些重要的工具。您已經知道用ls列出目錄的內容,但是如果要查看單個文件的內容怎么辦?
在圖形文件管理器中,您可以雙擊一個圖標,然后讓您的桌面環境確定用于打開此類文件的適當應用程序。外殼采用了非常不同的方法。在文件上使用什么命令完全取決于您要完成什么。
cat
cat與貓無關。這是 cat enate的縮寫,它轉儲文本文件的內容。貓會考慮很多事情,但通常不會考慮文本文件。
例如,以下內容包含有關系統處理器的基本信息:
少
有時候,您需要查看一個很長的文件,該文件占用的空間比您已經進入了終端。
less是所謂的尋呼機。它將一次顯示一個文件的一頁,讓您可以隨意在文件中上下滾動。
/usr/share/dict/american-english是一長串已知文件美國英語單詞。 (如果不可用,請嘗試/usr/share/dict/words,它應指向Pi的語言環境的字典。)嘗試在less中打開它。
在less內,有一個 ton 個不同的鍵是可用。基礎知識很容易記住,但是聯機幫助列出了各種高級功能。
空格前進一頁
上下箭頭
j和k滾動一行
/搜索文本
q外殼
h顯示幫助屏幕
head和尾巴
有時,您只想快速查看文件的開頭或結尾。這對于了解超大文件的內容以及查看最新添加的內容(如通常在其后附加新數據的日志)很有用。
如果要查看的行數與默認行數不同,可以指定:
獲得超級能力:sudo
現在,您可能偶然發現了一個文件,似乎對您來說是個禁區。有點奇怪吧?是您的計算機-為什么看不到所有內容?
事實證明您可以。您只需要聲明一些權限,這就是sudo出現的地方。
您經常需要使用sudo來更改系統范圍的配置文件,查看有安全隱患的東西或安裝新軟件。
我們將更詳細地討論每個主題,但現在請記住公式是:
下載:文件
復制代碼
sudo [your command here] sudo [your command here]
如果您是第一次使用sudo,或者幾分鐘后第一次使用它,系統將提示您輸入密碼。
sudo會讓您遇到麻煩
如果您認為訪問對某些文件和操作的限制必須存在是有原因的,您是對的。默認情況下,Raspbian被配置為一個相當開放的系統,與做事相比,做事具有更高的優先級。必須始終將需要使用sudo視為
在任何系統上,始終嘗試確保在運行命令之前先了解命令的作用,或者至少一定要確定信任告訴您運行它的人或網站。
obxcd
本教程的一個很大的副作用是,您現在可以從xkcd.com(Unix書呆子的圣地)獲得“ Unix書呆子笑話漫畫”。笑話評論):
創建目錄和文件:mkdir并觸摸
mkdir
假設您要創建自己的目錄?
我經常在我的主目錄中保留一個名為“ notes”的目錄,包含一些文本文件。
touch
假設我們要添加一個hello.txt到該目錄?
touch不會在文件中 放入任何內容。
touch還有另一件事要知道:如果稍后再在同一文件上運行它……
。..,您將更新時間戳記。這看似微不足道,但卻經常出人意料。
當然,這顯然是一個人為的例子。如果要使用文本文件,則可能需要在其中放置 。這是編輯器出現的地方。
編輯文件:nano
nano是一個小型文本編輯器。您可以將其視為Windows記事本的終端版本。
此界面的優點在于,它可以告訴您確切的操作。屏幕的底部兩行是最常用命令的備忘單。
請記住,^表示“與Ctrl鍵同時按下”。 Ctrl-X將退出,Ctrl-O將保存文件,等等。記住這些并不需要很長時間,但是不必猜測就很好。
“文本編輯器的朋友”
文本編輯器似乎不是最有趣的軟件,但是您很快就會發現,對于文本編輯器來說,它是必不可少的許多您想要在Shell環境中完成的事情。
nano實際上是一種基線編輯器:它可以完成工作,并且很容易新用戶。
大多數現代系統都會默認安裝它。
在諸如Emacs和Vim之類的終端中,可以使用的功能實際上要強大得多,但是這些選擇具有更陡峭的學習曲線,因此,我們暫時在我們的示例中使用nano。
移動,重命名和復制文件:mv和cp
mv
在兩種情況下,您需要mv:一種是文件錯誤的目錄。另一個是文件本身的 name 名稱錯誤。
假設您已確定hello.txt確實不屬于您的notes目錄。
在此示例中,我們說“移動“ hello.txt向上一級目錄”。
我們可以指定。.而不是使用/home/pi。鍵入幾個點會更快。鍵入~的速度甚至更快。
現在,假設您已經確定hello.txt本身被稱為錯誤的事情,而應該改為hello_world.txt。
請記住目錄為只是一種特殊的文件。 mv將用于移動整個目錄,就像移動單個文件一樣。
移動文件可以覆蓋其他文件
始終請確保在移動文件時不會覆蓋重要的內容。為了避免這種情況,需要了解幾個好標記:
mv- i對于 i 交互式-mv在覆蓋任何文件之前會詢問您要做什么。
mv -n 用于“ n o垃圾”。將跳過所有文件的覆蓋。
mv -b 制作一個 b 確認要替換的文件。
cp
要復制文件,請使用cp:
但是,嘗試復制目錄的行為很奇怪:
默認情況下,cp跳過目錄。為什么?好吧,在Stack Exchange上對此進行了很好的討論,但是簡短的答案可能是將所有內容復制到目錄中可能是非常昂貴的操作。 (想象一下,如果一個目錄包含成千上萬個文件。)
要復制目錄,我們需要給cp -r標志以啟用遞歸。這是更廣泛的模式的一部分:為了使許多命令能在充滿文件的整個目錄上運行,必須使用標志來指定遞歸操作,該標志通常為-r或-R。
復制文件可以覆蓋其他文件
與mv一樣,請始終確保不要通過復制來破壞重要內容。 -i,-n和-b標志在這里也起作用。
刪除文件和目錄:rm
警告:這是龍!
如果要徹底 r e m 保存文件,則需要rm。對于單個文件,只需指定文件名:
就像cp一樣,如果要獲取目錄,則需要-r進行 r 遞歸。 i 互動的-i也可以使用,如果我想非常小心自己在做什么,我經常使用它。
您會睜大眼睛!
您應該始終對rm保持謹慎,而對 recursive 則要加倍小心em》 rm。確保您知道自己在哪個目錄中,要刪除的東西所在的位置以及確定要刪除它總是一個好主意。
與圖形文件管理器不同,rm并沒有撤消按鈕或可用來檢索內容的回收站。文件丟失后,您將只能花大力氣才能將其取回(如果有的話)。 輕踩一下!
磁盤空間,內存使用和CPU負載:du,df,空閑和w
du
通常需要弄清楚文件正在使用多少空間,尤其是在像Raspberry Pi這樣的小型設備上,其中存儲空間經常受到限制。這是du(即使您的“磁盤”可能是SD卡,也請考慮 d isk u )的地方。默認情況下,輸出為非常冗長且難以閱讀,因此我通常使用-h表示 h 單位可讀的數字,使用-s表示 s 摘要。
您還可以指定路徑,并且沒有-s它將告訴您它查看的每個文件的大小。
df
有時,通過檢查剩余的空間來解決這個問題更容易
df( d isk f ree)提供了快速摘要,按設備和設備所在位置細分附加到:
免費
A RAM比Raspberry Pi上的存儲更受限制。 free提供了有關計算機內存狀態的有用的快速摘要:
同樣,-h會為您提供 h 單位可讀的數字。這是如何讀取這些數字的很好的細分。
w
了解最近登錄的 w 用戶,系統的正常運行時間和CPU負載平均值也很有用5、15分鐘。這就是w提供的信息:
您也可以通過運行uptime來獲得第一位。
什么是平均負載?
這是一個棘手的問題。您需要知道的第一件事是,數字越大意味著負載越大。第二件事是,您擁有多少處理器很重要-從精神上將看到的數字除以處理器的數量,這就是您應該擔心的數字。
您應該擔心的數字是多少?這得看情況。這是一個很好的詳細說明。
進一步閱讀
外殼是整個文化的組成部分,具有自己的歷史和文學作品。沒有比任何一種正確的方法來了解人類文化更正確的方法了。以下是一些可能對您有所幫助的建議。
也許不足為奇的是,Wikipedia擁有許多有關命令行實用程序的良好信息。您可以在他們的Unix入門附近的任何地方開始獲利。例如,此Unix命令列表。
有一個Unix和Linux堆棧交換。
我之前提到 Unix編程環境,作者Brian Kernighan和Rob Pike。這是一本難得的技術書,值得您在首次發行后30多年的時間使用。
我的Elem Siever等人撰寫的 Linux in a Nutshell 版本已經十年了。或更多,但我仍然會不時翻閱它并學習一些新知識。
最后,我在 userland:一本關于人類命令行的書。如果本指南不能解決問題,那么 userland 關于該主題的更多文學知識和詳細知識可能值得一試。 (不利的一面是,動畫GIF數量不多。)
目前僅此而已,請繼續關注-從這里開始,我們將繼續解決高級Shell用法:
Shell Magic的插圖指南:標準I/O和重定向,其中涵蓋了管道,重定向和標準IO之類的功能,這些功能使我們可以將小命令拼接在一起-真正的shell的強大功能。
別名,通配符,循環以及其他用于減少鍵入次數和完成更多操作的技術。
編寫腳本來解決較大的問題。
系統管理任務,例如通過apt和其他程序包管理器升級和安裝軟件。
進行數據處理很有趣和利潤。
責任編輯:wv
-
Linux
+關注
關注
87文章
11508瀏覽量
213610
發布評論請先 登錄
樹莓派新手必看!在樹莓派上編寫和運行 Shell 腳本!

評論