linux 基礎

linux的文件系統

    根文件系統(rootfs)

    root filesystem

LSB, FHS:

    /etc ,/usr, /var, /root, /home, /dev

    /boot: 引導文件存放的目錄:操作系統首先啓動的內核文件(vmliuxz)、引導加載器(bootloader,grub)都存放在此目錄

    /bin: 供所有用戶使用的基本命令: 不能關聯到獨立分區。os啓動即會用到的程序

    /sbin(system binary): 管理類的基本命令,不能關聯到獨立分區。os啓動即會用到的程序

    /lib:基本共享庫文件,系統啓動會用的庫文件,內核模塊文件(/lib/modules)32位程序依賴

    /lib64: 64位程序依賴。輔助共享庫件存放的位置

    /etc: 配置文件目錄(大多數是純文本文件),/etc/opt              /etc/X11圖形界面的配置文件

    /home/IUSERNAME: 普通用戶家目錄、

    /root: 管理員的家目錄

    /media:關聯便攜式移動設備  /usb   /cdrom

    /mnt:掛載臨時的文件系統或者關聯位置

    /dev : 特殊文件(軟件)和設備文件存放位置     b:block device(可隨機訪問)    c:character   device(線性訪問,有訪問先後)

    /opt: 第三方應用程序(輔件類)安裝位置。首次使用是空的

    /srv:系統上運行的服務用的中間數據存放的位置

    /tmp: 臨時文件。

    /usr : 通常會關聯到獨立分區。

                /usr/bin:保證系統擁有完整功能而提供的應用程序  

                /usr/sbin:管理員可以使用的命令.配置文件在/etc下

               /usr/ib64  

                /usr/include:C程序的頭文件(header file)  

                /usr/:share:結構獨立化的數據。如:doc、man

                /local: 第三方應用程序安裝位置   /bin    /sbin    /lib64   等

    /var: 可變數據文件。

                /cache : 應用程序緩存數據目錄

                /lib: 應用程序狀態信息數據

                /local:  專用天爲/usr/local下的應用程序存儲可變數據

                /lock: 鎖文件

                /log: 日誌目錄及文件

                /opt:  專用於爲/opt下的應用程序存儲可變數據

                /run: 與運行中的進程相關的數據(進程的PID文件)

                /spool: 緩存池

                /tmp: 系統再次重啓過程中產生的臨時文件

    /proc: 僞文件系統。虛擬文件系統。用於輸出內核與進程信息相關的虛擬文件

    /sys: 用於輸出當前系統上硬件設備相關信息的虛擬文件系統

    /misc: 備用的雜項

    /lost+found: 格式化後產生的

    /selinux: selinux相關的安全信息策略等信息的存儲位置

Linux上的應用程序的組成部分

    二進制:/bin, /sbin/ /usr/bin /usr/sbin /usr/local/bin /usr/lcoal/sbin

    庫文件:/lib /lin64 、/usr/lib /usr/lib64  /usr/local/lib /usr/local/lib64

    配置文件: /etc  /etc/DIRECTORY  /etc/local/etc

    幫助文件: /etc/share/man /usr/share/doc   /usr/lcal/share/man /usr/local/share/doc

Linux下的文件類型

    -(file): 普通文件

    -d(dir): 目錄文件

    -b(block): 塊設備.

    -c(charater):  字符設備

    -l( symbol link): 軟件連接。符號連接

    -p(pipe): 管道文件

    -s(socket): 套接字文件,接口文件。

    

Linux系統管理命令

    關機    halt reboot poweroff                                          

                    -f 強制不調用shutdown 

                    -p 切斷電源

                   shutdown -r重啓   -h關機後會切斷電源。 -c取消關機或重啓操作、  TIME: now 立刻  +num 從命令提交開始之後num時間之後。 hh:mm。絕對時間表示

Linux 用戶信息查詢命令

    whoami: 顯示當前登錄的有效用戶              who:顯示當前所有的登錄會話       w:系統當前所有登錄會話及所做的操作。

