Shell 指令碼學習筆記 常用命令

2021-07-05 06:41:29 字數 2845 閱讀 1709

可以對靜態庫進行操作 (create and maintain library archives)

# 檢視庫中所包含的檔案列表

ar -t libx-armv7.a

# __.symdef sorted

# common.o

# counter.o

# cv.o

# debug.o

# dll.o

# mu.o

# mu_wait.o

# note.o

# once.o

# sem_wait.o

# time_internal.o

# wait.o

# clock_gettime.o

# nsync_semaphore_mutex.o

# per_thread_waiter.o

# yield.o

# time_rep_timespec.o

# nsync_panic.o

# 解壓出object file(即.o字尾檔案)

ar xv libx-armv7.a

# 使用指定的 .o 檔案生成靜態庫

ar rcs libx-armv7.a armv7/*.o

# 檢視靜態庫資訊()

lipo -info path.a

# 輸出:chitectures in the fat file: /path/desktop/nsync.a are: i386 armv7 armv7s x86_64 arm64

# 生成只包含 armv7 的靜態庫

lipo /path/desktop/nsync.a -thin armv7 -output libx-armv7.a

# 合併指定的靜態庫為乙個(fat)

lipo -create

a.a b.a c.a

主要用於文字的分割和處理

格式:

awk 『』 file/input stream

eg: awk 『』

awk 預設使用「空格」作為分隔符,使用引數 -f 可以自定義分隔符

詳見:linux awk命令詳解

命令可以對來自標準輸入的字元進行替換、壓縮和刪除。它可以將一組字元變成另一組字元

來自:

格式:

tr(選項)(引數)

eg:

echo hehe | tr -d e

hhecho hehe | e a

haha

詳見:tr 命令

ls -a | grep name.extension。管道命令極大的方便了指令碼使用。但是並不是所有的工具都支援管道命令比如「ls」命令。而xargs就可以打破這種限制。

格式:

commend1 | xargs [option] commend2

eg:

pwd | xargs ls

常用引數

引數含義

示例釋義

-i可以將左側輸出的引數逐條作為右側的引數。位置由「{}」指定

ls | xargs -i cp {} {}.bak

將當前路徑下的可見檔案賦值乙份,並且加上「.bak」字尾

-0(零)

當sdtin含有特殊字元時候,將其當成一般字元,如/』空格等

(沒有引數)

將左側輸出作為右側命令的引數

pwd | xargs echo 「haha」

輸出為:haha 「路徑」

語法 set(選項)(引數)

引數引數

含義-a

標示已修改的變數,以供輸出至環境變數。

-b使被中止的後台程式立刻回報執行狀態。

-c轉向所產生的檔案無法覆蓋已存在的檔案。

-dshell缺省會用雜湊表記憶使用過的指令,以加速指令的執行。使用-d引數可取消。

-e若指令傳回值不等於0,則立即退出shell。

-f取消使用萬用字元。

-h自動記錄函式的所在位置。

-hshell:可利用」!」加《指令編號》的方式來執行history中記錄的指令。

-k指令所給的引數都會被視為此指令的環境變數。

-l記錄for迴圈的變數名稱。

-m使用監視模式。

-n唯讀取指令,而不實際執行。

-p啟動優先順序模式。

-p啟動-p引數後,執行指令時,會以實際的檔案或目錄來取代符號連線。

-t執行完隨後的指令,即退出shell。

-u當執行時使用到未定義過的變數,則顯示錯誤資訊。

-v顯示shell所讀取的輸入值。

-x執行指令後,會先顯示該指令及所下的引數

example:

使用declare命令定義乙個新的環境變數」mylove」,並且將其值設定為」visual c++」,輸入如下命令:

declare mylove='visual c++'

#定義新環境變數

再使用set命令將新定義的變數輸出為環境變數,輸入如下命令:

set

-a mylove #設定為環境變數

執行該命令後,將會新新增對應的環境變數。

使用者可以使用env命令和grep命令分別顯示和搜尋環境變數」mylove」,輸入命令如下:

env | grep mylove #顯示環境變數值
此時,該命令執行後,將輸出查詢到的環境變數值。

shell指令碼常用命令

basename 1.basename 是去除目錄後剩下的名字 example shell temp home temp 1.test shell base basename temp shell echo base 結果為 1.test 2.dirname 是取目錄 example shell t...

shell指令碼常用命令(乾貨)

本文適合初學者快速入門新建乙個字尾名為.sh的檔案就可以開啟shell指令碼之旅了 shell指令碼的首行要這樣寫 usr bin bash 或者可以寫成 usr bin env bash usr bin env bash的 優點 1.使用者不需要去尋找程式在系統中的位置 因為在不同的系統,命令或程...

shell指令碼常用命令簡單總結

整理自個人筆記和網路 1.shell中位置引數 0 這個程式的執行名字 n 這個程式的第n個引數值,n 1.9 這個程式的所有引數,此選項引數可超過9個。這個程式的引數個數 這個程式的pid 指令碼執行的當前程序id號 執行上乙個背景指令的pid 後台執行的最後乙個程序的程序id號 執行上乙個指令的...