shell命令學習之路

2021-10-05 12:57:12 字數 946 閱讀 5277

當shell指令碼具有可執行許可權時,用sh filename與./filename執行指令碼是沒有區別得。./filename是因為當前目錄沒有在path中,所有"."是用來表示當前目錄的。

sh filename 重新建立乙個子shell,在子shell中執行指令碼裡面的語句,該子shell繼承父shell的環境變數,但子shell新建的、改變的變數不會被帶回父shell,除非使用export。

source filename:這個命令其實只是簡單地讀取指令碼裡面的語句依次在當前shell裡面執行,沒有建立新的子shell。那麼指令碼裡面所有新建、改變變數的語句都會儲存在當前shell裡面。

make工具通過呼叫makefile檔案中的命令便可以對大型程式進行編譯,而makefile檔案中就包含了呼叫gcc去編譯多個原始檔的命令。

但是,很快又出現了乙個問題,如果我們的程式是跨平台的,如果換個平台makefile又要重新修改,這會很麻煩,所以就出現了cmake這個工具,通過cmake我們就可以快速建立出不同平台的makefile檔案。

而cmake又是根據cmakelists.txt來生成makefile檔案,這裡你可能覺得有點兒繞,我來總結一下,就是為了編譯乙個大型程式,你首先編寫cmakelists.txt。然後,通過cmake命令就可以生成makefile檔案。然後通過make命令就可以使用這個makefile檔案從而生成可執行檔案。

linux下獲取當前的目錄,需執行以下命令:

$(cd `dirname $0`;pwd)
其中

dirname $0,取得當前執行的指令碼檔案的父目錄

cd `dirname $0`,進入這個目錄(切換當前工作目錄)

pwd,顯示當前工作目錄(cd執行後的)

linux之路(七)shell命令

type命令 type command 複製 輸出命令型別 組合鍵功能 c u k 從當前游標向前 後刪除指令串 c a e 游標移到最前方 後方 跳脫單行輸入限制 在行尾輸入 然後enter,切記中間不要有空格。和php定義變數十分相似 輸出使用echo例如echo myvar 變數定義規則 可以...

SHELL 學習之路(5)sed和awk命令

sed stream editor 一次處理一行內容,處理時,把當前的行儲存在臨時緩衝區,處理完後,輸送到螢幕 sed 引數 命令 file p 顯示 d 刪除 a 新增 c 替換 i 插入1 p sed n p etc fstab 顯示 etc fstab中有 的行 sed n p etc fst...

《陣列》shell學習之路 四

定義陣列 用括號來表示陣列,陣列元素用 空格 符號分割開,長度不限制。如下 address shenzhen changsha shanghai 也可以單一去定義,但是下標可以是整數或算術表示式,其值應大於或等於0。address 0 shenzhen address 1 changsha addr...