shell介紹、命令歷史、命令補全和別名、通配符、輸入輸出重定向

shell介紹

  • shell是一個命令解釋器,提供用戶和機器之間的交互
  • 支持特定語法,好比邏輯判斷、循環
  • 每一個用戶均可以有本身特定的shell
  • centos7默認shell爲bash(Bourne Agin Shell)
  • 還有zsh、ksh等

命令歷史

history 顯示歷史命令

[root@glinux-01 ~]# history
    1  ls
    2  ifconfig
    3  ping www.baidu.com
    4  ls -a
    5  ls  /etc/sysconfig/network-scripts/ifcfg-ens33
    6  vi  /etc/sysconfig/network-scripts/ifcfg-ens33

cat /root/.bash_history 這個文件存放了歷史命令

最大能夠存放1000條命令,(有時候會顯示1004條或更多,是由於尚未寫入到文件中,只在內存中),當前用戶輸入的命令不會直接寫入文件中,當用戶退出時,纔會寫入。linux

[root@glinux-01 ~]# echo $HISTSIZE
1000

$HISTSIZE數值能夠修改,編輯配置文件vi /etc/profile 將HISTSIZI數值更改

HOSTNAME=`/usr/bin/hostname 2>/dev/null`
HISTSIZE=1000
if [ "$HISTCONTROL" = "ignorespace" ] ; then
    export HISTCONTROL=ignoreboth
else
    export HISTCONTROL=ignoredups
fi

更改後,須要退出從新登陸,或者source /etc/profile  ($HISTSIZE纔會生效)shell

source /etc/profile 出錯????centos

[root@glinux-01 ~]# source /etc/profile
-bash: Current: 未找到命令
-bash: nset: 未找到命令

history -c 清空歷史命令(內容中),不能清空文件中的命令(.bash_history)

更改歷史命令顯示格式

HISTTIMEFORMAT=「%Y/%m%d %H:%M:%S」bash

如需永久更改,須要將這條命令加入配置文件中/etc/profilecentos7

[root@glinux-01 ~]# HISTTIMEFORMAT="%Y/%m/%d %H:%m:%S"
[root@glinux-01 ~]# history
    1  2018/03/03 10:03:31ls
    2  2018/03/03 10:03:31ifconfig
    3  2018/03/03 10:03:31ping www.baidu.com
    4  2018/03/03 10:03:31ls -a
    5  2018/03/03 10:03:31ls  /etc/sysconfig/network-scripts/ifcfg-ens33

永久保存chattr +a ~/.bash_history 

增長a權限,不能刪除,只能追加。spa

若是不正常退出,如直接關閉窗口,歷史命令保存不全。rest

!! 執行上一條命令code

!n(執行歷史記錄中第n條命令)ip

!echo (會在歷史記錄中倒着尋找以echo開頭的命令執行)內存

 

命令補全和別名

  • tab鍵能夠按一下能夠補全命令開頭字母后惟一的命令,按兩下顯示已這個字母開頭的全部命令
  • 參數補全須要裝bash-completion,安裝後重啓系統。
  • alias別名

用法:alias bieming='systemctl restart network.service'

別名配置文件通常在 .bashrc 或/etc/profile.d

unalias bieming 取消別名。

 

通配符

* 表明全部 例:ls *.txt

? 表明匹配任何一個字符

[0-9a-z] 括號範圍內匹配

{1,2,3,a} 範圍內匹配

 

輸入輸出重定向

輸出重定向

cat 1.txt >2.txt 將1.txt重定向到2.txt中,會直接覆蓋

cat 1.txt >>2.txt 將1.txt追加到2.txt中

ls aaa.txt 2>err 將錯誤結果輸入到err中

ls aaa.txt 2>>err將錯誤結果追加到err中

&> 表明將錯誤和正確結果都輸入到文件中

&>> 追加

ls [12].txt aaa.txt >1.txt 2>a.txt 正確輸出放1.txt 錯誤輸出放a.txt

輸入重定向

wc -l <1.txt  將1.txt內容當作wc -l 的參數

相關文章
相關標籤/搜索