shell高级(一)
?
Shell在/etc/shells中
?
Bash:Bourne-again Shell的縮寫
GNU計劃的一個組件
與Unix的Bourne Shell完全兼容
?
Bash優點
Bash支持命令行輸入、操作歷史查詢、快捷鍵、使用變量等功能。
支持通配符、別名、串操作、文件測試、×××算術運算
可以交互使用,或者作為腳本語言
超過60個shell變量
?
Bash缺點
資源型敏感,對CPU負擔重的程序
復雜的大項目
需要靈活的處理文件程序(逐行)
需要圖形用戶界面的程序
需要直接與系統硬件打交道的程序
需要訪問I/O端口和網絡套接字的程序
需要使用庫或
?
Bash快捷鍵
? Ctrl + d:輸入已結束 在shell下相當于一個exit
? Ctrl + c:鍵盤中斷請求
? Crtl + z:掛起
? Ctrl + s & Ctrl + q:暫停/恢復屏幕輸出
? Ctrl + l:清屏 相當于clear
? Tab:自動補完命令行與文件名 列出所有可能的選
? Ctrl + a:光標移到行首
? Ctrl + e:光標移到行尾
? Ctrl + k:從光標所在處刪除到行結尾
? Ctrl + u:刪除整行
? Esc + f:光標移到下一個單詞的開始處
? Esc + b:光標移到前一個或當前單詞的開始處
?
連續按TAB鍵,可以看現在可以使得命令
Shell在/etc/shells中
?
順序
?
?
Bash命令優先級
Alias
Keyword
Functions
Builtin
$PATH
builtin:BASH內置命令
Help cd /man cd查看內置命令
?
Bash的操作環境
主要設置文件
全局設置:/etc/profile
??????? /etc/bashrc
用戶設置:~/.bashrc
??????? ~/.bash_profile
?
Bashrc
定義別名
?
?
?其他設置文件
~/.bash_logout
~/.bash_history
/etc/profile.d/*.sh
.bash_logout離開系統時的操作
一般會寫history -c清除歷史操作和clear操作
?
?Bash各設置文件的執行順序
Start /etc/profile
Start /etc/profile.d/*.sh
Stop /etc/profile.d/*.sh
Stop /etc/profile
Start ~/.bash_profile
Start ~/.bashrc
Start /etc/bashrc
Stop /etc/bashrc
Stop ~/.bashrc
Stop ~/.bash_profile
?
Env:用來列出環境變量
Set:Bash還有與操作系統有關變量,以及用戶自定義的變量。Set顯示全部變量
Stty:設置tty終端,控制backspace刪除等功能
?
?
Unset a刪除SET中的項
Stty intr ""取消Ctrl+C功能
退出終端停止生效
?
/etc/DIR_COLORS控制顏色
?
?
?Set選項
-f 使路徑名替換無效
-n 讀取命令,但不執行(用來對腳本進行語法檢查)
-o optionname 設置指定的選項:emacs,ignoreof,vi
?-v 在命令被讀取時打印命令(調試腳本時有用)
-x 在替換被應用之后打印命令(調試腳本和檢查shell替換時有用)
-C 不允許shell在重定向中損壞文件
?
?
PS1命令提示符:
? \d 可顯示出[星期 月 日]的日期格式,如:“Mon Feb 2”。
? \H 完整的主機名。
? \h 主機名在第一個小數點前的名字,如www后面省略。
? \t 顯示時間,為 24 小時格式的[HH:MM:SS]。
? \T 顯示時間,為 12 小時格式的[HH:MM:SS]。
? \A 顯示時間,為 24 小時格式的[HH:MM]。
? \@ 顯示時間,為 12 小時格式的[am/pm]樣式 。
? \u 目前使用者的賬號名稱,如root。
? \v BASH的版本信息。
? \w 完整的工作目錄名稱,由根目錄寫起的目錄名稱,家目錄會以~ 替代。
? \W 調用basename函數的工作目錄名稱,所以僅會列出最后一個目錄名。
? \# 下達第幾個指令。?
? \$ 提示字符。root時是#,否則就是$。
PS1='[\h]\$'
?
\w帶路徑,比較常用
?Bash的啟動
? Shell的自動啟動
? 無論何時登錄或者打開終端,shell都會自動啟動
? Shell的多層關系
有時用戶想運行一個不同的shell或者同一個shell的另外一個實例。由于shell“另外一個程序”,所以新的shell可以從現有的shell上啟動。新的shell被看作是原有shell的子shell。當子shell退出時,就由原來的shell繼續控制。
?
?
?
?Bash-locale
Locale顯示影響顯示結果的語系變量
/etc/sysconfig/i18n配置文件
圖形界面也可以修改
?
System-config-language
LANG=C 設置成英文
LANG=en_US.UTF-8
?
?Bash - declare
? declare或typeset? 就是宣告變量的類型,不加參數
就是列出當前所有,和set命令輸出一樣。
? -a? 將后面的變量定義成數組(array)類型
? -i? 將后面的變量定義成×××(integer)類型
? -x? 將后面的變量定義成環境變量
? -r? 將后面的變量定義成readonly類型
?
?
?
-x 使值成為環境變量
或者
?
Bash - export
? export 變量名? 自定義變量轉換成環境變量
? export? 查看環境變量
Bash - history
? 在bash中輸入history指令可以查詢用戶的過往操作
? history記錄在內存中而定。
? history表在用戶logout時會記錄入用戶主目錄下的.bash_history文件中,在下次login時載入。
?
?
寫在/etc/profile中
?
?
?
?
?Bash – history? 如何使用history?
? 使用 ! 來調用歷史命令
? !!:重復執行上一條命令
? !ex:重復執行上一條以ex為開頭的命令
? !N:重復執行上一條在history表中記錄號碼為N的命令
? !-N:重復執行前面第N條命令
? 可以用快捷鍵來調用歷史命令
? Ctrl + r:在history表中查詢某條歷史命令
? fc命令:把之前的命令在編輯器中編輯,退出編輯器的時候執行
? Esc + .和Alt + .:之前被鍵入的命令行的最后一個標記可以用上面提到的2個組合鍵中的任何一個來恢復
?
Bash - alias
? 在shell下鍵入alias可以查詢當前alias列表。
? 用戶可以alias來為一條命令取一個簡單的別名
? 用戶也可以用unalias來取消一條別名記錄。
? alias記錄在shell中總是先執行。
?
Bash - ulimit
ulimit與文件系統及程序的限制相關
? -H hard limit
? -S sort limit
? -a 列出所有的限制額
? -f 可以建立的做大文件大小
? -u 點用戶可以使用的最大進程數量
? -n 打開文件的最大個數
Unalias vi
Ulimit -n是必改項
?
Bash歡迎信息
? 進入系統時的:/etc/motd
? 登錄系統是的:/etc/issue? /etc/issue.net
?
?
轉載于:https://blog.51cto.com/yangtong/503266
總結
以上是生活随笔為你收集整理的shell高级(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开个小超市大概需要多少钱 投资者们可以多
- 下一篇: 润乾设计器连接数据源,ie预览问题