AutoCAD 3DMAX C語言 Pro/E UG JAVA編程 PHP編程 Maya動畫 Matlab應用 Android
Photoshop Word Excel flash VB編程 VC編程 Coreldraw SolidWorks A Designer Unity3D
 部落冲突安卓版下载 > Linux

學習shell腳本之前的基礎知識

部落冲突安卓版下载 //www.fkutc.icu
日常的linux系統管理工作中必不可少的就是shell腳本,如果不會寫shell腳本,那么你就不算一個合格的管理員。目前很多單位在招聘linux系統管理員時,shell腳本的編寫是必考的項目。有的單位甚至用shell腳本的編寫能力來衡量這個linux系統管理員的經驗是否豐富。筆者講這些的目的只有一個,那就是讓你認真對待shell腳本,從一開始就要把基礎知識掌握牢固,然后要不斷的練習,只要你shell腳本寫的好,相信你的linux求職路就會輕松的多。筆者在這一章中并不會多么詳細的介紹shell腳本,而只是帶你進入shell腳本的世界,如果你很感興趣那么請到網上下載相關的資料或者到書店購買相關書籍吧。

在學習shell 腳本之前,需要你了解很多關于shell的知識,這些知識是編寫shell腳本的基礎,所以希望你能夠熟練的掌握。

什么是shell】

簡單點理解,就是系統跟計算機硬件交互時使用的中間介質,它只是系統的一個工具。實際上,在shell和計算機硬件之間還有一層東西那就是系統內核了。打個比方,如果把計算機硬件比作一個人的軀體,而系統內核則是人的大腦,至于shell,把它比作人的五官似乎更加貼切些。回到計算機上來,用戶直接面對的不是計算機硬件而是shell,用戶把指令告訴shell,然后shell再傳輸給系統內核,接著內核再去支配計算機硬件去執行各種操作。

筆者接觸的linux發布版本(Redhat/CentOS)系統默認安裝的shell叫做bash,即Bourne Again Shell,它是shBourne Shell)的增強版本。Bourn Shell 是最早行起來的一個shell,創始人叫Steven Bourne,為了紀念他所以叫做Bourn Shell,檢稱sh。那么這個bash有什么特點呢?

1)記錄命令歷史

我們敲過的命令,linux是會有記錄的,預設可以記錄1000條歷史命令。這些命令保存在用戶的家目錄中的.bash_history文件中。有一點需要你知道的是,只有當用戶正常退出當前shell時,在當前shell中運行的命令才會保存至.bash_history文件中。

與命令歷史有關的有一個有意思的字符那就是”!”。常用的有這么幾個應用:(1!! (連續兩個”!”),表示執行上一條指令;(2!n(這里的n是數字),表示執行命令歷史中第n條指令,例如”!100”表示執行命令歷史中第100個命令;(3!字符串(字符串大于等于1),例如!ta,表示執行命令歷史中最近一次以ta為開頭的指令。

[image]

2)指令和文件名補全

在本教程最開始筆者就介紹過這個功能了,記得嗎?對了就是按tab鍵,它可以幫你補全一個指令,也可以幫你補全一個路徑或者一個文件名。連續按兩次tab鍵,系統則會把所有的指令或者文件名都列出來。

3)別名

前面也出現過alias的介紹,這個就是bash所特有的功能之一了。我們可以通過alias把一個常用的并且很長的指令別名一個簡潔易記的指令。如果不想用了,還可以用unalias解除別名功能。直接敲alias會看到目前系統預設的alias 

[image]

看到了吧,系統預設的alias指令也就這幾個而已,你也可以自定義你想要的指令別名。alias語法很簡單,alias [命令別名]=[’具體的命令’]。

4)通配符

bash下,可以使用*來匹配零個或多個字符,而用?匹配一個字符。

[image]

5)輸入輸出從定向

輸入重定向用于改變命令的輸入,輸出重定向用于改變命令的輸出。輸出重定向更為常用,它經常用于將命令的結果輸入到文件中,而不是屏幕上。輸入重定向的命令是<,輸出重定向的命令是>,另外還有錯誤重定向2>,以及追加重定向>>,稍后會詳細介紹。

6)管道符

前面已經提過過管道符”|”,就是把前面的命令運行的結果丟給后面的命令。

7)作業控制。

當運行一個進程時,你可以使它暫停(按Ctrl+z),然后使用fg命令恢復它,利用bg命令使他到后臺運行,你也可以使它終止(按Ctrl+c。

變量

前面章節中筆者曾經介紹過環境變量PATH,這個環境變量就是shell預設的一個變量,通常shell預設的變量都是大寫的。變量,說簡單點就是使用一個較簡單的字符串來替代某些具有特殊意義的設定以及數據。就拿PATH來講,這個PATH就代替了所有常用命令的絕對路徑的設定。因為有了PATH這個變量,所以我們運行某個命令時不再去輸入全局路徑,直接敲命令名即可。你可以使用echo命令顯示變量的值。

[image]

除了PATH, HOME, LOGNAME外,系統預設的環境變量還有哪些呢?

[image]


 
上一篇:每個極客都應該知道的一些Linux技巧  下一篇:Linux下如何架設WEB服務器