記錄歷史記錄
!n(n為數字):表示執行第n條命令
!字串(字串大於1):如!pw,表示執行命令歷史中最近一次以pw開頭的命令
tab鍵:補全命令和檔名,2下則會把所有的命令或者檔名都列出來
別名
#alias aming=『pwd』萬用字元#awing
/root
#unalias aming
#aming
bash:aming:未找到命令…
輸入/輸出重定向#ls -d /tmp/4_6/test*
/tmp/4_6/test1 /tmp/4_6/test4 /tmp/4_6/test5
#touch /tmp/4_6/test111
#ls -d /tmp/4_6/test?
/tmp/4_6/test1 /tmp/4_6/test4 /tmp/4_6/test5
|:管道符#mkdir /tmp/10
#cd /tmp/10
#echo "123" > 1.txt
#echo "123" >> 1.txt
#cat 1.txt
123123
作業控制
env:列出系統預設的全部系統環境變數。登入不同的使用者,環境變數的值也不同(只能顯示環境變數)
root賬戶的環境變數
set:把系統預設的全部變數都顯示出來,也可以顯示使用者自定義的變數,自定義變數只能在黨前shell中生效
#echo "export myname=aming" >> /etc/profile
//把echo "export myname=aming加入到 /etc/profile中
#source /etc/profile
//使之生效
#su - test
//檢視效果
#echo "export myname=aming" >> .bashrc
//把echo "export myname=aming加入到 .bashrc中
#source .bashrc
//使之生效
規定:pstree:把linux系統中所有程序以樹狀結構顯示出來(1)格式:a=b,a為變數名,b為變數內容,等號兩邊不能有空格
(2)變數名:只能由字母、數字以及下劃線組成,而且不能以數字開頭
(3)當變數內容帶有特殊字元(如空格)時,需加上單引號
(4)若變數內容本身帶有單引號,則需雙引號
(5)若變數內容中需要用到其他命令,執行結果則可以使用反引號
#myname='pwd'
echo $myname
/root
(6)變數內容可以累加其他變數的內容,但需要加雙引號
萬用字元:上面有介紹(shell的第4點)
#:此為注釋符,即#好後面的內容都會被忽略
\:脫義字元,會將後面的特殊符號還原為普通字元
cut:用來擷取某個字段,格式為cut -d 『分隔字元』 (-cf) n
//n為數字,用法:
#cat /etc/passwd|cut -d ':' -f 1 |head -5
//:為分隔符;-f 1表示擷取第一段root
bindaemon
admlp
sort:用作排序,格式為#head -n2 /etc/passwd|cut -c1,3,10
//c後可以是1個數字n,也可以區間n1-n2,還可以n1,n2,n3ro0bn
sore (-t 分隔符) (-kn1,n2) (-nru)
,n1和n2為數字
-t:後+分隔符,作用跟cut -d一樣wc:用於統計文件行數、字元數、詞數,選項-l(統計行數)、-m(統計字元數)、-w(統計詞數),格式為-n:表示使用純數字排序
-r:表示反向排序
-u:表示去重複
-kn1,n2:表示由n1區間排序到n2區間,可以只寫-kn1,雞對n1欄位排序
wc (-lmw)
uniq:用來刪除重複的行,-c比較常用,表示統計重複的行
tee:類似於重定向「>」,比重定向多乙個功能,即把檔案寫入後面所跟的檔案時,還顯示在螢幕上。用於「|」後#vi ***。txt
111222
111333
#sort ***.txt |uniq
111222
333
#sort ***.txt |uniq -c
2 111
1 222
1 333
tr:替換字元,常用於處理文件**現的特殊符號,如dos文件**現^m。#echo 「aaaaaa」 |tee ***.txt
aaaaaa
#cat ***.txt
aaaaaa
(1)常用於把小寫字母變成大寫字母:
#head -n2 /etc/passwd |tr '[a-z]' '[a-z]'
(2)替換乙個字元:
#grep 'root' /etc/passwd |tr 'r' 'r'
split:用於切割文件,常用-b和-l
指定目標檔名#mkdir split_dir
#cd !$
cd split_dir
#cp /etc/passwd ./
#split -b 500 passwd
#ls
passwd xaa xab xac xad xae //若不指定目標檔名,就會這麼命名
#rm -f xa*
#split -b 500 passwd 123
#ls
123aa 123ab 123ac 123ad 123ae passwd
11.#rm -f 123a
#split -l 10 passwd
#wc -l *
45 passwd
10 xaa
10 xab
10 xac
10 xad
5 xae
90 總用量
「 $」
:用作變數前的識別符號,還可以結合!來用:
「;」
:若想在一行內執行兩個或兩個以上的命令,需要在命令之間加「;」
「~」
:表示使用者的家目錄
「&」
:若想把一條命令放到後台執行,則需加上「&」,他通常用於命令執行時間較長的情況,可用在sleep後
重定向》、>>、2>、2>>
""
:括號內為字元組合,代表字元組合中的任意乙個,可以是乙個範圍(1-3,a-z)
「&&」和「||」
:命令分隔符
SHELL 基礎知識
1 什麼是shell?shell的本意是 殼 的意思,其實已經很形象地說明了shell在linux系統中的作用。shell就是圍繞在linux核心之外的乙個 殼 程式,使用者在作業系統上完成的所有任務都是通過shell與linux系 統核心的互動來實現的。shell本身是乙個c語言編寫的程式,是使用...
shell 基礎知識
預設變數 傳入指令碼的命令列引數個數 所有命令列引數值,在各個引數值之間留有空格 0 命令本身 shell檔名 1 第乙個命令列引數 2 第二個命令列引數 區域性變數 在變數首次被賦值時加上local 關鍵字可以宣告乙個區域性變數,例s3 bin bash hello var1 echo hello...
shell 基礎知識
預設變數 傳入指令碼的命令列引數個數 所有命令列引數值,在各個引數值之間留有空格 0 命令本身 shell檔名 1 第乙個命令列引數 2 第二個命令列引數 區域性變數 在變數首次被賦值時加上local 關鍵字可以宣告乙個區域性變數,例s3 bin bash hello var1 echo hello...