1. 程式人生 > >03 Linux系統組成和獲取命令幫助

03 Linux系統組成和獲取命令幫助

遠端連線:

  ssh協議:(簡稱:secure shell)

     ~]# ss -tnl

      檢視系統監聽於rcp協議的22號埠

     ~]# ifconfig 或 ip addr list

       檢視本機 ip 地址

    在CentOS 7最小化安裝中沒有 ifconfig 這個命令,需要 yum install net-tools 命令來進行下載安裝

  確保防火牆處於關閉狀態:

    ~]# iptables -L -n   #檢視一些防火牆規則

    ~]# iptables -F #臨時清空防火牆的規則

    CentOS 7:

      ~]# systemctl disable firewalld.service  #先禁用防火牆

      ~]# systemctl stop firewalld.service   #停止防火牆使用

    CentOS 6:

      ~]# service iptables stop    

      ~]# chkconfig iptables off

檢視所使用的shell型別:

  ~]# echo $SHELL

終端裝置:terminal

  多工、多使用者

  物理終端,控制檯:console

    鍵盤滑鼠顯示器直接接到電腦上的被稱為物理終端裝置(一般稱為控制檯:console),物理                      終端不是我們啟動完系統真正用的終端,只有Linux在啟動過程當中才會被直接使用。啟動完之後                看到的是虛擬終端,因為是用軟體模擬出來的所以被稱為虛擬終端,虛擬終端預設6個虛擬終端

  虛擬終端:6個,tty

    Ctrl+Alt+F[1-6]

    筆記本按鍵有可能對映不一樣

    不一定是6個虛擬終端,因為f7是圖形化介面

  圖形終端:

    CentOS 6:

      Ctrl+Alt+F7 

    CentOS 7:

      在哪個虛擬終端啟動,即位於哪個虛擬終端

  序列終端:ttys

    串列埠輸出

  偽終端:pty

    偽終端又稱為模擬終端,遠端連線的終端或圖形介面下開啟的終端介面

系統正常啟動,顯示啟動過程資訊輸出到物理終端,當物理終端被系統初始化後,稱為虛擬終端(圖形介面或Ctrl+Alt+F[1-6])開啟圖形介面模擬一個命令視窗就是偽終端,或者遠端登入該系統,該終端也是偽終端

  區別當前系統是哪種終端:

    使用命令tty,表示當前終端對應的裝置檔案,(以下#表示數字)

      1.結果顯示:/dev/pts/# 表示偽終端

      2.結果顯示:/dev/tty# 表示虛擬終端

      3.結果顯示:/dev/console 表示物理終端(控制檯)

      4.結果顯示:/dev/ttys# 表示序列終端

  同一使用者登入系統,對應著不同體系/裝置,屬於不同程序下的使用者,有裝置就有對應的裝置檔案。

  命令:who 檢視系統登入的所有使用者及其資訊

  Linux的哲學思想之一:一切皆檔案

    表現之一:硬體裝置也通過檔案表示:

      物理終端:/dev/console

      虛擬終端:/dev/tty# [1-6]

      序列終端:/dev/ttys#

      偽終端:/dev/pts/#

  注意:在啟動裝置之後,在其上關聯一個使用者介面程式,即可實現與使用者互動:

    檢視終端裝置:

      ~]# tty

    檢視介面程式:

      ~]# echo $SHELL

    啟動GUI:圖形介面

      第一次啟動圖形化介面時需要在某一虛擬終端介面執行命令:startx &  (&符號表示在後臺執行)

  GIL介面:

    命令列介面:

      [[email protected] ~]# command(命令)

        prompt:

          root:當前登入的使用者

          localhost:當前主機的主機名,非完整格式

          ~:使用者當前所在的目錄(current directory),也稱為工作目錄(working directory);相對路徑

          #:命令提示符:

            #:管理員賬號,為 root;擁有最高許可權,能執行所有操作

            $:普通使用者,非 root;不具有管理許可權,不能執行系統管理類的操作

          注意:建議使用非管理員賬號登入;

            執行管理操作臨時切換至管理員,操作完成即退回

  幾個基礎命令:

    tty:檢視當前的終端裝置

    ifconfig或 ip addr list:檢視活動介面的ip地址

    echo:回顯

    ping:探測網路的目標主機與當前主機之間的連通性

      Ctrl+c:終止命令執行

    關機命令:

      CentOS 7:

        ~]# systemctl poweroff 或直接 poweroff

    重啟命令:

        ~]# systemctl reboot 或直接 reboot

        所有系統裡邊都可以執行 poweroff 和 reboot

  stallman:

    自由含義:自由學習和修改;自由使用;自由分發;自由建立衍生版;

  Linux的哲學思想:

    1.一切皆檔案

      把幾乎所有資源統統抽象為檔案形式;包括硬體裝置,甚至是通訊介面等

        open(),read(),write(),close(),delete(),create()

    2.由眾多功能單一的程式組成:一個程式只做一件事,並且做好

     組合小程式完成複雜任務;

    3.儘量避免跟使用者互動

      目標:易於以程式設計的方式實現自動化任務

    4.使用文字檔案儲存配置資訊:

  思考:檔案是什麼?眾多檔案如何有效組織起來?

    目錄:路徑對映:

    檔案:儲存空間儲存的一段流式資料,對資料可以做到按名存取

    檔案系統:層級結構;有索引

      /:原初起點

        第二層結構

        第三層結構

      倒置樹狀結構

      /dev/pts/2:

       最左側 /:表示根目錄

       其他的 /:表示路徑分隔符

          Linux的路徑分隔符是 /

          Windows的是 \

    檔案的路徑表示:

      絕對路徑:從根開始表示出的路徑

      相對路徑:從當前位置開始表示出的路徑

    檔名使用法則:

      嚴格區分字元大小寫:file1,FILE1,File1,這三個檔案完全不是一個檔案

      目錄也是檔案,在同一路徑下,兩個檔案不能同名;

      支援使用除了 / 以外的任意字元

      最長不能超過255個字元;

    使用者有家目錄:home

      使用者的起始目錄;普通使用者管理檔案的位置

    工作目錄:

      /etc/sysconfig/network-scripts/ifcfg-en016777

        basename:最右側的檔案或目錄名

        dirname(目錄名):basename左側的路徑

      命令:

        ~]# basename /PATH/TO/SOMEFILE

          SOMEFILE

        ~]# dirname /PATH/TO/SOMEFILE

          /PATH/TO

