shell基礎知識(3 16)

2021-10-04 01:58:39 字數 4167 閱讀 5445

記錄歷史記錄

!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//使之生效

規定:

(1)格式:a=b,a為變數名,b為變數內容,等號兩邊不能有空格

(2)變數名:只能由字母、數字以及下劃線組成,而且不能以數字開頭

(3)當變數內容帶有特殊字元(如空格)時,需加上單引號

(4)若變數內容本身帶有單引號,則需雙引號

(5)若變數內容中需要用到其他命令,執行結果則可以使用反引號

#myname='pwd'

echo $myname

/root

(6)變數內容可以累加其他變數的內容,但需要加雙引號

pstree:把linux系統中所有程序以樹狀結構顯示出來

萬用字元:上面有介紹(shell的第4點)

#:此為注釋符,即#好後面的內容都會被忽略

\:脫義字元,會將後面的特殊符號還原為普通字元

cut:用來擷取某個字段,格式為cut -d 『分隔字元』 (-cf) n//n為數字,用法:

#cat /etc/passwd|cut -d ':' -f 1 |head -5//:為分隔符;-f 1表示擷取第一段

root

bindaemon

admlp

#head -n2 /etc/passwd|cut -c1,3,10//c後可以是1個數字n,也可以區間n1-n2,還可以n1,n2,n3

ro0bn

sort:用作排序,格式為sore (-t 分隔符) (-kn1,n2) (-nru),n1和n2為數字

-t:後+分隔符,作用跟cut -d一樣

-n:表示使用純數字排序

-r:表示反向排序

-u:表示去重複

-kn1,n2:表示由n1區間排序到n2區間,可以只寫-kn1,雞對n1欄位排序

wc:用於統計文件行數、字元數、詞數,選項-l(統計行數)、-m(統計字元數)、-w(統計詞數),格式為wc (-lmw)uniq:用來刪除重複的行,-c比較常用,表示統計重複的行

#vi ***。txt

111222

111333

#sort ***.txt |uniq

111222

333#sort ***.txt |uniq -c

2 111

1 222

1 333

tee:類似於重定向「>」,比重定向多乙個功能,即把檔案寫入後面所跟的檔案時,還顯示在螢幕上。用於「|」後

#echo 「aaaaaa」 |tee ***.txt

aaaaaa

#cat ***.txt

aaaaaa

tr:替換字元,常用於處理文件**現的特殊符號,如dos文件**現^m。

(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

#rm -f 123a

#split -l 10 passwd

#wc -l *

45 passwd

10 xaa

10 xab

10 xac

10 xad

5 xae

90 總用量

11.「 $」:用作變數前的識別符號,還可以結合!來用:

「;」:若想在一行內執行兩個或兩個以上的命令,需要在命令之間加「;」

「~」:表示使用者的家目錄

「&」:若想把一條命令放到後台執行,則需加上「&」,他通常用於命令執行時間較長的情況,可用在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...