Shell是一個命令解釋器,提供用戶和機器之間的交互,支持特定的語法,好比邏輯判斷、循環。每一個用戶均可以有本身特定的shell,CentOS7默認shell爲bash(Bourne Agin Shell),常見的還有zsh和ksh等。shell
選項-c:清空內存中的命令,但不能刪除配置文件中的歷史命令。vim
Linux會記錄用戶執行過的命令。這些命令保存在用戶的家目錄的 .bash_history 文件中,預存1000條歷史命令。只有當用戶正常退出當前shell時,在當前shell中運行的命令纔會保存至 .bash_history 文件中。bash
[root@greenfinch ~]# echo $HISTSIZE 1000.net
環境變量HISTSIZE。該變量決定命令歷史保存的命令的數目。插件
用命令vim編輯 /etc/profile 文件,用/HIST關鍵詞搜出如下部分:rest
HOSTNAME=`/usr/bin/hostname 2>/dev/null` HISTSIZE=1000
修改HISTSIZE的數值。:wq保存並退出後,系統還不能識別。用命令 source /etc/profile 重置,再 echo $HISTSIZE 查看系統反饋的數值。code
HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S"內存
root@greenfinch ~]# echo $HISTTIMEFORMAT [root@greenfinch ~]# HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S" [root@greenfinch ~]# echo $HISTTIMEFORMAT %Y/%m/%d %H:%M:%S [root@greenfinch ~]# history 1 2018/01/09 04:33:38history 2 2018/01/09 04:33:52cat .bash_history 3 2018/01/09 04:34:21ls -l .bash_history 4 2018/01/09 04:37:20vi /etc/profile 5 2018/01/09 04:39:11echo $HISTSIZE 6 2018/01/09 04:39:39history 7 2018/01/09 05:08:18echo $HISTSIZE 8 2018/01/09 05:33:42echo $HISTTIMEFORMAT 9 2018/01/09 05:34:00HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S" 10 2018/01/09 05:34:12echo $HISTTIMEFORMAT 11 2018/01/09 05:34:17history
將語句「HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S"」寫入history的配置文件 /etc/profile中。get
給/root/.bash_history這個文件增長一個隱藏屬性a,即只能追加不能刪除:io
chattr +a /root/.bash_history
CentOS7系統支持的參數補全,須要安裝插件:yum -y install bash-completion。重啓系統後才能生效。
命令alias:alias name="原命令"
unalias 命令別名:取消某個命令別名設置
例子:alias restartnet='systemctl restart network.service'
可是,重啓後別名就失效了,想要永久生效,操做以下:
vi ~/.bashrc 或cd /etc/profile.d/
alias別名配置文件存放在當前用戶home目錄下的.bashrc文件中和/etc/profile.d目錄下的相應文件中。
把上面的命令增長到該文件中,再 source /root/.bashrc
「>」表示輸出重定向。如cat 1.txt > 2.txt,把1.txt的內容重定向到2.txt,2.txt中原來的內容會被刪除。
「>>」表示追加重定向。如cat 1.txt >> 2.txt,把1.txt的內容追加劇定向到2.txt,2.txt中原來的內容不會被刪除。
「2>」表示錯誤重定向。如 ls aaa.txt 2>err,將錯誤信息輸出到err中,也能夠用追加,如「2>>err」
[root@greenfinch ~]# lsaaa -bash: lsaaa: 未找到命令 [root@greenfinch ~]# lsaaa 2> a.txt [root@greenfinch ~]# cat a.txt -bash: lsaaa: 未找到命令 [root@greenfinch ~]# lsaaa 2>> a.txt [root@greenfinch ~]# cat a.txt -bash: lsaaa: 未找到命令 -bash: lsaaa: 未找到命令
[root@greenfinch tmp]# ls [12].txt 3.txt &> a.txt [root@greenfinch tmp]# cat a.txt ls: 沒法訪問3.txt: 沒有那個文件或目錄 1.txt 2.txt [root@greenfinch tmp]# ls [12].txt 3.txt &>> a.txt [root@greenfinch tmp]# cat a.txt ls: 沒法訪問3.txt: 沒有那個文件或目錄 1.txt 2.txt ls: 沒法訪問3.txt: 沒有那個文件或目錄 1.txt 2.txt
e.g 組合應用「>」和「2>」
[root@greenfinch tmp]# ls [12].txt 3.txt > 1.txt 2> 31.txt [root@greenfinch tmp]# cat 1.txt 1.txt 2.txt [root@greenfinch tmp]# cat 31.txt ls: 沒法訪問3.txt: 沒有那個文件或目錄
說明:使用ls命令查看 [12].txt 3.txt。1.txt和2.txt文件存在,可使用ls查看,3.txt不存在,使用ls查看會報錯。「> 1.txt 2> 31.txt」意思是將正確信息保存到1.txt,將錯誤信息保存到31.txt。