Linux運維學習筆記之五:Linux目錄結構

第九章 Linux目錄結構

一、Linux一級目錄結構

1、/bin常用二進制可執行命令for allusers
2、/dev設備特殊文件

/dev/null 是系統的空設備(也就是黑洞)

3、/etc系統管理和配置文件

/etc/init.d 啓動命令

/etc/rc.d 啓動的配置文件和腳本

/etc/motd 客戶連接時顯示的內容

echo "ABC's Linux, ip is 192.168.58.85" > /etc/motd

cat /etc/motd

ssh登錄

Last login: Fri Jan  612:44:45 2017 from 192.168.18.239

ABC's Linux, ip is 192.168.58.85

4、/home普通用戶主目錄的基點,比如用戶user的主目錄就是/home/user,可以用~user表示
5、/lib標準程序設計庫,又叫動態鏈接共享庫,作用類似windows裏的.dll文件
6、/sbin系統管理命令,這裏存放的是系統管理員使用的管理程序
7、/tmp公用的臨時文件存儲點
8、/root系統管理員的主目錄
9、/mnt系統提供這個目錄是讓用戶臨時掛載其他的文件系統。
10、/lost+found這個目錄平時是空的,系統非正常關機而留下“無家可歸”的文件(windows下叫什麼.chk)就在這裏
11、/proc虛擬的目錄,是系統內存的映射。可直接訪問這個目錄來獲取系統信息。

cat /proc/meminfo     查看內存信息

cat /proc/cpuinfo     查看CPU信息

cat /proc/loadavg     查看系統負載

cat /proc/filesystems 查看文件系統信息

cat /proc/devices     查看運行內核所配置的所有設備清單

cat /proc/dma     查看正在使用的DMA通道

cat /proc/interrupts  查看正在使用的中斷和曾經有多少箇中斷

cat /proc/ioports     查看正在使用的I/O端口  

12、/var某些大文件的溢出區,比方說各種服務的日誌文件

/var/log/messages 系統日誌文件

/var/log/secure 系統安全日誌文件

13、/usr最龐大的目錄,要用到的應用程序和文件幾乎都在這個目錄。其中包含:

/usr/X11R6 存放Xwindow的目錄

/usr/bin 衆多的應用程序

/usr/sbin 超級用戶的一些管理程序

/usr/doc linux文檔

/usr/include linux下開發和編譯應用程序所需要的頭文件

/usr/lib 常用的動態鏈接庫和軟件包的配置文件

/usr/man 幫助文檔

/usr/src 源代碼,linux內核的源代碼就放在/usr/src/linux裏

/usr/local/bin 本地增加的命令

/usr/local/lib 本地增加的庫

二、Linux重要子目錄

1、/etc/sysconfig/network-scripts/: 網卡目錄

    cat/etc/sysconfig/network-scripts/ifcfg-eth0

    DEVICE=eth0#網卡設備名稱

    ONBOOT=yes#啓動時是否激活 yes | no

    BOOTPROTO=static#協議類型 dhcp bootp none

    IPADDR=192.168.1.90#網絡IP地址

    NETMASK=255.255.255.0#網絡子網地址

    GATEWAY=192.168.1.1#網關地址

    BROADCAST=192.168.1.255#廣播地址

    HWADDR=00:0C:29:FE:1A:09#網卡MAC地址

    TYPE=Ethernet#網卡類型爲以太網

   

    /etc/init.d/networkrestart : 重啓所有網卡 (stop |reload)

    ifdowneth0 && ifup eth0    : 重啓eth0網卡

    ifdowneth0                  :關閉eth0網卡

    ifupeth0                    : 打開eth0網卡

2、/etc/resolv.conf: 本地客戶端DNS文件

    cat/etc/resolv.conf

    #Generated by NetworkManager

    domainopenstacklocal

    searchopenstacklocal

    nameserver192.168.90.161

    nameserver192.168.58.2

3、/etc/hosts: 設定用戶IP與名字(或域名)的對應解析表,相當於本地局域網的DNS文件

   cat /etc/hosts

    127.0.0.1   localhost localhost.localdomain localhost4localhost4.localdomain4

    ::1     localhost localhost.localdomain localhost6localhost6.localdomain6

    192.168.8.198   study.linux.rhel

    192.1468.8.198  localhost 

4、/etc/fstab: 記錄啓動時自動mount文件系統的文件
(1)查看/etc/fstab內容

cat /etc/fstab

    /dev/mapper/vg_study-lv_root/               ext4   defaults    1 1

    UUID=a05b6248-af32-49aa-bdf9-26b239b76e42/boot      ext4    defaults   1 2

    /dev/mapper/vg_study-lv_swapswap            swap   defaults    0 0

    tmpfs           /dev/shm             tmpfs  defaults    0 0

    devpts          /dev/pts             devpts gid=5,mode=620  0 0

    sysfs           /sys             sysfs  defaults    0 0

proc            /proc            proc    defaults   0 0

(2)/etc/fstab的格式

fs_spec fs_file fs_type fs_options fs_dump fs_pass

fs_spec :該字段定義希望加載的文件系統所在的設備或遠程文件系統。

