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可利用減號來替代。
Bash基礎
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.