[root@localhost ~]# ls /root/.bash_history /root/.bash_history [root@localhost ~]# cat !$ cat /root/.bash_history init 0 ping www.baidu.com dhclient ping www.baidu.com yum install -y net-tools 等等等
[root@localhost ~]# history 1 init 0 2 ping www.baidu.com 3 dhclient 4 ping www.baidu.com 5 yum install -y net-tools 6 ifconfig
history命令shell
[root@localhost ~]# echo $HISTSIZE 1000 [root@localhost ~]#
history -c //把當前內存裏面命令歷史給清空vim
[root@localhost ~]# history -c [root@localhost ~]# history 1 history
但不會清空 .bash_history 配置文件,僅僅是把歷史命令給清空
在敲完命令後,直接到配置文件中查看,會發現其中並無存在 這是由於僅存在內存中,只有在退出終端的時候,纔可以保存到配置文件中去centos
HISTSIZE=5000
[root@localhost ~]# vim /etc/profile //在裏面編輯文件,改變參數 改變參數後,能夠重啓終端,或者source /etc/profile,發現參數生效 [root@localhost ~]# source !$ //執行命令後,會發現HISTSIZE值變化了 source /etc/profile [root@localhost ~]# echo $HISTSIZE 5000
[root@localhost ~]# history 1 history 2 vim /etc/profile 3 yum provides "/*/vim" 4 yum install -y vim-enhanced 5 vim /etc/profile 6 source /etc/profile 7 echo $HISTSIZE 8 HISTIMEFORMAT="%Y/%m/%d %H:%M:%S" 9 history [root@localhost ~]# HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S" [root@localhost ~]# history 1 2017/11/15 23:25:28history 2 2017/11/15 23:35:08vim /etc/profile 3 2017/11/15 23:35:29yum provides "/*/vim" 4 2017/11/15 23:53:58yum install -y vim-enhanced 5 2017/11/15 23:59:04vim /etc/profile 6 2017/11/16 00:07:14source /etc/profile 7 2017/11/16 00:07:31echo $HISTSIZE 8 2017/11/16 00:13:45history 9 2017/11/16 00:14:49HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S" 10 2017/11/16 00:14:51history 11 [root@localhost ~]# echo $HISTTIMEFORMAT %Y/%m/%d %H:%M:%S
這個環境變量僅僅在當前窗口下的終端生效,在打開另外一個終端的時候,就會顯示空的 也就是說,系統默認這個環境變量是不存在的
[root@hf-01 ~]# vim /etc/profile 進入配置文件中,在變量HISTSIZE下放入 HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S" 而後 :wq 保存退出 [root@hf-01 ~]# source !$ source /etc/profile
[root@hf-01 ~]# chattr +a ~/.bash_history [root@hf-01 ~]#
在運行不少命令後,未正常退出(exit或logout正常退出),直接關閉終端,那剛剛敲的命令就不會完整的保存到 .bash_history 中去bash
[root@hf-01 ~]# rpm -qa bash-completion //查看包是否安裝完成 bash-completion-2.1-6.el7.noarch
[root@hf-01 ~]# systemctl restart network.service //重啓網絡服務 [root@hf-01 ~]# alias restartnet='systemctl restart network.service' [root@hf-01 ~]# restartnet //設置別名後,重啓網絡服務 [root@hf-01 ~]#
- 取消別名unalias - 在取消別名後,在輸入別名,就會提示未找到命令
[root@hf-01 profile.d]# unalias restartnet [root@hf-01 profile.d]# restartnet -bash: restartnet: 未找到命令 [root@hf-01 profile.d]#
[root@hf-01 ~]# 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 restarnet='systemctl restart network.service' alias rm='rm -i' alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' [root@hf-01 ~]#
[root@hf-01 ~]# ls 111 123 1_heard.txt 1_sorft.txt 234 2.txt.bak 3.txt anaconda-ks.cfg [root@hf-01 ~]# ls *.txt //以.txt結尾的文件都會列出來 1_heard.txt 1_sorft.txt 3.txt [root@hf-01 ~]# ls *txt //以txt結尾的文件都會列出來 1_heard.txt 1_sorft.txt 3.txt [root@hf-01 ~]# ls *txt* //包含txt的都會列出來 1_heard.txt 1_sorft.txt 2.txt.bak 3.txt [root@hf-01 ~]# ls 1* //只要1開頭的都會列出來 1_heard.txt 1_sorft.txt 111: 123: [root@hf-01 ~]#
[root@hf-01 ~]# touch 1.txt 2.txt [root@hf-01 ~]# ls ?.txt 1.txt 2.txt 3.txt [root@hf-01 ~]# touch a.txt bb.txt [root@hf-01 ~]# ls ?.txt 1.txt 2.txt 3.txt a.txt [root@hf-01 ~]#
[root@hf-01 ~]# ls 111 1_heard.txt 1.txt 2.txt 3.txt a.txt 123 1_sorft.txt 234 2.txt.bak anaconda-ks.cfg bb.txt [root@hf-01 ~]# ls [0-3].txt 1.txt 2.txt 3.txt 能夠把0,1,2,3這四個數字,任意一個都會知足這個條件,[]方括號中的字符只會取一個,就是「或者」的意思 [root@hf-01 ~]# ls [23].txt 2.txt 3.txt [root@hf-01 ~]# ls [13].txt 1.txt 3.txt 在方括號中能夠寫範圍[0-9a-zA-Z]
[root@hf-01 ~]# ls {1,2,3}.txt 1.txt 2.txt 3.txt [root@hf-01 ~]# {1,2,3}.txt和[1-3].txt表達意思同樣,或者。只是在{}須要用 , 逗號隔開
> 正確輸出 >> 追加劇定向 2> 錯誤重定向 2>> 錯誤追加劇定向 >+2>等於&> 表示結合了正確和錯誤
[root@hf-01 ~]# laaa -bash: laaa: 未找到命令 [root@hf-01 ~]# laaa 2> a.txt [root@hf-01 ~]# cat a.txt -bash: laaa: 未找到命令 [root@hf-01 ~]#
[root@hf-01 ~]# ls [12].txt aaa.txt &> a.txt [root@hf-01 ~]# cat a.txt ls: 沒法訪問aaa.txt: 沒有那個文件或目錄 1.txt 2.txt [root@hf-01 ~]#
[root@hf-01 ~]# ls [12].txt aaa.txt &>> a.txt [root@hf-01 ~]# cat !$ cat a.txt ls: 沒法訪問aaa.txt: 沒有那個文件或目錄 1.txt 2.txt ls: 沒法訪問aaa.txt: 沒有那個文件或目錄 1.txt 2.txt
[root@hf-01 ~]# ls [12].txt aaa.txt >1.txt 2>a.txt [root@hf-01 ~]# cat 1.txt 1.txt 2.txt [root@hf-01 ~]# cat a.txt ls: 沒法訪問aaa.txt: 沒有那個文件或目錄
既能夠寫入一個文件中,也能夠分開寫入
[root@hf-01 ~]# wc -l < 1.txt 2 [root@hf-01 ~]# 2.txt < 1.txt -bash: 2.txt: 未找到命令 [root@hf-01 ~]#