shell

1、mkdir -p
參數P代表parents,表示遞歸創建目錄。
列如:
如果要創建目錄A並創建目錄A的子目錄B,沒有用-p的情況下是mkdir 2次
如果用-p 可以直接創建2個目錄 mkdir -p A/B 就可以。


2、linux shell中shift的用法

位置參數可以用shift命令左移。比如shift 3表示原來的$4現在變成$1,原來的$5現在變成$2等等,原來的$1$2$3丟棄,$0不移動。不帶參數的shift命令相當於shift 1。
非常有用的 Unix 命令:shift。我們知道,對於位置變量或命令行參數,其個數必須是確定的,或者當 Shell 程序不知道其個數時,可以把所有參數一起賦值給變量$*。若用戶要求 Shell 在不知道位置變量個數的情況下,還能逐個的把參數一一處理,也就是在 $1 後爲 $2,在 $2 後面爲 $3 等。在 shift 命令執行前變量 $1 的值在 shift 命令執行後就不可用了。

示例如下:

#測試 shift 命令(x_shift.sh)
until [ $# -eq 0 ]
do
echo "第一個參數爲: $1 參數個數爲: $#"
shift
done
執行以上程序x_shift.sh:
$./x_shift.sh 1 2 3 4

結果顯示如下:

第一個參數爲: 1 參數個數爲: 4
第一個參數爲: 2 參數個數爲: 3
第一個參數爲: 3 參數個數爲: 2
第一個參數爲: 4 參數個數爲: 1

從上可知 shift 命令每執行一次,變量的個數($#)減一,而變量值提前一位,下面代碼用 until 和 shift 命令計算所有命令行參數的和。

#shift 上檔命令的應用(x_shift2.sh)
if [ $# -eq 0 ]
then
echo "Usage:x_shift2.sh 參數"
exit 1
fi
sum=0
until [ $# -eq 0 ]
do
sum=`expr $sum + $1`
shift
done
echo "sum is: $sum"

執行上述程序:

$x_shift2.sh 10 20 15

其顯示結果爲:

45

  Shift 命令還有另外一個重要用途, Bsh 定義了9個位置變量,從 $1$9,這並不意味着用戶在命令行只能使用9個參數,藉助 shift 命令可以訪問多於9個的參數。

  Shift 命令一次移動參數的個數由其所帶的參數指定。例如當 shell 程序處理完前九個命令行參數後,可以使用 shift 9 命令把 $10 移到 $1

3.Linux文件種類
LINUX系統中,任何設備都是文件,連數據通信的接口也有專門的文件負責。下面我們來看看都有哪些種類的文件:

用 ls -l 查看的每一列的那10個字符,第1個字符爲文件的類型。

普通文件(-)
就是一般我們進行訪問類型的文件,大致可分爲:
純文本文件(ASCII):可以直接讀到的數據文件,例如數字、字母等,可以用“cat”來讀出裏面的內容。
二進制文件(binary):LINUX中的可執行文件(scripts,文字批處理文件不算)就是這種格式,例如 ls,cat等。
數據格式文件(data):一種以特定格式存儲的文件(有些程序在運行過程中會讀取某些特定格式文件),用 cat 讀取時會出現亂碼,此類文件能通過 last 這個命令讀出來。
目錄(d) directory

連接(l) link
類似於windows裏的快捷方式。

設備與設備文件(device)
與系統外設及存儲等相關的一些文件,通常都集中在 /dev 這個目錄,一般分爲兩種:
塊(block)設備文件:存儲數據,提供系統隨機訪問的接口設備(如硬盤、軟盤等),第一個屬性爲 (b)
字符(character)設備文件:一些串行端口的接口設備(如鍵盤、鼠標等),第一屬性爲(c)。

套接字(sockets)
這種類型文件通常被 用在網絡上的數據連接,是一種數據接口文件,第一屬性爲(s),通常在 /var/run 這個目錄中可以看到這個類型的文件。

管道(FIFO,pipe)
用來解決多個程序同時訪問一個文件所造成的錯誤問題,first-in-first-out(FIFO),第一屬性爲(p)。

soket與FIFO比較難以理解,這兩個東西與進程有關係(process)。

另外一個與windows區別較大的是,linux系統中是沒有所謂文件“擴展名”的,一個linux文件是否能被執行,與它的第一列的10個屬性有關,與文件名根本一點關係也沒有。
主要看這個文件是否具有“x”權限(不過可以被執行與是否能執行成功不一樣,是否能執行成功要看該文件的內容)。

發佈了51 篇原創文章 · 獲贊 20 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章