shell:
shell(外殼)是乙個命令直譯器(也是一種應用程式),處於kernel(核心)和使用者之間,負責把使用者的指令傳遞給核心並且把執行結果回顯給使用者,同時,shell也可以作為一門強大的指令碼語言。
終端:
接受shell命令的輸入輸出程式,ubuntu預設的終端應用是terminal。windows系統中時cmd命令視窗。
shell直譯器:
shell有多種直譯器實現,目前多數linux發行版本預設是bash。可以近似地認為linux shell=bash而windows=cmd,都是命令列直譯器,都是使用者與作業系統的互動介面。但是bash要比cmd強大很多
指令碼編寫工具:
gedit(ubuntu預裝)、vim
shell中的識別符號大小寫敏感,系統命令的引數大小寫也有不同的意義。
shell空格規則:=左右必須無空格,其他符號加空格準沒錯,如[ ] | 等。
shell是解釋型的指令碼語言,變數不區分資料型別,均以字串形式儲存,通過$符實現對變數的引用。因此,將變數列印輸出時最好均帶上雙引號,防止變數中的空格(如日期)截斷字元,導致輸出異常。如:printf "$username"
常規命令
命令解釋
reset
清除螢幕
clear
清屏(向後翻滾乙個螢幕,內容還在)
alias cls=』clear』
為命令clear起別名為cls
printf
列印,引數式(c語言)
echo
列印+自動換行,但不轉義
echo -e
列印+自動換行,轉義輸出,如\n換行
\enter
續行符,由反斜槓+enter鍵組成
date
系統命令,獲取當前日期時間
幫助命令
-命令 –help
命令解釋
man 命令
命令解釋,需安裝manpages-zh
系統資訊
-printenv shell
檢視shell的實際實現
hostname
主機名whoami
當前使用者
uname -a
作業系統資訊
ps -u
在普通使用者模式下以 root 許可權檢視程序
du –sh /home
顯示/home目錄下,磁碟使用情況的總和
chmod a+x
為所有使用者增加執行許可權
sleep
執行緒睡眠
檔案io-cd
進入目錄
~根目錄(/home/使用者名稱)
./當前目錄
../上級目錄
mkdir
make directory建立目錄
touch
建立檔案
cpcopy複製檔案或目錄
mvmove移動檔案或目錄,同目錄時相當於重新命名
rm -r
remove刪除檔案或目錄,需謹慎操作。引數-r表示遞迴刪除子目錄和檔案
ls -l
list列出當前目錄下的檔案與子目錄,引數-l表示以長列表形式顯示詳細記錄
catcatch獲得檔案內容並輸出
邏輯算術
--ne
not equals 不等
-gtgreat than 大於
-ltless than 小於
expr
類似運算函式,將之後的字串當做表示式處理,完成加減乘除冪模。用法num=`expr $num - 1`
+-*/%^
注意,運算子兩側均要有空格
指令碼命令
-vim
使用vim建立shell指令碼,進入編輯器
:wq儲存vim編寫的指令碼並退出編輯器。首先要按esc進入命令模式,然後輸入:wq
:set number
vim顯示行號
./指令碼.sh
執行shell指令碼,需./指定當前目錄
#!/bin/bash
指定shell直譯器
#單行注釋
:<
多行注釋內容
『』(單引號對)
表示文字,僅僅表示文字
「」(雙引號對)
表示文字,但遇到$(引數替換)與`(反引號,命令替換)會進行替換
=變數賦值,等號左右兩側均不能有空格,否則會把變數名當做命令處理,如num=1
$引數替換符,引用變數,表示某個字串是乙個變數如num2=$num
`命令`
命令替換符(反引號,tab上方),呼叫函式,並將函式返回值輸出給變數(理解為呼叫函式後再tostring())
$(命令)
命令替換符推薦用法,不推薦使用反引號
$#指令碼輸入的引數個數
$1 $2 $n
引用輸入的第1.2.n個引數
|管道符,將前乙個命令的輸出作為後乙個命令的輸入,將命令串起來
sed管道命令,按行為單位處理文字,替換字串等
awk管道命令,根據規則處理文字
grep
管道命令,在指定字串中查詢特定內容
gsub
字串匹配
tee管道命令,讀取標準輸入的資料,並將其內容輸出成檔案
exit
退出指令碼,0正常退出,1異常退出(windows下1正常退出,0異常退出)
export
設定/獲取環境變數
envvmstat
統計作業系統的相關資訊
trap除錯
流程控制語句
# [左右必須有空格,]左側有空格,右側可無
elif [ … ]; then
else
fi
#switch
case
$num
in"1")
;;"2")
;;*) # 別忘了預設
;;esac
#while
while [ $n –gt 0 ]; do
done
#for
for 變數 in 列表; do
done
shell 學習筆記
shell 是解釋型語言 移植性強課對應不同的直譯器 bin sh f 變數開頭以乙個字母或者下劃線,後接任意長度的字母 數字或者下劃線。命令 commod op 引數 輸入 輸出 重定向管道 echo printf 大口如小口出。特殊檔案 dev null bit bucket 刪除所有輸入的資料...
shell學習筆記
shell指令碼在linux下開發經常需要用到,shell的指令碼可以幫助使用者自動化地和作業系統進行互動,起到了提高效率的作用。學習一門語言,通常需要實戰演練編碼除錯,shell該如何除錯呢?使用bash x命令即可。vi demo.sh敲入 bin bash echo 1 echo date y...
shell學習筆記
1 shell檔案的第一行都必須是 bin sh 也可以有其他路徑,這裡我們只以這個為例 2 定義變數 a value 中間不能有空格 呼叫方法 echo a 3 shell常用的條件測試 備註 方括號兩側必須要有空格,f lt等兩側也必須要有空格 a f file 判斷 file是否是乙個檔案 b...