shell程式設計基礎(一)

2021-07-13 06:44:34 字數 3202 閱讀 7026



一、命令列

命令列結構:命令名、命令選項和命令引數三部分內容組成,中間以空格或製表符等空白字元分隔。如下:

命令名  命令選項  命令引數

command [option] [parameter]

命令選項通常以減號「-」開始的單個字元,主要用於限定命令的具體功能,同時也決定命令的最終執行結果

選項可以單獨給出,也可以組合使用。如果選項後面有引數,選項與引數必須單獨列出。

命令選項可以省略,命令引數也可以省略,命令名必須提供。

命令列只包含命令名時,命令選項和引數採用預設值。

命令列一次輸入多個命令時,命令之間使用分號;分隔

[root@mrhcatxq01 ~]# date     #命令列只有命令名,選項和引數預設值

thu mar 24 16:14:38 cst 2016

[root@mrhcatxq01 install_cacti]# date "+%y%m%d"

20160324

[root@mrhcatxq01 ~]# uname -a     #命令列有命令名、命令選項

linux mrhcatxq01 2.6.32-358.el6.x86_64 #1 smp tue jan 29 11:47:41 est 2013 x86_64 x86_64 x86_64 gnu/linux

[root@mrhcatxq01 ~]# ls /etc/passwd     #命令列有命令名、命令引數

/etc/passwd

[root@mrhcatxq01 ~]# ls -l /etc/passwd     #命令列有命令名、命令選項、命令引數

-rw-r--r--. 1 root root 1800 feb 22 02:18 /etc/passwd

[root@mrhcatxq01 ~]# cd /install_cacti/

[root@mrhcatxq01 install_cacti]# ls -la     #命令選項組合使用

total 8464

drwxrwxrwx.  3 root root    4096 mar 24 01:00 .

dr-xr-xr-x. 29 root root    4096 mar 10 03:39 ..

-rw-r--r--.  1 root root 2594409 feb 22 01:43 cacti-0.8.8f.tar.gz

-rw-r--r--   1 root root  401737 mar 24 01:00 cacti_backup_20160324.sql

-rwxr-xr-x   1 root root     326 mar 21 13:58 cacti_backup.sh

[root@mrhcatxq01 install_cacti]#

[root@mrhcatxq01 install_cacti]# sort -t :  -k 4 -n -r /etc/passwd     #選項後有引數,必須單獨列出

nfsnobody:x:65534:65534:anonymous nfs user:/var/lib/nfs:/sbin/nologin

cacti:x:501:501::/home/cacti:/bin/bash

tomcat:x:500:500::/home/tomcat:/bin/bash

rtkit:x:499:496:realtimekit:/proc:/sbin/nologin

pulse:x:497:494:pulseaudio system daemon:/var/run/pulse:/sbin/nologin

abrt:x:173:173::/etc/abrt:/sbin/nologin

二、重定向

> 輸出重定向(覆蓋)  command > outputfile 檔案存在,則覆蓋原來的內容,否則建立檔案

>> 輸出重定向(追加) command >> outputfile 檔案存在,則追加新內容至檔案末尾,否則建立檔案

< 輸入重定向   command < inputfile 讀取檔案內容作為輸入資料

標準輸出和標準錯誤輸出重定向到不同檔案:(1表示標準輸出描述符;2表示標準錯誤輸出描述符)

command > standard.output 2> standard.error 或 command 1> standard.output 2> standard.error

標準錯誤輸出重定向到標準輸出:

command &> output 或 command > output 2>&1    (2>&表示 標準錯誤輸出2重定向》到後面指定的檔案描述符,這裡檔案描述符是1,即標準輸出)

i>&j 把檔案描述符i表示的輸出重定向到檔案描述符j表示的重定向檔案。

常用:command > /dev/null 2>&1

三、管道

管道:前一命令的輸出作為後一命令的輸入   command1 | command2

[root@u1acatap01 configs]# ls -lrt

total 88

-rw-rw-r-- 1 apache cacti    59 may 24 17:33 index.php

-rw-rw-r-- 1 apache cacti  1267 may 30 01:52 ******.conf

-rw-rw-r-- 1 apache cacti 15269 jun  3 16:57 global_prod.confbak

-rw-rw-r-- 1 apache cacti 16660 jun  7 11:34 global_prod.conf

-rw-rw-r-- 1 apache cacti 10342 jun  7 15:07 final_prod.conf

-rw-r--r-- 1 root   root  10342 jun  7 15:11 final_prod.confbak22

-rw-r--r-- 1 root   root  16660 jun  7 15:12 global_prod.confbak22

[root@u1acatap01 configs]# ls -lrt|grep final_prod.conf

-rw-rw-r-- 1 apache cacti 10342 jun  7 15:07 final_prod.conf

-rw-r--r-- 1 root   root  10342 jun  7 15:11 final_prod.confbak22

[root@u1acatap01 configs]#

Shell 程式設計基礎

2 shell 程式設計基礎 shell 簡介認識後台程式 bash 程式設計熟悉 linux 系統下的編輯環境 熟悉linux 下的各種 shell 熟練進行 shell 程式設計熟悉 vi基本操作 熟悉emacs 的基本操作 比較不同 shell 的區別編寫乙個測試伺服器是否連通的 shell ...

shell程式設計基礎

1.熟悉shell 1.1 基本語法 bin bash shell必須以上面所示的開頭,以 開頭的語句表示注釋。1.2 新增可執行許可權 chmod u x 檔名 1.3 建立簡單的shell bin bash echo n hell user,today is date echo good luc...

shell 程式設計基礎

1.基礎正規表示式 aa 表示至少包含乙個a的行,a 匹配所有內容 匹配任意乙個字元,精準匹配 grep 提取文字中的字元 grep v root 取反不包括root的行 2.cut 命令 f第幾列 d分隔符 3.printf ni輸出n個整數 ns n個字元 m.nf m.nprintf s t ...