簡(jiǎn)介
本指南假定您有權(quán)訪問Linux計(jì)算機(jī)上的Shell。所有示例都使用運(yùn)行Raspbian的Raspberry Pi。如果還沒有,則應(yīng)該從“ Linux”開始?什么是命令行?什么是命令行?
選擇自己的冒險(xiǎn)
這是Adventure,這款游戲幾乎與Unix一樣古老,并且比Linux更舊:
像外殼一樣,冒險(xiǎn)的界面完全由文本組成。
您可以通過鍵入命令并讀取響應(yīng)與游戲世界互動(dòng)。例如,請(qǐng)輸入ENTER BUILDING或GET LAMP。
瀏覽機(jī)器
外殼與游戲世界很像,只是您要導(dǎo)航計(jì)算機(jī)的文件系統(tǒng),而不是放置滿是房間和物體的地圖并處理其中包含的文件。
文件系統(tǒng),操作系統(tǒng)啟動(dòng),運(yùn)行軟件,保存文件,拍照等所需的一切都組織成目錄。我們通常在Windows和Macintosh世界中將這些文件夾稱為“文件夾”,但是概念是相同的。目錄只是一種特殊的文件,可以包含其他文件,包括目錄。

作為用戶,您有一個(gè)主目錄。在外殼中,?(代字號(hào))是此的常用縮寫。在這種情況下,它指向/home/pi。
登錄到您的Pi,獲取一個(gè)終端,然后驗(yàn)證一下:
pwd代表 p rint w d 誘惑。 Unix傳統(tǒng)中的命令傾向于使用簡(jiǎn)短的,隱秘的名稱。有些容易記住,因?yàn)樗鼈兇砻黠@的東西。
如果您對(duì)Pi有所了解,就會(huì)發(fā)現(xiàn)它包含各種東西。您只需要知道更多命令。以下頁(yè)面快速介紹了一些基礎(chǔ)知識(shí)。
列出文件:ls
ls用于 l i s t個(gè)文件(請(qǐng)注意第一個(gè)字母是字母L,而不是數(shù)字1?。?/p>
讓我們從主目錄嘗試:
注意第二條命令及其輸出?
ls -a顯示 a ll目錄中的文件,包括隱藏的文件。為什么有隱藏文件?因?yàn)樵赨nix世界中,所有目錄都包含兩個(gè)特殊的子目錄:
。指向當(dāng)前目錄-/home/pi與/home/pi/。
。.指向父目錄,保存當(dāng)前目錄的目錄-/home/pi/。.實(shí)際上只是/home/
ls通常會(huì)隱藏所有以點(diǎn)開頭的內(nèi)容,因?yàn)檫@些內(nèi)容實(shí)際上并不會(huì)向用戶傳達(dá)任何額外的信息。
更復(fù)雜的是,傳統(tǒng)上特殊配置文件存儲(chǔ)在~中,并命名為.something,以便默認(rèn)情況下它們不會(huì)顯示在目錄列表中。
要查看有關(guān)單個(gè)文件的更多詳細(xì)信息?
對(duì)于 l 列表,-l選項(xiàng)將為您提供幾列有用的數(shù)據(jù)。對(duì)于名為.bashrc的文件,您具有:
下載:文件
復(fù)制代碼
-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--是文件類型和模式或權(quán)限。在這種情況下,該文件是普通的舊文件(不是目錄或其他特殊文件),并且:
r eableable和 w 由其所有者riteable
r 由其小組可食用
r 由所有人可食用
該行的其余部分,依次為:
1是文件的硬鏈接數(shù)
pi,重復(fù)兩次,告訴您文件的所有者和組
3243是文件占用的字節(jié)數(shù)
Sep 8 20:23是文件的修改時(shí)間
您不需要對(duì)此事太擔(dān)心了-請(qǐng)記住-l為您提供了更多細(xì)節(jié)。
更改目錄:cd
要在目錄之間移動(dòng),請(qǐng)使用cd進(jìn)行 c hange d 誘惑。
您可以指定cd 相對(duì)路徑,如下所示:
請(qǐng)記住,“ 。.”是“該目錄之上的目錄”的快捷方式。/p》
您還可以使用絕對(duì)路徑,如下所示:
請(qǐng)記住,/是文件系統(tǒng)的 root ,
Raspbian中的默認(rèn)圖形文件管理器以其他操作系統(tǒng)可能熟悉的方式顯示根目錄:

