1、Shell腳本運行方式 創建Shell腳本文件,一般以.sh結尾(如:example.sh) Shell腳本運行方式如下: 添加 ‘x’ 執行許可權(相對或絕對路徑執行) 使用bash或source(.)命令調用腳本文件 2、Bash的基本功能 (1)、歷史命令history -c:清空歷史命令 ...
1、Shell腳本運行方式
創建Shell腳本文件,一般以.sh結尾(如:example.sh)
Shell腳本運行方式如下:
- 添加 ‘x’ 執行許可權(相對或絕對路徑執行)
- 使用bash或source(.)命令調用腳本文件
2、Bash的基本功能
(1)、歷史命令history
-c:清空歷史命令
-w:將緩存中的歷史命令保存到配置文件當中(~/.bash_history)
調用歷史命令的方法:
①、使用上、下鍵調用
②、使用“!n”重覆執行第n條歷史命令
③、使用“!!”重覆執行上一條命令
④、使用“!字元”重覆執行最近一條以此字元開頭的命令
(2)、命令別名alias
格式:alias 別名=‘原命令’ [選項]
例:alias ls=‘ls -l’
配置文件:
單個用戶:~/.bashrc
所有用戶:/etc/bashrc
(對此處兩個配置文件不太明白同學,可以理解為一個為全局變數,一個為局部變數。)
不同類型的命令執行優先順序:
No.1、相對或絕對路徑的方式執行命令
No.2、別名命令
No.3、bash內置命令
No.4、根據環境變數定義的目錄查詢到的命令
(3)、Bash常用快捷鍵
3、輸入輸出重定向
(1)、Bash的標準輸入輸出
設備 設備文件名 文件描述符 類型
鍵盤 /dev/stdin 0 標準輸入
顯示器 /dev/stdout 1 標準正確輸出
顯示器 /dev/stderr 2 標準錯誤輸出
(2)、輸出重定向
(3)、輸入重定向
命令:wc 【選項】 【文件名】
-c:統計字數(字元)
-w:統計單詞數(字元串)
-l :統計行數
例如:
wc < 文件(統計文件中的字數,單詞數,行數)
wc << 字元(統計從開始字元到結束字元中的單詞,字,行數)
4、多命令順序執行
5、管道符
格式:命令1 | 命令2(將命令1的標準輸出作為命令2的標準輸入)
xargs實現將命令1的標準輸出作為命令2的選項
例如:
echo “--help” | cat
echo “--help” | xargs cat
6、通配符
7、Bash中其他特殊符號
父Shell和子Shell(使用pstree查看)
使用Shell不影響父Shell,在()中執行的命令,在新開啟Shell中執行,不影響本Shell
8、變數
(1)、變數規範
可以由字母、數字和下劃線組成,但是不能以數字開頭,變數中間不能有空格。
(2)、註意事項
v 在Bash中,變數的預設類型都是字元串型,如果需要進行數值運算,則需要轉換為數值型
v 變數用等號鏈接值,等號左右兩側不能有空格
v 變數若有空格,需要使用單引號或雙引號包括
v 雙引號“”括起來的$、|、``都有特殊含義
v 單引號括起來的都是普通字元
v 如果需要增加變數值,進行變數值疊加,”$變數名”或”${變數名}”,eg:PATH=$PATH:/sh
v 變數名建議大寫,易於區分
(3)、變數分類
v 用戶自定義變數
v 環境變數
v 位置參數變數
v 預定義變數
- 用戶自定義變數
a) 調用:
echo $變數名
例如:echo $PATH
b) 查看:
set [選項] ---- 直接回車顯示系統中所有變數
-u 調用沒有聲明的變數時會報錯(建議使用)
-x 命令執行前,先將命令輸出一次
c) 刪除:
unset 變數名
2、環境變數
a) 設置:
export 變數名=值------(聲明~/.bash_profile)
#export聲明的是環境變數
b) 查看:
env
常用格式: env | grep 變數
#set中包括env,env查詢環境變數,set查詢所有變數
c) PS1變數:定義命令提示符
PS1可支持以下選項:
v \d:顯示日期,格式為“星期月日”
v \H:顯示完整的主機名。如預設主機名“localhost.localdomain”
v \h:顯示簡寫主機名。如預設主機名“localhost”
v \t:顯示24小時制時間,格式為“HH:MM:SS”
v \T:顯示12小時制時間,格式為“HH:MM:SS”
v \A:顯示24小時制時間,格式為“HH:MM”
v \@:顯示12小時制時間,格式為“HH:MM am/pm”
v \u:顯示當前用戶名
v \v:顯示Bash的版本信息
v \w:顯示當前所在目錄的完整名稱
v \W:顯示當前所在目錄的最後一個目錄
v \#:執行的第幾個命令
v \$:提示符。如果是root提示符為“#”,如果是普通用戶提示符為“$”
3、調用格式:
d) LANG語系變數----定義主語系環境變數
i.查看Linux支持的語系
locale –a | more
ii.當前使用可用語系
locale
iii.查詢預設語系
cat /etc/sysconfig/i18n
iv.修改桌面版中文為英文
- 將當前語系改為en_US,預設是zh_CN
export LANG=en_US.UTF-8
- 執行命令進行文件名轉換
xdg-user-dirs-gtk-update
4、位置參數變數
v $*顯示所有參數(作為整體接收)
v $@顯示所有參數(分開接收)
v $#顯示參數個數
預定義變數
v $? 判斷上一條命令是否正常執行
錯誤數值非0,正確的是0
v $$ 當前進程的PID
v $!最後一個後臺執行的命令的進程
註意事項:
v 變數名可以自定義,如果不指定變數名,會把輸入保存入預設變數REPLY
v 如果只提供了一個變數名,則整個輸入行賦予該變數
v 如果提供了一個以上的變數名,則輸入行分為若幹字,一個接一個地賦予各個變數,而命令行上的最後一個變數取得剩餘的所有值
5、接受鍵盤輸入
格式:read [選項] [變數名]
選項:-p “提示信息”:在read等待時輸入的信息
-t 秒數 :read等待的秒數(到達秒數自動跳轉下一條)
-n 字元數 :read最多能接收的字元數
-s :隱藏輸入的信息
註:若特殊選項不換行,使用\n控制轉換符