1. 程式人生 > >linux基礎總結002

linux基礎總結002

【1】passed  
    1.只輸入passwd,修改當前使用者的密碼(對長度有要求)
    2.sudo passwd 使用者名稱 修改指定使用者的密碼
    3.sudo passwd 修改超級使用者密碼
【2】su 
    切換使用者
    sudo  --- 給當前使用者臨時新增超級使用者許可權 
    1.su -- 預設切換到超級使用者
    2.su - 使用者名稱 :切換帶指定使用者

    注意:1.普通使用者切換到超級使用者需要密碼
        2.超級使用者切換到普通使用者不需要密碼
【3】echo 
    在標準輸出上列印指定內容
    echo beijing huaqing
    列印兩個字串,字串之間用空格隔開
    echo "beijing huaqing" 雙引號括起來的表示一個字串,字串有一個字元是空格
【4】date
    顯示和設定系統時間
【5】clear(ctrl +l)
    清屏
【6】使用者管理
    1./etc/passwd檔案
        是系統能夠識別的使用者清單
        使用者登陸時,系統查詢這個檔案,確定使用者的UID並驗證使用者口令
        檔案包括以下幾個欄位(欄位之間用:隔開)
        登陸名
        經過加密的口令
        UID 使用者ID
        預設的GID
        個人資訊
        家目錄:指定登入使用者是預設進入的路徑
        登陸shell    
    2./etc/shadow
        加密的使用者清單,只有超級使用者可以訪問這個檔案,用來保護加密口令的安全
        欄位:
        登入名
        經過加密的口令
        上次修改口令的時間
        兩次修改口令最短期限(天數)
        兩次修改口令最短期限(天數)
        提前幾天提醒口令過期
        口令過期多少天禁用賬號(禁止使用者登入)
        賬號過期日期
        保留欄位
    3./etc/group檔案
        包含了LUNIX組的名稱和每個組中成員列表    
        每一行代表一個組,包括4個欄位:
        組名
        加密的口令
        GID號
        成員列表,彼此用逗號隔開
        如果使用者與所屬的組同名,則在第四個欄位中省略

    一、新增使用者 
        sudo adduser + 使用者名稱 

        4.etc/adduser.conf  是adduser命令配置檔案
        FIRST_UID=1000
        LAST_UID=29999
        USERS_GID=100
        DHOME=/home 指定使用者的工作目錄
        DSHELL=/bin/bash
        SKEL=/etc/skel

        SKEL模板
            etc/skel目錄是被 /usr/sbin/useradd使用
        使用adduser 命令新增使用者時,Linux系統會自動將/etc/skel/下的所有檔案和目錄拷貝到新建使用者的主目錄下。這些都是一些配置檔案: 
        .bash_profile
        .bashrc
        .bash_logout
        dircolors
        .inputrc
        .vimrc  

        注意:1.建立使用者時。首先建立同名的使用者組,將該使用者置於組中
    二、修改使用者屬性
        -d <登入目錄>:修改使用者登入時的目錄(修改~表示的絕對路徑)
        
        -g <群組>:修改使用者所屬的組
        注意:只能修改成已存在的組ID 

        -G <群組>:修改使用者所屬的附加組

        -l   <賬號名稱>:修改使用者賬號名稱(登入名)
        注意:只能修改配置檔案中的登入名,但無法修改使用者工作目錄

        -u    :修改使用者ID

        sudo usermod -d /home farsight
        sudo usermod -g 1000 farsight
    三、刪除使用者
        deluser  --remove-home  user1
        刪除使用者user1的同時刪除使用者的工作目錄  
        注意:刪除時如果使用者所屬組是同名組,且該組中沒有其他使用者,則同時將使用者組也刪除
    四、新增組
        sudo addgroup 組名
    五、刪除組
        sudo delgroup 組名 
