2015.4.8 Shell基礎知識

來源:互聯網
上載者:User

標籤:history   export   profile   基礎知識   source   

1、Shell特性

命令曆史 history  !!  !$  !n  !字元

Tab鍵可以補全檔案路徑或者命令

alias a="b"  unalias a 

萬用字元 *匹配零個或多個字元  ?匹配一個字元

輸入輸出重新導向>,>>,<,2>,2>>

管道符

作業控制  ctrl+z   jobs   fg    bg


2、變數

系統變數名都是大寫,echo可以查看變數名

env 可以列出目前使用者的所有環境變數以及使用者自訂全域變數

set 命令可以把所有變數列出來包括系統的和自訂的全域變數以及當前shell自訂變數

linux下設定自訂變數規則:(1)格式為“a=b”,其中a為變數名,b為變數的內容,等號兩邊不能有空格;(2)變數名只能由英、數字以及底線組成,而且不能數字開頭;(3)當變數內容帶有特殊字元(如空格)時,需要加上單引號;(4)如果變數內容中需要用到其他命令運行結果則可以使用反引號;(5)變數內容可以累加其他變數的內容,需要加雙引號。

系統所有使用者使用變數:export myname=Aming 全域變數,加入/etc/profile並source /etc/profile永                                                 久生效 

系統某個使用者使用變數:export myname=Aming加入目前使用者家目錄下的.bashrc中並source .bashrc

export myname=Aming 全域變數,export不加任何選項表示,聲明所有的環境變數以及使用者自訂變數

使用者自訂變數,可以使用unset 變數名 進行解除變數設定


3、系統和個人環境變數的設定檔

/etc/profile  PATH,USER,LOGNAME,MAIL,INPUTRC,HOSTNAME,HISTSIZE,umask等

/etc/bashrc   $PS1 umask 以後如果設定umask修改/etc/profile,不要改這個檔案

.bash_profile 使用者自己的環境變數

.bashrc       當使用者登入時以及每次開啟新的shell時,執行該檔案

.bashrc_history  記錄命令曆史用的

.bash_logout   當退出shell時,會執行該檔案


4、shell中的特殊符號

* 匹配符號,0個或多個任一字元

?匹配字元,1個任意的字元

# 注釋說明用的,使後面的內容失去原本的意義

\ 脫義字元,將特殊字元還原為一般字元

| 將符號前面命令的結果丟給符號後面的命令,一般針對文檔操作的命令比較常用,如cat,less,head

cut,sort,wc,uniq,tee,tr,split,sed,awk等等


$ 引用變數,還有!$

; 分號,多條命令寫一行時,分隔命令

~ 使用者家目錄

& 放到命令最後面,讓命令在後台運行

>,>>,2>,2>> [錯誤]重新導向,追加[錯誤]重新導向

[]中括弧,中間為字元組合,代表中間字元中的任意一個   ls 1[23a].txt


5、常用命令:

1)cut

文法:cut -d ‘分隔字元‘ [-cf] n  這裡的n是正整數

-d 後面指定分隔字元,用單引號括起來,-f指定第幾段  cut -d ‘:‘ -f 1 /etc/passwd |head -n 5

-c 後面只有一個數字表示截取第幾個字元 head -n2 /etc/passwd|cut -c2

-c 後面跟一個數字地區,表示截取從幾到幾   head -n2 /etc/passwd|cut -c2-5

2)sort

文法:sort [-t 分隔字元] [-kn1,n2] [-nru] (n1<n2)

不加選項,從首字元向後,一次按ASCII碼值進行升序sort  /etc/passwd

-t 後指定分隔字元,-kn1,n2表示在指定的區間中排序,-k後面只跟一個數字表示對第N個字元排序,-n表示使用純數字排序 sort -t: -k3 -n /etc/passwd

-r表示以降序的形式排序 sort -t: -k3,5 -r /etc/passwd

-u去重 cut -d: -f4 /etc/passwd |sort -n -u

3)wc

用於統計文檔的行數、字元數、詞數

不加任何選項,會顯示行數、詞數以及字元數

-l 統計行數  -m 統計字元數  -w統計詞數

4)uniq

uniq去重複,最常用就一個-c用來統計重複的行數,去重前要先排序sort testb.txt|uniq -c

5)tee

後跟檔案名稱,類似於>,比重新導向多一個功能,在把檔案寫入後面所跟的檔案中的同時,還顯示在螢幕

6)tr用來替換字元

最常用的就是大小寫轉換  head -n2 /etc/passwd |tr ‘[a-z]‘‘[A-Z]‘

tr也可以替換一個字元   grep ‘root‘ /etc/passwd |tr ‘r‘‘R‘

7)split切割大檔案

-b 按大小來分割單位為byte   split -b50 1.txt

預設會以xaa,xab,...這樣的形式定義分隔後的檔案名稱,也可以指定檔案名稱split -b50 1.txt 123

-l 按行數分隔,split -110 file 


6 &&和||

command1;command2前面命令是否執行完成都會執行後面的命令

command1&&command2隻有前面命令執行成功才會執行後面命令

command1||command2隻有前面命令不成功再去執行後面命令



本文出自 “Rhythm” 部落格,請務必保留此出處http://rhythm.blog.51cto.com/2800158/1652266

2015.4.8 Shell基礎知識

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.