Linux命令小總結

        

        隨著對Linux學習的深入,Linux命令也越來越多的。雖然我們可以通過man等幫助查詢我

忘記的命令,但寫腳本本質是由命令有序的堆砌而運行的。下面讓我來總結一番我們學習過的命令



    1.查看當前的終端設備:#tty

    Linux命令小總結

    2.顯示當前使用的shell

    echo ${SHELL}

    Linux命令小總結

   3. 顯示當前系統使用的所有shell
    cat /etc/shells

    Linux命令小總結

    
    4.示提示符格式
    [root@localhost~]#echo $PS1

    Linux命令小總結
 

  5.區別指定的命令是內部或外部命令
    type COMMAND

    Linux命令小總結
  

  6.hash常見用法
    hash 顯示hash緩存
    hash –l 顯示hash緩存,可作為輸入使用
    hash –p path name 將命令全路徑path起別名為name
    hash –t name 打印緩存中name的路徑
    –d name 清name緩存
    hash –r 清除緩存

     Linux命令小總結   

   

    7.顯示當前shell進程所有可用的命令別名
    alias
    定義別名NAME,其相當于執行命令VALUE
    alias NAME=’VALUE’
    在命令行中定義的別名,僅對當前shell進程有效
    如果想永久有效,要定義在配置文件中
    僅對當前用戶:~/.bashrc
    對所有用戶有效:/etc/bashrc
    撤消別名:unalias
    unalias[-a] name [name …]
    -a 取消所有別名

    Linux命令小總結        

    
   8. 用戶登錄信息查看命令:
    whoami: 顯示當前登錄有效用戶
    who: 系統當前所有的登錄會話
    w: 系統當前所有的登錄會話及所做的操作

 

   9.命令:
    創建新screen會話
    screen –S [SESSION]
    加入screen會話
    screen –x [SESSION]
    退出并關閉screen會話
    exit
    剝離當前screen會話
    Ctrl+a,d
    顯示所有已經打開的screen會話
    screen -ls
    恢復某screen會話
    screen -r [SESSION]

    Linux命令小總結


   10. echo命令:
    功能:顯示字符
    語法:echo [-neE][字符串]
   
    選項
    E (默認)不支持\解釋功能
       -n 不自動換行
      –e 啟用\字符的解釋功能
    顯示變量
     echo “$VAR_NAME“ 變量會替換,弱引用
     echo ‘$VAR_NAME‘ 變量不會替換,強引用
    啟用命令選項-e,若字符串中出現以下字符,則特別加以處理,而不會將它當成一般文字輸出(有可能用到腳本中)
    \a 發出警告聲   —>自動化腳本會用到
    \b 退格鍵
    \c 最后不加上換行符號
    \n 換行且光標移至行首
    \r 回車,即光標移至行首,但不換行
    \t 插入tab
    \\插入\字符

    11.歷史history:
     history [-c] [-d offset] [n]
     history -anrw[filename]
     history -psarg[arg…]

    選項:
    -c: 清空命令歷史
    -d offset: 刪除歷史中指定的第offset個命令
    n: 顯示最近的n條歷史
    a: 追加本次會話新執行的命令歷史列表至歷史文件
    -n: 讀歷史文件中未讀過的行到歷史列表
    -r: 讀歷史文件附加到歷史列表
    -w: 保存歷史列表到指定的歷史文件
    -p: 展開歷史參數成多行,但不存在歷史列表中
    -s: 展開歷史參數成一行,附加在歷史列表后

    
    12.顯示日期和時間:date

    SYNOPSIS
       date       [OPTION]…
       [+FORMAT]
       date  [-u|–utc|–uni-
       versal]          [MMD-
       Dhhmm[[CC]YY][.ss]]

     Linux的兩種時鐘
    系統時鐘:由Linux內核通過CPU的工作頻率進行的
    硬件時鐘:主板
    hwclock,clock: 顯示硬件時鐘
    -s, –hctosys以硬件時鐘為準,校正系統時鐘
    -w, –systohc以系統時鐘為準,校正硬件時鐘

    
    [root@CentOS6 app]# date             #系統格式                                                                   
    Sat Jul 29 21:18:45 CST 2017                                                                                             
    [root@CentOS6 app]# date 082712342017.03   系統格式,月日小時分年。秒                
    Sun Aug 27 12:34:03 CST 2017                                                                                          
    [root@CentOS6 app]# date “+%F %T”  #自定義模式                                                      
    2017-07-29 07-29-17                                                                                                           
    [root@CentOS6 app]# date -d -1 “+%F +%D” #錯誤自定義一天以前書寫格式               
    date: invalid date `-1′                                                                                                            
    [root@CentOS6 app]# date -d “-1 days” “+%F %T”#正確的一天以前要加單位要引起來
    2017-07-28  07-28-17                                                                                                           

   13.時區:/etc/localtime



   14. cal顯示日歷
        cal-y

    Linux命令小總結


    15.關機或重啟:    
     halt, poweroff
     重啟:reboot
    -f: 強制,不調用shutdown
    -p: 切斷電源
     關機或重啟:shutdown
     shutdown [OPTION]… TIME [MESSAGE]
       -r: reboot
       -h: halt
       -c:cancel
     TIME:無指定,默認相當于+1
        now: 立刻,相當于+0
     +m: 相對時間表示法,幾分鐘之后;例如+3
     hh:mm: 絕對時間表示,指明具體時間


       顯示當前路徑pwd
    -P 顯示真實物理路徑
    -L 顯示鏈接路徑(默認)



    16.基名:basename(一般用于腳本取文件名)


    17.目錄名:dirname


   18.當前目錄的內容或指定目錄
    用法:ls [options] [files_or_dirs]
    示例:
    ls -a包含隱藏文件
    ls -l顯示額外的信息
    ls -R目錄遞歸通過
    ls -ld目錄和符號鏈接信息
    ls -1 文件分行顯示
    ls –S 按從大到小排序
    –t 按mtime排序
    ls –U 按目錄存放順序顯示
    ls –X 按文件后綴排序



   19. stat
    文件:metadata, data
    三個時間戳:
    access time:訪問時間,atime,讀取文件內容
    modify time: 修改時間, mtime,改變文件內容(數據)
    change time: 改變時間, ctime,元數據發生改變

    Linux命令小總結


    20.touch命令:
    touch [OPTION]… FILE…
    -a僅改變atime和ctime
    -m 僅改變mtime和ctime
    -t [[CC]YY]MMDDhhmm[.ss]
    指定atime和mtime的時間戳
    -c如果文件不存在,則不予創建   

    21.mv 
     mv [OPTION]… [-T] SOURCE DEST
     mv [OPTION]… SOURCE… DIRECTORY
     mv  [OPTION]….SOURCE…
    選項:
    -i: 交互式
    -f: 強制



  22.rm[OPTION]… FILE…
    常用選項:
    -i: 交互式
    -f: 強制刪除
    -r: 遞歸
    –no-preserve-root

    rm-r遞歸刪除目錄樹
    rm命令:
    刪除目錄項
    數據實際上不會馬上被刪除,但當另一個文件使用數據塊時將被覆蓋。
     注意:請慎用rm -rf,一般用把別名處理alias rm=”mv -t”

    eg:
    rm-tree 顯示目錄樹
    -d: 只顯示目錄
    -L level:指定顯示的層級數目
    -P pattern: 只顯示由指定pattern匹配到的路



   23.mkdir
    -p: 存在于不報錯,且可自動創建所需的各目錄
    -v: 顯
    -m MODE: 創建目錄時直接指定權限

    24.rmdir
    rmdir刪除空目錄
    -p: 遞歸刪除父空目錄
    -v: 顯示詳細信息

  

    24.cp復制

    cp[OPTION]… [-T] SOURCE DEST
    cp[OPTION]… SOURCE… DIRECTORY
    cp[OPTION]… -t DIRECTORY SOURCE…
    

   25.ln鏈接

   語法:

    ln filename [linkname] 硬連接

    

    ln -s  filename [linkname] 軟連接

    26.tr轉換和刪除字符
    tr[OPTION]… SET1 [SET2]
    選項:
    -c–C –complement:取字符集的補集(除了)
    -d–delete:刪除所有屬于第一字符集的字符
    -s–squeeze-repeats:把連續重復的字符以單獨一個字符表示
    -t–truncate-set1:將第一個字符集對應字符轉化為第二字符集對應的字符

       Linux命令小總結

       Linux命令小總結

      Linux命令小總結


   

    27. less :一頁一頁地查看輸入(通常與管道一起用)
           cat /etc/passwd |less

    28.useradd
    useradd[options] LOGIN
    -u UID: [UID_MIN, UID_MAX]定義在/etc/login.defs
    -o 配合-u 選項,不檢查UID的唯一性
    -g GID:指明用戶所屬基本組,可為組名,也可以GID
    -c “COMMENT”:用戶的注釋信息
    -d HOME_DIR:以指定的路徑(不存在)為家目錄
    -s SHELL: 指明用戶的默認shell程序
    可用列表在/etc/shells文件中
    -G GROUP1[,GROUP2,…]:為用戶指明附加組,組須事先存在
    -N 不創建私用組做主組,使用users組做主組
    -r: 創建系統用戶CentOS 6: ID<500,CentOS 7: ID<1000
    ?默認值設定:/etc/default/useradd文件中
    ?顯示或更改默認設置:
    useradd-D
    useradd–D -s SHELL
    useradd –D –b BASE_DIR
    useradd –D –g GROUP


  29.  newusers passwd格式文件批量創建用戶


   30. chpasswd 批量修改用戶口令

    

    31.usermod
    usermod[OPTION] login
    -u UID: 新UID
    -g GID: 新主組
    -G GROUP1[,GROUP2,…[,GROUPN]]]:新附加組,原來的附加組將會被覆蓋;若保留原有,則要同時使用-a選項
    -s SHELL:新的默認SHELL
    -c ‘COMMENT’:新的注釋信息
    -d HOME: 新家目錄不會自動創建;若要創建新家目錄并移動原家數據,同時使用-m選項
    -l login_name: 新的名字;
    -L: lock指定用戶,在/etc/shadow 密碼欄的增加!
    -U: unlock指定用戶,將/etc/shadow 密碼欄的! 拿掉
    -e YYYY-MM-DD: 指明用戶賬號過期日期
    -f INACTIVE: 設定非活動期限

    32.userdel
    userdel[OPTION]… login
    -r: 刪除用戶家目錄

    33.id
    id [OPTION]… [USER]
    -u: 顯示UID
    -g: 顯示GID
    -G: 顯示用戶所屬的組的ID
    -n: 顯示名稱,需配合ugG使用

    Linux命令小總結
  

   34.su[options…] [-] [user [args…]]
    切換用戶的方式:
    su  UserName:非登錄式切換,即不會讀取目標用戶的配置文件,不改變當前工作目錄
    su  –  UserName:登錄式切換,會讀取目標用戶的配置文件,切換至家目錄,完全切換
    root su至其他用戶無須密碼;非root用戶切換時需要密碼
    換個身份執行命令:
    su[-] UserName-c ‘COMMAND’
    選項:-l –login
    su-l UserName相當于su-UserName

    Linux命令小總結


    34. passwd: 修改自己的密碼
    常用選項:
    -l:鎖定指定用戶
    -u:解鎖指定用戶
    -e:強制用戶下次登錄修改密碼
    -n mindays: 指定最短使用期限
    -x maxdays:最大使用期限
    -w warndays:提前多少天開始警告
    -iinactivedays:非活動期限
    –stdin:從標準輸入接收用戶密碼

    35.gpasswd[OPTION] GROUP
    -a user: 將user添加至指定組中
    -d user: 從指定組中移除用戶user
    -A user1,user2,…: 設置有管理權限的用戶列表
    newgrp命令:臨時切換主組
    如果用戶本不屬于此組,則需要組密碼
    groupmems[options] [action]
    options:
    -g, –group groupname更改為指定組(只有root)
    Actions:
    -a, –add username 指定用戶加入組
    -d, –delete username 從組中刪除用戶
    -p, –purge 從組中清除所有成員
    -l, –list 顯示組成員列


    36.groups [OPTION].[USERNAME]… 查看用戶所屬組列表
    -M –maxdaysMAX_DAYS
    -W –warndaysWARN_DAYS
    –l 顯示密碼策略
    示例:
    chage-d 0 tom 下一次登錄強制重設密碼
    chage-m 0 –M 42 –W 14 –I 7 tom
    chage-E 2016-09-10 tom
  

    37.chfn指定個人信息


    38.chsh指定shell


    39.finger


    40.groupadd[OPTION]… group_name
    -g GID: 指明GID號;[GID_MIN, GID_MAX]
    -r: 創建系統組
    CentOS 6: ID<500
    CentOS 7: ID<1000


    41.組屬性修改:groupmod
    groupmod[OPTION]… group
    -n group_name: 新名字
    -g GID: 新的GID


    42.組刪除:groupdel
    groupdelGROUP


    43.修改文件的屬主:chown
    chown[OPTION]… [OWNER][:[GROUP]] FILE…
    用法:
    OWNER
    OWNER:GROUP
    :GROUP
    命令中的冒號可用.替換
    -R: 遞歸

    44.組密碼:gpasswd
    gpasswd[OPTION] GROUP
    -a user: 將user添加至指定組中
    -d user: 從指定組中移除用戶user
    -A user1,user2,…: 設置有管理權限的用戶列表


    45.newgrp命令:臨時切換主組
    如果用戶本不屬于此組,則需要組密碼
  

     46. groupmems[options] [action]
    options:
     -g, –group groupname更改為指定組(只有root)
     Actions:
     -a, –add username 指定用戶加入組
     -d, –delete username 從組中刪除用戶
     -p, –purge 從組中清除所有成員
     -l, –list 顯示組成員列表


    47.groups [OPTION].[USERNAME]… 查看用戶所屬組列表

    

     48.修改文件的所有者

     chown[OPTION]… –reference=RFILE FILE…

    Linux命令小總結

    49. 修改文件的屬組:chgrp
    chgrp[OPTION]… GROUP FILE…
    chgrp[OPTION]… –reference=RFILE FILE…
    -R 遞歸
    文件的權限主要針對三類對象進行定義:
    owner: 屬主, u
    group: 屬組, g
    other: 其他, o
    每個文件針對每類訪問者都定義了三種權限:
    r: Readable
    w: Writable
    x: eXcutable


   50. 文件權限操作命令
    chmod

    chmod[OPTION]… OCTAL-MODE FILE…
    -R: 遞歸修改權限
    chmod[OPTION]… MODE[,MODE]… FILE…
    MODE:
    修改一類用戶的所有權限:
    u= g= o= ug= a= u=,g=
    修改一類用戶某位或某些位權限
    u+ u-g+ g-o+ o-a+ a-+ –
    chmod[OPTION]… –reference=RFILE FILE…
    參考RFILE文件的權限,將FILE的修改為同RFILE
     文件和目錄的默認權限


    51.  umask值可以用來保留在創建文件權限
    新建FILE權限: 666-umask
    如果所得結果某位存在執行(奇數)權限,則將其權限+1
    新建DIR權限: 777-umask
    非特權用戶umask是002
     root的umask是022
     umask: 查看
     umask#: 設定
     umask002
     umask–S 模式方式顯示
     umask–p 輸出可被調用


    51. chattr +i 不能刪除,改名,更改
          chattr +a 只能追加內容


    52. lsattr 顯示特定屬性
    ACL文件上的group權限是mask 值(自定義用戶,自定義組,擁有組的最大權限),而非傳統的組權限
    

    53. getfacl可看到特殊權限:flags
    通過ACL賦予目錄默認x權限,目錄內文件也不會繼承x權限
    base ACL 不能刪除
    

    54.setfacl-k dir 刪除默認ACL權限
    setfacl–b file1清除所有ACL權限
    getfaclfile1 | setfacl–set-file=-file2 復制file1的acl權限給file2
    全局設置:/etc/bashrc用戶設置:~/.bashrc

    55.cat [OPTION]… [FILE]…
    -E: 顯示行結束符$
    -n: 對顯示出的每一行進行編號
    -A:顯示所有控制符
    -b:非空行編號
    -s:壓縮連續的空行成一行


    56. more: 分頁查看文件
    more [OPTIONS…] FILE…
    -d: 顯示翻頁及退出提示


    57.less:一頁一頁地查看文件或STDIN輸出
    查看時有用的命令包括:
    /文本搜索文本
    n/N跳到下一個或上一個匹配
    less命令是man命令使用的分頁器


   58. head
    head [OPTION]… [FILE]…
    -c #: 指定獲取前#字節
    -n #: 指定獲取前#行
    -#:指定行數

    Linux命令小總結


    59.tail
    tail [OPTION]… [FILE]…
    -c #: 指定獲取后#字節
    -n #: 指定獲取后#行
     -#:
     -f: 跟蹤顯示文件新追加的內容,常用日志監控


    60 .cut [OPTION]… [FILE]…
    -d DELIMITER: 指明分隔符,默認tab
    -f FILEDS:
    #: 第#個字段
    #,#[,#]:離散的多個字段,例如1,3,6
    #-#:連續的多個字段, 例如1-6
    混合使用:1-3,7
    -c按字符切割
        –output-delimiter=STRING指定輸出分隔符
    顯示文件或STDIN數據的指定列
    cut-d:-f1/etc/passwd
    cat /etc/passwd|cut-d:-f7
    cut-c2-5/usr/share/dict/words


    61.paste 合并兩個文件同行號的列到一行
    paste [OPTION]… [FILE]…
    -d 分隔符:指定分隔符,默認用TAB
    -s : 所有行合成一行顯示
    paste f1 f2
    paste -s f1 f2

    62.wc
    計數單詞總數、行總數、字節總數和字符總數
    可以對文件或STDIN中的數據運行
    $wcstory.txt
    392371901story.txt
    行數字數字符數
    使用-l來只計數行數
    使用-w來只計數單詞總數
    使用-c來只計數字節總數
    使用-m來只計數字符總數
    把整理過的文本顯示在STDOUT,不改變原始文件


    63.$sort[options]file(s)
    常用選項
    -r執行反方向(由上至下)整理
    -n執行按數字大小整理
    -f選項忽略(fold)字符串中的字符大小寫
    -u選項(獨特,unique)刪除輸出中的重復行
    -t c選項使用c做為字段界定符
    -k X選項按照使用c字符分隔的X列來整理能夠使用多次


    64.uniq命令:從輸入中刪除前后相接的重復的行
    uniq[OPTION]… [FILE]…
    -c: 顯示每行重復出現的次數
    -d: 僅顯示重復過的行
    -u: 僅顯示不曾重復的行
    連續且完全相同方為重復
    常和sort 命令一起配合使用:

     sort userlist.txt | uniq-c

    

    65.比較兩個文件之間的區別
    $difffoo.conf-brokenfoo.conf-works
    5c5
    <use_widgets=no
    
    >use_widgets=yes
        注明第5行有區別(改變)
        diff命令的輸出被保存在一種叫做“補丁”的文件中
        使用-u選項來輸出“統一的(unified)”diff格式文件,最適用于補丁文件。
        patch復制在其它文件中進行的改變(要謹慎使用)
        適用-b選項來自動備份改變了的文件
        $diff-ufoo.conf-brokenfoo.conf-works>foo.patch
        $patch-bfoo.conf-brokenfoo.patch


    66.grep命令選項
    –color=auto: 對匹配到的文本著色顯示
    -v: 顯示不被pattern匹配到的行
    -i: 忽略字符大小寫
    -n:顯示匹配的行號
    -c: 統計匹配的行數
    -o: 僅顯示匹配到的字符串
    -q: 靜默模式,不輸出任何信息
    -A #: after, 后#行
    -B #: before, 前#行
    -C #:context, 前后各#行
    -e:實現多個選項間的邏輯or關系

    grep –e ‘cat ’ -e ‘dog’ file
    -w:匹配整個單詞
    -E:使用ERE
    -F:相當于fgrep,不支持正則表達式
    字符匹配:
    . 匹配任意單個字符
    [] 匹配指定范圍內的任意單個字符
    [^] 匹配指定范圍外的任意單個字符
    [:alnum:] 字母和數字
    [:alpha:] 代表任何英文大小寫字符,亦即A-Z, a-z
    [:lower:] 小寫字母[:upper:] 大寫字母
    [:blank:] 空白字符(空格和制表符)
    [:punct:] 標點符號


    匹配次數:用在要指定次數的字符后面,用于指定前面的字符要出現的次數
    * 匹配前面的字符任意次,包括0次
    貪婪模式:盡可能長的匹配
    .*任意長度的任意字符
    \?匹配其前面的字符0或1次
    \+匹配其前面的字符至少1次
    \{n\}匹配前面的字符n次
    \{m,n\}匹配前面的字符至少m次,至多n次
    \{,n\}匹配前面的字符至多n次
    \{n,\}匹配前面的字符至少n次
    位置錨定:定位出現的位置
    ^ 行首錨定,用于模式的最左側
    $ 行尾錨定,用于模式的最右側
    ^PATTERN$ 用于模式匹配整行
    ^$ 空行
    ^[[:space:]]*$ 空白行
    \< 或\b詞首錨定,用于單詞模式的左側
    \> 或\b詞尾錨定;用于單詞模式的右側
    \<PATTERN\>匹配整個單詞
    分組:\(\) 將一個或多個字符捆綁在一起,當作一個整體進行處理,如:\(root\)\+
    分組括號中的模式匹配到的內容會被正則表達式引擎記錄于內部的變量中,這些變量的命名方式為: \1, \2, \3, …
    \1表示從左側起第一個左括號以及與之匹配右括號之間的模式所匹配到的字符
    示例:\(string1\+\(string2\)*\)
    \1 :string1\+\(string2\)*
    \2 :string2
    后向引用:引用前面的分組括號中的模式所匹配字符,而非模式本身
    或者:\|
    示例:a\|b: a或b C\|cat: C或cat \(C\|c\)at:Cat或cat


    67. egrep= grep -E
    egrep[OPTIONS] PATTERN [FILE…]
    擴展正則表達式的元字符:
    字符匹配:
    . 任意單個字符
    [] 指定范圍的字符
    [^] 不在指定范圍的字符
    次數匹配:
    *:匹配前面字符任意次
    ?: 0或1次
    +:1次或多次
    {m}:匹配m次
    {m,n}:至少m,至多n次
    位置錨定:
    ^ :行首
    $ :行尾
    \<, \b :語首
    \>, \b :語尾
    分組:
    ()
    后向引用:\1, \2, …
    或者:
    a|b: a或b
    C|cat: C或cat
    (C|c)at:Cat或cat



原創文章,作者:m25Chronos,如若轉載,請注明出處:http://www.www58058.com/83219

(6)
m25Chronosm25Chronos
上一篇 2017-07-29
下一篇 2017-07-30

相關推薦

  • gitlab-ce并發超過30引起ip被封1小時的問題

    系統環境描述 System information System:     Ubuntu 14.04 Current User:   git Using RVM:  no Ruby Version: …

    Linux干貨 2015-09-06
  • Linux下用戶屬性的更改

      Linux下更改用戶的屬性一般使用usermod命令   基本格式如下:            Usermod[options]  login      [options]中具體參數如下:    -u  U…

    Linux干貨 2017-05-30
  • redis + keepalived 雙主模型

    redis + keepalived 雙主模型 架構圖:    1.vip默認綁定在redis主上,由redis主提供服務,redis從為備用節點。(實際上提供服務的只是vip) 2.當redis主掛掉,vip會默認漂移至redis從。由redis從提供服務,redis主已經掛掉。 3.當redis主已經恢復,redis從繼續提供服務和掛…

    Linux干貨 2016-06-23
  • Mysql 多表聯合查詢效率分析及優化

    1. 多表連接類型 1. 笛卡爾積(交叉連接) 在MySQL中可以為CROSS JOIN或者省略CROSS即JOIN,或者使用','  如:  SELECT * FROM table1 CROSS JOIN table2  &nb…

    Linux干貨 2015-04-13
  • FTP服務

        FTP是一個非常古老的協議,其主要的作用是用于文件的傳輸。FTP采用明文的方式傳輸,極其不安全,但在局域網等環境中使用還是比較方便的。 一、工作原理     FTP的工作方式分為主動模式與被動模式。     1、主動模式 &nbsp…

    Linux干貨 2015-07-08
  • linux入門第二課

    **linux入門基礎** linux 命令類別 內部命令和外部命令 首先我們可以用echo $SHELL 來查詢shell 里面會顯示我們當前在用的shell 上圖是echo $SHELL 也可以用cat /etc/shells來查詢系統里面的shell bash其實是一個文件是一個程序 存在于 /bin/bash 目錄,這是真是存在的文件,是一個可以執行…

    Linux干貨 2017-05-20
欧美性久久久久