在此處雙擊文件夾圖標(biāo)等效于鍵入cd foldername。在頂部的位置欄中輸入完整路徑,例如“/home/pi”,等同于鍵入cd /home/pi。
花一些時(shí)間在根目錄。 (這里有很多東西,而且像命令名稱一樣,乍一看可能很隱晦。不要擔(dān)心它似乎有點(diǎn)壓倒一切;您只是得到了鋪墊。)
一些有趣的地方:
/etc充滿了系統(tǒng)范圍的配置文件
/proc和/sys充滿了有關(guān)正在運(yùn)行的程序和內(nèi)核的信息
/var包含諸如日志文件之類的東西,這些文件是系統(tǒng)在操作過程中寫入的
/dev包含映射到連接到系統(tǒng)的設(shè)備(例如驅(qū)動(dòng)器,網(wǎng)絡(luò)接口和虛擬終端)的文件
查找內(nèi)部文件:貓,少,頭和尾
我說過“環(huán)顧根目錄”,但是我省略了一些重要的工具。您已經(jīng)知道用ls列出目錄的內(nèi)容,但是如果要查看單個(gè)文件的內(nèi)容怎么辦?
在圖形文件管理器中,您可以雙擊一個(gè)圖標(biāo),然后讓您的桌面環(huán)境確定用于打開此類文件的適當(dāng)應(yīng)用程序。外殼采用了非常不同的方法。在文件上使用什么命令完全取決于您要完成什么。
cat
cat與貓無關(guān)。這是 cat enate的縮寫,它轉(zhuǎn)儲(chǔ)文本文件的內(nèi)容。貓會(huì)考慮很多事情,但通常不會(huì)考慮文本文件。
例如,以下內(nèi)容包含有關(guān)系統(tǒng)處理器的基本信息:
少
有時(shí)候,您需要查看一個(gè)很長(zhǎng)的文件,該文件占用的空間比您已經(jīng)進(jìn)入了終端。
less是所謂的尋呼機(jī)。它將一次顯示一個(gè)文件的一頁(yè),讓您可以隨意在文件中上下滾動(dòng)。
/usr/share/dict/american-english是一長(zhǎng)串已知文件美國(guó)英語(yǔ)單詞。 (如果不可用,請(qǐng)嘗試/usr/share/dict/words,它應(yīng)指向Pi的語(yǔ)言環(huán)境的字典。)嘗試在less中打開它。
在less內(nèi),有一個(gè) ton 個(gè)不同的鍵是可用?;A(chǔ)知識(shí)很容易記住,但是聯(lián)機(jī)幫助列出了各種高級(jí)功能。
空格前進(jìn)一頁(yè)
上下箭頭
j和k滾動(dòng)一行
/搜索文本
q外殼
h顯示幫助屏幕
head和尾巴
有時(shí),您只想快速查看文件的開頭或結(jié)尾。這對(duì)于了解超大文件的內(nèi)容以及查看最新添加的內(nèi)容(如通常在其后附加新數(shù)據(jù)的日志)很有用。
如果要查看的行數(shù)與默認(rèn)行數(shù)不同,可以指定:
獲得超級(jí)能力:sudo
現(xiàn)在,您可能偶然發(fā)現(xiàn)了一個(gè)文件,似乎對(duì)您來說是個(gè)禁區(qū)。有點(diǎn)奇怪吧?是您的計(jì)算機(jī)-為什么看不到所有內(nèi)容?
事實(shí)證明您可以。您只需要聲明一些權(quán)限,這就是sudo出現(xiàn)的地方。
您經(jīng)常需要使用sudo來更改系統(tǒng)范圍的配置文件,查看有安全隱患的東西或安裝新軟件。
我們將更詳細(xì)地討論每個(gè)主題,但現(xiàn)在請(qǐng)記住公式是:
下載:文件
復(fù)制代碼
sudo [your command here] sudo [your command here]
如果您是第一次使用sudo,或者幾分鐘后第一次使用它,系統(tǒng)將提示您輸入密碼。
sudo會(huì)讓您遇到麻煩
如果您認(rèn)為訪問對(duì)某些文件和操作的限制必須存在是有原因的,您是對(duì)的。默認(rèn)情況下,Raspbian被配置為一個(gè)相當(dāng)開放的系統(tǒng),與做事相比,做事具有更高的優(yōu)先級(jí)。必須始終將需要使用sudo視為
在任何系統(tǒng)上,始終嘗試確保在運(yùn)行命令之前先了解命令的作用,或者至少一定要確定信任告訴您運(yùn)行它的人或網(wǎng)站。
obxcd
本教程的一個(gè)很大的副作用是,您現(xiàn)在可以從xkcd.com(Unix書呆子的圣地)獲得“ Unix書呆子笑話漫畫”。笑話評(píng)論):
創(chuàng)建目錄和文件:mkdir并觸摸
mkdir
假設(shè)您要?jiǎng)?chuàng)建自己的目錄?
我經(jīng)常在我的主目錄中保留一個(gè)名為“ notes”的目錄,包含一些文本文件。
touch
假設(shè)我們要添加一個(gè)hello.txt到該目錄?
touch不會(huì)在文件中 放入任何內(nèi)容。
touch還有另一件事要知道:如果稍后再在同一文件上運(yùn)行它……
。..,您將更新時(shí)間戳記。這看似微不足道,但卻經(jīng)常出人意料。
當(dāng)然,這顯然是一個(gè)人為的例子。如果要使用文本文件,則可能需要在其中放置 。這是編輯器出現(xiàn)的地方。
編輯文件:nano
nano是一個(gè)小型文本編輯器。您可以將其視為Windows記事本的終端版本。

