編寫LinuxShell程式1

2021-05-24 07:46:02 字數 2482 閱讀 3884

#!bash 井號是起注釋作用的

rm -f *** f是強制刪除的意思

ps 是顯示當前前台程序狀態

ps -e 是顯示當前所有程序狀態(前台和後台全部都在)

ls -l 是顯示當前目錄下所有檔案的讀寫許可權

剛剛創立的shell指令碼是不能執行的,有兩種方式可以執行,

1. 使用shell工具進行解析

2. 修改指令碼的許可權,一般使用755比較多

cat命令也用的比較多,用來在終端顯示檔案的內容,對於比較短的指令碼比較適合。

簡單的指令碼

變數

shell有兩種變數,環境變數和臨時變數。環境變數是永久性變數,其值不會隨著shell執行過程的結束而結束,會以最近更新的值儲存下來。而臨時變數是shell內部程式定義的,它的使用範圍僅限於定義它的程式,出了本程式就不能再使用了。

工具:echo命令,用來回顯後面的字串

環境變數:

1. path,路徑的環境變數,指的是當前系統提供的程式執行的路徑。會顯示程式的執行路徑。

2. home,顯示當前使用者所屬的家路徑。

3. hostname(顯示當前的主機名)

4. logname,顯示當前shell終端的使用者登入名

如何修改環境變數呢

我們使用export命令來對環境變數進行新增和充實

注意幾點,此處新增的路徑為/home/pandachow,需要在後面新增冒號,意思為將新增的路徑加原來的path變數的中,再一起賦給path。我們使用echo可以看到path變數已經成功修改了。

下面是臨時變數,也就是使用者自定義的變數,這種變數的一般命名和賦值的形式是:變數名=字串

上面的例子中,可以看到,開始將/home/.../matrix.cpp這個字串(也就是路徑)賦給了myfile這個變數名,當然是我們的自定義變數。然後再echo $myfile的時候,就看到了該檔案的路徑名。

在shell中的輸入/輸出可以使用read命令來由標準輸入讀取資料,然後賦給指定變數。一般格式為:

read 變數1 [變數2].......

shell中的特殊字元,shell裡除使用普通字元意外,還會使用一些特殊字元,他們都有一些特殊的含義,在使用的時候需要注意他們表示的意義和作用範圍。

1. 萬用字元,萬用字元主要用於模式匹配。例如檔名匹配,路徑名搜尋,字串查詢等等。

2. 引號,引號分為單引號和雙引號。雙引號裡面除了$, / 和倒引號仍然保留其特殊用途 ,其餘字元均視為普通字串。單引號裡面所有的字元都視作普通字串。

輸入輸出重定向

1. 輸入重定向,輸入重定向(<) 是指將檔案的內容輸出到電腦螢幕上,也就是顯示在終端裡。

2. 輸出重定向,輸出重定向( >) 是指將乙個命令(或可執行程式)的標準輸出重定向到指定檔案。這樣改命令的輸出結果就不在螢幕上顯示,而是寫入指定的檔案中。上面的例子中,可以看到,開始將/home/.../matrix.cpp這個字串(也就是路徑)賦給了myfile這個變數名,當然是我們的自定義變數。然後再echo $myfile的時候,就看到了該檔案的路徑名。

在上面的例子中,可以看到,命令who的結果並沒有顯示在終端裡,而是被寫入乙個abc檔案(這個檔案可以事先不存在,執行輸出重定向的時候系統自動建立),cat這個abc檔案之後,可以看到who的結果已經被寫入了abc這個檔案當中。

注釋,管道和後台命令

1. 注釋。如前面所介紹的,shell程式中的注釋使用#號。

2. 管道線。在linux中,管道是用豎槓(|)來隔開若干個命令組成的序列,例如

前面是ls -l $home,等同於:ls -l /home/pandachow,因此是列出/home/pandachow/這個目錄下的所有檔名,並顯示他們的許可權,管道線後面跟著的是wc -l,這個是顯示文字行數,在列出檔名之後使用這個命令就是列出當前目錄下檔案的數目+1,這裡顯示18個是已經包括了乙個前面統計的total 156這一行。

我們使用ps -e來顯示當前所有的程序名(ps -f, 能顯示程序的呼叫路徑),管道線之後是用grep命令來進行名稱過濾,只提取出名字裡含有player的。前面會顯示它的pid程序號,如果我們想關閉某個命令,可以在終端輸入kill+程序號,例如:

kill 28071

即可關閉剛才的smplayer程序。

管道命令中,有一類又叫做過濾器,好比從前乙個命令中得到輸入,使用這個命令之後再輸出結果,類似過濾的效果。這樣的命令常用的有:grep,tail,sort和wc等。

乙個管道線也會有多個命令

後台命令

有時候,我們不希望在前台看到命令的執行過程,可以在一條命令的末尾加上&符號,可以實現命令後台執行。

前台模式中,雖然程式在執行,但是這時候我們並不是執行其他命令,只能用強制結束它之後才能繼續使用。

後台模式中,程式在後台執行,因此系統在執行建立程序的時候,在終端上顯示這個這個程序的pid,方便我們控制。因此類似這樣的乙個沒有自帶終止條件的程式是很危險的,因為他會在後台執行,但是我們卻又不能直接控制它,此時,仍然可以在終端裡輸入其他命令,只不過會被這個後台的輸出打斷。因此我們使用kill+程序號來終止這個程序。

Linux shell 指令碼 編寫

let 整數運算 let x x 1 或let x 邏輯卷標 表示意思 1 關於檔案與目錄的偵測邏輯卷標!f常用!偵測 檔案 是否存在 eg if f filename d常用!偵測 目錄 是否存在 b偵測是否為乙個 block 檔案 c偵測是否為乙個 character 檔案 s偵測是否為乙個 s...

編寫 Servlet 程式 1

建立servlet 大部分分三步 一 建立動態web工程 在以前的博文,已經說過。搭建個性j2ee企業應用 系列1 二 建立servlet類 在eclipse 中選擇 new web servlet 如圖 輸入類名 方法選擇 doget 和 dopost 完成建類。在完成時,會有許多,沒有定義的現象...

用Delphi編寫安裝程式 1

用delphi編寫安裝程式 1 當你完成乙個應用軟體的開發後,那麼你還需要為該軟體做乙個規範化的安裝程式,這是程式設計的最後一步,同時也是很重要的一步,因為執行安裝程式往往是使用者做的第一步操作。很多報刊文章介紹了許多如何利用installshield等工具軟體來製作安裝程式的方法,這種辦法可以很快...