系統執行級別
執行級0:關機
執行級1:單使用者模式,系統出現問題時可使用這種模式進入系統維護,典型的使用場景
就是在忘記root密碼時可進入次模式修改root密碼。
執行級2:多使用者模式,但是沒有網路連線。
執行級3:完全多使用者模式,這也是linux伺服器最常見的執行級。
執行級4:保留未使用。
執行級5:視窗模式,支援多使用者,支援網路。
執行級6:重啟。
系統使用者指的是系統執行時必須有的使用者,比如在redhat或者centos下執行**服務時
,需要使用系統使用者apache來執行httpd程序,而執行mysql資料庫服務時,使用系統用
戶mysql來執行mysqld程序,1-499為系統使用者程序。
id命令 確定自己的uid
finger 調查使用者
groups命令,確認自己所屬的使用者組
at單一時刻執行一次任務 他at now + 30minutes
atq 查詢at的任務佇列
/etc/passwd和/etc/shadow
grep 搜尋文字
sort 排序 -n採取數字排序 -t指定分隔符 -k指定第幾列 -r 反向排序
cat abc.txt | sort | uniq 刪除重複
uniq -i忽略大小寫 -c 計算重複行數
cut擷取文字 -f 指定的列 -d '分隔符'
cat /etc/passwd | tr '[a-z]' '[a-z]' 小寫替換成大寫
cat /etc/passwd | tr -d ':'
刪除':'
paste b.txt a.txt 文字合併 按行的
paste -d: a.txt b.txt 使用分隔符合併
ifconfig 網路連線配置命令
host 查詢dns記錄的 host www.baidu.com 出現的位址可以放到瀏覽器上看一下
ps top 檢視程序
kill 終止程序
基礎的正規表示式
「.」(乙個點)符號
點符號用於匹配除了換行符之外的任意乙個字元
eg: grep 'r..t' /etc/passwd
搜尋出包含r後面帶兩個字元然後是t的字段
「*」符號
星符號用於匹配前乙個字元0次或者任意多次
eg: grep 'r*t' /etc/passwd
搜尋出包含連續零個或幾個r之後接乙個t的字段
eg: grep 'r.*t' /etc/passwd
搜尋出包含r,後緊跟任意長度字元在跟乙個t的字段
「\」符號
\匹配前面字元n次
\匹配前面字元至少n次
eg: grep 'r\' /etc/passwd
「^」符號 尖角號
匹配開頭的字元
eg: grep ^root /etc/passwd
匹配root開頭的行
「$」符號
匹配尾部字元
eg: grep '^r.*h$' /etc/passwd
匹配r開頭h結尾的
「」符號
集合匹配
eg: grep '^[a-c]' /etc/passwd
匹配a-c開頭的行
「\」符號
轉義字元
[\ \-]就是有空格和短橫槓
\\反斜槓 \.點
「\d」符號
匹配乙個數字等價於[0-9] 是一種perl相容模式表示式
eg: echo 123 | grep [0-9]
eg: echo 123 | grep -p '\d'
「\<」符號和「\>」符號
用於界定單詞的左右邊界
eg: echo "hello" | grep '\'
eg: echo "hellod" | grep '\<\hello>'
「\b」符號
匹配單詞的邊界
eg: echo "hellodd" | grep 'hello\b' 不可匹配
eg: echo "hellodd" | grep '\bhello' 可匹配
「\b」符號
匹配非單詞邊界
eg: echo "hellodd" | grep 'hello\b' 可匹配
「\w」符號
匹配字母數字和下劃線 等價於 [a-za-z0-9]
eg: echo "a" | grep '\w' 匹配
eg: echo "\\" | grep '\w' 不匹配
「\w」符號
匹配非字母、非數字、非下劃線 等價於[^a-za-z0-9]
eg: echo "\\" | grep '\w' 匹配
「\n」符號
匹配乙個換行符
「\r」符號
匹配乙個回車符
「\t」符號
匹配乙個製表符
「\f」符號
匹配乙個換頁符
「\s」符號
匹配任何空白字元
「\s」符號
匹配任何非空白字元
擴充套件的正規表示式
需要使用egrep
「?」符號
用於匹配前乙個字元0次或1次,所以「ro?t」僅能匹配rot或者rt
「+」符號
用於匹配前乙個字元1次以上,所以「ro+t」可以匹配 rot root
「|」符號
多種可能的羅列,彼此間是分支關係
區號是3、4位的固定**的正規表示式
()與|
eg: ^0[0-9]\(-| )[0-9]\
021-88888888和0511 88888888 都可以匹配
^0[0-9]\[\ \-][0-9]\
相同的eg: h(ar|oo|ol)d 可以匹配 hard、hold或hood
eg: grep -c '^$' /etc/passwd
計算檔案中有多少空行
eg: grep '^[^cr].*h$' /etc/passwd
匹配h結尾但是不能用c或r開頭的行(中括號中^用來反選)
執行指令碼示例
chmod +x helloworld.sh
./helloworld.sh
停止指令碼 ctrl + c
陣列定義
declare -a array
陣列賦值
array[0]=0
array[1]=1
陣列建立同時賦值
declare -a name=
增加元素
name[2]='wang'
直接建立
nmae=
跳號賦值
socre=([2]=2 [5]=5 [7]=7)
取值echo $
echo $
echo $
函式是否可以改變量值
vi newtest.sh
#!/bin/bash
var=100
function chvar()
echo "before var:$var"
chvar
echo "after var:$var"
chmod +x newtest.sh
./newtest.sh
結果before var:100
after var:200
當function chvar()
結果before var:100
after var:100
\轉義字元
全引用 單引號
echo '$var03'
命令替換方式
date11=`date`
date12=$(date)
echo $date11
echo $date12
位置引數
$0 指令碼名本身
$1-$ 指令碼的第乙個引數--指令碼的第十個引數
$# 變數總數
$@、$* 顯示所有引數
$? 前乙個命令退出的返回值
$! 最後乙個後台程序的id號
對檔案操作
#!/bin/bash
while read line
doname=`echo $line | awk ''
age=`echo $line | awk ''
***=`echo $line | awk ''
echo "my name is $name......."
done < student_info.txt
測試手段 bash -x test.sh
給命令傳入引數
useradd $username
echo $passwd | passwd -- stdin $username
《linux系統命令及shell指令碼》閱讀筆記2
linux系統命令及shell指令碼 閱讀筆記21.6.2 info page 就內容來說,info頁面比man page編寫得要更好 更容易理解,也更友好,但man page使用起來確實要更容易得多。乙個man page只有一頁,而info頁面幾乎總是將它們的內容組織成多個區段 稱為節點 每個區段...
《linux系統命令及shell指令碼》閱讀筆記 5
linux系統命令及shell指令碼 閱讀筆記 5 1,gzip gunzip gzip gunzip是用來壓縮和解壓縮單個檔案的工具,使用方法比較簡單。比如,在 root目錄下壓縮install.log檔案,壓縮後生成的檔案是install.log.gz檔案,然後再使用gunzip檔案將其解壓縮即...
Linux系統命令及shell指令碼實踐指南第二課
嵌入式作業系統第二課 linux的使用 命令 30個命令 1 linux和windows定位 開發人員 普通使用者 命令和滑鼠效率高?2 linux命令 使用者管理 檔案操作 程序管理 網路管理 裝置管理 系統管理 1000多個 120個 root 超級使用者 具有一切許可權 向日葵 ssh xsh...