後端工程師的第一堂課 (23) : Linux 常用指令

Johnliutw
JohnLiu 的軟體工程思維
7 min readOct 23, 2022

這是篇共 30 篇的後端領域入門系列文章,預計 1 -2 週新增 1 個新文章。
在後端領域有許多資源在告訴我們怎麼寫好 Python, Golang, Java, PHP … 等各種程式語言。但卻很少告訴我們怎麼學會 Web 後端領域 的知識。

希望你可以透過這篇文章,搭配你正熟悉中的某門任何程式語言,讓你順利入門 Web 後端 :)

【後端工程師的第一堂課】全系列: https://medium.com/@johnliutw/list/da301cc31b15

此篇筆者想介紹許多常用的 Linux 指令,希望讀者能學會應用,並熟悉這些指令,讓自己在 google 查各種系統指令時,能知道自己下的指令到底能做到哪些事 :)

文件操作

grep

grep 可以不用打開文件,就能查詢檔案內的文字,
因為有些 log 檔很大,如果一個一個開很吃效能。

$ grep “被搜尋的文字名稱” 你的檔案名稱

第二行就是搜到文字結果的位置

搜尋字詞前面如果加前綴詞 -i,則是不區分大小寫的模式

$ grep -i “被搜尋的文字名稱” 你的檔案名稱

diff

Diff 可以簡單比較兩個檔案的差異,讓你發現不一樣之處。

$ diff 被比較的檔案 比較的檔案

輸出的結果會用— — — 這個符號區分,
上半部是第一個檔案不同的部分,下半部則是第二個檔案不同的部分。

vim

vim 是一個非常古老的編輯器,可以在純文字作業系統的介面,開啟檔案編輯內容。

$ vim 要被編輯的檔案

指令下完後,出現的畫面:

vim 的操作方式比較特別,推薦可以參考此篇五倍龍哥分享的 vim 教學:

檔案操作

rm

rm 是用來刪除檔案的指令

$ rm 要被刪除的檔案

rm 後面加個 -r 的前綴詞,就是指要刪除資料夾,與裡面全部內容

$ rm -r 要被刪除的資料夾

cp

cp可以複製檔案,有些服務的server設定檔會提供一個sample檔案,讀者就可以直接複製整個檔案。

$ cp 要被複製的檔案 複製好後的檔案名稱

mv

mv 可以重新命名一個檔案

$ mv 要被改名的檔案 新的檔案名稱

find

find 指令可以在你執行指令的目錄下,做全域搜尋,找指定的檔案,並回傳路徑

$ find -iname “要被搜尋的檔案名稱”

cat

cat 指令可以在電腦裡面快速查看某個檔案的內容,速度是用 vim 開檔案的好幾倍快,因此如果只是查看檔案,而不是要編輯,可以使用 cat 處理

$ cat “要查看的檔案名稱”

系統操作

ps

ps 指令可以看當下運行的程序(process),以及他對應的 ID (PID),
使用情境像是,確認我下指令 run 的軟體有沒有真的 run 起來。

$ ps

像我上面就運行了一個本地的 web server (31061) 和不同透過 terminal 執行的服務。

如果要看包含應用程式以及各種細項的話,就這樣寫:

$ ps -ef

這邊就可以搭配 grep 指令,尋找自己想要的服務的 id 喔:

$ ps ef | grep ‘ruby’

上面指令中的 | 則是所謂的 pipeline,可以幫助兩個指令的接力合作,像是該示範指令的意思就是說將 ps ef 指令執行結果儲存下來,並且幫做基本資料,傳送給 grep 'ruby' ,來搜尋目前執行的服務中,有沒有含有 ruby 這個值!

kill

找到想要的 pid 後,也可以使用 kill 程序強迫把該程序關閉。

$ kill -9 程序的pid

像下面的例子,就是使用 kill 指令,刪除 python 的程序。

chmod

chmod 這個指令是權限的意思,有些程序需要較高的編輯、建立、刪除等權限,因為就像一般 windows 作業系統一樣,一個 Linux 也可能有多個使用者,因此,此指令用到的機率非常高。

$ chmod 設定的權限 檔案名稱

下面的範例,是讓該檔案變成任何使用者皆有所有的權限

關於權限的相關細節,歡迎參考鳥哥的教學:

網路傳輸

curl

curl 指令常用來抓取某個網頁,或下載檔案。

$ curl 你要抓取的網址

ping

ping 是用來測試連接到一個網頁的連線狀況

$ ping 要測試的網址

如果想用中止呢,就按 ctrl + c 就可以了( Mac 使用者是 command + c)~

apt-get

apt-get 是專門給 ubuntu, debian 等 Linux 系統使用的套件下載軟體,

$ apt-get 動作 要被做此動作的套件

像下面的範例就是安裝 python ,輸入指令後,就會幫我自動安裝 python

ssh

ssh 是用來遠端連線,這是非常常用到的指令,因為公司的產品經常部署在雲端的機器上,要連到雲端的機器,大都要透過 ssh 方式連接進去。

$ ssh 你要連結的機器位置

下面範例中,我透過 ssh 指令連到一台叫做 pig_test 的機器:

此為我透過其他指令 alias,來設定機器位置的縮寫,其完整格式應為:
ssh {user_name}@{ip} -p {port}

例如: ssh root@120.0.0.1 -p 22

--

--

Johnliutw
JohnLiu 的軟體工程思維

熱愛軟體全端技術開發,較為擅長 Web 領域,並有多年線上與線下授課經驗,專精軟體新手教學。 相關合作: johnliutw@hotmail.com