iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 23
0

Linux 進階指令

今天筆者會介紹許多常用的 Linux 指令,
希望讀者能學會應用,並熟悉這些指令,
讓自己再 google 查各種系統指令時,能知道自己在下什麼東西XD

文件操作

grep

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

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

第二行就是搜到文字結果的位置
https://ithelp.ithome.com.tw/upload/images/20181106/20107758NE29764nQA.png
搜尋字詞前面如果加前綴詞 “-i”,則是不區分大小寫的模式

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

https://ithelp.ithome.com.tw/upload/images/20181106/201077583t2awUF5qt.png

diff

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

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

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

https://ithelp.ithome.com.tw/upload/images/20181106/20107758rN1UleVC4m.png

vim

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

$ vim 要被編輯的檔案

https://ithelp.ithome.com.tw/upload/images/20181106/20107758xPpE3xW9mI.png

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

https://ithelp.ithome.com.tw/upload/images/20181106/20107758iVGnElEL6X.png

vim 的操作方式比較特別,歡迎參考此基本教學文件:
Vim 教學 01

檔案操作

rm

rm 是用來刪除檔案的指令

$ rm 要被刪除的檔案

https://ithelp.ithome.com.tw/upload/images/20181106/20107758G8O8V7ky3f.png

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

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

https://ithelp.ithome.com.tw/upload/images/20181106/20107758T9XvFt57Vj.png

cp

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

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

https://ithelp.ithome.com.tw/upload/images/20181106/201077588Of0gqS3AB.png

mv

mv 可以重新命名一個檔案

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

https://ithelp.ithome.com.tw/upload/images/20181106/20107758NX56MgOpg1.png

find

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

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

https://ithelp.ithome.com.tw/upload/images/20181106/20107758K1fLAW0ekq.png

cat

car 指令可以在電腦裡面叫出貓快速查看某個檔案的內容,速度是用 vim 開檔案的好幾倍快

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

https://ithelp.ithome.com.tw/upload/images/20181106/20107758uL5x412l3G.png

系統操作

ps

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

$ ps

https://ithelp.ithome.com.tw/upload/images/20181106/20107758Hl4WYZuTS7.png

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

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

$ ps -ef

https://ithelp.ithome.com.tw/upload/images/20181106/20107758K73JuFLZ33.png
這邊就可以搭配 grep 指令,尋找自己想要的服務的 id 喔:

$ ps ef | grep ‘ruby’

https://ithelp.ithome.com.tw/upload/images/20181106/20107758Abe2dxk1ld.png

kill

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

$ kill -9 程序的pid 

像下面的例子,就是使用 kill 指令,刪除 python 的程序。
https://ithelp.ithome.com.tw/upload/images/20181106/20107758RvGKbi7f5S.png

chmod

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

$ chmod 設定的權限 檔案名稱

下面的範例,是任該檔案變成任何使用者皆有所有權限
https://ithelp.ithome.com.tw/upload/images/20181106/20107758jsM3FK5gkM.png

延伸閱讀:
chmod 指令- 修改檔案目錄權限

網路傳輸

curl

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

$ curl 你要抓取的網址

https://ithelp.ithome.com.tw/upload/images/20181106/201077586RC6L2LSOV.png

ping

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

$ ping 要測試的網址

https://ithelp.ithome.com.tw/upload/images/20181106/20107758p27MPmB41V.png

如果想用中止呢,就按 ctrl + c 就可以了~

apt-get

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

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

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

https://ithelp.ithome.com.tw/upload/images/20181106/20107758Ku9xIQHIZA.png

ssh

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

$ ssh 你要連結的機器位置

下面範例我有設定機器位置的簡寫,不然格式應該要像是:
user_name@ip位置 -p port號
例如:
root@120.0.0.1 -p 8000
https://ithelp.ithome.com.tw/upload/images/20181106/20107758mMSI6xwBiC.png

如果有任何問題,或是指證文中的錯誤,歡迎寄信給我或留言在下面喔~


上一篇
[Day22] Linux 介紹與基礎指令
下一篇
[Day24] Git 版本控制
系列文
菜鳥後端工程師的第一門課30

尚未有邦友留言

立即登入留言