回顧:

  開源協定:

    GPL,LGPL,BSD,Apache

  BSD:

    1.如果二次釋出的產品中包含原始碼,則在原始碼中必須帶有原來的程式碼中的BSD協定

    2.如果二次釋出的產品是二進位制格式的庫或程式,則需要在釋出的文件或版權宣告中說明包含原來的程式碼中的BSD協定

    3.不可以用開原始碼的作者或組織,以及原來的產品的名字做市場推廣

程式碼的共產主義運動

 

檔案系統、檔案、目錄:

  倒置樹狀結構:

    目錄:

    檔案:

  檔名:嚴格區分字元大小寫;路徑分隔符 /:

路徑:

  絕對路徑

  相對路徑

程式的組成部分:二進位制程式檔案、庫檔案、配置檔案、幫助檔案;

  二進位制、庫檔案:可執行檔案

    庫檔案:不能獨立執行,只能被呼叫時執行

  配置檔案、幫助檔案:可被檢視其內容的檔案

人機互動介面:

  GUI

  CLI

Linux基礎知識

  命令的語法通用格式:

    # command options arguments

      發起一個命令:請求核心某個二進位制程式執行為一個程序;

        程式 --》程序

        靜態--》動態(有生命週期)

      命令本身是一個可執行的程式檔案:二進位制格式的檔案,有可能會呼叫共享庫檔案;

        多數程式檔案都存在:/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin,/usr/local/sbin

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

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

        共享庫:/lib,/lib64,/usr/lib,/usr/lib64,/usr/local/lib,/usr/local/lib64

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

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

          在32bits的庫上邊不會出現64bits的庫,因為32位不相容64位的

          在64bits的庫上邊會出現32bits的庫,因為64位相容32位的

        注意:並非所有的命令有一個在某目錄與之對應的可執行程式檔案

      命令必須遵循特定格式規範:exe,msi,ELF(Linux)

        ~】# file /bin/ls

      命令分為兩類:

        由shell程式的自帶的命令:內建命令(builtin)

        獨立的可執行程式檔案,檔名即命令名:外部命令

      shell程式是獨特的程式,負責解析使用者提供的命令:

        環境變數:

          PATH:從哪些路徑中查詢使用者鍵入的命令字串所對應的命令檔案

            ~]# echo $PATH

            /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

            查詢次序:自左而右

    檢視命令型別:

      type command

    shell內建命令不會在某個路徑下存在一個命令的檔名

    OPTIONS(選項):

        指定命令的執行特性和不同的功能

        選項有兩種表現形式:

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

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

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

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

              注意:長選項不能合併

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

    ARGUMENTS:

      命令作用的物件,命令對什麼生效

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

    例如:ls -l -d /var /etc

  獲取命令的使用幫助:

      內部命令:

        help command

      外部命令:

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

          # command --help

        2.使用手冊:manual

         位置:/usr/share/man

          # man command

            SECTION:

                NAME:簡要功能性說明

                SYNOPSIS:語法格式

                DESCRIPTION:描述

                OPTIONS:選項

                EXAMPLES:使用示例

                AUTHOR:作者

                BUGS:報告程式BUG的方式

                SEE ALSO:參考

            SYNOPSIS:

                []:可選內容

                <>:必須提供的內容

                a|b:多選一

                ...:同類內容可出現多個

          使用手冊:壓縮格式的檔案,有章節之分:

            /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:向檔案首部翻半屏

                ↓:向檔案尾部翻一行

                ↑:向檔案首部翻一行

                G:跳轉至檔案最後一行

                nG:跳轉至指定行

                1G:跳轉至檔案首部

            文字搜尋:

              /keyword:從檔案首部向檔案尾部依次查詢

              ?keyword:從檔案尾部向檔案首部依次查詢

                n:與查詢命令方向相同

                N:與查詢命令方向相反

            退出:

              q:quit

          選項:

            -M /PATH/TO/SOMEDIR:到指定目錄下查詢命令手冊並開啟之

          練習:獲取useradd命令的用法

            (1):新增使用者xing

                # useradd xing

                # id xing

            (2):新增使用者xinchao,要求指定其所用的shell為/bin/bash

                # useradd -s /bin/bash xinchao

                # 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

           keyword filetype:pdf

           keyword site:domain.tld

           ...

    書籍的出版社:

      O‘Reiley

      wrox

      機械工業出版社

      電子工業出版社

      清華大學

      水利水電