此界面的優(yōu)點(diǎn)在于,它可以告訴您確切的操作。屏幕的底部?jī)尚惺亲畛S妹畹膫渫鼏巍?/p>
請(qǐng)記住,^表示“與Ctrl鍵同時(shí)按下”。 Ctrl-X將退出,Ctrl-O將保存文件,等等。記住這些并不需要很長(zhǎng)時(shí)間,但是不必猜測(cè)就很好。
“文本編輯器的朋友”
文本編輯器似乎不是最有趣的軟件,但是您很快就會(huì)發(fā)現(xiàn),對(duì)于文本編輯器來說,它是必不可少的許多您想要在Shell環(huán)境中完成的事情。
nano實(shí)際上是一種基線編輯器:它可以完成工作,并且很容易新用戶。
大多數(shù)現(xiàn)代系統(tǒng)都會(huì)默認(rèn)安裝它。
在諸如Emacs和Vim之類的終端中,可以使用的功能實(shí)際上要強(qiáng)大得多,但是這些選擇具有更陡峭的學(xué)習(xí)曲線,因此,我們暫時(shí)在我們的示例中使用nano。
移動(dòng),重命名和復(fù)制文件:mv和cp
mv
在兩種情況下,您需要mv:一種是文件錯(cuò)誤的目錄。另一個(gè)是文件本身的 name 名稱錯(cuò)誤。
假設(shè)您已確定hello.txt確實(shí)不屬于您的notes目錄。
在此示例中,我們說“移動(dòng)“ hello.txt向上一級(jí)目錄”。
我們可以指定。.而不是使用/home/pi。鍵入幾個(gè)點(diǎn)會(huì)更快。鍵入~的速度甚至更快。
現(xiàn)在,假設(shè)您已經(jīng)確定hello.txt本身被稱為錯(cuò)誤的事情,而應(yīng)該改為hello_world.txt。
請(qǐng)記住目錄為只是一種特殊的文件。 mv將用于移動(dòng)整個(gè)目錄,就像移動(dòng)單個(gè)文件一樣。
移動(dòng)文件可以覆蓋其他文件
始終請(qǐng)確保在移動(dòng)文件時(shí)不會(huì)覆蓋重要的內(nèi)容。為了避免這種情況,需要了解幾個(gè)好標(biāo)記:
mv- i對(duì)于 i 交互式-mv在覆蓋任何文件之前會(huì)詢問您要做什么。
mv -n 用于“ n o垃圾”。將跳過所有文件的覆蓋。
mv -b 制作一個(gè) b 確認(rèn)要替換的文件。
cp
要復(fù)制文件,請(qǐng)使用cp:

