###### Tags: `Linux` `Ubuntu` [TOC] # Linux ## 基本指令 #### ctrl + a ##### 跳到開頭 #### ctrl + e ##### 跳到結尾 #### XX --help ##### 在指令後方加上--help可以查看有哪些參數可用 ```bash cd --help ``` #### man <command> ##### 在man後方加上某指令可以查看該指令用戶手冊 ```bash man mkdir ``` | man後操作 | 功能 | |:-----------:|:------------------:| | space | 翻頁 | | q | 離開 | #### cd <folder name | /path/folder name> ##### change directory 移動到某資料夾 ```bash cd Documents cd /home/demo/Documents ``` #### cd .. ##### 移動至上一層資料夾 ```bash cd .. ``` #### cd ##### 直接回到home目錄 ```bash cd ``` #### pwd ##### print working directory 顯示當前路徑 ```bash pwd ``` #### ls ##### list directory contents 列出資料夾底下檔案 ```bash ls ``` #### ls -l ##### 列出檔案詳細資料 ```bash ls -l ``` #### ls -a ##### 列出所有包含隱藏檔案 ```bash ls -a ``` #### touch <file name> ##### 創建檔案 ```bash touch demo.txt ``` #### rm <file name> ##### remove 刪除檔案 ```bash rm demo.txt ``` rm就是叫電腦進行消除的動作;「r」表示消除指定目標中的所有一切;「f」代表「強制(force)」 #### rm -rf <file name> ``` rm -rf greenbox.yaml ``` #### mkdir <folder name> ##### make directories 創建資料夾 ```bash mkdir demo ``` #### mkdir -p <xx1/xx2/...> ##### 建一個不存在的資料夾並在此資料夾再建資料夾 ```bash mkdir -p demo2/demo3/demo4 ``` #### rm -rf <folder name> ##### 強制刪除該資料夾包含底下的資料 ```bash rm -rf demo3 ``` #### history ##### 列出過去執行的指令 ```bash history ``` #### ip a ##### 查看網路設置 ```bash ip a ``` ## cat/more/less 區別 #### cat </path/filename> ##### 顯示文件內容到最後行 ```bash cat /etc/profile ``` #### cat -b </path/filename> ##### 顯示文件內容到最後行並顯示行號 ```bash cat -b /etc/profile ``` #### cat -n </path/filename> ##### 顯示文件內容到最後行並顯示所有行號(包含空行) ```bash cat -n /etc/profile ``` #### cat <filename1> <filename2> ##### 後面接兩個檔案檔名,可以依序顯示內容 ```bash cat test1.txt test2.txt ``` #### cat <filename1> <filename2> >> <filename3> ##### 合併內容到新文件 ```bash cat test1.txt test2.txt >> test3.txt ``` #### more <filename> ##### 顯示文件內容一個視窗的行數 ```bash more syslog ``` | more後操作 | 功能 | |:-----------:|:------------------:| | b | 上頁 | | f | 下頁 | | space | 下頁 | | enter | 一行一行顯示 | | q | 離開 | #### more -<number> <filename> ##### 顯示number行數 ```bash more -10 syslog ``` #### less <filename> ##### 顯示文件內容一個視窗的行數(不顯示目前%) ```bash less syslog ``` | less後操作 | 功能 | |:-----------:|:------------------:| | b | 上頁 | | f | 下頁 | | space | 下頁 | | enter | 一行一行顯示 | | q | 離開 | | g | 到第一頁 | | G | 到最後頁 | | /搜索關鍵字 | 關鍵字反白 | | n | 只翻有關鍵字的頁面 | #### less -m <filename> ##### 顯示文件內容一個視窗的行數(顯示目前%) ```bash less -m syslog ``` #### less -M <filename> ##### 顯示文件內容一個視窗的行數(顯示目前%與行數) ```bash less -M syslog ``` #### head <filename> ##### 顯示檔案內容前幾行(預設10行) ```bash head syslog ``` #### head -<number> <filename> ##### 顯示檔案內容前number行 ```bash head -15 syslog ``` #### tail <filename> ##### 顯示檔案內容後幾行(預設10行) ```bash tail syslog ``` #### tail -<number> <filename> ##### 顯示檔案內容後number行 ```bash tail -3 syslog ``` #### tail -f <filename> ##### 監控檔案變化 ```bash tail -f syslog ``` #### ps -ef ##### 檢查處理程序狀態 ```bash ps -ef ``` ### ps -aux 顯示所有程序與狀態 -A :所有的處理程序均顯示出來,與 -e 具有同樣的效用 -a : 顯示現行終端機下的所有處理程序,包括其他使用者的處理程序 -u :以使用者為主的處理程序狀態 x :通常與 a 這個參數一起使用,可列出較完整資訊 ## 權限 (Mode) #### drwxrwxrwx #### d rwx rwx rwx #### d: 檔案類型 ##### rwx: 對當前User擁有的權限 ##### rwx: 對Group用戶擁有的權限 ##### rwx: 對Other用戶擁有的權限 ##### r: Read讀取 ##### w: Write寫入 ##### x: Excute執行 ##### -: 無 | | 讀取 | 寫入 | 執行 | 無 | | -------- |:----:|:----:|:----:|:---:| | 一般表示 | r | w | x | - | | 數字表示 | 4 | 2 | 1 | | **e.x.** #### r - - : = 4 #### rw- : = 6 #### rwx : = 7 #### chown <option> <使用者:群組> <filename> 更改擁有者 #### <option> **-R, --recursive**:遞歸地處理,將指定目錄下的所有檔案和子目錄一併處理 #### chmod <option> <mode> <filename> 更改權限 ##### +: 增加權限 ##### -: 減少權限 ##### u: User ##### g: Group ##### o: Other ##### a: 所有用戶 ```bash chmod o+r test.txt ``` ```bash chmod 766 test.txt ``` #### chown <options> <user>:<group> file 更改檔案擁有者與群組 -R 可以連目錄下的所有次目錄或檔案同時更改擁有者 ```bash chown -R etcd:etcd /var/lib/etcd-data-new ``` ## 程式安裝 ##### 三種安裝方式 #### 1. apt-get 安裝 ##### 以安裝net-tools為例 ```bash sudo apt-get install net-tools ``` #### 2. binary 安裝 ##### 先安裝curl ```bash sudo apt-get install curl ``` ##### 安裝 <kubernetes>(https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/#install-kubectl-binary-with-curl-on-linux) ```bash curl -LO https://dl.k8s.io/release/v1.23.0/bin/linux/amd64/kubectl ``` ##### 改成可執行權限 ```bash chmod +x kubectl ``` ##### 測試kubectl能否執行 ```bash ./kubectl --help ``` ##### mv <filename> <path> 移動檔案到路徑底下 ```bash sudo mv kubectl /usr/local/bin/ ``` ##### 測試kubectl能否執行 ```bash kubectl --help ``` #### 3. 源碼安裝 <vim網站>(https://www.vim.org/git.php) <vim download zip>(https://github.com/vim/vim) ##### 到下載位置 ```bash cd Downloads/ ``` ##### 解壓縮 vim-master.zip ```bash unzip vim-master.zip ``` ##### 進入vim-mastery資料夾 ```bash cd vim-master/ ``` ##### 安裝configure設定 ```bash sudo apt-get install build-essential ``` ##### 觀察有無出錯 ```bash ./configure ``` ##### 安裝缺少的套件 ```bash sudo apt-get install libncurses5-dev ./configure ``` ##### 編譯 ```bash make ``` ##### 安裝 vim ```bash sudo make install ``` ## SSH <相關參考連結>(https://hiskio.com/courses/609/lectures/32643) ##### 檢查ssh服務 ```bash ps -ef | grep ssh ``` #### 安裝ssh ```bash sudo apt-get install openssh-server ``` #### 用戶端連接linux ##### ssh <username>@<server ip> ```cmd ssh demo@192.168.56.101 ``` #### 離開SSH按 Ctrl + D #### ssh 公鑰&私鑰 ##### 在windows用戶端可以用git bash ##### 輸入 ssh-keygen 產生公鑰&私鑰 ##### 預設儲存路徑: /c/Users/xxx/.ssh/id_rsa ```git bash ssh-keygen ``` ##### 自訂金鑰名稱 ```git bash ssh-keygen -C "rodes5292@gmail.com" Generating public/private rsa key pair. Enter file in which to save the key (/c/Users/fixer2/.ssh/id_rsa): 填路徑與名稱 ``` ##### 查看公鑰 ```git bash cd .ssh cat id_rsa.pub ``` ##### 傳送公鑰到server ssh-copy-id <username>@<server ip> ```git bash ssh-copy-id demo@192.168.56.101 ``` ```git bash ssh-copy-id -i id_rsa.pub demo@192.168.56.101 ``` ##### 之後可以不用輸入密碼直接ssh到server #### ssh配置 ##### 在.ssh資料夾底下建立config ##### config內容 ```txt Host ubuntu HostName 192.168.56.101 User demo IdentityFile ~/.ssh/id_rsa ``` ##### 之後可以直接輸入ssh xxx 連線 ```txt ssh ubuntu ``` ## SCP 檔案傳輸 scp <source file name> <username>@<destination host>:<destination folder> ```git bash scp rufus-3.15.exe demo@192.168.56.101:/home/demo ``` #### scp -v ##### 傳輸詳細資料 ```git bash scp -v rufus-3.15.exe demo@192.168.56.101:/home/demo ``` #### scp -p ##### 傳送速度 ```git bash scp -p rufus-3.15.exe demo@192.168.56.101:/home/demo ``` #### scp -C ##### 加速傳輸速度(先壓縮->傳送->解壓) ```git bash scp -C rufus-3.15.exe demo@192.168.56.101:/home/demo ``` #### 檔案複製回來 ##### scp (<username>@<destination host>:<destination folder>) <local file name> ```git bash scp demo@192.168.56.101:/home/demo/rufus-3.15.exe D:/rufus_new.exe ``` ## 輸出log整理 ### wc -l ``` command |wc -l ``` ### head #### -n <取出筆數> ``` command |head -n 1 ``` ### sort #### -k<以第幾欄來排序> ``` command |sort -k3 ``` #### -nr 反向排序 ``` command |sort -nr ``` ### awk #### '{print $<第幾欄> "," $<第幾欄>}' 變更輸出格式 ``` command |awk '{print $2 "," $1}' ``` #### 'NR > <從第幾列開始取值>' ``` command |awk 'NR>1' ```
×
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