1、bash如何展開命令行
把命令行分成單個命令詞 展開別名 展開大括號的聲明({}) 展開波浪符聲明(~) 命令替換$() 和 ``) 再次把命令行分成命令詞 展開文件通配(*、?、[abc]等等) 準備I/0重導向(<、>) 運行命令
由上到下順序進行命令行展開
2、防止命令行擴展
反斜線(\)會使隨后的字符按原意解釋 $ echo Your cost: \$5.00 Your cost: $5.00 加引號來防止擴展 ? 單引號(’)防止所有擴展 ? 雙引號(”)也防止所有擴展,但是以下情況例外: $(美元符號) - 變量擴展 `(反引號) - 命令替換 \(反斜線) - 禁止單個字符擴展 !(嘆號) - 歷史命令替換
3、bash的配置文件:
/etc/profile /etc/profile.d/*.sh /etc/bashrc
個人配置:
~/.bash_profile ~/.bashrc
4、shell登錄的兩種方式
交互式登錄
(1)直接通過終端輸入賬號密碼登錄 (2)使用“su - UserName” 切換的用戶 執行順序:/etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc非交互式登錄
(1)su UserName (2)圖形界面下打開的終端 (3)執行腳本 (4)任何其它的bash實例 執行順序: ~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh
Profile類
profile類:為交互式登錄的shell提供配置
全局:/etc/profile, /etc/profile.d/*.sh
個人:~/.bash_profile
功用:
(1)用于定義環境變量(2)運行命令或腳本
bashrc類:為非交互式和交互式登錄的shell提供配置
全局:/etc/bashrc
個人:~/.bashrc
功用:
(1) 定義命令別名和函數 (2) 定義本地變量
5、編輯配置文件立即生效
修改profile和bashrc文件后需生效 ,兩種方法:
1 重新啟動shell進程 2 .或source
例:
. ~/.bashrc
Bash 退出任務
保存在~/.bash_logout文件中(用戶) 在退出登錄shell時運行 用于 ? 創建自動備份 ? 清除臨時文件
6、$-變量
h:hashall,打開這個選項后,Shell 會將命令所在的路徑hash下來,避免每次都要查詢。通過set +h將h選項關閉 i:interactive-comments,包含這個選項說明當前的 shell 是一個交互式的 shell。所謂的交互式shell,在腳本中,i選項是關閉的。 m:monitor,打開監控模式,就可以通過Job control來控制進程的停止、繼續,后臺或者前臺執行等。 B:braceexpand,大括號擴展 H:history,H選項打開,可以展開歷史列表中的命令,可以通過!感嘆號來完成,例如“!!”返回上最近的一個歷史命令,“!n”返回第 n 個歷史命令
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/95694