但是,嘗試復(fù)制目錄的行為很奇怪:

默認(rèn)情況下,cp跳過目錄。為什么?好吧,在Stack Exchange上對(duì)此進(jìn)行了很好的討論,但是簡(jiǎn)短的答案可能是將所有內(nèi)容復(fù)制到目錄中可能是非常昂貴的操作。 (想象一下,如果一個(gè)目錄包含成千上萬個(gè)文件。)
要復(fù)制目錄,我們需要給cp -r標(biāo)志以啟用遞歸。這是更廣泛的模式的一部分:為了使許多命令能在充滿文件的整個(gè)目錄上運(yùn)行,必須使用標(biāo)志來指定遞歸操作,該標(biāo)志通常為-r或-R。
復(fù)制文件可以覆蓋其他文件
與mv一樣,請(qǐng)始終確保不要通過復(fù)制來破壞重要內(nèi)容。 -i,-n和-b標(biāo)志在這里也起作用。
刪除文件和目錄:rm
警告:這是龍!
如果要徹底 r e m 保存文件,則需要rm。對(duì)于單個(gè)文件,只需指定文件名:
就像cp一樣,如果要獲取目錄,則需要-r進(jìn)行 r 遞歸。 i 互動(dòng)的-i也可以使用,如果我想非常小心自己在做什么,我經(jīng)常使用它。
您會(huì)睜大眼睛!
您應(yīng)該始終對(duì)rm保持謹(jǐn)慎,而對(duì) recursive 則要加倍小心em》 rm。確保您知道自己在哪個(gè)目錄中,要?jiǎng)h除的東西所在的位置以及確定要?jiǎng)h除它總是一個(gè)好主意。
與圖形文件管理器不同,rm并沒有撤消按鈕或可用來檢索內(nèi)容的回收站。文件丟失后,您將只能花大力氣才能將其取回(如果有的話)。 輕踩一下!
磁盤空間,內(nèi)存使用和CPU負(fù)載:du,df,空閑和w
du
通常需要弄清楚文件正在使用多少空間,尤其是在像Raspberry Pi這樣的小型設(shè)備上,其中存儲(chǔ)空間經(jīng)常受到限制。這是du(即使您的“磁盤”可能是SD卡,也請(qǐng)考慮 d isk u )的地方。默認(rèn)情況下,輸出為非常冗長(zhǎng)且難以閱讀,因此我通常使用-h表示 h 單位可讀的數(shù)字,使用-s表示 s 摘要。
您還可以指定路徑,并且沒有-s它將告訴您它查看的每個(gè)文件的大小。
df
有時(shí),通過檢查剩余的空間來解決這個(gè)問題更容易
df( d isk f ree)提供了快速摘要,按設(shè)備和設(shè)備所在位置細(xì)分附加到:
免費(fèi)
A RAM比Raspberry Pi上的存儲(chǔ)更受限制。 free提供了有關(guān)計(jì)算機(jī)內(nèi)存狀態(tài)的有用的快速摘要:
同樣,-h會(huì)為您提供 h 單位可讀的數(shù)字。這是如何讀取這些數(shù)字的很好的細(xì)分。
w
了解最近登錄的 w 用戶,系統(tǒng)的正常運(yùn)行時(shí)間和CPU負(fù)載平均值也很有用5、15分鐘。這就是w提供的信息:
您也可以通過運(yùn)行uptime來獲得第一位。
什么是平均負(fù)載?
這是一個(gè)棘手的問題。您需要知道的第一件事是,數(shù)字越大意味著負(fù)載越大。第二件事是,您擁有多少處理器很重要-從精神上將看到的數(shù)字除以處理器的數(shù)量,這就是您應(yīng)該擔(dān)心的數(shù)字。
您應(yīng)該擔(dān)心的數(shù)字是多少?這得看情況。這是一個(gè)很好的詳細(xì)說明。
進(jìn)一步閱讀
外殼是整個(gè)文化的組成部分,具有自己的歷史和文學(xué)作品。沒有比任何一種正確的方法來了解人類文化更正確的方法了。以下是一些可能對(duì)您有所幫助的建議。
也許不足為奇的是,Wikipedia擁有許多有關(guān)命令行實(shí)用程序的良好信息。您可以在他們的Unix入門附近的任何地方開始獲利。例如,此Unix命令列表。
有一個(gè)Unix和Linux堆棧交換。
我之前提到 Unix編程環(huán)境,作者Brian Kernighan和Rob Pike。這是一本難得的技術(shù)書,值得您在首次發(fā)行后30多年的時(shí)間使用。
我的Elem Siever等人撰寫的 Linux in a Nutshell 版本已經(jīng)十年了?;蚋?,但我仍然會(huì)不時(shí)翻閱它并學(xué)習(xí)一些新知識(shí)。
最后,我在 userland:一本關(guān)于人類命令行的書。如果本指南不能解決問題,那么 userland 關(guān)于該主題的更多文學(xué)知識(shí)和詳細(xì)知識(shí)可能值得一試。 (不利的一面是,動(dòng)畫GIF數(shù)量不多。)
目前僅此而已,請(qǐng)繼續(xù)關(guān)注-從這里開始,我們將繼續(xù)解決高級(jí)Shell用法:
Shell Magic的插圖指南:標(biāo)準(zhǔn)I/O和重定向,其中涵蓋了管道,重定向和標(biāo)準(zhǔn)IO之類的功能,這些功能使我們可以將小命令拼接在一起-真正的shell的強(qiáng)大功能。
別名,通配符,循環(huán)以及其他用于減少鍵入次數(shù)和完成更多操作的技術(shù)。
編寫腳本來解決較大的問題。
系統(tǒng)管理任務(wù),例如通過apt和其他程序包管理器升級(jí)和安裝軟件。
進(jìn)行數(shù)據(jù)處理很有趣和利潤(rùn)。
責(zé)任編輯:wv
-
Linux
+關(guān)注
關(guān)注
88文章
11831瀏覽量
219670
發(fā)布評(píng)論請(qǐng)先 登錄
Linux Shell文本處理神器合集:15個(gè)工具+實(shí)戰(zhàn)例子,效率直接翻倍
Shell歷史命令history用法
【瑞薩RA6E2】1.使用串口shell點(diǎn)亮LED燈
飛凌嵌入式ElfBoard-Linux系統(tǒng)基礎(chǔ)入門-其它shell命令
飛凌嵌入式ElfBoard-Linux系統(tǒng)基礎(chǔ)入門-網(wǎng)絡(luò)相關(guān)shell命令
飛凌嵌入式ElfBoard-Linux系統(tǒng)基礎(chǔ)入門-文件操作相關(guān)shell命令
飛凌嵌入式ElfBoard ELF 1板卡-Linux系統(tǒng)基礎(chǔ)入門-目錄相關(guān)shell命令
shell基本介紹及常用命令之shell基本介紹
【RA4E2開發(fā)板評(píng)測(cè)】移植micro_shell實(shí)現(xiàn)LED燈的在線控制
Linux基礎(chǔ)命令which詳解
【RA-Eco-RA6M4開發(fā)板評(píng)測(cè)】基于SHELL進(jìn)行DAC測(cè)試
【RA-Eco-RA6M4開發(fā)板評(píng)測(cè)】移植shell實(shí)現(xiàn)命令交互
【微五科技CF5010RBT60開發(fā)板試用體驗(yàn)】基于FIFO的串口驅(qū)動(dòng)移植xprintf實(shí)現(xiàn)標(biāo)準(zhǔn)輸入輸出與shell實(shí)現(xiàn)
如何使用Traceroute命令
Shell腳本入門指南
Shell命令入門
評(píng)論