shell
- 記錄歷史記錄
- !! :表示執行上一條命令
- !n(n爲數字):表示執行第n條命令
- !字符串(字符串大於1):如!pw,表示執行命令歷史中最近一次以pw開頭的命令
- tab鍵:補全命令和文件名,2下則會把所有的命令或者文件名都列出來
- 別名
- alias:把常用並且很長的指令領取名爲一個簡單易記的指令
- unalias:解除別名
- 自定義別名:
alias (命令別名)=('具體的命令')
#alias aming=‘pwd’
#awing
/root
#unalias aming
#aming
bash:aming:未找到命令…
- 通配符
- “*”:匹配0個或多個字符
- “?”:匹配1個字符
#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
123
123
- |:管道符
- 作業控制
- Ctrl+Z:暫停運行進程
- fg:恢復進程
- bg:後臺進行
- Ctrl+C:終止進程
變量
- env:列出系統預設的全部系統環境變量。登錄不同的用戶,環境變量的值也不同(只能顯示環境變量)
root賬戶的環境變量
- HOSTNAME:主機的名稱
- SHELL:當前用戶的shell類型
- HISTSIZE:歷史記錄數
- MAIL:當前用戶的郵件存放目錄
- PATH:該變量決定了shell將到哪些目錄中尋找命令或程序
- PWD:當前目錄
- LANG:這是與語言相關的環境變量,多語言環境可以修改此環境變量
- HOME:當前用戶的家目錄
- LOGNAME:當前用戶的登錄名
- 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系統中所有進程以樹狀結構顯示出來
- 若沒有pstree這個命令,
yum install psmisc
安裝
系統環境變量與個人環境變量的配置文件
- /ect/profile:這個文件預設了幾個重要的變量,如PATH、USER、MAIL等
- /ect/bashre:主要預設umask以及PS1(PS1的值:\u指用戶、\h指主機名、\w指當前目錄、$指字符)
- .bash_profile:定義了用戶的個人化路徑與環境變量的文件名稱
- .bashre:該文件包含專屬於自己的shell的bash信息
- .bash_history:用於記錄歷史記錄
- .bash_logout:當退出shell時,會執行該文件。可將一些清理工作放進去
shell中的特殊符號
- 通配符:上面有介紹(shell的第4點)
- #:此爲註釋符,即#好後面的內容都會被忽略
- \:脫義字符,會將後面的特殊符號還原爲普通字符
- cut:用來截取某個字段,格式爲
cut -d ‘分隔字符’ (-cf) n
//n爲數字,用法:
#cat /etc/passwd|cut -d ':' -f 1 |head -5
//:爲分隔符;-f 1表示截取第一段
root
bin
daemon
adm
lp
- -d:後+分隔字符,分隔字符 要用單括號括起來
- -c:後+第幾個字符
#head -n2 /etc/passwd|cut -c1,3,10
//c後可以是1個數字n,也可以區間n1-n2,還可以n1,n2,n3
ro0
bn
- -f:後+第幾個區塊
- 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比較常用,表示統計重複的行
- 使用uniq前,必須先給文件排序
#vi xxx。txt
111
222
111
333
#sort xxx.txt |uniq
111
222
333
#sort xxx.txt |uniq -c
2 111
1 222
1 333
- tee:類似於重定向“>”,比重定向多一個功能,即把文件寫入後面所跟的文件時,還顯示在屏幕上。用於“|”後
#echo “aaaaaa” |tee xxx.txt
aaaaaa
#cat xxx.txt
aaaaaa
- tr:替換字符,常用於處理文檔中出現的特殊符號,如DOS文檔中出現^M。
- -d:表示刪除某個字符,後+刪除字符
- -s :表示刪除重複字符
(1)常用於把小寫字母變成大寫字母:
#head -n2 /etc/passwd |tr '[a-z]' '[A-Z]'
(2)替換一個字符:
#grep 'root' /etc/passwd |tr 'r' 'R'
- split:用於切割文檔,常用-b和-l
- -b:表示依據大小來分割文檔,單位爲byte
#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
- -l:表示依據行數來分割文檔
#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>>
- “>、>>”:表示取代和追加
- “2>、2>>”表示錯誤重定向和錯誤追加重定向
"[]"
:括號內爲字符組合,代表字符組合中的任意一個,可以是一個範圍(1-3,a-z)“&&”和“||”
:命令分隔符
- command1
;
command2:不管 command1是否成功, command2都會執行 - command1
&&
command2:只有 command1執行成功後, command2纔會執行 - command1
||
command2: command1執行成功後則 command2不執行,否則執行 command2,即 command1和 command2中總有一條命令會執行