fs_file :該字段描述希望的文件系統加載的目錄點,對於swap設備,該字段爲none;對於加載目錄名包含空格的情況,用40來表示空格。描述文件系統的載入點,對於交換分區(swap),這個字段定義爲none,如果在載入點的路徑中包含空格符,可以用“\040”來替代空格符。

fs_type :定義了該設備上的文件系統,一般常見的文件類型爲ext2 (Linux設備的常用文件類型)、vfat(Windows系統的fat32格式)、NTFS、iso9600等.

fs_options :指定加載該設備的文件系統是需要使用的特定參數選項,多個參數是由逗號分隔開來。

參數:

ro:以只讀模式加載該文件系統

sync:不對該設備的寫操作進行緩衝處理,這可以防止在非正常關機時情況下破壞文件系統,但降低速度

user:允許普通用戶加載該文件系統

quota:強制在該文件系統上進行磁盤定額限制

noauto:不再使用mount -a命令(例如系統啓動時)加載該文件系統

fs_dump - 該選項被"dump"命令使用來檢查一個文件系統應該以多快頻率進行轉儲,0表示不備份,1表示備份。若不需要轉儲就設置該字段爲0.文件系統頻率(fs_freq),被dump程序使用來確定哪個文件系統需要dump,如果最後一個字段沒有設置,系統將認爲其值爲0,而dump程序則認爲此文件系統無需dump。

fs_pass- 該字段被fsck命令用來決定在啓動時需要被掃描的文件系統的順序,根文件系統"/"對應該字段的值應該爲1,其他文件系統應該爲2。若該文件系統無需在啓動時掃描則設置該字段爲0.被fsck程序所使用來確定進行在系統重啓進行文件系統檢查時的順序,對於根系統/這個值應設爲1,其它文件系統可以設爲2,在同一個物理硬盤內的文件系統應該被順序檢測,而不同硬盤中的文件系統則應該同時檢測以充分利用系統的並行性。如果最後一個字段值爲0或沒有設置,fsck程序裝跳過此文件系統的檢測。在linux編程中可以用getmntent過程來訪問這個文件的內容。

 

5、/etc/rc.local: 存放開機自啓動程序命令的文件

   rc.local就是在一切初始化工作後,Linux留給用戶進行個性化的地方

    類似chkconfig,是在系統開機之後登錄之前要運行的程序,chkconfig只能管理yum/rpm安裝的程序的啓動服務

   Linux開機流程:

    第一步:加載BIOS

        BIOS中包含了CPU的相關信息、設備啓動順序信息、硬盤信息、內存信息、時鐘信息、PnP特性等等

    第二步:讀取MBR

        硬盤上第0磁道第一個扇區被稱爲MBR,也就是Master Boot Record,即主引導記錄,它的大小是512字節,存放預啓動信息、分區表信息。

        系統找到BIOS所指定的硬盤的MBR後,就會將其複製到0×7c00地址所在的物理內存中。複製的內容就是Boot Loader,而具體到你的電腦,那就是lilo或者grub了。

    第三步:Boot Loader

        Boot Loader 就是在操作系統內核運行之前運行的一段小程序。初始化硬件設備、建立內存空間的映射圖,爲最終調用操作系統內核做好一切準備。

        Boot Loader有若干種,其中Grub、Lilo和spfdisk是常見的Loader。

    第四步:加載內核

        根據grub設定的內核映像所在路徑,系統讀取內存映像,並進行解壓縮操作。系統將解壓後的內核放置在內存之中,

        並調用start_kernel()函數來啓動一系列的初始化函數並初始化各種設備,完成Linux核心環境的建立。

    第五步:用戶層init依據inittab文件來設定運行等級

        內核被加載後,第一個運行的程序便是/sbin/init,該文件會讀取/etc/inittab文件,並依據此文件來進行初始化工作。

    第六步:init進程執行rc.sysinit

        Linux系統執行的第一個用戶層文件就是/etc/rc.d/rc.sysinit腳本程序,它做的工作非常多,

        包括設定PATH、設定網絡配置(/etc/sysconfig/network)、啓動swap分區、設定/proc等等

    第七步:啓動內核模塊

        依據/etc/modules.conf文件或/etc/modules.d目錄下的文件來裝載內核模塊。

    第八步:執行不同運行級別的腳本程序

        根據運行級別的不同,系統會運行rc0.d到rc6.d中的相應的腳本程序,來完成相應的初始化工作和啓動相應的服務。

    第九步:執行/etc/rc.d/rc.local

    第十步:執行/bin/login程序,進入登錄狀態

   cat /etc/rc.local

    #!/bin/sh

    #

    #This script will be executed *after* all the other init scripts.

    #You can put your own initialization stuff in here if you don't

    #want to do the full Sys V style init stuff.

   

    touch/var/lock/subsys/local

    serviceiptables stop

 

