初次使用樹(shù)莓派并不總是那么容易,因?yàn)槟憧赡苓€沒(méi)有使用命令行的習(xí)慣。然而,終端命令是必不可少的,而且通常比通過(guò)圖形用戶界面(GUI)操作更高效。那么,有哪些重要的命令是你應(yīng)該知道的呢?
有相當(dāng)多的命令,下面我們將按類別介紹57個(gè)最常用的命令:
目錄
文件管理
網(wǎng)絡(luò)命令
系統(tǒng)更新
包管理
系統(tǒng)管理
樹(shù)莓派操作系統(tǒng)命令
雜項(xiàng)命令
高級(jí)命令
這份列表是基于我與樹(shù)莓派和Linux打交道的一般經(jīng)驗(yàn)整理的。我們使用系統(tǒng)的方式各不相同,你可能會(huì)用到一些這里沒(méi)有列出的命令。然而,本文的目標(biāo)不是列出所有命令,而是向你介紹一些重要的命令。讓我們開(kāi)始吧。
文件管理
這些是每個(gè)Linux初學(xué)者都應(yīng)該學(xué)習(xí)的基本命令。
你可能已經(jīng)知道這些命令,所以這部分內(nèi)容可以作為復(fù)習(xí)。
Linux文件組織結(jié)構(gòu)是一棵樹(shù),從根目錄開(kāi)始:/
在根目錄下創(chuàng)建的每個(gè)子文件夾都可以通過(guò)/來(lái)訪問(wèn)。
例如:/var/log ? log是/var的子文件夾,var是/的子文件夾。
如果你沒(méi)有權(quán)限訪問(wèn)某個(gè)文件或目錄,別忘了使用sudo(sudo可以讓你對(duì)接下來(lái)的命令擁有管理員權(quán)限)。
cd :更改目錄,進(jìn)入文件樹(shù)中的指定文件夾。
cd/home/pat
ls:列出當(dāng)前或指定文件夾中的文件和目錄。
ls/home/patls-latr /home/pat

