bash的主要優點:
#命令記憶能力
#命令與檔案補全功能
#命令別名設定功能
#作業控制、前台、後台控制
#程式指令碼
#萬用字元
bash shell的內建命令:type
type [-tpa] name
引數:type:不加任何引數時,type會顯示出name是外部命令還是bash的內建命
-t:當加入-t引數時,type會將name以下面這些字眼顯示出它的意義
file:表示為外部命令
alias:表示該命令為命令別名所設定的名稱
builtin:表示該命令為bash內建的命令功能
-p:如果後面接的name為外部命令時,才會顯示完整檔名
-a:會由path變數定義的路徑中,將所有含有name的命令都列出來,包含alias
在命令執行過程中,反單引號(')這個符號代表的意義為何
在一串命令中,在『之內的命令將會被先執行,而其執行出來的結果將作為外部的輸入資訊。如uname -r會顯示出目前的核心版本,而我們的核心版本在/lib/modules中。
因此,可以先執行uname -r找出核心版本,然後再以cd目錄回到該目錄下。
若你有乙個常去的工作目錄名稱為「/cluster/server/work/taiwan_2005/003」,如何進行該目錄的簡化
再一般情況下,如果想進入上述的目錄需要執行「cd/cluster/server/work/taiwan_2005/003」。但如此一來,變換目錄就會很麻煩。所以一般採用下面的方式來降低執行的錯誤
work = 「/cluster/server/work/taiwan_2005/003」
cd $work
變數鍵盤讀取、陣列與宣告:read,array,declare
read:讀取鍵盤輸入的變數
read [-pt] variable
-p:後面可以接提示符
-t:後面可以接等待的秒數
declare/typeset:宣告變數的型別。
如果使用declare後面沒有接任何的引數,那麼bash就會將所有的變數名稱與內容全部顯示出來,就像set一樣。
declare [-aixr] variable
-a:將後面名為variable的變數定義為陣列(array)型別
-i:將後面名為variable的變數定義為整數數字型別
-x:用法與export一樣,就是將後面的variable變成環境變數
-r:將變數設定為readonly型別,該變數不可被更改內容,也不能被重設
陣列:陣列的設定方式為:var[index]=content
與檔案系統及程式的限制關係:ulimit
ulimit [-shacdfltu] [配額]
-h:hard limit,嚴格的設定,必定不能超過這個這個設定的數值
-s:soft limit,警告的設定,可以超過這個設定置,但是若超過則有警告資訊
在設定上,通常soft會比hard小,舉例來說,soft可設定為80而hard為100.那麼你可以使用到90,那麼你可以使用90(因而沒有超過100),但介與80~100之間時,會有警告資訊
-a:後面不接任何引數,可列出所有的限制額度
-c:當某些進城發現錯誤時,系統可能會將該進城在記憶體中的資訊寫成檔案。這種檔案就被稱為核心檔案,此為限制每個核心檔案的最大容量
-f:此shell可以建立的最大檔案容量(一般可能設定濰2gb),單位為kb
-d:程序可使用的最大判斷記憶體(segment)容量
-l:可用於鎖定(lock)的記憶體量
-t:可使用的最大的cpu時間(單位為秒)
-u:單一使用者可以使用的最大程序(process)數量
基礎正規表示式:
[:alnum:]:代表英文大小寫字元及數字,即0-9,a-z,a-z
[:alpha:]:代表任何英文大小寫字元,即a-z,a-z
[:blank:]:代表空格鍵與[tab]按鍵
[:cntrl:]:代表鍵盤上的控制按鍵,即包括cr,lf,tab,del等
[:digit:]:代表數字,0-9
[:graph:]:除空格符(空格鍵與(tab))外的其他所有
[:lower:]:代表小寫字元,即a-z
[:print:]:代表任何可以被列印出來的字元
[:punct:]:代表標點符號,即「 『 ? ! ; :# $
[:upper:]:代表大寫字元,即a-z
[:space:]:任何會產生空白的字元,包括空格鍵[tab]cr等
[:xdigit:]:任何十六進製制的數字型別,因此包括0-9,a-f,a-f的數字與字元
grep的一些高階引數
grep [-a] [-b] [--color=auto] '搜尋字串' filename
引數-a:後面可加數字,為after的意思,除了列出該行外,後序的n行也列出來
-b:後面可加數字,為before的意思,出來列出該行外,後面的n行也列出來
sed工具
sed [-nefr] [動作]
引數:-n:使用安靜模式,在一般的sed的用法中,所有來自stdin的資料一般都會被列出在螢幕上。如果加上-n後,只有經過sed特殊處理的那一行才會被列出來
-e:直接在命令列模式上進行sed的動作編輯
-f:直接將sed的動作寫在乙個檔案內,-f filename則可以執行filename內的sed動作
-r:sed的動作支援的是擴充套件型正規表示式的語法
-i:直接修改讀取的檔案內容,而不是由螢幕輸出
動作說明:[n1[,n2]] function
n1,n2:不見得會存在,一般代表選擇進行動作的行數。如我的動作是需要在10到20行之間進行的,則」10,20[動作行為]「
function有下面這些引數:
a:新增,a的後面可以接字串,而這些字串會在新的一行出現
c:替換,c的後面可以接字串,這些字串可以替換n1,n2之間的行
d:刪除,因為是刪除,所以d後面通常不接任何引數
i:插入,i的後面可以接字串,而這些字串會在新的一行出現
p:列印,也就是將某個選擇的資料列印出來。通常p會與引數sed -n一起執行
s:替換,可以直接進行替換的工作。通常s的動作可以搭配正規表示式。
擴充套件正規表示式
+:重複乙個或乙個以上的錢乙個re字元
?:零個或乙個的錢乙個re字元
|:用或or的方式找出數個字串
():找出」組「字串
()+:多個重複組的判別
es6 基本語法
es6規定暫時性死區和let const語句不出現變數提公升,主要是為了減少執行時錯誤,防止在變數宣告前就使用這個變數,從而導致意料之外的行為。這樣的錯誤在 es5 是很常見的,現在有了這種規定,避免此類錯誤就很容易了。總之,暫時性死區的本質就是,只要一進入當前作用域,所要使用的變數就已經存在了,但...
es6基本語法
1.es6基本語法 變數的宣告 let 限制作用域 塊 const 常量 唯讀不可更改 const pi 3.14156 console.log pi pi 3.14 console.log pi let a 1 var a for var i 0 i 10 i a 6 輸出10 直接跳轉到最大值 ...
ES6基本語法
學js 箭頭函式 es6中可以使用 作為函式表達形式,極簡風格,引數 函式體。1 不帶引數function 等價於 2 帶引數function a 等價於 a 乙個引數時可以不寫括號 等價於 a 如果函式裡只有一條語句,可以省略return和 3 帶引數且函式裡只有一條返回語句,可以省略return...