【7】程序管理
    程式的一次執行就是一個程序 
    區別:程式是靜態,程序是動態的

    程序控制塊的組成
    程序名
    特徵資訊
    程序狀態資訊
    排程優先權
    通訊資訊
    現場保護區
    資源需求、分配和控制方面的資訊
    程序實體資訊
    族系關係

    暫存器,程式計數器,控制器
    必要的堆疊

    ps -- 只顯示依賴於當前終端視窗的程序狀況
    -A 列出所有的程序 
    -au 顯示較詳細的資訊(只顯示執行在終端機的程序)
    -aux 顯示所有包含其他使用者的程序
    -可以被省略 

    TTY :程序依賴的終端
    終端視窗 用pts/n 表示,

    TTY1-6 :文字介面
    tty7:圖形介面
    如果是?表示不依賴於人終端

    S:阻塞狀態
    s:包含子程序
    R:可執行
        就緒態(只有在該狀態下才可能被cpu執行)
        執行態
    +:程序在前臺執行

    top
    動態監視程序
    預設沒3秒重新整理一次
    -d  + time 指定重新整理時間間隔 

    pstree
        將所有程序以樹狀圖顯示,
【8】訊號
    Linux系統支援了一些給程序傳送訊號,

    kill -l 列出系統支援的訊號清單

    kill  [-signal]  PID 傳送序列號指定的訊號給PID
    2) SIGINT
    程式終止(interrupt)訊號, 在使用者鍵入INTR字元(通常是Ctrl-C)時發出,用於通知前臺程序組終止程序。
    9) SIGKILL
        用來立即結束程式的執行. 本訊號不能被阻塞、處理和忽略。如果管理員發現某個程序終止不了,可嘗試傳送這個訊號。
【9】檔案系統
    提供儲存、管理、檢索檔案的方式
    用於組織和管理計算機儲存裝置上的大量檔案,並提供使用者互動介面。
    Linux特點:支援多種檔案系統
    開發更加靈活,系統可以根據不同的功能自動選擇要使用的檔案系統。

    Linux是一種相容性很高的作業系統,支援的檔案系統格式很多,大體可分以下幾類:
    1.磁碟檔案系統:指本地主機中實際可以訪問到的檔案系統,包括硬碟、CD-ROM、DVD、USB儲存器、磁碟陣列等。
    Windows常用:FAT16,FAT32,NTFS
    linux常用:ext系列,ext4\ext6

    2.網路檔案系統:是可以遠端訪問的檔案系統,這種檔案系統在伺服器端仍是本地的磁碟檔案系統,客戶機通過網路遠端訪問資料。NFS 

    3.專有/虛擬檔案系統(VFS):不駐留在磁碟上的檔案系統。 VFS 作為 Linux核心中的一個軟體抽象層,用於給應用程式提供檔案系統介面,Linux允許不同的檔案系統很好地共存,任何要使用這些實際檔案系統的程式都必須通過這層介面來使用它。它只存在於記憶體中,不存在於任何外存空間。VFS在系統啟動時建立,在系統關閉時消亡。 VFS 使 Linux 同時安裝、支援許多不同型別的檔案系統成為可能。常見格式有:TMPFS(臨時檔案系統)

    檔案系統的分割槽
    sudo fdisk -l 
    hd”代表IDE硬碟
    “sd”表示SCSI或SATA硬碟 

    window在磁碟分割槽中建立目錄結構
    Linux是將磁碟分割槽抽象成檔案掛在相應目錄下

    檔案系統邏輯結構:
        Linux的檔案組織模式猶如一顆倒置的樹
    頂層目錄:根目錄 /

    /bin:存放系統中最常用的可執行檔案(二進位制)
    /dev 存放所有裝置檔案,包括硬碟、分割槽、鍵盤、滑鼠、USB、tty等
    /etc 存放系統的所有配置檔案,例如passwd存放使用者賬戶資訊,hostname存放主機名等

    絕對路徑和相對路徑
    絕對路徑:指檔案在檔案系統中的準確位置。通常在本地主機上,以根目錄為起點。例如“/usr/games/gnect”就是絕對路徑。
        相對路徑:指相對於使用者當前位置的一個檔案或目錄的位置。例如,使用者處在usr目錄中時,只需要“games/gnect”就可確定這個檔案。
        . 表示當前目錄
        .. 表示上層目錄
