1. 程式人生 > >Linux History&man

Linux History&man

ubuntu sha 更新 mman keyword 顯示時間 export useradd命令 方向鍵

(一).第一周作業

1).Linux常見發行版本以及區別

  1. debian: ubuntu,mint
  2. slackware:SUSE Linux Enterprise Server (SLES)
    OpenSuse桌面

  3. redhat: RHEL: RedHat Enterprise Linux
    每18個月發行一個新版本
    CentOS:兼容RHEL的格式
    中標麒麟:中標軟件
    Fedora:每6個月發行一個新版本

  4. ArchLinux:輕量簡潔
  5. Gentoo:極致性能,不提供傳統意義的安裝程序
    摘自CSDN:
    Linux發行版,就是在內核的基礎上,加入用戶界面,各種軟件的支持 所以發行版很多, 因為各個公司可以配置使用不同的用戶界面,和軟件,就出現了不同的發行版。總而言之,不同的發行版之間的聯系在於它們所使用的內核是相同的。而區別在於不同的廠商制作出的發行版裏的命令和軟件都有細微的不同。

    2).打印顯示當前時間,格式是:2018 1209 21 10 08

                        ~]# date +%Y(顯示當前年份)
                        ~]# date +%m(顯示當前月份)
                        ~]# date +%d(顯示當前日)
                        ~]# date +%H(顯示當前小時)
                        ~]# date +%M(顯示當前分)
                        ~]# date +%S(顯示當前秒)
                按照要求的格式顯示
                        ~]# date +%Y%m%d%H%M%S
                其它具體操作查看man幫助

    3).實現晚上20:30自動關機,並提示用戶

                    ~]# shutdown -P 23:30 Hello everyone ! The computer will shut down at 23:30 

    4).總結歷史命令管理以及用法

                    查看命令歷史history
                    保存的路徑 /ls/.bash_hisory.  命令保存於內存中,只有在退出時會保存在磁盤內。
                                ~]# echo $ HISTSIZE
                                    查看命令歷史保存上限
                                ~】# cat /etc/profile
                                    查看相關參數
                                ~]# HISTSIZE=n
                                        保存上限被修改為n
        history [-c] [-d offset] [n] 
        history -anrw [filename] 
        history -ps arg [arg...]
                            -c: 清空命令歷史
                            -d offset: 刪除歷史中指定的第offset個命令
                            n: 顯示最近的n條歷史
                            -a: 追加本次會話新執行的命令歷史列表至歷史文件
                            -r: 讀歷史文件附加到歷史列表
                            -w: 保存歷史列表到指定的歷史文件
                            -n: 讀歷史文件中未讀過的行到歷史列表
                            -p: 展開歷史參數成多行,但不存在歷史列表中
                            -s: 展開歷史參數成一行,附加在歷史列表後
    
    **命令行歷史**
                    保存你輸入的命令歷史。可以用它來重復執行命令登錄shell時,
                    會讀取命令歷史文件中記錄下的命令~/.bash_history。登錄進
                    shell後新執行的命令只會記錄在緩存中;這些命令會用戶退出
                    時“追加”至命令歷史文件中
          **重復前一個命令,有4種方法**
                    1.重復前一個命令使用上方向鍵,並回車執行
                    2.按 !! 並回車執行
                    3.輸入 !-1 並回車執行
                    4.按 Ctrl+p 並回車執行
                        ~】# !:0 執行前一條命令(去除參數)
                        ~】# Ctrl + n 顯示當前歷史中的下一條命令,但不執行
                        ~】# Ctrl + j 執行當前命令
                        ~】# !n 執行history命令輸出對應序號n的命令
                        ~】# !-n 執行history歷史中倒數第n個命令
                        ~】# !string 重復前一個以“string”開頭的命令
                        ~】# !?string 重復前一個包含string的命令
                        ~】# !string:p 僅打印命令歷史,而不執行
                        ~】# !$:p 打印輸出 !$ (上一條命令的最後一個參數)的內容
                        ~】# !*:p 打印輸出 !*(上一條命令的所有參數)的內容
                        ~】# ^string 刪除上一條命令中的第一個string
                        ~】# ^string1^string2 將上一條命令中的第一個string1替換為string2
                        ~】# !:gs/string1/string2 將上一條命令中所有的string1都替換為 string2
                        ~】# 使用up(向上)和down(向下)鍵來上下瀏覽從前輸入的命令
                        ~】# ctrl-r來在命令歷史中搜索命令
                            (reverse-i-search)`’:
                            Ctrl+g:從歷史搜索模式退出
                           要重新調用前一個命令中最後一個參數
                            !$ 表示
                            Esc, .(點擊Esc鍵後松開,然後點擊 . 鍵)
                            Alt+ .(按住Alt鍵的同時點擊 . 鍵)
    
    ****調用歷史參數****
                    ~】# command !^ 利用上一個命令的第一個參數做cmd的參數
                    ~】# command !$ 利用上一個命令的最後一個參數做cmd的參數
                    ~】# command !* 利用上一個命令的全部參數做cmd的參數
                    ~】# command !:n 利用上一個命令的第n個參數做cmd的參數
                    ~】# command !n:^ 調用第n條命令的第一個參數
                    ~】# command !n:$ 調用第n條命令的最後一個參數
                    ~】# command !n:m 調用第n條命令的第m個參數
                    ~】# command !n:* 調用第n條命令的所有參數
                    ~】# command !string:^ 從命令歷史中搜索以 string 開頭的命令,並獲取它的第一個參數
                    ~】# command !string:$ 從命令歷史中搜索以 string 開頭的命令,並獲取它的最後一個參數
                    ~】# command !string:n 從命令歷史中搜索以 string 開頭的命令,並獲取它的第n個參數
                    ~】# command !string:* 從命令歷史中搜索以 string 開頭的命令,並獲取它的所有參數
    
    **命令歷史相關環境變量**
    
                    HISTSIZE:命令歷史記錄的條數
                    HISTFILE:指定歷史文件,默認為~/.bash_history
                    HISTFILESIZE:命令歷史文件記錄歷史的條數
                    HISTTIMEFORMAT=“%F %T “ 顯示時間
                    HISTIGNORE=“str1:str2*:… “ 忽略str1命令,str2開頭的歷史
                    控制命令歷史的記錄方式:
          **環境變量:HISTCONTROL**
                            ~]# HISTCONTROL=ignoredups 默認,忽略重復的命令,連續且相同為“重復”
                            ~]# HISTCONTROL=ignorespace 忽略所有以空白開頭的命令
                            ~]# HISTCONTROL=ignoreboth 相當於ignoredups, ignorespace的組合
                            ~]# HISTCONTROL=erasedups 刪除重復命令
                        export 變量名="值“
                        存放在 /etc/profile 或 ~/.bash_profile命令history

    5).Linux使用幫助

                    獲取幫助的能力決定了技術的能力!
                    多層次的幫助
                            (1) 命令自帶簡要格式的使用幫助
                            (2) 使用手冊:manual
                            (3) info COMMAND
                            (4) 很多應用程序會自帶幫助文檔:/usr/share/doc/APP-VERSION
                            (5) 主流發行版官方文檔
                            (6) 程序官方的文檔
                            (7) 搜索引擎
                            whatis
                            command -h ;--help
                            man and info
                            /usr/share/doc/
                            Red Hat documentation
                            其它網站和搜索
            whatis:
                        顯示命令的簡短描述
                        使用數據庫
                        剛安裝後不可立即使用
                        makewhatis(CentOS6) | mandb(Centos7)制作啟用數據庫
                        使用示例:
                        whatis cal 或 man –f cal
    1.內部命令
                        help COMMAND 或 man bash
    2外部命令
                (1) 命令自帶簡要格式的使用幫助
                            ~] # COMMAND --help | ~]# COMMAND -h
                            顯示用法總結和參數列表
                            使用的大多數,但並非所有的
                            示例:
                        date --help 
                            Usage: date [OPTION]... [+FORMAT] or: date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
                 (2) 使用手冊:manual
                              位置:/usr/share/man
    ***     # man COMMAND***
    
                    SECTION:
                                        NAME:功能性說明
                                        SYNOPSIS:語法格式
                                        DESCRIPTION:描述
                                        OPTIONS:選項
                                        EXAMPLES:使用示例
                                        AUTHOR: 作者
                                        BUGS: 報告程序bug的方式
                                        SEE ALSO: 參考
                                        ...
    
                    SYNOPSIS: 
                                    []:可選內容;
                                    <>:必須提供的內容;
                                    a|b|c:多選一;
                                    ...:同類內容可出現多個;
    
                    使用手冊:壓縮格式的文件,有章節之分;
                            /usr/share/man
                                    man1, man2, ...
    
                                    1:用戶命令;
                                    2:系統調用;
                                    3:C庫調用;
                                    4:設備文件及特殊文件;
                                    5:文件格式;(配置文件格式)
                                    6:遊戲使用幫助;
                                    7:雜項;
                                    8:管理工具及守護進行;
    
                                    ~]# man CHAPTER COMMAND
    
                    註意:並非每個COMMAND在所有章節下都有手冊;
                            查看:
                                            ~]# whatis COMMAND
                                                查看哪些章節有使用手冊
                    註意:其執行過程是查詢數據庫進行的;
                                            手動更新數據庫:
                                            ~]# makewhatis
    
            man命令打開手冊以後的操作方法:
                翻屏:
                        空格鍵:向文件尾翻一屏;
                        b: 向文件首部翻一屏;
                        Ctrl+d:向文件尾部翻半屏;
                        Ctrl+u:向文件首部翻半屏;
                        回車鍵:向文件尾部翻一行;
                        k: 向文件首部翻一行;
                        G:跳轉至最後一行;
                        nG: 跳轉至指定的第n行;
                        1G:跳轉至文件首部;
    
            文本搜索:
                        /keyword(關鍵詞):從文件首部向文件尾部依次查找;不區分字符大小寫;
                        ?keyword:從文件尾部向文件首部依次查找;    
                        n: 與查找命令方向相同;
                        N: 與查找命令方向相反;
    
            退出:
                    q: quit
    
            選項:
                   -M /PATH/TO/SOMEDIR:到指定目錄下查找命令手冊並打開之;
    
            練習:獲取useradd命令的用法
                        (1) 添加用戶gentoo;
                            # useradd gentoo
                        驗證方法# id gentoo
                        (2) 添加用戶slackware,要求指定其所用的shell為/bin/tcsh;
                            # useradd -s /bin/tcsh slackware
                            # tail -1 /etc/passwd
    
        (3) info COMMAND
                 獲取命令的在線文檔;
    
        (4) 很多應用程序會自帶幫助文檔:/usr/share/doc/APP-VERSION
                    README:程序的相關的信息;
                    INSTALL: 安裝幫助;
                    CHANGES:版本叠代時的改動信息;
    
        (5) 主流發行版官方文檔
                    http://www.redhat.com/doc
    
        (6) 程序官方的文檔:
                官方站點上的“Document”
    
        (7) 搜索引擎
               google
    
                ...

Linux History&man