/etc/inittab : 設定系統啓動時init進程將把系統設置成相應的runlevel及加載相關啓動文件設置   

   cat /etc/inittab

    #inittab is only used by upstart for the default runlevel.

    #

    #ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.

    #

    #System initialization is started by /etc/init/rcS.conf

    #

    #Individual runlevels are started by /etc/init/rc.conf

    #

    #Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf

    #

    #Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,

    #with configuration in /etc/sysconfig/init.

    #

    #For information on how to write upstart event handlers, or how

    #upstart works, see init(5), init(8), and initctl(8).

    #

    #Default runlevel. The runlevels used are:

    #   0 - halt (Do NOT set initdefault to this)

    #   1 - Single user mode

    #   2 - Multiuser, without NFS (The same as 3,if you do not have networking)

    #   3 - Full multiuser mode

    #   4 - unused

    #   5 - X11

    #   6 - reboot (Do NOT set initdefault to this)

    #

    id:3:initdefault:

6、/etc/exports: 設定NFS網絡文件系統的配置文件

   cat /etc/exports   

7、/etc/init.d: 存放系統以System v模式啓動的腳本

   ll /etc/init.d

   cd /etc/init.d

8、/etc/profile: 系統全局環境變量配置文件

   cat /etc/profile   

9、/etc/profile.d: 加載系統登錄程序的目錄,可以存放命令和文件
10、/etc/issue: 記錄用戶登錄前顯示的信息
11、/etc/motd客戶連接時顯示的內容

    echo"ABC's Linux, ip is 192.168.58.85" > /etc/motd

    cat/etc/motd

    ssh登錄

    Lastlogin: Fri Jan  6 12:44:45 2017 from 192.168.18.239

    ABC'sLinux, ip is 192.168.58.85

12、/etc/redhat-release: 顯示系統版本(lsb_release-a)

    cat/etc/redhat-release

     CentOS release 6.5 (Final)

13、/etc/group: 用戶的組名信息文件

    cat/etc/group

14、/etc/gshadow: 組密碼文件

    cat/etc/gshadow

15、/etc/passwd: 用戶名信息文件

    cat/etc/passwd

16、/etc/shadow: 用戶密碼文件

cat /etc/shadow

useradd username這個命令會在/etc下的group、gshadow、passwd、shadow4個文件中加入相關內容 

17、/etc/sudoers: sudo的配置文件

一般用visudo來設置/etc/sudoers,因爲visudo檢查語法,vi /etc/sudoers不檢查語法

18、/etc/securetty: 設定哪些終端可以讓root登錄
19、/etc/login.defs: 所有用戶登錄時的缺省配置
20、/etc/modprobe.conf: 內核模塊額外參數配置
21、/etc/rsyslog.conf: 日誌設置文件(CentOS5.X版本爲syslog.conf)
22、/usr/local: 用戶自編譯安裝軟件的存放目錄,一般是通過源碼安裝。相當於c:\program files
23、/usr/src: 內核源碼的存放目錄
24、/var/log: 各種系統日誌存放目錄
25、/var/log/messages: 系統日誌,按周循環
26、/var/log/secure: 存放系統登錄信息(系統安全的日誌文件)
27、/var/log/wtmp: 記錄系統登陸者的信息文件。

    last: 查看wtmp的內容(still logged in表示正在登錄)

    root     pts/0   192.168.158.1    Sat Jan  7 12:06  still logged in  

    root     pts/0   192.168.158.1    Sat Jan  7 11:10 - 12:06  (00:56)   

    reboot   system boot 2.6.32-431.el6.i Sat Jan  7 11:09- 12:07  (00:57) 

   

    lastlog: 查看用戶是否登錄過

    Username     Port    From         Latest

    root         pts/0   192.168.158.1    Sat Jan  7 12:06:40 +0800 2017

    bin                    **Never logged in**

    daemon                     **Never logged in**

    ftp                    **Never logged in**

28、/var/spool/cron/[Username] : 定時任務crontab默認路徑。按用戶名命名文件

   /var/spool/cron/root

   /var/spool/cron/oracle

   crontab -l 

29、/var/spool/clientmqueue: sendmail臨時郵件文件目錄,有時候該目錄下有許多小文件,將磁盤空間或文件inode的佔滿

    定時清理:

        echo"/var/spool/clientmqueue/sendmail/ -type f | xargs rm -f" > 30、/server/scripts/del_sys_file.sh

        echo "00 00 * * * /bin/sh/server/scripts/del_sys_file.sh > /del/null 2>&1" >>/var/spool/cron/root   

30、/proc/version: 系統版本

   cat /proc/version 

31、/proc/sys/kernel: 系統內核所在的目錄

   cd  /proc/sys/kernel

   ll  /proc/sys/kernel

   

    修改文件/etc/sysctl.conf中的內容後,sysctl -p生效,實際上就是修改/proc目錄下的相關文件

    也可以直接修改/proc下的文件內容達到系統調優的目的,只是重啓後失效。

    可以將命令放在/etc/rc.local中達到長期有效的目的。

    vi/etc/sysctl

        net.ipv4.tcp_tw_reuse = 1

    sysctl-p

    等同於

    echo1 > /proc/sys/net/ipv4/tcp_tw_reuse

    virc.local

        echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse

        

發佈了40 篇原創文章 · 獲贊 15 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章