常用命令:

  Linux檔案系統:

    1.檔名名稱嚴格區分字元大小寫

    2.檔案可以使用除/以外任意字元(不建議使用)

    3.檔名長度不能超過255個字元

    4.以.開頭的檔案為隱藏檔案

      .:當前目錄

      ..當前目錄的上一級目錄

  工作目錄:

  家目錄:home

  常用命令:

    pwd:printing working directory

      顯示當前工作目錄

    cd:change directory

      cd [/path/to/somedir]

        cd:不帶任何選項引數的時候是切換回家目錄

          注意:bash中,~表示家目錄

          cd ~:切換回自己的家目錄

          cd ~username:切換至指定使用者家目錄

            注意:只有管理員root才能隨便切換至其他家目錄

          cd -:在上一次所在目錄與當前目錄之間來回切換

               相關的環境變數

                $PWD:當前工作目錄

              $OLDPWD:上一次的工作目錄

      

              這兩個環境變數會隨時改變的

      ls:list,列出指定目錄下的內容

        ls [OPTION]... [FILE]...

          -a:顯示所有檔案,包括隱藏檔案

          -A:顯示除.和..之外的所有檔案

          -l:--long,長格式列表,即顯示檔案的詳細屬性資訊

            -rw-r--r--.  1 root root  129 12月 25 10:19 .lesshst

            -:檔案型別,-,d,b,c,l,s,p

            rw-r--r--

               rw-:檔案屬主的許可權

               r--:檔案屬組的許可權

               r--:其他使用者(非屬主、屬組)的許可權

            1:數字表示檔案被硬連結的次數

            root:檔案的屬主

            root:檔案的屬組

            129:數字表示檔案的大小,單位是位元組

            12月 25 10:19:檔案最近一次被修改的時間

            .lesshst:檔名

           -h:--human-readable:對檔案大小單位換算,換算後結果可能會非精確值

           -d:檢視目錄自身而非其內部的檔案列表

           -r:reverse,逆序顯示

           -R:recursive,遞迴顯示

      cat:concatenate

        文字檔案檢視工具

        cat /etc/fstab

        cat /etc/passwd

      cat [OPTION]... [FILE]...

        -n:給顯示的文字行編號

        -E:顯示行結束符$

      tac:和cat顯示內容相反,是逆序顯示

       文字檔案檢視工具

        cat /etc/fstab

        cat /etc/passwd

      cat [OPTION]... [FILE]...

        -n:給顯示的文字行編號

        -E:顯示行結束符$

      file:檢視檔案內容型別

        file [filename]...

      echo:回顯命令

        echo [SHORT-OPTION]... [STRING]...

          -n:不進行換行

          -e:讓轉義符生效

            \n:換行

            \t:製表符

        STRING可以使用引號,單引號和雙引號均可用

          單引號:強引用,變數引用不執行替換

          雙引號:弱引用,變數引用會被替換

      注意:變數引用的正規符號

           ${name}

    關機或重啟命令:shutdown

        shutdown [OPTIONS...] [TIME] [WALL...]

          OPTIONS:

            -h:halt

            -r:reboot

            -c:cancel

        TIME:

          now:立刻關機

          hh:mm:表示幾點幾分

          +m:m表示為數字,例如10表示10分鐘後關機,+0和now一個意思

        WALL

    日期相關的命令:

      Linux:系統啟動時從硬體讀取日期和時間資訊,讀取完成以後,就不再與硬體相關聯

        系統時鐘

        硬體時鐘

      date:系統時鐘

        顯示日期時間:date [OPTION]... [+FORMAT]

                FORMAT:格式符

                  %F

                  %T

                  %Y

                  %m

                  %d

                  %H

                  %M

                  %S

                  %s:從1970年1月1號(unix元年)0點0分0秒到命令執行的那一刻秒數

                  ...

        設定日期時間:date [MMDDhhmm[[CC]YY][.ss]] 月日小時分鐘年份秒數

          date 101008082013.08      

      clock,hwclock:硬體時鐘

        顯示或設定硬體時鐘

            -s, --hctosys:以硬體為準,把系統調整為與硬體時間相同

            -w, --systohc:以系統為準,把硬體時間調整為與系統時鐘相同

      cal:calendar(日曆)

        cal  [month] year]

  課外作業:

    which,whereis,who,w