shell的基礎入門

shell 程序在學校都是單行命令的形式執行,缺少邏輯關係python

區別:使用shell實現Linux的批量管理,而不是去開發應用程序。git

1、命令歷史正則表達式

  做用:查以前使用的命令

   關於命令歷史的文件
    每一個用戶家目錄下面的 .bash_history在關機的時候,會自動寫入一次 (history -a 將內存中的命令歷史寫入文件)
  關於命令歷史的變量(環境變量)shell

  •     env //查看環境變量
  •     set //常看更詳細的環境變量參數
  •     HISTSIZE=1000 數量
  •     HISTCONTROL=ignoredups
  •     Ignoredups 忽略重複的歷史命令 -- 連續且相同,才叫重複
  •     Ignorespace 忽略空白開頭的歷史命令,「鍵入空格開頭則不會被記錄」
  •     Ignoreboth 二者都生效
  •     HISTFILE=/root/.bash_history
  •     HISTFILESIZE=1000

  history 的常見操做bash

  •     查看命令歷史
  •     !# #表示數值,執行#行的命令
  •     !string 匹配最近一次的字符串
  •     !! 上一條命令
  •     *!$* 上一條命令的最後的一個參數
  •     ls /etc
  •     ls !$
  •     ESC+.

  常見的選項:工具

  •     -a
  •     -d
  •     -c
  •     history # 顯示最近 # 行的命令

2、命令補全spa

  •   tab 
  •     a.提示
  •     b.自動補全

  拓展:製表符 \t (四個空格鍵)日誌

3、目錄補全cdn

  •   tab 
  •     a.提示
  •     b.自動補全

4、命令展開-date命令blog

  Linux的目錄遵循的規則是FHS目錄規則

  {,}演示以下:

  

  

  date基於date目錄來建立目錄

    改變date的輸出格式:

  •       %F:CCYY-mm-dd

                      

  •       %T  hh:MM:ss

                       

  •       %D  mm/dd/YY

                       

  •       %H  hh
  •       %M  MM
  •       %S   ss
  •       %Y   CCYY

                     

  •     經過for語句循環建立一個月的日誌文件:.log 2019-08-06.http.log

     

  •      tar歸檔(壓縮只能對文件進行操做,但不能對目錄操做,但歸檔均可以)

           壓縮工具:

            gizp

            bzip2

            xz

        tar的常見參數:

           -j bzip2

           -J xz

           -z gzip

           -c creat

           -x extract //能夠不用指定解壓工具

           -f 指定文件名

           -v 顯示詳細信息 verbose

           -t 不解壓查看內容,和zcat相同

   

      補充:

        clock/hwclock 查看硬件時鐘

        cal日曆

5、命令的執行狀態 

  在Linux中,每一條命令執行後都有倆種結果:

    (1).命令自己放回內容

    (2).命令執行的結果狀態

  $!變量,就是用來存放命令執行狀態的變量:

  •     0 表示成功狀態(和python)相反
  •     1-255表示失敗狀態

6、命令的快捷鍵

  • ctrl + l
  • ctrl + c
  • ctrl + u //刪除光標前的字符
  • ctrl + k //刪除光標後的字符
  • ctrl + a
  • ctrl + e
  • ctrl + w //以空格爲分隔符,去刪除文件
  • ctrl + r //進入一個交互界面,搜索最近一次使用的命令(要輸入string)

7、alias別名

  系統啓動時讀取一些特殊文件的順序;

  alias
  alias cdnet="cd /etc/sysconfig/network-scriptes" //這種方式定義alias只能在當前shell生效;

    /etc/profile : 定義環境變量(全部用戶) -- EXPORT HISTCONTROL=XXX
    /etc/bashrc : 定義本地變量--alias(全部用戶)
    ~/.bash_profile : 定義環境變量(指定用戶)
    ~/.bashrc : 定義本地變量--alias(指定用戶)

    sources /etc/profile 或者 . /etc/profile

8、文字通配符  

  【文件通配符不是正則表達式】

  • ? 任意單個字符
  • * 任意長度的任意字符
  • [] 指定範圍內的任意一個字符
  • [^] 指定範圍之外的任意一個字符
  • [0-9A-Za-z]
  • [0-9] [a-z] [A-Z] [a-zA-Z]
  • 指定字符類:
    •   [:alnum:], [:alpha:], [:cntrl:], [:digit:], [:graph:], [:lower:], [:print:],
    •   [:punct:], [:space:], [:upper:], and [:xdigit:]

      ^[[:space:]]*$ //有空格鍵的空行(正則表達式)

相關文章
相關標籤/搜索