Shell基礎:介紹、歷史命令、命令不全和別名、通配符、輸入輸入重定向、管道發和作業控制
Shell的介紹
zsh、ksh(yum list |grep zsh 進行查看,然後可以相應的進行安裝)
命令歷史
1. /root/.bash_history (此文件存放著我們敲過的命令)
2. history (可以查看到我們之前使用過的命令有多少條。最大可以存1000條)
使用環境變量可以查看到存放了多少條命令 echo $HISTSIZE
3. history -c 此命令是清除內存中我們敲過的緩存命令(當我們在當前終端敲命令時,它並不會立馬保存到配置文件中,而是緩存在內存裏) ,但這個命令是不會刪除 /root/.bash_history 這個配置文件的內容。
4.敲過的命令什麽時候才會保存在配置文件中?
只有我們在正常退出終端的時候才能保存到配置文件中,否則只是暫時的保存到內存裏(正常退出的命令:exit、logout)
5.環境變量$HISTSIZE
在配置文件 /etc/profile 修改環境變量 $HISTSIZE
修改了變量的大小後,需要執行 source /etc/profile 或者重新進入終端才會生效
6.查看敲過命令是什麽時候運行記錄下來 HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "
(1)定義一下:HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "
(2)查看一下變量: echo $HISTTIMEFORMAT
但是此時我們定義的環境變量 $HISTTIMEFORMAT 僅僅是在當前的終端生效,如果重啟仍然是不存在的
(3)永久生效,修改 /etc/profile
vi /etc/profile
添加內容:HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "
7.命令歷史永久保存 不讓別人刪除-->添加隱藏條件 -a 只能追加不能刪除
執行命令:chattr +a ~/.bash_history
條件+a 只能追加不能刪除
8. exit / logout 為正常退出終端
不正常的退出終端時,使用過的命令就不會記錄完全
!! 表示上一條命令
!n 表示歷史第n條命令
!字符串 表示從下往上找最近使用過“字符串”的命令並執行
命令補全和別名
1.tab鍵 不僅可以不全命令,也可以不全文件
2.參數不全
(yum install -y bash-completion)
3.alias別名:
設置自定義的別名:
alias 要起的名字='要代替的名字'
alias restartnet='systemctl restart network.service '
取消自定義的別名:
ualias restartnet
alias定義的地方
各用戶都有自己配置別名的文件 ~/.bashrc
ls /etc/profile.d/
通配符
1. * :表示零個或者多個任意字符
2. ? :表示一個任意的字符
3.ls [0-3].txt
[範圍]任意一個滿足的條件,只取一個。
4.ls {1,2,3,a}.txt 取一個1或2或3或a
輸入輸出重定向
1.> 重定向 cat 1.txt>2.txt (把1.txt的內容輸入到2.txt)
2.>> 追加 cat 1.txt>>2.txt (不會把原來的內容刪除,把1.txt的內容追加到2.txt)
3.ls aaa.txt 2>err 把前面的錯誤的信息輸入到後面的文件中
3.ls aaa.txt 2>>err 把前面的錯誤的信息輸入到後面的文件中
>+2 == &>
把[12]txt 正確的輸入到a.txt ,把 aaa.txt錯誤信息寫到b.txt
4.wc -l < 1.txt
管道符、作業控制
管道符 | :把前面命令的的輸出交給後面命令的輸入
暫停任務:ctrl+ z (臨時暫停,仍到後臺 ,調回前臺 fg)
jobs 可以把暫停的任務列出來。
fg +id號就能把相應暫停任務調回前臺。 fg 2
bg 把任務放到後臺
sleep 1000 暫停1000秒
sleep 100 & 加上&可以把運行任務如直接放到後臺執行
Shell基礎:介紹、歷史命令、命令不全和別名、通配符、輸入輸入重定向、管道發和作業控制