Bash基礎

1. shell整體概念:
    shell、KDE、Application -> Kernel -> 硬件
    
2. shell的種類:
    記錄文件:/etc/shells
    類別:
        /bin/bash
        /bin/sh (已被bash取代,軟鏈接的是bash)
        /bin/tcsh
        /bin/csh (已經被tcsh取代,軟連接的是tcsh)
        /sbin/nologin

3. linux內置bash作爲默認的shell的原因:
    1)歷史記錄命令:history
    2)命令與目錄、文件自動補全(tab鍵)
    3)命令別名設置命令:alias
    4)工作控制、前景背景控制:job control,foreground,background
    5)程序化腳本:shell script
    6)通配符
    
4. 判斷命令是bash內置命令還是外部命令:
    type [-tcp] cmd
    如:type -t cd -> builtin (file,外部;alias,別名;builtin,bash內置命令)
    
5. 變量操作:
    變量聲明:
        declare [-airx] varname 其中,-a爲數組,-i爲整數,-r爲只讀即不可更改或者unset,-x爲export    
        如:declare -i sum=100+200 -> 300,若無-i選項,則爲100+200
    
    變量賦值:
        直接賦值:varname=value,如:myname='Rudy Vivo'
        拼接:PATH=$PATH:/home/bin, varname2='$varname, have a good day'
        計算:version=$(username -r)
        
        注意:
            1)變量名與常規編程語言要求類似;
            2)等號左右側不能有空格;
            3)變量賦值如果包含空格等特殊符號,需要用引號括起來;
            4)變量可不用聲明,可直接使用和賦值
    取消變量:
        unset varname (不用$)
    
    查看變量:
        單個:echo $varname
        全部:set (自定義變量 + 環境變量)
        
    環境變量:
        查看:env
        自定義變量 & 環境變量轉換:
            export
            declare
        
    變量賦值時單引號和雙引號的區別:
        var1='hello'
        var2='$var1, Vivo'        hello, Vivo
        var3="$var1, Vivo"        $var1, Vivo
        
    從鍵盤獲取輸入的變量值:
        read [-p 輸入提示字符] [-t 等待時間] varname
        
    變量內容處理:
        刪除:
            從左側開始,取最短的部分:#,取最長的部分:##。 如:echo $(PATH#*:bin)
            從右側開始,取最短的部分:%,取最長的部分:%%。 如:echo $(PATH%%:)
        替換:
            替換第一個:${變量/舊字符串/新字符串}, 替換全部:${變量//舊字符串/新字符串}。
        變量設定和替換:
            ${str-expr} 如果str沒有設定,返回expr的值;否則,返回str自身的值;
            ${str:-expr} 如果str沒有設定或者str爲空字符串,返回expr的值;否則,返回str自身的值。
        
6. 查看語系設置:
    locale
    
7. 系統資源配置:
    ulimit [-SHacdfltu] [配額]
    如:ulimit -f 10240限制用戶僅能創造10M以內的文件
    
8. 命名別名設置與取消:
    設置:alias        如:alias ll='ls -l --color=tty'
    取消:unalias    如:unalias ll
    
9. history:
    文件記錄位置:~/.bash_history
    記錄條數:HISTFILESIZE
    
10. bash環境設置:
    啓動順序:
        1)/etc/profile,包含:PATH、MAIL、USER、HOSTNAME、HISTSIZE
        2)~/.bash_profile
        3)~/.bashrc
        4)/etc/bashrc
        5)開始操作bash
    系統設置更新:source或者. (修改配置後,可直接執行source/.,立即生效)
    
11. 數據重定向:
        標準輸入:< 或者 << 結束字符串 (如:cat catfile << "eof")
        標準輸出:> 或者 >> (注意:>爲覆寫,>>爲append)
        錯誤輸出:2> 或者 2>>
        注意:標準輸出和錯誤輸出可合併,同時使用。即:> ** 2> *
        
12. 命令執行的判斷依據(多指令根據上一個指令情況決定是否執行):
    1)shell腳本;
    2)無關命令:cmd1;cmd2;        相關命令:cmd1 && cmd2(僅cmd1執行完成切正確執行,才執行cmd2), cmd1 || cmd2(cmd1執行不成功才執行cmd2)
    
13. 管道命令:
    取出文本或文件中指定部分的列(多行):cut [-d'分隔符'] [-f要取得段數] [-c]
    查找包含有指定內容的行:grep [-acinv] 搜索字符串 filename
    排序:sort、uniq、wc
    雙重定向:tee。 如:ls -l | tee -a ~/homefile | more
    文本刪除和替換:tr
    空格和tab替換:col [-xb]
    文本內容關聯:關聯關係相連:join; 無關聯關係相連:paste
    空格和tab轉換: expand & unexpand
    文件切割:split [-bl]  file prefix
    文件合併:用數流重定向即可。 如:cat termcap* >> termcapback
    參數代換:xargs     如:cut -d':' -f1 /etc/passwd | head -n 3| xargs finger
    文件名替換:管線命令中用到文件名(如tar)時,該stdin與stdout可利用減號來替代。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章