【10】檔案屬性
    -rw-rw-r-- 1 linux linux 27 Sep 23 16:29 file
    第一部分:前10個字元
        第一個字元:檔案型別(b、c、d、-、l、s、p)
        -:普通檔案,指ASCII文字檔案、二進位制可執行檔案,以及硬體連結
        b: 塊裝置檔案
        c:原始輸入/輸出裝置檔案,每次I/O操作僅傳送一個字元
        d:包含若干檔案或子目錄
        l:符號連結檔案,只保留了檔案地址,而不是檔案本身
        p:管道(pipe),一種程序間通訊的機制,用於程序間通訊的暫時檔案
        s:套接字檔案,用於程序間通訊,兩臺計算機間通訊的應用程式介面(API)
        file:檢視檔案型別

        第一組:當前使用者對檔案的許可權
        第二組:使用者所屬組中其他使用者對檔案的許可權
        第三組:其他使用者對檔案的許可權
        r:可讀
        w:可寫
        x:可執行
        許可權位在計算機中以二進位制表示

        許可權掩碼umask
        檔案預設許可權是666 
        目錄預設許可權是777
        建立檔案或目錄時預設許可權-許可權掩碼值得出當前許可權位

        修改檔案屬性
        1.chmod命令
          chmod 764 filename
          chmod 777 filename
          chmod u+x filename
            u-改擁有者許可權(前三位)     
            g-改同組使用者       
            o-改其他使用者的許可權(後三位)
           chmod a+x filename 統一修改三組對應許可權位
            chmod也可以改目錄的許可權
        2.chown修改檔案擁有者、所屬組
            sudo   chown  newusername   filename  : 將filename檔案的擁有者改為newusername使用者 
            Sudo chown :newgroup   filename : 將filename檔案的所屬組改為newgroup
        3. chgrp:
        sudo   chgrp  newgroup  filename :將filename檔案的所屬組改為newgroup
【11】mkdir
    建立目錄
    mkdir -p 建立級聯目錄
【12】cp
    複製
    cp -r 複製目錄
【13】mv
    1.剪下檔案和目錄
    2.重新命名檔案和目錄
【14】rm
    刪除檔案
    rm -r 刪除目錄 
【15】head  
    檢視檔案前幾行,預設列印檔案前10行內容
    head [-n] 列印前n行內容
【16】tail
    檢視檔案後幾行,預設列印檔案後10行內容
    tail [-n] 列印前n行內容
【17】建立連結檔案
    Linux中有兩種型別的連結:
    1.硬連結 ln
        利用Linux中為每個檔案分配的物理編號——inode建立連結。因此,硬連結不能跨越檔案系統(ls -l)。
    
    注意:1.如果檔案沒有任何的硬連結檔案,則檔案屬性中的硬連結數為1,沒建立一個硬連結檔案連結數加1
          2.不能跨越檔案系統
        
    2.軟連結(符號連結)ln -s 
        利用檔案的路徑名建立連結。通常建立軟連結使用絕對路徑而不是相對路徑,以最大限度增加可移植性。
        類似於Windows下的快捷方式

    區別:
    1.硬連結不可以跨檔案系統,軟連線可以
    2.inode節點問題


        硬的不管有多少個,均指向一個inode,每建立一個硬連結,會產生一個(大小、許可權、inode、時間)一致的檔案,並增加1個連結數,它們是絕對平等的,可以通過ls -i命令檢視詳細的inode和連線數。
        軟連結,是產生一個很小的具有新inode的檔案,有點類似win中的“快捷方式”,它存放的是指向原始檔路徑的指標,是個全新的檔案 
        刪除一個硬連結,只會減少連線數,直到刪除最後一個連線數為1的檔案,就是徹底刪除了此檔案;刪除一個軟連結檔案,無區別。刪除原始檔的話,軟連線則指向了一個空檔案,相當於快捷方式失效
    3.軟的可以連結目錄,而硬的不行 
