Linux-shell基礎複習筆記
檢視檔案型別:file xxx.log
增加檔案執行許可權:chmod +x 檔名稱
檢視編碼環境變數:env |grep LANG
shell定位:外層應用程式>shell命令解析器>核心>硬體
程序樹檢視:pstree
檢視VIM是否安裝:rps -qa | grep vim
如果不喜歡vi喜歡vim:alias vi=vim
怎麼樣別名不消失(所有使用者有效):vi /etc/profile 在後面加上vi=vim即可
檢視登入使用者數:who | wc -l
獲取IP地址:ifconfig |grep "inet addr"|grep -v "127.0.0l.1"|awk '{print ${2}}'|awk -F ':' '{print $2}'
獲取IP地址簡寫:ip_addr = `ifconfig |grep "inet addr"|grep -v "127.0.0l.1"|awk '{print ${2}}'|awk -F ':' '{print $2}'`
或者:ip_addr = $(ifconfig |grep "inet addr"|grep -v "127.0.0l.1"|awk '{print ${2}}'|awk -F ':' '{print $2}')
設定變數只讀:readonly xxx=xxx 環境變數:export xxx=yyyy 或者 xxx =yyy export xxx 顯示所有環境變數:env 、env |grep pwd 清楚環境變數:upset xxx 獲取變數字串長度(包括空格):name=caoshicaho ; echo ${#name} 獲取陣列第一個元素長度:name=(a bb cc ddd) ; echo ${#name} 獲取陣列元素個數:name=(a bb cc ddd) ; echo ${#name[*]} 輸出陣列元素:echo ${name[*]} 輸出某個元素:echo ${name[2]} 變數擴充套件: ${var:pos}: 變數var從第pos個位置輸出 ${var:a;b}: 變數var從第a個位置到b個位置輸出 ${var/a/b}:將變數var中的a替換成b輸出 ${var//a/b}:將變數var中的所有字元a替換成b輸出 定義變數型別: 定義整形變數:declare -i xxx 定義陣列變數:declare -a xxx 定義函式變數:declare -f xxx 變數間接引用: a=xx b=yy eval a=\$$b echo a 產生隨機數: #!/bin/bash count=1 MAX=10 while ["${count} -lt "${MAX}" "] : do num=$RANDOM echo ${num} let " count +=1" done 單引號會原樣輸出字串;雙引號不會;反引號引用的都是命令;反斜槓是轉義; echo ${name}跟echo "${name}"輸出效果是不一樣的; 取檔案路徑的最後的名稱:basename $0 #!/bin/bash echo "指令碼名稱是`basename $0`" ---- chmod +x text.sh ./text.sh 判斷引數是否存在 :if [ -n "$1"] 是否存在第一個引數;如果引數大於9個必須用{}:if [-n "${10}"] 判斷檔案是否存在 :if[ -x "${path}" ];then xxxxx else yyyyy fi 兩個分號是在case語句中使用:case “${variable}” in abc) echo xxx ;; xyz) yyyy ;; esac一個分號是用來在一行中寫多個命令;date ;pwd;ls
獲取分割槽情況:df -H | grep -v "Filesystem "
輸出到檔案並在螢幕顯示:who | tee out.txt
死迴圈,每5秒執行一次:
while :
do
echo "wellcome csdn"
sheep 5
done
Shell完成一些簡單的操作;
檢視bash版本:bash --version
檢視bash的別名:alias
Shellz執行順序:別名、關鍵字、函式、內建命令、可執行檔案或指令碼
檢視命令型別:type pwd
命令列用;分割:ls;date;pwd
命令組用()包起來:(ls;date;pwd)>output.txt
使用TAB補全命令或者檔案:TAB鍵 xxx
刪除別名:unalias vi
暫時刪除別名用\處理: /etc/inittab
清除/var/log下的log檔案
#!/bin/bash
#Cleanup
cat /dev/null > /var/log/messages
echo "message is up"
命令替換``:echo "當前工作目錄`pwd`"
區域性變數只能在它建立的SHELL中使用,環境變數可以在建立它的Shel或者派生出來的子程序Shell;
變數兩邊不能有空格,有空格用單引號或則雙引號包起來,變數名稱是區分大小寫的,變數不用宣告型別;
使用${xxx}防止命令誤解數字變數要用_8開始;使用unset xxx清除變數;
顯示本地變數:set
位置變數引數:$0是檔名稱 $1 $2 $3 $4 $5 向系統命令傳遞引數: grep $1 /etc/password |awk -F :'{print $3"\t"$6 }'