Linux系統基礎知識整理

阿豪聊乾貨發表於2017-04-09

一、說明

  本篇文章,我將結合自己的實踐以及簡介,來對linux系統做一個直觀清晰的介紹,使得哪些剛接觸Linux的小夥伴可以快速入門,也方便自己以後進行復習查閱。

二、基本知識整理

  1.Linux檔案系統架構

    1).檔案或目錄起始於"/"根目錄,並且以樹裝結構呈現

    2).最頂層以"/"開始

    3).linux檔案系統的檔案或者目錄名嚴格區分大小寫,並且以/分隔開

    4).".."表示上層目錄

    5)."."表示當前目錄

    6).隱藏目錄或者檔名稱都以"."開頭

    7).#代表當前登陸使用者為root使用者

    8).$代表當前登陸使用者為普通使用者

  2.Linux重要檔案目錄說明

    1)./            所有其他目錄的最頂級根目錄

    2)./home    系統使用者的家目錄,每個使用者在該資料夾下有一個與登入名同名的目錄作為該使用者的家目錄,但是root使用者的家目錄就在根目錄下。

    3)./root  root使用者的家目錄

    4)./boot     系統核心和開機必須檔案所在目錄

    5)./etc       系統配置檔案所在目錄

    6)./dev      系統所有裝置檔案所在的目錄

    7)./usr(unix system resource) 儲存程式的相關檔案

    8)./tmp      臨時檔案所在的目錄

    9)./var   主要放置系統執行過程中經常變化的檔案,例如快取(cache)或者是隨時更改的登入檔案(log file)

    10)./opt   用於儲存第三方軟體的目錄,不過我們還是習慣放在/usr/local下

    11)./bin、/usr/bin        常用的可執行指令檔案目錄

    12)./sbin    root使用者才有許可權執行的指令

    13)./lib、/usr/lib、/usr/local/lib    系統可複用類庫目錄

    14)./mnt、/media        外部裝置的mountpoint,當檢測到裝置接入時會自動產生掛載點

    15)./lost+found        每個分割槽都會建立一個該目錄,使用者系統異常時恢復丟失的東西

    16)./proc        系統程式以及網路狀態資訊目錄,在記憶體中

  3.Linux目錄和檔案的命名規則

    1).長度不能超過255個字元

    2).嚴格區分大小寫

    3).除了"/"以外,所有可用字元都合法

      首字元避免使用"+"、"-"、"."等字元

      避免使用空格、製表符、"@"、"#"、"$"、"%"、"["、"]"、"("、")"等字元

    4).最好使用有意義的名稱來命名

  4.相對路徑和絕對路徑

    1).絕對路徑以"/"開頭,從根目錄開始

    2).相對路徑以當前路徑開始,一般比較短

  5.Linux安全性模型

    1).linux使用User和Group控制使用者對檔案的存取權

    2).使用者使用賬號和口令登陸linux

    3).每個檔案都有Owner,且owner屬於某個Group

    4).每個資源都有owner和group

  6.Linux使用者概述

    1).每個使用者都有一個唯一的UserID

    2).User的資訊儲存在/etc/passwd檔案中

      (1).儲存使用者名稱和home目錄等資訊

      (2)./etc/shadow檔案來儲存每個使用者的密碼資訊

    3).每個使用者都有一個專屬自己的home目錄

    4).user未經授權將禁止讀寫或執行其他User的檔案

    5).root使用者

      (1).是超級管理員賬號、具有至高無上的許可權

      (2).一般不要隨便用root登入並作業系統

  7.Linux使用者群組概述

    1).每個使用者都屬於一個group,具有唯一的識別符號gid

    2).Group資訊

      (1)./etc/group儲存gid、成員等資訊

      (2)./etc/gshadow儲存群組的密碼資訊

    3).系統會為每個user關聯一個和user同名的group

      (1).每個user至少存在於自己同名的group中

      (2).user也可以加入其他group中

    4).在同一個group中的成員可以共享其他成員的檔案

  8.Linux許可權種類

    1).只讀許可權,用r表示(read)

    2).可寫許可權,用w表示(write)

    3).可執行許可權,用x表示(execute)

      (1).可以執行可執行檔案

      (2).可以使用cd命令進入目錄

    4).沒有任何許可權用"-"表示

  9.Linux檔案和目錄許可權解讀

    ls -l命令將看到以下格式:

      [d|-] [r|-w|-x|-] [r|-w|-x|-] [r|-w|-x|-]

      d代表是目錄,-代表是檔案

      後面三個分別代表所屬使用者、組、使用者和組以外的角色擁有的許可權

      比如:d rwx-w---- 代表

        1.是目錄

        2.owner許可權為可讀可寫可執行

        3.group的許可權為可寫

        4.others沒有任何許可權
                - rwxrwxr-x 代表

        1.檔案

        2.owner許可權為可讀可寫可執行

        3.group的許可權為可讀可寫可執行

        4.others的許可權為可讀可執行

  10.linux系統許可權驗證流程

  

  解讀:1.首先判斷是否為Root使用者

     2.是root使用者則直接允許操作

     3.非root使用者判斷檔案的uid和當前使用者的uid是否一致

     4.uid一致則根據檔案的owner許可權進行判斷是否可以對該檔案進行操作

     5.uid不一致,則判斷檔案的gid和是否包含在當前使用者的gid中

     6.包含則根據檔案的group的許可權進行判斷是否可以對該檔案進行操作

     7.不包含則根據檔案的others的許可權進行判斷是否可以對該檔案進行操作

  11.設定Linux檔案和目錄的許可權

    1).字元表示法: chmod [-R] mode file_or_directory

      -R 遞迴改變許可權

      mode模式類別
           
           例:chmod u+r    owner增加讀許可權
                chmod a=    所有角色取消所有許可權
                 chmod -R a=rwx    遞迴給目錄及目錄下所有子目錄和檔案增加讀寫執行許可權

    2.數字表示法

    使用一組三位數字來表示,第一組代表owner的許可權;第二組代表group的許可權;第三組代表others的許可權.

    許可權數字 r:4  w:2  x:1  -:0

    例:rwx = 4+2+1=7
               r-x = 4+0+1=5

  12.使用者的主要群組和次要群組

    1).主要群組:

      每個檔案必須有一個組所有者,因此必須有一個與每個使用者相關的預設群組,這個預設群組成為新建檔案的組所有者,被稱為使用者的主要群組。

      使用者的主要群組中在/etc/passwd檔案中的第四個欄位定義.

    2).次要群組:除了主要群組,使用者也可以根據需要在隸屬於其他群組,這寫組被稱為次要群組,在/etc/group檔案中的第四個欄位中定義

    3).使用groups命令可以檢視當前使用者的所有群組,第一個為主要群組,後面的N個為次要群組

  13.使用者的管理

    1).useradd [-u UID] [-g 主要群組] [-G 次要群組] [-m|M] [-c 說明] [-d 家目錄位置] [-s shell]
            1.-u 指定一個UID給該賬號
            2.-g 指定一個主要群組名稱,會修改/etc/passwd檔案
            3.-G 指定一個次要群組名稱,會修改/etc/group檔案
            4.-m 強制建立使用者家目錄,一般賬號預設
            5.-M 強制不要建立使用者家目錄,系統賬號預設
            6.-c /etc/passwd檔案中的第五個欄位,賬號簡述
            7.-d 指定使用者家目錄位置,不要使用預設的值
            8.-s 指定預設的shell,如果沒有指定則預設是/bin/bash

    2).usermod [-cdegGlsuLU] username
            1.-c修改該賬號的說明文字
            2.-d修改賬號的家目錄
            3.-e指定使用者賬號禁用日期,格式YY-MM-DD
            4.-G修改次要群組的名稱,會修改/etc/group檔案
            5.-g修改主要群組名稱
            6.-a與-G合用,可增加次要群組
            7.-l將當前賬號的名稱重新命名為指定名稱
            8.-u修改UID
            9.-L暫時將使用者的密碼凍結無法登陸
            10.-U解凍賬號,其實就是刪除/etc/shadow的!字元

    3).userdel [-r] username
            -r連同使用者的家目錄一起刪除

    4).passwd 修改使用者密碼

  14.使用者資訊的檢查
        1.finger [-s] username 查閱使用者相關的資訊
            -s僅僅列出使用者的賬號、全名、登入時間等
          2.id 可以查閱當前登陸使用者關聯的UID、GID資訊
          3.whoami|who|w 檢視當前登入使用者名稱
          4.users 檢視登陸系統的所有使用者
          5.groups檢視當前登入使用者的組資訊

  15.預設許可權的控制
      1.核心級別,新建檔案的預設許可權是666
      2.核心級別,新建目錄的預設許可權是777
      3.還要通過umask來阻止一些許可權,從而產生最終的許可權
      4.非管理員賬號的umask為0002,root賬號的umask為0022
      5.umask的作用原理
          1.原理說明

     
           2.做減法是錯誤的,實際結果應該是644

     

  16.群組管理
      1).groupadd [-g gid] [-r] 組名
          -g 後面接特定GID,用來指定GID
          -r 建立系統群組,系統群組小於500,普通群組大於500
      2).groupmod [-g gid] [-n group_name] 群組名
      3).groupdel [groupName] 刪除特定的群組

  17.檔案的壓縮和打包
        1).檔案壓縮
            1.通過壓縮演算法將檔案的體積縮小,同時將多個檔案合併至一起,方便交換、傳輸
            2.Linux支援的壓縮格式
                1.*.Z compress程式壓縮檔案
                2.*.gz gzip程式壓縮檔案
                3.*.bz2 bzip2程式壓縮檔案
                4.*.tar tar程式打包檔案,並未壓縮
                5.*.tar.gz tar程式打包後使用gzip壓縮
                6.*.tar.bz2 tar程式打包後使用bzip2壓縮
            3.gzip [-cdtv#] fileName 壓縮指定檔案
                擴充名為*.gz
                -c將壓縮的資料輸出到螢幕上
                -d解壓縮
                -t進行檔案一致性校驗看是否損壞
                -v顯示和原檔案相比的壓縮比
                -#壓縮等級,-1最快,-9最慢,預設是-6
            4.bzip2 [-cdkzv#] filename 壓縮指定檔案
                副檔名為*.bz2
                -c將解壓的資料輸出到螢幕上
                -d解壓縮引數,該引數代表執行解壓縮操作
                -k保留原檔案進行壓縮
                -z壓縮引數,該引數代表執行壓縮操作
                -v顯示和原檔案對比的壓縮比
                -#壓縮等級,-1最快,-9最慢,預設是-6
      2.檔案打包
          1.將多個檔案或者整個目錄合併成一個檔案,用來進行檔案的備份、分發、傳輸
          2.tar 命令打包檔案
              1.將某個檔案或者目錄打包並使用bzip2壓縮成一個檔案
                  tar [-jcv] -f filename.tar.bz2 待壓縮的檔案或者目錄名
              2.將壓縮檔案解壓至特定的目錄
                  tar [-jxv] -f filename.tar.bz2 -C 解壓縮到的目錄
              3.引數解釋
                  1.-c 建立打包檔案
                  2.-t 檢視打包的檔案都有哪些檔名
                  3.-x 解壓縮或者解打包檔案,和-C搭配適用解壓縮到指定目錄
                  4.-j 通過bz2支援進行壓縮或者解壓縮
                  5.-z 使用gzip進行壓縮或者解壓縮
                  6.-v 將正在處理的檔名顯示出來
                  7.-f 緊跟要被處理的檔名,建議單獨寫一個選項

三、Linux基本操作及命令概述

  1.cd:切換目錄
       1).cd .. 切換到上級目錄
       2).cd ~ 切換到使用者家目錄
       3).cd - 切換到上個路徑

  2.pwd:檢視當前所在路徑

  3.cp:複製檔案和目錄

    1).cp [options] file destination 複製檔案到指定位置

    2).cp [options] file file2... destination 複製多個檔案到指定位置

    3).cp -r dir1 destination_dir 遞迴複製目錄到指定位置

  4.mv:移動和重新命名檔案和目錄

    1).移動操作類似於cp

  5.rm:刪除檔案或目錄

    rm [options] filenmes|directory ...
        -i 互動式

      -r 遞迴刪除

      -f foce強制刪除

  6.touch filename 新建檔案

  7.mkdir directoryName 新建目錄

  8.file:確定檔案的格式

    file[options] filenames 開啟檔案前確定格式

  9.檢視文字檔案

    1).cat [options] filenames

    2).less [options] [filename]

      pageup/pagedown向上向下翻頁

      g 到檔案頂端

      G 到檔案底端

      q 退出

      / keywords 根據關鍵字搜尋

      n:查詢下一個

      N:查詢上一個

三、總結

  通過本文的總結,對linux系統有了一個直觀清晰的瞭解,又是充實的一天過去了,就是喜歡這種充實的感覺,閒下來就感覺渾身難受~ 

相關文章