19. shell基礎

shell是一個命令解釋器,提供用戶和機器以前的交互shell

  1. 命令歷史
    按向上的方向鍵一個個出現以前命令歷史
    history 查看以前的命令
    19. shell基礎
    命令歷史存在文件.bash_history
    19. shell基礎
    文件最大行數由變量HISTSIZE決定,默認1000
    19. shell基礎
    變量HISTSIZE可在/etc/profile中修改
    HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "
    設置時間顯示,非永久有效,若要一直有效,須要在/etc/profile中增長
    19. shell基礎
    chattr +a ~/.bash_history 永久保存命令(chattr +a只能增長不能刪除)
    !! 上一條命令
    ![char] 最近char開頭的命令
    !n 前第n條命令bash

  2. 命令補全
    當命令開頭打出一部分,如'mk',tab鍵補全命令和文件目錄名,若結果不惟一,須要連續按兩下,會列出全部以mk開頭的命令ide

  3. 通配符
    * 任意數量任意字符
    ? 1個任意字符
    [0-9] 任意一個數字 [2345] 2345任一
    [a-z] a-z任意一個
    [A-Z] A-Z任意一個
    [0-9a-zA-Z]任一數字或字母
    {1,3,t,y,H} 枚舉式選一個,中間用逗號隔開.net

  4. 輸入輸出重定向
    [contents or cmd] > [file] 將左邊內容(正確)重定向到右邊文件,覆蓋文件原有內容
    [contents or cmd] >> [file] 將左邊內容(正確)重定向到右邊文件,不覆蓋文件原有內容,追加
    [contents or cmd] 2> [file] 將左邊內容(錯誤)重定向到右邊文件,覆蓋文件原有內容
    [contents or cmd] 2>> [file] 將左邊內容(錯誤)重定向到右邊文件,不覆蓋文件原有內容,追加
    [contents or cmd] &> [file] 將左邊全部內容重定向到右邊文件,覆蓋文件原有內容
    [contents or cmd] &>> [file] 將左邊全部內容重定向到右邊文件,不覆蓋文件原有內容,追加
    [contents or cmd] > [file1] 2>[file2] 正確和錯誤內容分別輸出到不一樣文件
    [cmd] < [file] 將文件內容輸入到命令裏(左邊不能是文件)3d

  5. 管道符
    管道符: [cmd] | [cmd] 將左邊命令結果輸出到右邊
    cut 截取字符
    -d '[xx]' 以xx爲分隔符
    -f n,m 截取第n和m位
    -c 指定第幾個字符
    19. shell基礎
    sort 排序
    -n 以數字排序(其餘符號識別爲0)
    -r 逆序
    19. shell基礎
    wc 統計字符
    -l 行數
    -m 字符數
    -w 詞數(根據空格來分隔,不是真的認單詞)
    19. shell基礎
    uniq 去重(要先排序使相同行相鄰才能去重)
    -c 統計重複次數
    19. shell基礎
    tee 至關於>,可是要加上|管道符,以及會顯示出來
    -a 追加
    19. shell基礎
    tr 替換字符
    19. shell基礎
    split 切割
    -b 大小(默認單位字節)
    -l 行數blog

  6. 做業控制
    ctrl + z 暫停任務
    fg n 回到(第n個)暫停命令
    jobs 查看中止或後臺運行的任務
    bg 把任務放到後臺運行(暫停後能夠用)
    命令後加' &' 直接把命令放到後臺運行排序

  7. 變量
    env 查看系統變量
    19. shell基礎
    自定義變量,c未定義,所以無內容
    19. shell基礎
    unset [變量名] 撤銷變量定義
    變量命名:由數字、字母、下劃線組成,首位不能是數字
    變量值中有特殊符號時,要用單引號括起來
    19. shell基礎
    單引號、雙引號和反引號的區別,在另外一塊看到的http://blog.csdn.net/iamlaosong/article/details/54728393字符串

    bash 進入子shell
    19. shell基礎
    進入子shell後 exit退出此shell
    通常定義變量不跨shell
    export [變量名]=[變量值] 此定義能夠用在當前shell的子shellcmd

    環境變量配置文件
    /etc/profile 登陸後加載
    /etc/bashrc執行shell加載
    用戶目錄下的是:
    ~/.bashrc
    ~/.bash_profile
    ~/.bash_history
    ~/.bash_logout 定義用戶退出時要進行的操做
    變量PS1,在/etc/profile中定義,表示命令前字符串格式
    19. shell基礎
    W的大小寫對應當前路徑顯示完整與否
    19. shell基礎it

  8. 特殊符號$ 變量前綴; 多條命令寫在一行用分號分隔~ 用戶家目錄& 放在命令後面,表示把命令放到後臺[] 指定字符中的一個|| 兩條命令間,第一條命令執行失敗,才執行後面命令&& 兩條命令間,第一條命令執行成功,才執行後面命令
相關文章
相關標籤/搜索