Shell是一個命令解釋器,提供用戶和機器之間的交互,支持特定的語法,好比邏輯判斷、循環。每一個用戶均可以有本身特定的shell,CentOS7的默認shell爲bash(Bourne Agin Shell),常見的還有zsh(power-shell)、ksh(Korn shell)。css
語法: history [-c]
-c:=clear 清除內存中的命令,不能刪除配置文件中的歷史命令linux
[root@3 ~]# history 1 ls 2 ls /tmp/ 3 ls /boot/ 4 ls / 5 dhclient …… [root@3 ~]# ls /root/.bash_history /root/.bash_history history的家目錄
顯示使用過的命令歷史,默認保存1000條使用過的命令(注:此令須要是在正常關機操做狀況下的處1000條命)!shell
[root@3 ~]# echo $HISTSIZE 1000
該變量決定命令歷史保存的命令的數目。vim
編輯其配置文件 [root@3 ~]# vim /etc/profile …… HOSTNAME=`/usr/bin/hostname 2>/dev/null` HISTSIZE=1000 …… [root@3 ~]# echo $HISTSIZE 1000 [root@3 ~]# source /etc/profile [root@3 ~]# echo $HISTSIZE 2000
搜索關鍵字"HIST"找到‘HISTSIZE=1000’,在此更改其數字,保存退出,而後執行命令‘source /etc/profile’刷新該配置文件纔會生效。bash
[root@3 ~]# echo $HISTTIMEFORMAT [root@3 ~]# HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S " [root@3 ~]# echo $HISTTIMEFORMAT %Y/%m/%d %H:%M:%S [root@3 ~]# history 1 2017/06/28 18:50:11 history 2 2017/06/28 18:51:32 echo $HISTTIMEFORMAT 3 2017/06/28 18:51:43 HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S " 4 2017/06/28 18:51:45 echo $HISTTIMEFORMAT 5 2017/06/28 18:52:32 history
直接爲‘HISTTIMEFORMAT’賦值便可,不過此時該格式只適用於當前終端。若是要其使用於全部用戶,則須要將其寫入history配置文件並刷新後生效。less
[root@3 ~]# vim /etc/profile …… HOSTNAME=`/usr/bin/hostname 2>/dev/null` HISTSIZE=1000 HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S " …… 保存退出! [root@3 ~]# source /etc/profile
[root@3 ~]# chattr +a ~/.bash_history
使用文件特殊權限,爲‘.bash_history’文件配置‘a’權限(只可追加,不可刪除),限於正常關機操做。spa
[root@3 ~]# w …… [root@3 ~]# !! w ……
‘!’的用法:‘!n’(n表明數字),表示運行命令歷史中的第n條命令;‘!word’,表示運行上一次以該word開頭的命令。
eg:code
[root@3 ~]# history 1 2017/06/28 18:50:11 history 2 2017/06/28 18:51:32 echo $HISTTIMEFORMAT 3 2017/06/28 18:51:43 HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S " 4 2017/06/28 18:51:45 echo $HISTTIMEFORMAT 5 2017/06/28 18:52:32 history [root@3 ~]# !4 echo $HISTTIMEFORMAT %Y/%m/%d %H:%M:%S [root@3 ~]# !HIST HISTSIZE=1000
按一次tab能夠補全一個命令或參數(須要安裝包bash-completion,並重啓系統);按兩次tab能夠顯示以某字母開頭的全部命令或文件名。內存
語法: alias [命令別名]=[具體命令] 設置別名
取消別名:unalias [命令別名]ci
直接輸入alias會顯示系統全部的別名:
[root@3 ~]# alias alias cp='cp -i' alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' alias grep='grep --color=auto' alias l.='ls -d .* --color=auto' alias ll='ls -l --color=auto' alias ls='ls --color=auto' alias mv='mv -i' alias rm='rm -i' alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' [root@3 ~]#
系統別名存放在配置文件‘~/.bashrc’和‘ls /etc/profile.d/’下:
[root@3 ~]# cat !$ cat .bashrc # .bashrc # User specific aliases and functions alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi [root@3 ~]# ls /etc/profile.d/ 256term.csh colorgrep.sh lang.sh qt-graphicssystem.sh which2.sh 256term.sh colorls.csh less.csh vim.csh bash_completion.sh colorls.sh less.sh vim.sh colorgrep.csh lang.csh qt-graphicssystem.csh which2.csh
「>,>>,<,2>,2>>」
‘>’:輸出重定向
‘>>’:追加劇定向
‘2>’:錯誤重定向
‘<’:輸入重定向
使用‘>’命令時會將文件內原有內容刪除。
[root@3 tmp]# echo 3xuelinux > 1.txt [root@3 tmp]# cat 1.txt 3xuelinux [root@3 tmp]# echo 3xu > 1.txt [root@3 tmp]# cat 1.txt 3xu ##################################### [root@3 tmp]# echo 3xu >> 1.txt [root@3 tmp]# cat 1.txt 3xu 3xu ##################################### [root@3 tmp]# lsaaa -bash: lsaaa: 未找到命令 [root@3 tmp]# lsaaa 2> 2.txt [root@3 tmp]# cat 2.txt -bash: lsaaa: 未找到命令 輸入重定向:必須定向到(<左邊)一個命令下 [root@3 tmp]# wc -l 1.txt 「 wc -l」該命令用於查看文件行數 2 1.txt
[root@3 tmp]# ls {1,2}.txt aaaa.txt > 1.txt 2> 3.txt [root@3 tmp]# cat 1.txt 1.txt 2.txt [root@3 tmp]# cat 3.txt ls: 沒法訪問aaaa.txt: 沒有那個文件或目錄
說明: 使用ls命令查看 {1,2}.txt aaaa.txt,1.txt和2.txt文件存在,能夠使用ls查看,aaaa.txt不存在,使用ls查看會報錯,‘> 1.txt 2> 3.txt’意思是將正確信息保存到1.txt,將錯誤信息保存到3.txt。