mkdir :在當(dāng)前或指定文件夾中創(chuàng)建一個(gè)新的子文件夾。
mkdirmyfoldermkdir/home/pat/myfolder
cp :將文件或目錄復(fù)制到另一個(gè)位置(要復(fù)制整個(gè)目錄,需要添加“-r”參數(shù)以實(shí)現(xiàn)遞歸復(fù)制)。
cp test.txt/home/pat/Documents/cp/home/pat/test.txt /home/pat/Documents/cp-r/home/pat/test//home/pat/Documents/
- mv :將文件或目錄移動(dòng)到另一個(gè)位置。
mv/home/pat/test.txt /home/Documents/mv/home/pat/test/ /home/Documents/
cat :顯示指定文件的全部?jī)?nèi)容。
cat/home/pat/README.txt
more :逐頁(yè)顯示指定文件的內(nèi)容(按回車或空格繼續(xù),按q退出)。
more /var/log/syslog
- tail :tail命令允許你顯示文件的末尾部分,這對(duì)于查看日志文件中的新條目非常有用。
tail/var/log/syslog
你可以使用-n指定要顯示的行數(shù)。
tail-n20 /var/log/syslog
最后,我最喜歡的是使用-f選項(xiàng)實(shí)時(shí)顯示新行。
tail-f /var/log/syslog
- head :與tail相同,但用于顯示文件的開(kāi)頭部分。
head/home/pat/file.txthead-n20 /home/pat/file.txt
grep :Grep是一個(gè)強(qiáng)大的文本搜索工具。你可以使用它來(lái)搜索文件中的內(nèi)容,或者過(guò)濾另一個(gè)命令或腳本的輸出。
基本用法:
grepdhcp /var/log/syslog
如我所說(shuō),你可以在文件或腳本輸出上使用它:
cat/var/log/syslog | grep dhcp/home/pat/myscript.sh | grep errorls-latr | grep php
最后,grep有很多選項(xiàng)可以使用,比如正則表達(dá)式或者在搜索字符串之前(-B)、之后(-A)或周圍(-C)顯示行的選項(xiàng)。
你還可以使用-v來(lái)顯示除了輸入字符串之外的所有內(nèi)容。
grep'dhcp|dns'/var/log/sysloggrep-A2 -B4'Fatal error'/var/log/apache/error.loggrep-v'Notice'/var/log/apache/error.log
如果你喜歡這個(gè)工具,我建議你閱讀man頁(yè)面以了解你可以用它做什么。
mangrep
你也可以閱讀我在這里寫的關(guān)于grep的專門文章。
nano:Nano是一個(gè)文本編輯器。要詳細(xì)介紹它需要一整篇文章(我已經(jīng)寫過(guò)了,點(diǎn)擊這里閱讀更多內(nèi)容)。
它允許你編輯文件,并使用(CTRL + O,回車,CTRL + X)保存更改。
nano /home/pat/myscript.sh
你可以在屏幕底部找到所有可用操作。
rm:刪除文件。對(duì)于文件夾,添加選項(xiàng)-rf(遞歸和強(qiáng)制)
rmmonscript.shrm-rf /home/pat/scripts/
如果你在使用這個(gè)命令時(shí)使用了sudo,請(qǐng)格外小心。在系統(tǒng)文件夾上使用它會(huì)在沒(méi)有任何警告信息的情況下刪除所有內(nèi)容,并且可能在幾秒鐘內(nèi)破壞你的系統(tǒng)。
tar -c:你可以使用tar將文件存儲(chǔ)到歸檔文件中。它通常與gzip一起使用以壓縮文件。
tar -cvfz archive.tar.gz /home/pat/Documents/mydirectory
-c:創(chuàng)建歸檔文件
-v:詳細(xì)輸出
-f:后面是歸檔文件的文件名
-z:使用gzip壓縮文件
查看我在這里寫的關(guān)于tar的完整文章。
https://raspberrytips.com/tar-linux-command/
tar -x:相同的命令,但用于解壓文件。
tar-xvfz archive.tar.gz
-x:解壓歸檔文件
find:顧名思義,find對(duì)于在樹(shù)莓派上定位文件非常有用。
find/home/pat -iname*.tar.gz
有很多選項(xiàng)可以幫助你找到正確的文件(大小、最后修改日期等)。
pwd:Pwd讓你知道你當(dāng)前所在的目錄。
pwd
tree:另一個(gè)分析你在文件樹(shù)中當(dāng)前位置的好工具。它會(huì)顯示整個(gè)下級(jí)樹(shù)(見(jiàn)下面的示例)。
tree
pat@rpitips:/var/log $ tree . |-- alternatives.log |-- alternatives.log.1 |-- alternatives.log.2.gz |-- apt ||-- eipp.log.xz ||-- history.log ||-- history.log.1.gz ||-- history.log.2.gz ||-- term.log ||-- term.log.1.gz |`-- term.log.2.gz
網(wǎng)絡(luò)命令
在首次安裝樹(shù)莓派操作系統(tǒng)后不久,你將需要一些命令來(lái)幫助你配置網(wǎng)絡(luò)(特別是如果你使用的是精簡(jiǎn)版或通過(guò)SSH連接)。
網(wǎng)絡(luò)配置
默認(rèn)情況下,樹(shù)莓派3B+有兩個(gè)接口(以太網(wǎng)和Wi-Fi)。以太網(wǎng)被分配為eth0,Wi-Fi被分配為wlan0。在下面的某些命令中,你需要使用這些名稱。
ip address:顯示你當(dāng)前的網(wǎng)絡(luò)配置,主要是你的IP地址(如果已連接)。
ipa

這是查找樹(shù)莓派地址的最簡(jiǎn)單方法,但當(dāng)你無(wú)法訪問(wèn)它時(shí),還有其他解決方案(正如我在這篇文章中解釋的那樣)。
https://raspberrytips.com/find-current-ip-raspberry-pi/
ping :向網(wǎng)絡(luò)上的另一個(gè)IP發(fā)送ping數(shù)據(jù)包,以檢查主機(jī)是否在線。
ping192.168.1.1
ip link set
sudo iplinkseteth0 up
ip link set
sudo iplinksetwlan0 down
順便說(shuō)一下,如果你不使用Wi-Fi接口,禁用它是個(gè)好主意。你可以在這篇文章中找到更多永久解決方案,但這個(gè)命令是一種快速的方法。
文件傳輸和遠(yuǎn)程連接
wget :這個(gè)命令允許你從互聯(lián)網(wǎng)下載文件。
wgethttps://wordpress.org/latest.zip
ssh @:SSH是一種網(wǎng)絡(luò)協(xié)議,為你提供了一種安全連接到遠(yuǎn)程計(jì)算機(jī)的方式。
sshroot@192.168.1.201
SSH對(duì)于遠(yuǎn)程控制樹(shù)莓派(或任何Linux計(jì)算機(jī))非常有用,閱讀這篇文章以了解關(guān)于它的所有信息:
scp @::scp可以通過(guò)SSH將文件傳輸?shù)竭h(yuǎn)程計(jì)算機(jī)。
scp test.txt root@192.168.1.201:/root/
rsync @::rsync幾乎做同樣的事情,但使用了增量比較算法和一些優(yōu)化,以更快地傳輸文件。
rsync test.txt root@192.168.1.201:/root/rsync -auzr /home/pat/Documents/*/home/pat/backups/Documents/
如你所見(jiàn),你也可以使用rsync進(jìn)行本地文件同步。
我通常使用這個(gè)命令來(lái)備份我的樹(shù)莓派(正如這里所解釋的)。我將所有這些重要文件發(fā)送到我的本地NAS(我正在使用這個(gè)設(shè)備)。這只需要幾秒鐘,之后我就知道我是安全的了。
系統(tǒng)更新
配置好網(wǎng)絡(luò)后,你將需要更新系統(tǒng)以獲取每個(gè)默認(rèn)安裝包的最新版本。
在樹(shù)莓派操作系統(tǒng)上,以及通常在所有Linux發(fā)行版上,你安裝的每個(gè)應(yīng)用或命令都有一個(gè)包。所有可用包的列表被稱為倉(cāng)庫(kù)。安裝后,你需要定期更新這個(gè)倉(cāng)庫(kù)和所有包以保持系統(tǒng)安全。
https://raspberrytips.com/security-tips-raspberry-pi/
這些命令解釋了如何做到這一點(diǎn)。我們將需要sudo來(lái)執(zhí)行所有這些命令:
apt update:為你在配置中擁有的每個(gè)倉(cāng)庫(kù)下載最新版本(/etc/apt/sources.list)。
sudoapt update

apt upgrade:如果需要,更新所有已安裝的包。
sudoapt upgrade
rpi-update:僅在你知道你在做什么時(shí)使用。
這個(gè)命令將更新你樹(shù)莓派上的一切(固件、包等),并可能破壞某些東西。
rpi-update
包管理
之后,你可能想在樹(shù)莓派上安裝新的包。
https://raspberrytips.com/install-apps-raspberry-pi/
以下是你需要知道的命令:
apt install :安裝指定的包。
sudoapt install phpmyadminsudo apt install vim htop
apt remove :刪除先前選擇的包。
sudo aptremovevim
apt search
- : 在包列表(倉(cāng)庫(kù))中搜索包名。
sudo aptsearchmyadminsudo aptsearchphp

dpkg -l:列出系統(tǒng)上所有已安裝的包。你可以使用grep來(lái)查找特定的包。
dpkg-ldpkg -l | grep myadmin
系統(tǒng)管理
以下是你經(jīng)常用來(lái)管理樹(shù)莓派系統(tǒng)的命令:
reboot:顧名思義,這個(gè)命令將立即重啟樹(shù)莓派。
sudoreboot
shutdown -h now:這是立即停止樹(shù)莓派的命令。
sudoshutdown -h now
你可以用具體時(shí)間替換“now”(shutdown -h 12:05)。不要使用電源開(kāi)關(guān)來(lái)停止你的樹(shù)莓派,你應(yīng)該使用這個(gè)命令或這里和那里解釋的其他方法之一來(lái)正確操作。
service :這個(gè)命令允許你啟動(dòng)或停止服務(wù)。
serviceapache2 startservice apache2 stop
有時(shí)根據(jù)服務(wù)不同還有其他選項(xiàng),例如:
serviceapache2 reloadservice apache2 restart
不要輸入任何操作來(lái)查看所有可用操作:
serviceapache2
作為參考,你也可以使用systemctl來(lái)達(dá)到同樣的目的,在樹(shù)莓派操作系統(tǒng)上你可以選擇,但在某些系統(tǒng)上只有systemctl。
update-rc.d :在Debian上,這個(gè)命令允許你管理系統(tǒng)啟動(dòng)或停止服務(wù)。
要啟動(dòng)服務(wù):
sudo update-rc.d sshenable
要禁用服務(wù)啟動(dòng):
sudoupdate-rc.d-fssh remove
-f選項(xiàng)用于強(qiáng)制刪除符號(hào)鏈接。這個(gè)命令僅適用于服務(wù)。要在啟動(dòng)時(shí)啟動(dòng)其他腳本或命令,你必須編輯/etc/rc.local文件。
sudo nano /etc/rc.local
ps:這個(gè)命令顯示樹(shù)莓派上所有正在運(yùn)行的進(jìn)程。
顯示所有內(nèi)容的基本命令是:
psaux
你也可以顯示由特定用戶啟動(dòng)的進(jìn)程:
ps-u pi
這將給你一個(gè)如下所示的列表:

進(jìn)程ID(PID)對(duì)于其他命令停止進(jìn)程可能很有用(下一個(gè)命令)。
kill :kill命令允許你終止一個(gè)進(jìn)程。你需要進(jìn)程ID來(lái)做到這一點(diǎn)(見(jiàn)上一個(gè)命令)。
kill12345
有時(shí)你可能需要使用-9選項(xiàng)來(lái)強(qiáng)制停止所有相關(guān)命令。
例如,如果你在腳本中運(yùn)行了20個(gè)命令并殺死了它,它將繼續(xù)執(zhí)行下一行,而不是退出程序,除非你使用-9選項(xiàng)。
kill-912345
你也可以使用killall來(lái)停止一個(gè)程序的所有實(shí)例。
killallphp
這個(gè)命令將立即停止請(qǐng)求的進(jìn)程,無(wú)論正在進(jìn)行什么操作。這不是一個(gè)干凈的停止。
你不知道腳本正在做什么,所以它可能會(huì)損壞數(shù)據(jù)或破壞文件。
這應(yīng)該作為最后一步使用,如果可能的話,在非關(guān)鍵進(jìn)程上使用。
htop:這個(gè)工具是top的替代品。它比top更用戶友好,有顏色和動(dòng)態(tài)負(fù)載條
htop
df:顯示分區(qū)列表,以及每個(gè)分區(qū)的磁盤空間使用情況和可用空間。
dfdf-h
-h選項(xiàng)用于人類可讀的格式。
vcgencmd measure_temp:你可能記不住這個(gè)命令,但它可以顯示當(dāng)前的CPU溫度。
vcgencmdmeasure_temp
樹(shù)莓派操作系統(tǒng)命令
這篇文章中的大多數(shù)命令基本上都是Linux命令。
但樹(shù)莓派操作系統(tǒng)有一些獨(dú)有的命令,我將在這里介紹。
這些并不都是必不可少的,但即使你精通Linux,也可能不知道它們:
raspi-config:這個(gè)工具允許你通過(guò)終端或SSH連接管理所有配置。
sudoraspi-config

rpicam-still:如果你在攝像頭模塊上插入了攝像頭,這個(gè)命令會(huì)拍攝一張照片并將其保存為圖像文件。
rpicam-still -o image.jpg
注意:在舊版的樹(shù)莓派操作系統(tǒng)上,命令是libcamera-still或raspistill。對(duì)于下一個(gè)命令,舊命令是libcamera-vid和raspivid。
rpicam-vid:相同的命令,但它從攝像頭捕獲視頻。
rpicam-vid -o video.h264 -t10000
-t參數(shù)是捕獲時(shí)間,以毫秒為單位。
注意:raspividyuv/raspiyuv命令也已被rpicam-vid取代。因此,要獲取原始YUV視頻流,你需要一個(gè)像這樣的命令:
rpicam-vid -t10000--codec yuv420 -o test.data
raspi-gpio:這個(gè)命令允許你管理樹(shù)莓派的GPIO引腳,這些引腳通常與配件一起使用。你可以設(shè)置或獲取值。
raspi-gpiogetraspi-gpioget20raspi-gpioset20a5raspi-gpioset20op pn dh
rpi-update:僅在你知道你在做什么時(shí)使用。這將在你的樹(shù)莓派上更新一切(固件、包等),并可能破壞某些東西。
sudorpi-update
雜項(xiàng)命令
以下是一些我無(wú)法歸類到其他類別的其他有用命令:
history:Linux將你輸入的任何命令存儲(chǔ)在歸檔文件中。History就是用來(lái)顯示這個(gè)列表的命令。
history

你也可以清除所有歷史記錄。
history-c
或者清除一個(gè)特定的條目。
history-d12
閱讀我在這里寫的關(guān)于“history”命令的指南,了解更多細(xì)節(jié)和所有選項(xiàng)。
https://raspberrytips.com/history-linux-command/
crontab:Cron是一種在樹(shù)莓派上安排任務(wù)的工具。Crontab是你輸入每個(gè)要運(yùn)行的任務(wù)行的文件。
crontab-l
crontab-e
-l選項(xiàng)用于顯示行。
-e選項(xiàng)用于編輯行。
你可以在前面使用sudo以root權(quán)限安排任務(wù)運(yùn)行。
如果需要更多信息,我有關(guān)于這個(gè)主題的完整教程。
https://raspberrytips.com/schedule-task-raspberry-pi/
screen:這個(gè)工具允許你讓某件事情在后臺(tái)運(yùn)行,即使你關(guān)閉了會(huì)話。
screen -s
screen -r
-s選項(xiàng)用于使用以下名稱啟動(dòng)一個(gè)新的屏幕。
-r選項(xiàng)用于恢復(fù)一個(gè)使用此名稱正在運(yùn)行的屏幕。
如果你想的話,可以忘記名稱,將生成一個(gè)ID,使用screen -r來(lái)查找它,并使用screen -r 來(lái)恢復(fù)它。
只有一個(gè)屏幕在運(yùn)行時(shí),screen -r將直接恢復(fù)它。
高級(jí)命令
在最后一部分,我將介紹一些高級(jí)用戶命令,以幫助你更好地掌握樹(shù)莓派。如果你是Linux新手,你可能不需要知道這些命令,但如果你想節(jié)省時(shí)間或在樹(shù)莓派上更進(jìn)一步,你應(yīng)該了解這些命令。
awk:awk幾乎是一種編程語(yǔ)言,它允許你搜索字符串并轉(zhuǎn)換它們以不同的方式顯示。
因此,很難在幾行內(nèi)總結(jié)所有可能性,但我會(huì)嘗試給你一些例子來(lái)理解它。
awk的基本語(yǔ)法是這樣的:
awk-F":"'{print$1}'/etc/passwd
/etc/passwd是要解析的文件。字段分隔符是“:”,所以我們?cè)?F選項(xiàng)中使用它。
然后在程序字符串中,我們要求只顯示第一列。
所以這個(gè)命令將只顯示用戶名列表。
sed:sed允許你做與awk類似的事情。這個(gè)命令將把文本轉(zhuǎn)換為你想要的樣子。
與awk一樣,這是一個(gè)需要掌握的復(fù)雜命令,我在這里只做簡(jiǎn)單介紹。
基本語(yǔ)法如下:
sed
已收藏!你需要知道的57個(gè)常用樹(shù)莓派命令!