1. 程式人生 > >Linux Shell基礎命令

Linux Shell基礎命令

1.基礎命令

命 令 說 明
pwd 顯示當前目錄
passwd 修改使用者密碼
ls 列出目錄內容
cd 改變當前的工作目錄
* 匹配任意長度的任意字元
匹配任意一個字元
cat 顯示輸出檔案的全部內容
cp 複製檔案
mv 移動檔案
rm 刪除檔案
mkdir 建立目錄
rmdir 刪除目錄
chown 修改目錄或檔案所有者
chgrp 修改目錄或檔案使用者組
chmod 修改檔案或目錄的許可權
grep 查詢指定字串
find 查詢指定檔案
egrep 支援正則表示式的grep
& 在後臺執行
| 管道符 用於連線多個命令 其中前一命令的輸出為後一命令的輸入

2. IO重定向

命令列 說明
命令1 > 檔案1 將命令1的輸出結果重定向到檔案1
命令1 &> 檔案1 將命令1的輸出結果和標準錯誤輸出一起重定向到檔案1
命令1 >> 檔案1 將命令1的輸出結果追加到檔案1中
命令1 2> 檔案1 將命令1的標準錯誤輸出的結果重定向到檔案1中
命令1 < 檔案1 將檔案1作為命令1的標準輸入
命令1 << 字串1 允許連續輸入資料,直到收到字串1

3. 命令連線

3.1 管道(pipe)

#將前一程式的輸出作為後一程式的輸入
命令1 | 命令2 [| 命令3 ...] 
#連標準錯誤輸出一起送入管道
命令1 |& 命令2 [|& 命令3 ...] 

例:可以使用cat,sort,wc命令,統計student檔案是否有重複的行

#	cat student | sort -u |wc -l

3.2執行順序控制

(1)順序的執行多個命令,用分號( ; )分隔

# echo hello shell;pwd;ls

(2)有條件的執行,分為&&和||

  • &&:連線兩命令,前一命令執行成功後再執行後一命令,想到與邏輯與
  • || :連線兩命令,前一命令執行失敗後再執行後一命令,想到與邏輯或

4. 三種引號用法

  • 雙引號(" "):雙引號中的字元,除了$ , " , ’ 和 \ 以外的所有字元都會解釋成字元本身。

  • 單引號(’ '):單引號中的所有特殊字元(例如 $ , " , ’ 和 \ )都失去特殊意義成為普通字元。

  • 反引號(` `):反引號中的字元都會被解釋成命令,例如`cmd`會被解釋成cmd的執行結果。

    [email protected]:~$ echo "$PATH"
    /home/raki/.local/share/umake/bin:/home/raki/bin:/home/raki/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/arm/4.4.3/bin
    
    [email protected]:~$ echo "PATH"
    PATH
    
    [email protected]:~$ echo '$PATH'
    $PATH
    
    [email protected]:~$ echo `ls`
    a.out apue.2e arm-linux-gcc-4.4.3.tar.gz Desktop Documents Downloads examples.desktop Music opt opt111 Pictures Public spf13-vim.sh src.2e.tar.gz Templates tool Videos wyc
    
    [email protected]:~$ echo "I am $USER"
    I am raki