close

1. Linux中命令順序執行:
command1;command1
命令1結束,順序執行命令2
# echo Hello World! ; pwd ; ls

command1&&command2
第一個命令成功結束執行第二個命令
# ls /home/alex && cd /home/alex

command1||command2
第一個命令執行不成功才執行第二個命令
# ls /home/alex/copy || cp copy  /home/alex
note: 只有當目錄/home/alex下不存在copy文件時,才將該文件復制到/home/alex目錄下,如果該目       錄下已經存在該文件,則不再進行復制

2. Linux $標識符意思
$0:        存儲命令名
$1~ $n:    存儲第1個到第n個命令參數
$#:        存儲參數個數
$*:         存儲所有參數,作為一個字符串
$@:         存儲所有參數,作為一個字符串數組
$$:        當前命令的進程號
$!:        前一個命令的進程號
$?:        前一個命令的返回結果

3. 變量賦值
${var:-value}: 如果變量var存在,返回變量var值,否則返回value
${var:=value}: 如果變量var存在,返回變量var值,否則var=value, 返回value
${var:?value}: 如果變量var存在,返回變量var值,否則輸出錯誤消息value
${var:+value}: 如果變量var存在,返回變量var值,否則不返回任何值
${var:offset[:length]}: 返回變量var中offset開始length長度字符串,第一位offset=0

4. Linux中軟鏈接與硬鏈接區別
1. 軟鏈接可以跨越文件系統,硬鏈接不可以
2. 關於I節點。硬鏈接不管有多少個,都指向的是同一個I節點,即inode number相同,會把節點連接       增加,只要節點連接數不是0,文件就一直存在,不管刪除的是源文件還是鏈接文件,只要有一個存         在,文件就存在,當修改源文件或鏈接文件中任何一個的時候,其它文件都會同步修改。軟鏈接不直接       使用I節點作為文件指針,而是使用文件路徑名作為指針,所以刪除鏈接文件對源文件無影響,但是刪       除源文件,鏈接文件就會找不到指向的文件,軟鏈接有自己的inode,並在磁盤上有一小片空間存放路       徑名
3. 軟鏈接可以對一個不存在的文件進行鏈接
4. 軟鏈接可以對目錄進行鏈接

5. Shell 通配符
?:        表示任意單個字符
*:        表示任意長度的任意字符串
[]:        表示匹配放在[]中的字符集中的任意一個字符
{}:    將大括號中 的字符串以及前導字符和後繼字符串作為匹配條件

# ls *.txt    
    #顯示當前目錄下所有以.txt結尾的文件
# ls 20.?
    #顯示所有由四個字符組成的文件名,且前3個字符必須是“20.”
# ls 2[0, 1] *
    #顯示當前目錄下所有以“20”或“21”開頭的文件, 通配符[]在表示一個連續的數字或字符時可                       以使用“_”,例如[1_9]表示數字1~9,[1~3, 8, 9]表示1,2,3,8,9中任意一個數字。
# echo m{oon,op,ud}s
    #顯示moons, mops, muds

6. 單引號、雙引號及反引號
雙引號(“ ”):在雙引號中的字符,除了“$”,""","'",和“\”以外的所有字符都被翻譯成字符本身
單引號('):在單引號中的所有字符(如“$”,""","'",和“\”)都失去特殊意義,而成為普通字符
反引號(`): Esc下面的那個鍵,在反引號中的的字符被解釋成命令

# echo "$PATH"
/usr/kerberos/sbin...
#echo "I am $USER"
I am root
# echo '$PATH'
$PATH
# echo Today \' year is `date +%y`
Today ' year is 10

7. 運行腳本
1.  通過chmod命令把文件權限設成可讀、可執行然後直接執行該可執行文件
$ chmod u+x 腳本文件名
$ ./腳本文件名及其參數
2. 直接使用shell的啟動命令來執行腳本
$ bash 腳本文件名及其參數
$ bash 腳本文件名及其參數
$ tcsh 腳本文件名及其參數
$ sh 腳本文件名及其參數
$ tcsh tcshsript
3. 使用bash內部命令“source”或“.”運行shell腳本
$ source 腳本文件名及其參數
$ . 腳本文件名及其參數
$ source hello
hello world!

8. 創建變量
1. declare 或 typeset 創建變量
如:declare -r x    #創建只讀變量x
2. 直接給變量賦值來創建變量,為變量賦值,變量名前不應加美元符號"$", 如下
CITY=Beijing    #"=" 前後不要有空格
3. 使用變量時,前面要加美元符號“$”
如:echo $SHELL
4. 變量使用舉例:
# order=22
# echo "Tom is ${order}nd"
輸出:Tom is 22nd   
5. 清除變量
uset x    #只能清楚非只讀變量

9. read命令賦值
1. 多個數據或變量之間用空格分隔
2. 若變量變量個數與輸入數據個數相等,則對應賦值
3. 若變量變量個數大於輸入數據個數相等,則沒有輸入數據的變量取空值
4. 若變量變量個數小於輸入數據個數相等,則多余的數據賦值給最後一個變量

10. 數組
1. 數組定義
name=(element1 element2 ...)
e.g.: name=("alex" "jim")
2. 顯示系統所有數組
# declare -a
3. 數組復制
all=("${name[*]}")    //將數組name的全部內容作為一個元素復制到all中,即all=("alex jim")
list=(""${name[@]})        //將數組name的內容復制到一個新數組list中
4. 數組元素個數
${#name[*]}
5. 數組元素的長度
${#name[ num]}

11. 算數運算
expr: 表達式處理命令,5種算數運算:+ - * / %
# x=`expr $b / $a`
# x=`expr $b % $a`
let: 為變量賦值
# let y=x / 2

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 成功运行 的頭像
    成功运行

    成功运行的部落格

    成功运行 發表在 痞客邦 留言(0) 人氣()