shell是一個命令解析器,提供用戶和機器之間的交互,相似於DOS下的command.com和後來的cmd.exe。它接收用戶命令,而後調用相應的應用程序。 支持特定語法,好比邏輯判斷,循環等。CentOS 默認的shell是bash ,若是有須要使用zsh,ksh能夠使用yum install zsh/ksh 安裝shell
[root@localhost ~]# echo $HISTSIZE 1000 [root@localhost ~]# vim /etc/profile HOSTNAME=`/usr/bin/hostname 2>/dev/null` HISTSIZE=5000 if [ "$HISTCONTROL" = "ignorespace" ] ; then export HISTCONTROL=ignoreboth else export HISTCONTROL=ignoredups fi export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
[root@localhost ~]# vim /etc/profile [root@localhost ~]# !echo echo $HISTSIZE 1000 [root@localhost ~]# source /etc/profile [root@localhost ~]# !echo echo $HISTSIZE 5000
[root@localhost ~]# history 1 2018/06/29 02:03:21ifconfig\ 2 2018/06/29 02:03:21ifconfig 3 2018/06/29 02:03:21yum install -y tree 4 2018/06/29 02:03:21tree 5 2018/06/29 02:03:21clear 6 2018/06/29 02:03:21cd 7 2018/06/29 02:03:21cd 8 2018/06/29 02:03:21pwd 9 2018/06/29 02:03:21cd /etc/sysconfig
顯示的內容就是如上所示的了。vim
###別名 alias 命令能夠查看系統中全部的作過別名的命令bash
[root@localhost ~]# 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'
也能夠使用這個命令作別名,舉個例子,重啓網絡服務systemctl restart network.service ,能夠給他作一個簡單的別名 ,alias restartnet='systemctl restart network.service'網絡
[root@localhost ~]# alias restartnet='systemctl restart network.service' [root@localhost ~]# alias restartnet alias restartnet='systemctl restart network.service'
tab鍵 ,在咱們使用命令或者敲路徑的時候用tab鍵會有兩種狀況出現:spa
以前咱們使用過命令#ls *.txt#來列出當前目錄下以.txt結尾的全部的文件,其中的星號就是通配符。rest
*.txt 表示全部的以.txt結尾的文件code
txt.*表示全部的以txt.開頭的文件內存
*.txt*
表示全部的中間帶有.txt的文件cmd
?.txt 中的問好也是通配符,表示1個任意的字符(僅僅是一個)io
[0-3].txt 這個[]也是通配符,表示符合0-3這四個字符的文件(也能夠表示成[0123]),例如:1.txt就符合,5.txt就不符合。[]中的內容能夠使0-9,a-z ,A-Z 之間的閾值。
{1,2}.txt其中{}也是通配符,跟[]相似,可是它們的數字之間有,間隔。這個也比較嚴謹。
cat 1.txt >2.txt
這個用法會把原先2.txt文件的內容刪除,並把1.txt的內容寫入到2.txt中。cat 1.txt >2.txt
這個用法不會刪除2.txt的內容,只會把1.txt的內容追加到2.txt中[root@localhost tmp]# vi 1.txt [root@localhost tmp]# vi 2.txt [root@localhost tmp]# cat 1.txt lilililililili [root@localhost tmp]# cat 2.txt chaochaochaochaochaochaochao [root@localhost tmp]# cat 1.txt >2.txt [root@localhost tmp]# cat 2.txt lilililililili [root@localhost tmp]# cat 1.txt >>2.txt [root@localhost tmp]# cat 2.txt lilililililili lilililililili
[root@localhost tmp]# cat 3.txt cat: 3.txt: 沒有那個文件或目錄 [root@localhost tmp]# cat 3.txt 2>1.txt [root@localhost ` tmp]# cat 1.txt cat: 3.txt: 沒有那個文件或目錄 [root@localhost tmp]# cat 4.txt 2>>1.txt [root@localhost tmp]# cat 1.txt cat: 3.txt: 沒有那個文件或目錄 cat: 4.txt: 沒有那個文件或目錄
上面代碼顯示,當咱們cat不存在的3.txt時會提示錯誤,但咱們在命令中加上了2>1.txt錯誤輸出重定向符號,發現,錯誤信息把1.txt文件中原先的內容替換掉了。而後咱們在cat不存在的4.txt時加上了2>>1.txt參數,發現新的報錯信息被追加到了1.txt中。
cat 2.txt 3.txt &>1.txt
[root@localhost tmp]# cat 2.txt 3.txt &>1.txt [root@localhost tmp]# cat 1.txt lilililililili lilililililili cat: 3.txt: 沒有那個文件或目錄 [root@localhost tmp]# cat 2.txt 3.txt &>>1.txt [root@localhost tmp]# cat 1.txt lilililililili lilililililili cat: 3.txt: 沒有那個文件或目錄 lilililililili lilililililili cat: 3.txt: 沒有那個文件或目錄
[root@localhost tmp]# cat 1.txt 4.txt>3.txt 2>2.txt [root@localhost tmp]# cat 3.txt lilililililili lilililililili cat: 3.txt: 沒有那個文件或目錄 lilililililili lilililililili cat: 3.txt: 沒有那個文件或目錄 這些內容是1.txt中的內容不要搞迷糊了 [root@localhost tmp]# cat 2.txt cat: 4.txt: 沒有那個文件或目錄 這個是錯誤信息輸出到了2.txt中
追加跟上面用法同樣,不過是把>換成了>>
這個符號不經常使用 是把後面的內容輸出給前面的命令來執行,瞭解一下就好