什麼是shell
命令解釋器,提供用戶和機器之間的交互
支持特定語法,比如邏輯判斷、循環
每個用戶都有特定的shell
centos默認的shell版本是bash
命令歷史
history命令
最大保存一千條 echo $HISTSIZE
history -c 清除當前內存中的命令歷史
/etc/profile 修改命令歷史最大數值
HISTTIMEFORMAT="%Y/%m%wd %H%M%S"
永久保存命令歷史 chattr +a ~/.bash_history
!! 表示執行上一條命令
!n n指數字,表示執行歷史中第n條命令
!字符串 例如!pw表示執行命令歷史中最近一次以pw開頭的命令
命令補全和文件補全
tab命令
連續敲兩次會把所有的命令或者文件名都列出來
yum install -y bash-completion 重啓系統自動補充參數
alias 別名
別名存放地址 .bashrc /etc/profile.d/ colorgrep.sh
取消自定義的別名 unalias restat
通配符
- 來匹配零個或多個字符
?匹配一個字符
【】範圍
{}範圍要加逗號
輸入/輸出重定向重定向 2>錯誤重定向
> 追加 2>>錯誤追加
+2> == &>
< 輸入重定向 (文件到命令)
管道符、作業控制
ctrl z 暫停進程
ctrl c 結束進程
fg 命令恢復 bg 使它到後臺運行
jobs 列出後臺的進程
& 一次性到後臺運行
變量
path,shell預設的一個變量
shell預設的變量都是大寫的
path代替了所有常用命令的絕對路徑的設定
env 列出系統預設的全部變量
set 不僅可以顯示系統預設的變量,也可以顯示用戶的自定義變量(該變量只能在當前shell中生效)
變量名規則:字母、數字(不能在首位)、下劃線
變量值有特殊符號時需要用單引號括起來
全局變量 export 變量名=等於變量值
unset 取消變量
環境變量配置文件
bash可以重新打開一個shell
/etc/profile 這個文件預設了幾個重要變量
/etc/bashrc 這個文件主要預設umask以及ps1
\u指用戶,\h指主機名,\w指當前目錄,\$指字符#(如果是普通用戶,則顯示爲$)
.bash_profile 該文件定義了用戶的個人化路徑與環境變量的文件名稱
.bashrc 該文件包含專屬於自己的shell的bash信息,當登錄或每次打開新的shell時,該文件會被讀取
.bash_history 該文件用於記錄命令歷史
.bash_logout 當退出shell時,會執行該文件