1. 程式人生 > >Linux學習筆記(二十三)shell介紹、history命令歷史、命令補全和別名、通配符、

Linux學習筆記(二十三)shell介紹、history命令歷史、命令補全和別名、通配符、

alias shell 歷史命令 通配符

一、shell介紹

  1. shell是一個命令解釋器,提供用戶和機器之間的交互
  2. 支持特定語法,比如邏輯判斷、循環
  3. 每個用戶都可以有自己特定的shell
  4. CentOS7默認shell為bash(Bourne Agin Shell)
  5. 還有zsh、ksh等、
    二、history
  6. history命令
    技術分享圖片
    是最近輸入過的命令歷史,當前輸入的命令會放在內存當中,只有每次正常退出終端,命令歷史才會寫入history文件中
  7. .bash_history
    命令歷史存放的文件
    echo $HISTSIZE

    技術分享圖片
    命令歷史最大存放1000條
    這個設置可以在
    /etc/profile中修改

    vim etc/profile

    技術分享圖片
    如果想讓歷史表中顯示歷史命令的時間可以用以下命令

    HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "
    單獨執行時只在當前命令窗口生效
    技術分享圖片
    技術分享圖片
    想要永久生效的話就將命令加入/etc/profile 環境變量

    vim /etc/profile
    source !$   //使環境變量生效

    技術分享圖片
    技術分享圖片
    如果希望history文件永久保存

    chattr +a ~/.bash_history

    這時候文件只能追加不能刪除,無視1000條限制

    !!

    執行上一條命令

    !n

    執行歷史命令中第n條命令

    !word

    執行命令歷史中最後一條Word命令,這裏Word可以更換為任意命令

三、命令補全和別名

tab鍵,敲一下,敲兩下
敲一下會自動補全命令。如果有多個開頭相同的命令,則需要敲兩下從列表中選擇

參數補全,安裝bash-completion

 yum install -y bash-completion

安裝後需要重啟生效

alias別名給命令重新起個名字
alias restartnet=‘systemctl restart network.service‘
技術分享圖片
各用戶都有自己配置別名的文件 ~/.bashrc
這個文件有很少的幾個默認alias
/etc/profile.d/ 目錄下存放一些其他的別名
ls /etc/profile.d/
技術分享圖片
自定義的alias放到~/.bashrc
取消別名用unalias
四、通配符

ls *.txt  //列出所有的txt文件
 ls ?.txt //列出文件名是一個字符的txt文件
 ls [0-9].txt  //列出文件名是1-9的txt文件
 ls [13].txt  //列出文件名是1或者3的txt文件
 ls {1,2}.txt  //列出文件名為1的txt文件和文件名為2.txt文件,如果有其中一個不存在,會提示

技術分享圖片
技術分享圖片
五、輸入輸出重定向

cat 1.txt >2.txt  //將前面命令的輸出輸入到後面的文件中(覆蓋2.txt內容)
 cat 1.txt >> 2.txt  //將前面命令的輸出追加輸入到後面的文件中(在2.txt中追加)
 ls aaa.txt 2>err    //將前面命令的錯誤信息輸入到後面的文件(覆蓋)
 ls aaa.txt 2>>err   //將前面命令的錯誤信息追加輸入到後面的文件(不覆蓋)
 ls {1,6}.txt &>999.txt  //將正確和錯誤信息都輸入到後面文件中
 ls {1,6}.txt >999.txt 2>66.txt //將正確信息輸入999.txt,錯誤信息輸入66.txt
 wc -l < 1.txt   //輸出右邊文件的文件行數(左邊需要是命令,不可以是文件)

技術分享圖片

Linux學習筆記(二十三)shell介紹、history命令歷史、命令補全和別名、通配符、