Linux命令格式、獲取幫助、文件系統

一、Linux的命令

    (一)、概念和意義:

            發起一個命令:請求內核將某個二進制程序運行為一個進程;

                程序 –> 進程

                靜態 –> 動態(有生命周期)

            命令本身是一個可執行的程序文件:二進制格式的文件,有可能會調用共享庫文件;

                多數系統程序文件存放目錄:

                    普通命令:/bin, /usr/bin, /usr/local/bin

                    管理命令:/sbin, /usr/sbin, /usr/local/sbin

                共享庫存放目錄:

                    32bits的庫:/lib, /usr/lib, /usr/local/lib

                    64bits的庫:/lib64, /usr/lib64, /usr/local/lib64

                注意:并非所有的命令都有一個在某目錄與之對應的可執行程序文件

    (二)、遵循特定格式規范:

            exe, msi, ELF(Linux)

                ~]# file /bin/ls

                    查看命令規范    

    (二)、分類

            (1):由shell程序的自帶的命令:內置命令(builtin)

                shell程序是獨特的程序,負責解析用戶提供的命令

                解析流程:從環境變量PATH存儲的目錄中自左往右尋找執行的命令對應的二進制程序,并調用之。

                環境變量PATH的查看方法:

                        ~]# echo $PATH

                            /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

                        查找次序:自左而右;

            (2):獨立的可執行程序文件,文件名即命令名:外部命令

            查看命令類型:

                type COMMAND

    (三)、書寫格式或者是使用方法

        # COMMAND OPTIONS ARGUMENTS

            COMMAND: 

                執行命令的名稱

            OPTIONS:

                (1) 指定命令的運行特性:

                        比如命令執行需要返回的那些參數等等,不同的命令有不同的特性區分。

                (2) 表現形式:

                        短選項:-C, 例如-l, -d

                            注意:有些命令的選項沒有-;

                            如果同一命令同時使用多個短選項,多數可合并:-l -d = -ld

                        長選項:–word, 例如–help, –human-readable

                            注意:長選項不能合并;

                    注意:有些選項可以帶參數,此稱為選項參數;

            ARGUMENTS:

                命令的作用對象;命令對什么生效;一般為文件、數據等

                注意:不同的命令的參數;有些命令可同時帶多個參數,多個之間以空白字符分隔;

二、獲取某個命令的使用幫助

    內部命令和外部命令不同:

    (一)、內部命令

            help COMMAND

    (二)、外部命令

        (1) 命令自帶簡要格式的使用幫助

                # COMMAND –help

        (2) 使用手冊:manual

            位置:/usr/share/man

            # man COMMAND

                打開某個命令手冊后的使用介紹:

                    NAME:功能性說明

                    SYNOPSIS:語法格式

                        []:可選內容;

                        <>:必須提供的內容;

                        a|b|c:多選一;

                        …:同類內容可出現多個;

                    DESCRIPTION:描述

                    OPTIONS:選項

                    EXAMPLES:使用示例

                    AUTHOR: 作者

                    BUGS: 報告程序bug的方式

                    SEE ALSO: 參考

                    … 

            使用手冊:手冊是壓縮格式的文件,里面章節之分;

                /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:跳轉至最后一行;

                    #G: 跳轉至指定行;

                    1G:跳轉至文件首部;

                文本搜索:

                    /keyword:從文件首部向文件尾部依次查找;不區分字符大小寫;

                    ?keyword:從文件尾部向文件首部依次查找;    

                        n: 與查找命令方向相同;

                        N: 與查找命令方向相反;

                退出:

                    q: quit

            選項:

                -M /PATH/TO/SOMEDIR:到指定目錄下查找命令手冊并打開之;

        (3) info COMMAND

            獲取命令的在線文檔;

        (4) 很多應用程序會自帶幫助文檔:/usr/share/doc/APP-VERSION

            README:程序的相關的信息;

            INSTALL: 安裝幫助;

            CHANGES:版本迭代時的改動信息;

        (5) 主流發行版官方文檔

            http://www.redhat.com/doc

        (6) 程序官方的文檔:

            官方站點上的“Document”

        (7) 搜索引擎

            google

                keyword filetype:pdf

                keyword site:domain.tld

