shell必備知識

2021-06-28 11:21:32 字數 1389 閱讀 3149

一、在shell中經常需要測試一些變數的狀態,以下是部分測試條件

comparisons:

-eqequal to

-nenot equal to

-ltless than

-leless than or equal to

-gtgreater than

-gegreater than or equal to

file operations:

-sfile exists and is not empty

-ffile exists and is not a directory

-ddirectory exists

-xfile is executable

-wfile is writable

-rfile is readable

二、stdin, stdout, stderr分別等於幾?

the unix / linux standard i/o streams with numbers:

handle

name

description

0stdin

standard input

1stdout

standard output

2stderr

standard error

三、shell 指令碼中, $#、 $?、 #0分別代表什麼?

$#:傳遞個指令碼的引數個數

$?:最後執行命令的結束**;

$0:shell本身的檔名

$$:shell本身的pid

$!:shell最後執行的後台程序的pid

$- :

使用set命令設定的flag一覽 

$* :

所有引數列表。如"$*"用「"」括起來的情況、以"$1 $2 … $n"的形式輸出所有引數。 

$@ :

所有引數列表。如"$@"用「"」括起來的情況、以"$1" "$2" … "$n" 的形式輸出所有引數。

$1~$n :

新增到shell的各引數值。$1是第1引數、$2是第2引數…。 

find 搜尋檔案/ 搜尋資料夾

搜尋檔案: find ./ -type f | xargs grep "key_word"

搜尋資料夾: find ./ -type d | grep "key_word"

shell必備基礎知識

shell指令碼 規範的shell指令碼的一般組成。環境宣告 重定向出輸出 只收集前面命令的正確輸出 重定向輸入 覆蓋 追加 2 只收集前面命令的錯誤輸出 收集前面命令的錯誤與正確的輸出 2 將錯誤的變成正確的輸出 2 將正確的變為錯誤的輸出 dev null 黑洞路徑變數 以不變的名稱存放的可能會...

必備shell命令

toc 在編譯的時候,常用的比較長的命令或者路徑,可以用變數代替,例如l 使用的時候可以 l 開啟檔案或者目錄 等等。xdg open file url 列印 顯示字串 echo path 給命令去綽號 alias c clean 永久有效 vim bashrc 寫到末尾去。1,作用 在指定的範圍內...

Shell 指令碼 基礎知識點 入門必備

命名 shell指令碼以 sh為字尾 shell 是使用 c語言編寫的程式。告訴系統其後路徑所指定的程式即是解釋此指令碼檔案的 shell 程式。指的是根目錄 值得是當前目錄 表示傳入指令碼的引數的個數 shell 數值比較 可以通過這種方式來理解,e eq表示equal即相等的意思。l表示less...