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

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

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

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

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

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

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

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