三、Linux文件系統

    (一)、概念

        文件系統是Linux中有索引的層級結構的一張倒叉樹結構。

            原始起點為/,稱為根目錄。

    (二)、分類

            (1) 目錄:路徑映射

                    路徑表示方法分類兩種:

                        [1]:相對路徑

                        [2]:決定路徑

            (1) 文件:存儲空間存儲的一段流式數據,對數據可以做到按名存取

    (三)、Linux目錄規范

        FHS(Filesystem Hierarchy Standard)

            /bin:所有用戶可用的基本命令程序文件;

                /sbin:供系統管理使用的工具程序;

                /boot:引導加載器必須用到的各靜態文件:kernel, initramfs(initrd), grub等;

                /dev:存儲特殊文件或設備文件;

                    設備有兩種類型:字符設備(線性設備)、塊設備(隨機設備);

                /etc:系統程序的配置文件,只能為靜態;

                /home:普通的家目錄的集中位置;一般每個普通用戶的家目錄默認為此目錄下與用戶名同名的子目錄,/home/USERNAME;

                /root:管理員的家目錄;可選;

                /lib:為系統啟動或根文件系統上的應用程序(/bin, /sbin等)提供共享庫,以及為內核提供內核模塊

                    libc.so.*:動態鏈接的C庫;

                    ld*:運行時鏈接器/加載器;

                    modules:用于存儲內核模塊的目錄;

                /lib64:64位系統特有的存放64位共享庫的路徑;

                /media:便攜式設備掛載點,cdrom, floppy等;

                /mnt:其它文件系統的臨時掛載點;

                /opt:附加應用程序的安裝位置;可選路徑;

                /srv:當前主機為服務提供的數據;

                /tmp:為那些會產生臨時文件的程序提供的用于存儲臨時文件的目錄;可供所用戶執行寫入操作;有特殊權限;

                /usr:usr Hierarchy,全局共享的只讀數據路徑;

                    bin, sbin

                    lib, lib64

                    include:C程序頭文件;

                    share:命令手冊頁和自帶文檔等架構特有的文件的存儲位置

                    local:另一個層級目錄;

                    X11R6:X-Window程序的安裝位置

                    src:程序源碼文件的存儲位置

                /usr/local:Local hierarchy,讓系統管理員安裝本地應用程序;也通常用于安裝第三方程序;

                /var:/var Hierarchy,存儲常發生變化的數據的目錄;

                    cache    Application cache data

                    lib        Variable state information

                    local    Variable data for /usr/local

                    lock    Lock files

                    log        Log files and directories

                    opt        Variable data for /opt

                    run        Data relevant to running processes

                    spool    Application spool data

                    tmp        Temporary files preserved between system reboots    

                /proc:基于內存的虛擬文件系統,用于為內核及進程存儲其相關信息;它們多為內核參數,例如net.ipv4.ip_forward, 虛擬為net/ipv4/ip_forward, 存儲于/proc/sys/, 因此其完整路徑為/proc/sys/net/ipv4/ip_forward;

                /sys:sysfs虛擬文件系統提供了一種比proc更為理想的訪問內核數據的途徑;其主要作用在于為管理Linux設備提供一種統一模型的的接口;

                    參考:https://www.ibm.com/developerworks/cn/linux/l-cn-sysfs/

    (四)、Linux文件類型

        [1]、-    常規文件即f(file)

        [2]、d    directory,目錄文件;

        [3]、b    block device,塊設備文件,支持以“block”為單位進行隨機訪問

        [4]、c    character device,字符設備文件,支持以“character”為單位進行線性訪問

                    major number:主設備號,用于標識設備類型,進而確定要加載的驅動程序

                    minor number:次設備號,用于標識同一類型中的不同的設備;

                        8位二進制:0-255

        [5]、l    symbolic link,符號鏈接文件;

        [6]、p    pipe,命名管道;

        [7]、s    socket,套接字文件;

    (五)、文件名(目錄也屬于文件的一種)使用法則:

        [1]、嚴格區分字符大小寫:file1, File1, FILE1

        [2]、目錄也是文件,在同一路徑下,兩個文件不能同名;

        [3]、支持使用除/以外的任意字符【但是不推薦使用特殊字符】

        [4]、最長不能超過255個字符;

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

(0)
小江小江
上一篇 2016-08-15 12:06
下一篇 2016-08-15 12:06

相關推薦

  • TIME_WAIT引起Cannot assign requested address報錯

    1.  問題描述      有時候用redis客戶端(php或者java客戶端)連接Redis服務器,報錯:“Cannot assign requested address?!?     原因是客戶端頻繁的連接服務器,由于每次連接都在很短時間內結束,導致很多的TIME_WAIT。所以新的連…

    Linux干貨 2016-03-09
  • 腳本

    1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現;     #!/bin/bash     #     sum=0 &n…

    Linux干貨 2016-12-23
  • SED命令

    sed是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern space),接著用sed命令處理緩沖區中的內容,處理完成后,把緩沖區的內容送往屏幕。接著處理下一行,這樣不斷重復,直到文件末尾。文件內容并沒有改變,除非你使用重定向存儲輸出。Sed主要用來自動編輯一個或多個文件,簡化對文件的反復操作,編寫轉…

    Linux干貨 2017-05-01
  • rpm包管理

    前言    RPM(簡稱RPM,全稱為The RPM Package Manager)是在Linux下廣泛使用的軟件包管理器。RPM此名詞可能是指.rpm的文件格式的軟件包,也可能是指其本身的軟件包管理器(RPM Package Manager)。最早由Red Hat研制,現在也由開源社區開發。RPM通常隨附于Linux發行版,…

    Linux干貨 2015-05-13
  • 文件的查找與壓縮歸檔

    文件的查找與壓縮歸檔 locate find 壓縮與歸檔 locate 主要用途 查詢系統上預建的文件索引數據庫 locate – find files by namelocate [OPTION]… PATTERN… locate查詢文件時,會去搜索/var/lib/mlocat…

    Linux干貨 2016-08-21
  • Linux發展史

    Linux發展史 Linux是一套自由加開放源代碼的類Unix操作系統,誕生于1991年10月5日(第一次正式向外公布),由芬蘭學生Linus Torvalds和后來陸續加入的眾多愛好者共同開發完成。 Linux這個詞本身只表示Linux內核,但實際上人們已經習慣了用Linux來形容整個基于Linux內核,并且使用GNU工程各種工具和數據庫的操作系統。 li…

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