目錄管理類命令:

    命令行展開:

        ~: 展開爲用戶的主目錄

        ~USERNAME:展開爲指定用戶的主目錄

        {}: 可承載一個以逗號分隔的列表,並將其展開爲多個路徑

                /tmp/{a,b} = /tmp/a, /tmp/b

                /tmp/{a,b}/jea = /tmp/a/jea, /tmp/b/jea

    命令的執行結果:

      0:成功

      1-255:失敗

        bash使用特殊變量$?保存最近一條執行狀態結果

     命令的執行結果:命令的返回值。 命令的執行狀態

 cd,pwd,ls,mkdir, rmdir       藍色表示目錄

    mkdir 創建目錄

                -p: 遞歸創建目錄。存在不報錯。

                -v(verbose): 顯示創建詳細過程

                -m mode: 創建目錄時直接指定權限

    tree: 顯示目錄樹

            -d :只顯示目錄

            -l  level: 指定顯示的層級數目

            -P :只顯示匹配Pattern 的目錄

    rmdir:刪除目錄(只能刪除空目錄)

            -v : 顯示過程

            -f : 強制刪除

            桌面

      文件查看類命令:

            cat,tac

            more, less , tail .head

            head tail :獲取文件的前幾行   後幾行 (默認是10)

                -c: 指定獲取前多少個字節

                -n: 指定獲取前多少行

      文件的時間戳管理工具:

            touch

            文件:metadata , data

                查看文件的狀態:stat

                 三個時間戳:

                        access time: 訪問時間 atime , 讀取文件內容

                        modify time: 修改時間 mtime 改變文件內容

                        change time :改變時間 ctime   元數據發生改變

            -a: 修改atime

            -m:修改mtime

            -c :如果不存在,則不創建

            cp:  複製, 源, 目標

                    -i 交互式

                    -r 遞歸複製

                    -a: 歸檔複製

            mv:移動

    nano :全屏幕的文件編輯器

     Bash的基礎特性:

            1.命令別名(alias)(僅對當前shell有效,如果想要永久有效,僅對當前用戶: ~/.bashrc   對所有用戶:/etc/bashrc)

                alias ls="ls -l"    取消別名:unalias ls

                bash進程重新讀取配置文件 兩個種方式:source /path.to/config_file            ./path/to/config_file

            2.glob (globing)可在bash中實現文件名通配 例如:* (任意長度任意字符),?(任意單個字符), [](),  ^(取反,如[^0-9] 所有非數字的)

    bash的快捷鍵、

            ctrl + l 相當於clear

            ctrl + a 首部

            ctrl + e 尾部

            ctrl + w 按單詞刪除

            ctrl +c 終止當前命令

            ctrl +u 刪除命令行首到光標所在處的所有內容

            ctrl + k 刪除光標所在處到尾部的內容                      

    Bash中的I/O重定向及管理

            程序:指令 + 數據

                    讀入數據:input

                    輸入數據: output

            每一個打開的文件都有一個fd:文件描述符file descriptor

            標準輸入:keyborad

            標準輸出:monitor 顯示器 文件描述符爲1

            標準錯誤:monitor 顯示器 文件描述符爲2

            I/O重定向:改變標準位置

                輸出重定向:command new_pos, command >> new_pos

                set -C 禁止輸入重定向覆蓋輸入到文件

                2>:覆蓋重定向錯誤輸出數據流 (將錯誤輸出輸出到文件)

                標準輸出和標準錯誤輸出重定向

                    command >file 2>file_2

                合併標準輸出和錯誤輸出爲同一個數據流進行重定向

                    &> file 把正確和錯誤都重定向到一個文件中

                    command >file 2>&1 把錯誤數據流重定向到第一個數據流之中

         tr: 轉換或刪除字符 transport

                 tr abc ABC  輸入a123bc 輸出A123BC            

                tr -d 刪除指定字符  tr -d a 輸入abc 輸出bc         tr 'a-z' 'A-Z' 轉換成大寫

        <<此處文檔

                例如 cat >> /tmp/test.out <<EOF        輸入:hello   EOF結尾     輸出:hello

         tee:一處輸入。兩處輸出。   tee /tmp/test

 文本操作工具

            wc:

                    -c:字節數

                    -l:行數

                    -w:僅僅靠空白字符分開的單詞

            sort: 排序  -f 忽略大小寫  -r 逆序。 -k # :以指定字段爲標準進行排序   -u去重  -n按數據排序  -t:指定分隔符

            cut:以指定字符對每一行進行切割。 cut -d: -f1,2 a.txt  輸出root:x (原來的:root:x:0:root) 

                -d: 指定分隔符。decriptor

                -f: 第1個到第3個字段

            uniq :去重

                   連續且完全一樣纔是重複

                    -c:顯示每行出現的次數

                    -d顯示重複的行

