【Shell】-- 基礎知識(2)
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控制轉換符
【Shell】-- 基礎知識(2)