【18】檔案壓縮和歸檔
    首先需要明確兩個概念:
        1.歸檔檔案是將一組檔案或目錄儲存在一個檔案中。
        2.壓縮檔案也是將一組檔案或目錄儲存一個檔案中,並按照某種儲存格式儲存在磁碟上,所佔磁碟空間比其中所有檔案總和要少。

    ---壓縮和解壓
     -- gzip
        功能:壓縮指定檔案但不儲存原始檔;只能壓縮檔案,無法將多個檔案壓縮為一個檔案,也無法壓縮目錄
        字尾名:.gz
               eg.gzip  file       壓縮檔案
        解壓檔案:
        gunzip  file.gz  或者 gzip -d file.gz 選項: -l(小寫l):檢視壓縮檔案資訊
           gzip  -l  file.gz    該命令只能檢視,不能壓縮
    --bzip2:用法和gzip相同
            字尾名:.bz2
    --zip :類似於Windows下的壓縮命令
        格式:zip 指定壓縮包名 需要壓縮的檔案
        注意:1.儲存原始檔
              2.字尾名.zip
              3.可以壓縮目錄(-r 可加可不加)
              4.可以將多個檔案壓縮成同一個壓縮包
        unzip:     解壓縮
          unzip -Z all.zip                 檢視壓縮包的內容

    tar命令、、
        主要用於將若干檔案或目錄合併為一個檔案,以便備份和壓縮
        字尾名:.tar
        -c 建立一個新的歸檔檔案
        -f 使用者指定歸檔檔案的檔名,否則使用預設名稱
        tar -cf file.zip file 
        .儲存原始檔
        -v 顯示歸檔和釋放的過程資訊
        -x 釋放歸檔檔案

         tar -xvf file.tar 釋放歸檔檔案
         -j  由tar生成歸檔,然後由bzip2壓縮
         -z 由tar生成歸檔,然後由gzip壓縮
         tar -czf file2.tar.gz file2
        tar -cjf file1.tar.bz file
        tar  -xvjf   myExamples.tar.bz
        tar  -xvzf  myExamples.tar.gz
【19】網路配置
    IP地址通常用點分十進位制(用“.”隔開的四個十進位制數)
    ping:檢測網路連線狀況
    ifconfig:顯示和配置網絡卡
        eth0:第一個乙太網卡
        lo(loop):迴環地址

【20】Shell指令碼
    本質:shell命令的有序集合
    1.存放shell命令
    2.通過語法格式來管理命令

    字尾名:.sh
    基本過程分為三步:
    1. 建立 shell 檔案
           包含任意多行作業系統命令或shell命令的文字檔案;
    2. 賦予shell檔案執行許可權
           用chmod命令修改許可權;
    3. 執行shell檔案
           直接在命令列上呼叫shell程式.

【21】shell變數
    Shell允許使用者建立變數儲存資料,但不支援資料型別(整型、字元、浮點型),將任何賦給變數的值都解釋為一串字元

    四種變數:

        1.使用者自定義變數 
        2.環境變數
            HOME: /etc/passwd檔案中列出的使用者主目錄 
            PATH:shell搜尋路徑
        3.位置變數即 命令列引數 
            $0 :  與鍵入的命令列一樣,包含指令碼檔名
            $1~$9 :分別包含第一個到第九個命令列引數
            ${10}~${n}: 存放第十個到第n個命令列引數。
        4.預定義變數 
            shell直譯器預先定義好的變數,使用者只能根據定義使用,而不能修改變數的定義
            $#   包含命令列引數的個數,不包含指令碼檔名
            [email protected]  包含所有命令列引數:“$1,$2,……$9”
            $?    包含前一個命令的退出狀態
                如果命令正常執行,則值為0;否則為非0值
            $*    包含所有命令列引數:“$1,$2,……$9”
            $$    包含正在執行程序 的ID號