用戶和組管理

    Linux用戶:Username/UID

        管理員:root  0,

        普通用戶:1-65535

                    系統用戶:1-499   守護進行獲取資源進行權限分配

                    登錄用戶:500+    交互式登陸

    Linux組: Group/GID

        管理員組:root , 0

        普通組:

                系統組:1-499

                普通組:500+

        權限指派的一種方式。

    Linux的安全上下文:

        運行中的程序:進程(process)

                以程序發起者的身份運行

                                     root: cat

                                     cwb:cat

        Linux組的類別

        用戶的基本組(主組):

                組名同用戶名且僅包含一個用戶:私有組。一個用戶創建,系統自動給其分配私有組

                cwb:x:1000:1000:cwb:/home/cwb:/bin/bash

                用戶名:密碼(x:佔位符):用戶ID:組ID:主目錄:默認shell

        用戶的附加組(額外組):   

        Linux用戶和組相關的配置文件:

            /etc/passwd 用戶及其屬性信息(名稱。UID。基本組ID等)密碼佔位符

            /etc/group 組及其屬性信息

            /etc/shadow 用戶密碼及相關屬性

            /etc/gshadow 組密碼及相關屬性

       useradd 用戶名:創建用戶名

            -u :指定UID

            -g:基本組GID

            -c “comment”:註釋內容

            -d:指定家目錄  -d /path/to/home  用戶名    

            -s: 指定 shell文件的路徑,可能列表在/etc/shells文件

             -G:指定用戶所屬的附加組。可以有多個附加組用戶‘,’隔開、組必須事先存在

             -r:創建系統用戶  centos 6 ID<500 centos 7 ID<1000

    例如:useradd gentoo -s /bin/csh -c "Gentoo Distribution" -G linux


        組創建:groupadd

                -g:指明GID。       

                -r:創建系統組  centos 6 ID<500 centos 7 ID<1000

         查看用戶相關的ID信息:id

                -u:UID

                -g:GID

                -G:groups

                -n: Name

        切換用戶或以其他用戶身份執行命令:su

            su UserName: 非登陸式切換,即不會讀取目標用戶的配置文件

            su - UserName: 登錄式切換。會讀取目標用戶的配置文件。完全切換

            root su到其它用戶無須密碼, 非root用戶需要密碼

    用戶屬性修改:usermod

                 -u:新的UID

                -g:新的基本組GID

                -G:groups新附加組,原來的附加組會被覆蓋,若保留原來的,需要使用-a選項。表示append

                -l login:修改爲新的名字

                -c :新的註釋

                -d Home :新的家目錄

                -L鎖定用戶。鎖定之後無法登陸, -U:解鎖用戶

                -e YY-MM-DD:設定用戶過期日期

    給用戶添加密碼:passwd

                passwd UserName: 修改指定用戶的密碼。僅root可以

                passwd :用戶修改自己的密碼

                           -l(小寫的): 鎖定用戶  -u:解鎖用戶

                           -n mindays :指定最短使用期限

                           -x maxdays:指定最大使用期限

                           -w warning:提前多少開始警告

                           --stdin : 從標準輸入接收用戶密碼     echo "PASSWORD" | passwd --stdin USERNAME(把PASSWORD當作密碼通過管道傳入passwd 中)

                                /dev/null: 數據黑洞。

                                /dev/zero:

         刪除用戶:userdel:

                -r: 刪除用戶家目錄

         組屬性修改:groupmod

                -n group_name:新的名字

                -g GID:新的GID    

            組刪除:groupdel

         組添加密碼:gpasswd 組名

                    -a user :將user添加到指定組中

                    -d user:刪除用戶user的以當前組名的附加組

                    -A user1,user2,user3: 設置有管理權限的用戶 gpasswd -A user1,user2,user3  root

            newgrp :臨時切換基本組

                    如何用戶本不屬於此組,則需要密碼

         修改用戶屬性:chage  更改用戶密碼過期信息

          其它命令:chfn (finger顯示信息).chsh 修改shell.

    權限管理:

        ower    主u

        group   組g

        other    其它o

        r:readable 可讀   可以使用文件查看類工具獲取其內容   4

        w:writable 可寫 。 2

        x:excutable 執行 1

         修改權限:chmod

                    -R :遞歸修改權限。父目錄和子目錄、文件等權限都會被修改

                    直接指定:Mode   u=rx     g=r-x  o=       或 ug=   

        chmod    --reference=RFILE FILE 參考RFILE文件的權限,修改爲和RFILE權限一樣

         chown:修改文件的屬主 chown cwb  file    

                    OWNER:GROUP

                    :GROUP

            -R遞歸修改

        修改文件的屬性:chgrp

        文件或創建時的遮罩碼 :umask

                FILE:   666-umask    如果某類的用戶的權限減得的結果中存在x權限,則將其權限+1

                DIR :   777-umask

                 umask :查看  0022:第一個0不要看,創建的目錄權限都是666-022=644權限,如果有x行權限會+1、如果是目錄別不會+1、只有文件會+1.

                umask # 設定

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章