# 指令格式 $command [-options..] [parameter1...] * command (指令部份) command為指令的名稱 可能為指令(command)或可執行檔案(例如script)或完整執行檔名 * [-options..] (選項部份) -options在指令列中可有亦可無 -options為選項,通常選項前面會帶有減號 (-),例如 -h 有時會提供長選項,使用兩個減號,例如 --help 選項-help通常代表 -h -e -l -p 之意,與 --help 的單一長選項不同 選項有時會帶有參數,例如[-option para]或[--option=para] * [parameter1...] (參數部份) parameter1為依附在選項後面的參數,或者是 command 的參數 parameters... 若後面有小數點,代表可以加上多個參數 * 注意事項 指令、選項、參數之間都以空格或 [tab] 作為區分,不論空幾格都視為一格 英文大小寫為不同的字元,例如 cd 與 CD 是不一樣的指令 # basic commands * ll:列出檔名與詳細資訊 * ll -a:列出包含隱藏檔的檔案 * ll -d:查看目錄本身資訊 //ex:ll -d /:查看/(根目錄)的資訊 * file:觀察檔案的類型與型態 * history:查看過去用的指令 * w:列出目前登入的使用者 * 關機: * poweroff * halt * shutdown -h now * systemctl poweroff * su -:切換身份成為系統管理員(root) * echo:print //印出var內容:echo $var //印出文字:echo "hello" print時若有使用 \t, \n 、[tab] 按鈕時需要加上 -e * bc:小算盤 * --help:查看指令相關選項 例:bc --help * man:查看manual page手冊頁 例:man bc * grep:只列出關鍵字 ex:grep 'passwd' * pwd:列出目前工作目錄 * cp:複製檔案 //cp -r:複製目錄,cp -a:完整複製目錄 目錄結尾要加/  * mkdir:建立空目錄 * rmdir:刪除空目錄 * rm:刪除一般檔案 //rm -r:刪除目錄 * mv:move 可順便改檔名 * touch:建立空白檔案 * 輸出檔案內容: * cat:將檔案內容全部列出 * head:預設只列出檔案最前面 10 行 * tail:預設只列出檔案最後面 10 行 * more:可一頁一頁向後翻動的查看檔案內容 常用指令: * /關鍵字:可以查詢關鍵字 * 空白鍵:可以向下/向後翻頁 * q:結束離開不再查詢文件 * less:可以向前、向後翻頁 常用指令: * /關鍵字:可以查詢關鍵字 * 空白鍵:可以向下/向後翻頁 * [pageup]:可以向前/向上翻頁 * [pagedown]:可以向下/向後翻頁 * g:直接來到第一行 * G:直接來到最後一行 * q:結束離開不再查詢文件 * id:查詢帳號所屬群組 * ps -l:觀察 bash 自己相關的程序 ### apt 用於dpkg管理的distribution : debian,ubuntu 需搭配sudo使用 * apt update :更新軟體庫清單 * apt upgrade :升級系統軟體 * apt install :安裝應用軟體 * apt remove :移除應用程式 * apt purge :移除應用程式及所有設定檔 * apt serach :搜尋套件 * apt list :列出所有已安裝的應用程式 * apt show :列出應用程式的詳細資訊 ### yum 用於rpm管理的distribution : red hat,Fedora * yum update:更新所有已安裝的套件,在update後面接上套件名稱可針對該套件更新 * yum install:安裝套件,若要安裝相關套件可在最後加上「*」 * yum remove:移除套件,若要移除相關套件可在最後加上「*」 * yum clean:移除放在/var/cache/yum的下載時的暫套件原始檔,通常會下yum clean packages或是yum clean all * yum list:列出所有的套件,若在list後面接套件名稱,則可單獨列出該套件 * yum search:搜尋所有相關的套件 ### 管線(pipe) 先做前面,輸出東西後再執行後面的指令,後面的指令會處理剛剛輸出的資料 把前面output當成後面的input ex: $echo "scale=10; 4*a(1)" | bc -l 第一部份先執行『echo "scale=10; 4*a(1)"』, 就可以發現從螢幕上輸出『 scale=10; 4*a(1) 』的字樣, echo 這個指令很單純的將後續的資料當成文字訊息輸出到螢幕上。 這些資料之後被帶入到 bc 指令中, 亦即直接在 bc 的環境中進行 scale=10; 4*a(1) 的運算之意。 不是所有的指令都支援管線命令 # manual page閱讀指令 利用less的指令 * [enter]:向文件後面移動一行 * [PageUp]/[PageDown]:向文件前/後移動一頁 * 方向鍵上/下:向文件前/後移動一行 * g:移動到整份文件的第一行 * G:移動到整份文件的最後一行 * q:離開 man page * /keyword:命令 man page 找到關鍵字 * n:向整份文件的下方繼續找關鍵字 * N:向整份文件的上方繼續找關鍵字 # 熱鍵 * 上下左右pageupdown:看歷史指令 * [tab]:命令補齊or檔名補齊or變數名稱補齊 * [ctrl]+c:中斷一個運作中的指令 * [shift]+[PageUp], [shift]+[PageDown]:上下移動螢幕畫面 # 常用目錄 * 絕對路徑:由根目錄(/)開始寫起的檔名或目錄名稱 例如 /home/student/.bashrc * 相對路徑:相對於目前路徑的檔名寫法 例如 ./home/student 或 ../../home/student/ 開頭不是 / 就屬於相對路徑    # 萬用字元 在 bash 的環境中,要查詢某些關鍵字的資訊時,需要透過一些終端機環境下的萬用字元支援 經常使用的萬用字元:  # vim vim支援顏色,vi僅文字編輯 基本模式: * 一般指令模式 (command mode): 使用『 vim filename 』進入 vim 之後,最先接觸到的模式。 在這個模式底下可以複製、刪除、貼上、移動游標、復原等 * 編輯模式 (edit mode): 在上述模式底下輸入『 i 』,進入編輯模式,開始打字編輯文件 * 延伸指令列命令模式 (extended command mode): 按:進入 :q離開 :w寫入檔案 :wq儲存並離開 進行儲存、離開、強制離開、搜尋與取代等動作 * 選取模式 (vitual mode): 進行類似滑鼠圈選的選取模式 主要分為三種圈選方式: * v :字元方式圈選; * [shift]+v :以整行方式圈選 * [ctrl]+v :以區塊方式圈選 圈選完畢後,可以按下 y 複製、按下 d 刪除,在其他地方可以按下 p 貼上  常用指令:  # nano 常用指令: * Ctrl+K 剪下整列或選取範圍 * Alt+6 複製整列或選取範圍 * Ctrl+6 開始選取 * Ctrl+U 貼上剪貼簿內容 * Alt+U Undo * Alt+E Redo * Alt+Del 刪除整行 * Alt+3 Comment/Uncomment * Alt+/ || Alt+G 跳到指定行數 * Ctrl+G Help * Alt+W || F6 尋找 * Alt+Q 尋找下一個 * Alt+W 尋找上一個 * Alt+R 尋找並置換 * Alt+X 關閉下方 Help 提示 * Ctrl+S 存檔 * Ctrl+O 另存新檔 * Ctrl+X 退出 # 檔案權限 ### 使用身分 * user / owner / 檔案擁有者 / 使用者:就是檔案所屬人 * group / 群組:這個檔案附屬於那一個群組團隊 * others / 其他人:不是 user 也沒加入 group 的帳號,就是其他人 ### 檔案類型 * -: 一般檔案 * d: 目錄檔 * l: 連結檔 (有點類似 windows 的捷徑概念) * b: 裝置檔,該裝置主要為區塊裝置,亦即儲存媒體的裝置較多 * c: 週邊裝置檔,例如滑鼠、鍵盤等 ### 檔案權限 * r: read,可讀 * w: write,可寫入/編輯/修改 (不包含刪除) * x: eXecutable,可以執行 ### 目錄權限 * r (read contents in directory): 表示具有讀取目錄結構清單的權限,可以查詢該目錄下的檔名資料 * w (modify contents of directory): 表示用戶具有異動該目錄結構清單的權限,也就是底下這些權限: 建立新的檔案與目錄 刪除已經存在的檔案與目錄(不論該檔案的權限為何) 將已存在的檔案或目錄進行更名 搬移該目錄內的檔案、目錄位置 * x (access directory): 代表使用者能否進入該目錄成為工作目錄 ### 檔案分析  簡單的分析,上述的資料共有七個欄位,每個欄位的意義為: A. 檔案類型與權限,第 1 個字元為檔案類型,後續 9 個字元每 3 個一組,共分 3 組,為三種身份的權限 B. 檔案連結數,這與檔案系統有關,讀者可暫時略過 C. 該檔案的擁有者,本例當中,擁有者身份為 root D. 該檔案的所屬群組,本例當中這個檔案屬於 mail 這個群組底下 E. 這個檔案的容量 F. 該檔案最後一次被修改/修訂的日期時間 G. 這個檔案的檔名 如上圖所示: 檔案類型與權限為: drwxrwxr-x d代表此檔案為目錄檔 後面三個三個一組分為: rwx rwx r-x 分別為 檔案擁有者root的權限:rwx 檔案所屬群組mail的權限:rwx others的權限:rx ### 修改權限 * 確認各部分修改的指令:  * 更改checking的擁有者為daemon:  * 更改checking所屬群組為bin:  * chmod數字法:  每種身份最低為 0 分,最高則為 r+w+x --> 4+2+1 --> 7 分 因為有 3 種身份,因此使用者,群組,其他人的身份 最多為 777 最少為 000 以上述 checking (-rw-rw-r--)的分數來說 使用者為 rw=6, 群組為 rw=6,其他人為 r=4 亦即該檔案權限為 664 修改checking權限為740:rwxr----- :  * chmod符號法: u:user g:group o:others  chmod a+x checking: a為all 將所有人權限加x 所有人皆可執行 # 帳號管理 ### 建立帳號 身分須為root  ### 刪除帳號 userdel -r myuser1 //刪除myuser1 加上 -r 的目的是要該帳號連同家目錄與電子郵件新件夾通通刪除 ### 群組 * groupadd progroup //新增progroup群組 * useradd -G progroup prouser1 // add prouser1(新建的帳號)到progroup * echo mypassword | passwd --stdin prouser1 //將mypassword設為prouser1的密碼 //密碼會紀錄到螢幕與 history 的環境 (較不安全) //大量建置帳號時方便 * usermod -G //將既有的帳號加到群組 # Reference 鳥哥私房菜 https://linux.vbird.org/linux_basic_train/rockylinux9/ https://www.tokfun.net/os/linux/install-remove-linux-software-using-apt-command/#%E3%80%8Capt-get%E3%80%8D%E8%88%87%E3%80%8Capt%E3%80%8D%E7%9B%B8%E9%97%9C%E6%8C%87%E4%BB%A4%E5%8A%9F%E8%83%BD%E5%B0%8D%E6%87%89%E8%AA%AA%E6%98%8E https://ithelp.ithome.com.tw/articles/10077313 https://www.nano-editor.org/dist/latest/cheatsheet.html https://blog.darkthread.net/blog/nano-shortcut/
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up