shell基礎

一、命令及命令歷史

history:查看命令歷史,默認最多保留1000行,配置文件.bash_history

history-c可以清空歷史命令

!!:剛執行的上一個命令

!555:歷史命令555號再次執行

!vi:最近一次以vi開頭的命令再次執行

 

【插】

1.命令補全tab,tab-tab可以顯示以相同字符開頭的文件

2.alias永久生效,修改/root/.bashrc

如myssh=’ssh -i /root/.ssh/1.txt’

 

二、特殊符號

# :1.表示註釋 2.表示脫義(替換,查詢)

*:匹配任意長字符

?:匹配一個字符

>:重定向,將信息輸入到指定文件

>>:追加輸入

!:組合有!$(上一次命令的最後一個參數) 

$ :1.表示結尾 2.表示引用變量 3.表示後臺任務    4.表示登錄方式爲普通用戶  5.*表示第幾字段(AWK) 

;:表示命令之間的並列

~ :表示用戶的家目錄

^ :以字符開頭

| :管道符,上一次命令的輸出作爲下一命令的輸入

&:並且(見應用)

&&:前一個執行成功纔會執行下一個

|| :前一個執行不成功纔會執行下一個

 

【應用】

  • 清空文件: > filename
  • 察看文件:cat  < 1.txt =  cat  1.txt
  • 發送以文件爲內容的郵件:mail -s "title" <  1.txt
  • 生成日誌並輸入正確或錯誤的信息:sh x.sh > 1.log  2>1.log(或2>&1),1> 和 2> 分別表示正確或錯誤輸出的結果  
  • 按行顯示文件:ls |xargs
  • 將an文件重名爲an.txt:ls a* | xargs -i mv {} {}.txt \    
  • 命令邏輯:1&&2(1成功執行2)、1||2(1或2或者12執行成功)、1;2(按照1->2的順序執行命令)
  •  把命令執行放到後臺:./startserver.sh &
  • 選擇字符範圍:[1,3] [1]  [1-4]

 

三、作業控制

1、終止任務ctrl+c,暫停任務放置後臺ctrl+z,查看後臺任務jobs

2、切換任務

fg [id]:將後臺任務調至前臺執行

bg [id]:將前臺任務調至後臺

其中+-指程序的優先級,+最高,-其次

 

四、shell變量與環境變量

1、定義規則

Ø  系統變量通常是大寫字母的,如HOSTNAME、PS1,用戶變量一般爲小寫字母的

Ø  變量只能以字母和下劃線開頭,由數字、字母和下劃線命名,格式爲 parameter=value,用分號可以一次設置多個變量,如a=1;b=2

Ø  查看系統變量env,查看全部變量set

Ø  變量賦值只會作爲臨時變量,全局變量需要在變量名前加export,且變量可以在子shell中生效,使變量加入env中,使用unset取消此全局變量

 

2、引用規則

“”:雙引號中表示普通字符串,特殊符號會解析

‘’:去義成爲文本字符,強烈推薦使用

``:不去義,引用命令結果

【實例】

Ø  a=1

b=`echo $a`

b=’echo $a’

Ø  a=1;b=$a”123”à1123

c=$a$b à11123

b1=$a”$a”à11

b2=$a’$a’à1$a

 

Ø  $(*)=’*’

Ø  ` `  反引號引用命令的結果
# rpm -qf `which vi`
vim-minimal-7.2.411-1.8.el6.x86_64

 

3、環境變量

四個文件:

系統級/etc/profile,/etc/bashrc   

用戶級~/.bshrc,~/.bash_profile

profile文件在登錄後加載,bashrc在運行用戶shell環境執行,bashrc優先於profile。

 

【插】

Ø  history長度定義HISTSIZE在/etc/profile裏;

Ø  $PS1爲命令行前的提示用戶字段:

結構[\u@\h \W]\$ ,u=user,h=hostname,W表示相對路徑,表示絕對路徑,\$表示登錄的是root還是普通用戶;

Ø  . ~/.bashrc指source ~/.bashrc,在shell中調用其他程序

 

 

五、shell的統計命令

1、cut 截取字段

-d 指定分隔符

-f 截取列

-c 截取字符位

範圍表示N N-M -MN-  N,M

 

2、sort 排序

默認排序規則是ASCII碼

-t 指定分隔符

-k 排序的列

-n 按照數字順序排序

-r 反轉順序

-u unique,去除重複的行

[補充]

-d :按照字典順序排序

-h :按照文件大小順序排序

-M :按照文件月份順序排序

 

舉例:cut -d ‘:’-f3 [file]|sort -n

 

3、wc 統計

-c 輸出字節數

-m 輸出字符數

-l 輸出行數(包括空行)

-L 輸出最大行的長度,以字符計算(不包括cat -A的段落標記)

-w 輸出單詞數,單詞按照空格分隔計算

 

4、tee

作用:讀取標準輸出寫出到屏幕和指定文件

-a:append 追加寫入文件

例:cat -A4.txt |tee 1.log

 

5、tr 替換字符

例:tr ‘a-z’ ‘A-Z’小寫換成大寫


6、uniq = sort -u

-c:除去重複的行,顯示統計次數


7、split切割文件,常用於日誌

(1)分隔方式

-b:按大小切分

-l:按行分隔

(2)參數

-a :指定分隔文件以什麼開頭(不支持後綴)

 

 

 

 

 




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章