Linux運維-05目錄結構

目錄結構 學習筆記(需結合思惟導圖)

系統目錄結構

  • linux目錄結構: 一切從根開始,一個倒掛的樹node

  • windows目錄結構:按照盤符進行劃分 C盤:linux

  • linux系統中的掛載技術shell

  • 讓用戶能夠將一個目錄做爲一個存儲設備的掛載點,經過掛載點能夠看到存儲設備中的數據數據庫

    • 實際操做演示linux系統掛載過程vim

    • 第一個步驟:擁有一個存儲設備-光驅 使光驅加載光盤windows

    • 第二個步驟:在linux系統中找到光驅設備centos

      • [root@jarvis ~]# ls -l /dev/cdrom         device 設備目錄
        lrwxrwxrwx. 1 root root 3 Mar 29 12:02 /dev/cdrom -> sr0
    • 第三個步驟:須要將存儲設備進行掛載安全

      • 掛載命令語法格式:mount 掛載設備文件信息 掛載點(目錄信息)bash

      • mount /dev/cdrom /mnt服務器

      • PS:掛載點目錄必須存在

      • [root@jarvis /]# mount /dev/cdrom /mnt
        mount: /dev/sr0 is write-protected, mounting read-only
        mount: /dev/sr0 是一個寫保護的設備,掛載以後目錄是一個只讀狀態
        [root@jarvis /]# cd /mnt
        [root@jarvis mnt]# ls
        CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
        EFI   GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL

系統的基礎目錄結構

  • FHS目錄規範標準

  • bin 說明:命令,二進制文件的存放目錄 備註:binary /bin==/usr/bin

  • sbin 說明:超級命令,只有root用戶能用的命令 備註:super binary /sbin==/usr/sbin

  • boot 說明:系統引導程序和系統內核

  • dev 說明:設備 光驅 硬盤 備註:device:掛載才能使用

  • etc 說明:存放系統或服務的配置文件

  • home 說明:普通用戶的家目錄

  • root 說明:root用戶的家目錄

  • lib 說明:庫文件存放目錄 備註:libary

  • lib64 說明:庫文件存放目錄(64位系統)

  • lost+found 說明:磁盤、文件系統損壞 斷電 臨時存放文件 備註:數據恢復會用到

  • mnt 說明:臨時的掛載點目錄 備註:掛載點:給設備臨時掛載用

  • opt 說明:第三方軟件安裝在這裏

  • proc 說明:虛擬目錄,顯示內存中信息(進程 服務信息 內核)備註:目錄中的數據都存儲到磁盤

  • /etc/selinux 說明:selinux及它的配置文件存放的位置 備註:管理一些root用戶

  • sys 說明:虛擬的目錄 內存信息

  • tmp 說明:臨時的文件的存放位置 垃圾堆

  • usr 說明:存放用戶的程序 user/unix software resource

  • var 說明:常常變化的文件 系統日誌 相關服務日誌文件 備註:variable

詳細瞭解目錄結構中重要文件數據信息

  • 系統中將命令分爲了兩個大類

    • 外置命令 須要進行安裝
    • 內置命令 全部系統都內置的命令
    • 查看內置或外置命令方法
      • type cd
      • cd is a shell builtin
      • type mkdir
      • mkdir is /usr/bin/mkdir
  • 網卡配置文件

    • 文件內容信息

    • 檢查網卡配置文件
      [root@jarvis ~]# ls /etc/sysconfig/network-scripts/ifcfg-eth0 
      /etc/sysconfig/network-scripts/ifcfg-eth0
      查看網卡配置文件
      [root@jarvis ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
      須要瞭解的
      TYPE=Ethernet    	--指定網絡類型 以太網Ethernet
      BOOTPROTO=none 		--網絡啓動協議 如何讓主機獲得IP地址
      	           	 	  本身手動配置 none static(靜態)
      				 	  自動獲取地址 dhcpd(瞭解)
      NAME=eth0         	--主機網卡的名稱 邏輯名稱
      UUID=31d48995-e74f-4f99-8e19-0da439ea257b   -- 虛擬主機,會給每一個硬件一個標識
      DEVICE=eth0         -- 主機網卡的名稱 設備名稱物理名稱
      ONBOOT=yes          -- 設置網卡是否處於開啓狀態(激活狀態)
      IPADDR=10.0.0.200   -- 靜態配置IP地址 標識主機身份
      PREFIX=24           -- 定義局域網網絡中能夠有多少主機        
      GATEWAY=10.0.0.2    -- 網關,局域網網絡出口
      DNS1=223.5.5.5      -- DNS(創建名稱和IP地址的對應關係,域名解析)14.215.177.38 -- 名稱
      Linux系統中服務配置文件被修改後,不會當即生效,須要重啓服務(從新加載讀取配置文件過程),才能使配置生效。
    • 配置文件修改重啓服務
      方法一:
      systemctl restart network     	針對全部網卡進行重啓
      systemctl status  network		針對全部網卡進行開啓
      方法二:企業中常見用法
      ifdown eth0 && ifup eth0   		針對指定網卡進行重啓 &&表明前一個命令執行成功後,再執行後面的命令
      異常問題:網卡配置文件正確,沒法重啓網絡服務
      systemctl stop NetworkManager   網絡管理服務關閉
  • DNS解析配置文件

    • 網卡配置裏面的DNS配置更優
      [root@jarvis ~]# vi /etc/resolv.conf 
      #Generated by NetworkManager
      search com
      nameserver 10.10.10.10
  • 主機名稱文件配置文件

    • 如何修改主機名稱
    • centos7
      • 臨時修改
      • hostname jarvis-01
      • 永久修改(重啓系統才能加載配置文件)
      • vi /etc/hostname
      • 經過命令:直接能夠即臨時修改,又永久修改
      • hostnamectl set-hostname jarvis-01
    • centos6
      • 臨時修改
      • hostname jarvis-01
      • 永久修改
      • vi /etc/sysconfig/network
    • 如何查看系統版本
      • cat /etc/redhat-release
  • DNS解析映射文件

    • hosts文件:在本地創建IP地址和主機名稱的對應關係
    • windows本地解析文件位置:C:\Windows\System32\drivers\etc\hosts
    • linux本地解析文件位置:
      • vi /etc/hosts
  • 磁盤掛載文件

    • umount /mnt 卸載掛載點的設備

    • df 查看磁盤掛載狀況/查看磁盤使用狀況

    • 查看swap

      • mount /dev/cdrom /mnt
      • df
      • umount /mnt
    • /etc/fstab --- 實現存儲設備開啓自動掛載配置文件

    • [root@jarvis ~]# vi /etc/fstab
      [root@jarvis ~]# cat /etc/fstab
      UUID=e2fc8646-2b36-47cc-a35a-8c1vi3208f4d0b /       xfs     defaults        0 0
      UUID=34fc45ba-c38c-42bc-a120-90f9d5dd2382   /boot   xfs     defaults        0 0
      UUID=62100743-6f8a-4f83-a37d-e2088c4830e2   swap    swap    defaults        0 0
      定義存儲設備文件信息                            掛載點  
      /dev/cdrom                                  /mnt    ???   defaults        0 0
  • 開機自動加載文件

    • 檢查開機加載文件是否存在
      [root@jarvis ~]# ls -l /etc/rc.local
      設置開機加載文件
      [root@jarvis ~]# vi   /etc/rc.local
      裏面添加一條命令systemctl start sshd
      檢查文件開頭那一段是否存在x
      [root@jarvis ~]# ls -l /etc/rc.local
      檢查源文件開頭那一段是否存在x
      [root@jarvis ~]# ls -l  /etc/rc.d/rc.local 
      沒有x輸入
      [root@jarvis ~]# chmod +x /etc/rc.d/rc.local
    • 總結:rc.loacl文件做用

    • 文件中的內容信息,會在系統啓動以後進行加載

    • 文件中的編寫內容,必定是命令信息

  • 系統運行級別:

    • windows--系統出現故障--安全模式

    • 系統啓動:服務程序 網絡 安全服務 --啓動級別

    • 系統服務啓動 -- 啓動級別

    • 查看系統運行級別方法:

      • [root@jarvis ~]#runlevel
    • 切換運行級別:

      • 臨時調整:

        • init 切換的運行級別
      • 永久調整:

        • centos6:

          • vi /etc/inittab
        • centos7:

          • 查看全部target信息

          • [root@jarvis ~]# ls -l /usr/lib/systemd/system/runlevel*target
            /usr/lib/systemd/system/runlevel0.target -> poweroff.target
            /usr/lib/systemd/system/runlevel1.target -> rescue.target
            /usr/lib/systemd/system/runlevel2.target -> multi-user.target
            /usr/lib/systemd/system/runlevel3.target -> multi-user.target
            /usr/lib/systemd/system/runlevel4.target -> multi-user.target
            /usr/lib/systemd/system/runlevel5.target -> graphical.target
            /usr/lib/systemd/system/runlevel6.target -> reboot.target
          • 永久設置運行級別

          • [root@jarvis ~]# systemctl set-default rescue.target
            Removed symlink /etc/systemd/system/default.target.
            Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/rescue.target.
          • 檢查默認運行級別

          • [root@jarvis ~]# systemctl get-default
            rescue.target
    • centos6啓動級別

      • 00 系統的關機級別 init 0 進入到關機狀態
      • 01 系統的單用戶模式 用於修復系統 或重置密碼信息 沒有網絡
      • 02 系統的多用戶模式 沒有網絡
      • 03 系統的多用戶模式 正常系統運行級別多用戶模式級別 有網絡
      • 04 預留級別
      • 05 圖形化界面級別
      • 06 系統的重啓級別
    • centos7啓動級別:target目標

      • 00 系統的關機級別 init 1 進入到維修模式 poweroff.target
      • 01 系統的單用戶模式 用於修復系統 或重置密碼信息 rescue.target
      • 02 系統的多用戶模式 沒有網絡 multi-user.target
      • 03 系統的多用戶模式 正常系統運行級別多用戶模式級別 有網絡 multi-user.target
      • 04 預留級別 multi-user.target
      • 05 圖形化界面級別 graphical.target
      • 06 系統的重啓級別 reboot.target
    • 總結

      • 每一個級別有什麼用
      • 如何查看此時系統運行級別
      • 如何修改設置運行級別
  • 變量加載文件

    • 設置變量方法

      • [root@jarvis ~]# X=1234
    • 調取變量方法($)

      • [root@jarvis ~]# echo $X
    • 腳本概念:

      • 將多個命令整合在一個文件
      • 經過執行加載一個文件能夠完成多件事
    • 腳本文件

      • [root@jarvis ~]# vi test.sh
        dir=abc
        mkdir /$dir/01
        mkdir /$dir/02
        mkdir /$dir/03
        執行腳本
        [root@jarvis ~]# sh test.sh
    • /etc/profile

      • 做用:讓變量信息永久生效

      • vi /etc/profile

      • 直接讓文件生效方法:

      • source /etc/profile

    • 系統中變量的類型:

      • 普通變量:須要人爲設置
      • 環境變量:系統默認就有的變量
    • which 命令名 查看命令存放目錄

    • 環境變量PATH做用

      • 打印環境變量
        [root@jarvis ~]# echo $PATH
        /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
        查看cat命令存放路徑
        [root@jarvis ~]# which cat
        /usr/bin/cat
        使用cat命令
        [root@jarvis ~]# cat /etc/hosts
        127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
        ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
        10.0.0.200  oldboyedu.com
        將cat命令剪切走
        [root@jarvis ~]# mv /usr/bin/cat /jarvis
        原來cat命令路徑下沒有cat名了
        [root@jarvis ~]# ls /usr/bin/cat
        ls: cannot access /usr/bin/cat: No such file or directory
        沒法使用cat命令
        [root@jarvis ~]# cat /etc/hosts
        -bash: /usr/bin/cat: No such file or directory
        修改PATH環境變量方法:
        臨時修改: 
        PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/jarvis
        永久設置:
        vi /etc/profile
        export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/jarvis
  • 系統別名概念

    • [root@jarvis ~]# ls -l /etc/hosts
      -rw-r--r--. 1 root root 184 Apr  3 09:09 /etc/hosts
      [root@jarvis ~]# ll /etc/hosts
      -rw-r--r--. 1 root root 184 Apr  3 09:09 /etc/hosts
      說明: ll命令就是ls -l命令的別名
      做用: 別名可使命令操做更加簡單
    • 需求01: 如何讓一下命令操做簡單

    • cat /etc/sysconfig/network-scripts/ifcfg-eth => catnet

    • 查看系統別名默認設置:
      [root@jarvis ~]# alias 
      alias cp='cp -i'
      alias egrep='egrep --color=auto'
      alias fgrep='fgrep --color=auto'
      alias grep='grep --color=auto'
      alias l.='ls -d .* --color=auto'
      alias ll='ls -l --color=auto'
      alias ls='ls --color=auto'
      alias mv='mv -i'
      alias rm='rm -i'
      alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
      設置命名的語法:
      alias 別名名稱='命令信息'
      [root@jarvis ~]#alias catnet='cat /etc/sysconfig/network-scripts/ifcfg-eth0'
    • 需求02:rm 命令執行 == echo "rm command is weixian,not use"

    • alias rm='echo rm command is weixian,not use'
      [root@jarvis ~]# rm -rf /jarvis/
      rm command is weixian,not use -rf /jarvis/
      使別名功能失效:
      01. 取消別名
      unalias rm
      02. 利用撬棍
      \rm -rf /jarvis
      03. 絕對路徑方式執行命令
      /usr/bin/rm -rf /jarvis
      
      總結:/etc/profile文件做用
      01. 永久設置變量信息
      02. 設置別名信息
    • 修改用戶家目錄中.bashrc

    • 查看隱藏數據方法

    • [root@jarvis ~]# ls -a
      .  ..  anaconda-ks.cfg  .bash_history  .bash_logout  .bash_profile  .bashrc  .cshrc  .tcshrc
      說明:linux系統中隱藏文件都是以點開頭
      vi /root/.bashrc
      #alias rm='rm -i'
      總結:和環境變量配置以及別名配置相關的文件有哪些
      01 /etc/profile == /etc/bashrc        全局生效
      02 ~/.bashrc    == ~/.bash_profile    指定用戶生效(優先)
  • 登陸以後提示文件

    • /etc/motd
      cat /etc/motd
      vi /etc/motd
      做用:能夠對操做系統的用戶進行注意事項說明
  • 登陸以前提示文件

    • /etc/issue
      /etc/issue.net
      查看登錄以前提示文件
      [root@jarvis ~]#cat /etc/issue
      \S
      Kernel \r on an \m
      查看登錄以前提示文件
      [root@jarvis ~]#cat /etc/issue.net
      \S
      Kernel \r on an \m
      
      如何清空文件內容
      echo "" >/etc/issue   -- 清空文件
      >/etc/issue           -- 清空文件
      [root@jarvis ~]# >/etc/issue
      [root@jarvis ~]# >/etc/issue.net 
      
      在文件中添加信息
      [root@jarvis ~]# echo '歡迎使用' >/etc/issue

和程序軟件安裝相關的目錄

  • /usr/local

    • [root@jarvis ~]# ll -d /usr/local/
    • drwxr-xr-x. 12 root root 131 Mar 28 10:40 /usr/local/
  • 系統中如何安裝軟件

    • yum安裝軟件 簡單快捷 (掌握)
    • rpm安裝軟件 須要有軟件安裝包
    • 編譯安裝軟件 能夠靈活調整
  • 下載安裝軟件利用yum方式

    • 第一個里程:本地配置源文件

    • [root@jarvis ~]# cd /etc/yum.repos.d/
      [root@jarvis yum.repos.d]# ll
      -rw-r--r--. 1 root root 1664 Apr 29  2018 CentOS-Base.repo
      
      [base]
      name=CentOS-$releasever - Base
      mirrorlist=http://mirrorlist.centos.org/? 
      release=$releasever&arch=$basearch&repo=os&infra=$infra
      統一yum安裝的環境:
      https://opsx.alibaba.com/mirror
      curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
      命令做用:
      從阿里雲下載一個yum源文件,更新默認的/etc/yum.repos.d/CentOS-Base.repo,使下載環境統一
    • 第二個里程:安裝軟件命令

    • yum install 軟件名稱

    • yum install -y vim tree wget net-tools nmap bash-completion(補全centos7的部分命令參數)

    • 總結:yum安裝軟件常見問題

      • 排錯流程:
      • 能不能訪問外網
        • 訪問外網IP地址不通 網卡地址配置有問題
        • 訪問外網域名不通 DNS配置有問題
      • 檢查是否已經有下載的進程
        • ps -ef == windows 任務管理器-進程 PID成爲進程編號
        • kill PID 殺死進程
        • kill -9 PID 強制殺死
      • yum源文件被修改調整

日誌文件保存目錄

  • ll /var/log/

  • 兩個重要的系統日誌文件

    • messages -- 記錄系統或服務程序運行的狀態信息 和 錯誤信息

    • secure(安全) -- 用戶登陸信息 做用:能夠進行監控文件的信息,檢查是否有過多登錄失敗記錄

    • [root@jarvis ~]# cat /var/log/secure
      Apr  4 11:35:29 oldboyedu sshd[3568]: Accepted password for root from 10.0.0.1 port 54913 ssh2
      Apr  4 11:35:29 oldboyedu sshd[3568]: pam_unix(sshd:session): session opened for user root by (uid=0)
      01                  02        03               04
      01. 用戶是什麼時間登陸的
      02. 登陸的主機名稱
      03. 使用什麼方式進行遠程登陸
      04. 登陸狀況說明
      	正確登陸狀況說明
      	錯誤登陸狀況說明
      如何查看日誌信息
      head -5 /etc/profile    --- 查看前面幾行信息 (默認查看前面10行內容)
      tail -6 /etc/profile    --- 查看倒數幾行信息(默認查看倒數10行內容)
      tail -f /var/log/secure --- 查看日誌文件方法 一直追蹤查看文件內容的變化

系統硬件信息查看方法

  • CPU:

    • 利用文件進行查看:

    • cat /proc/cpuinfo 
      model name: Intel(R) Core(TM) i5-8400 CPU @ 2.80GHz  -- CPU品牌型號
      physical id	: 0                                      -- 表示CPU顆數  1顆
      processor	: 0                                      -- 表示CPU核數  1核
      cpu cores	: 1
      physical id	: 0   第一段  physical id	: 0         -- 有兩顆CPU
      physical id	: 0   第二段
      physical id	: 1   第三段  physical id	: 1
      physical id	: 1   第四段
      
      physical id	: 0   processor	: 0                     -- 一顆CPU有兩個核心
      physical id	: 0   processor	: 1                   
      cpu cores	: 2
      
      physical id	: 1   processor	: 0                     -- 一顆CPU有兩個核心
      physical id	: 1   processor	: 1                   
      cpu cores	: 2
         
      總共服務器有多少顆CPU 有多少核心
      有兩顆CPU --> 2路的服務器
      有4核心
    • 利用命令進程查看:

    • lscpu --> 調取cpuinfo文件中的內容
      Socket(s):(插槽)              2    --- 顯示服務器CPU顆數
      Core(s) per socket:          2    --- 每顆CPU有幾核
      CPU(s):                      4    --- 整個服務器有幾核
    • 負載(CPU處理任務過多)

    • 利用文件進行查看:(監控)
      [root@jarvis ~]#cat /proc/loadavg
      0.00        0.01              0.05             負載值CPU核數有關
      1分鐘平均   5分鐘平均負載    15分鐘平均負載
      
      利用命令進行查看:
      [root@jarvis ~]#w
      12:41:06 up 38 min,  2 users,  load average: 0.00, 0.01, 0.05
      eg: 服務器4核的服務器   -- 負載值3左右,就要關注
          服務器128核的服務器 -- 負載值100(數據庫服務器)
  • 內存使用狀況

    • 利用文件進行查看:

    • [root@jarvis ~]# cat /proc/meminfo 
      MemTotal:        2030172 kB      --- 內存總的容量
      MemFree:         1738164 kB      --- 內存的空閒容量
      MemAvailable:    1714096 kB      --- 內存的可用容量
      Buffers:            2076 kB      --- baffer空間
      Cached:            90616 kB      --- cacahe空間
      SwapCached:            0 kB      --- 交換分區使用狀況
    • 利用命令進程查看:

    • [root@oldboyedu ~]# free -h      --- 以人類可讀方式顯示內存容量信息
                    total        used        free      shared  buff/cache   available(*)
      Mem:           1.9G        137M        1.7G        9.5M        148M        1.6G
      Swap:          1.0G        0B(*)       1.0G
  • 磁盤信息/掛載信息

    • 利用文件進行查看:

    • [root@jarvis ~]#cat /proc/mounts
      /dev/sda1 /boot xfs rw,seclabel,relatime,attr2,inode64,noquota 0 0
    • 利用命令進程查看:

    • [root@jarvis ~]# df -h 以人類可讀方式顯示磁盤容量信息
      Filesystem      Size  Used Avail Use% Mounted on
      /dev/sda3        49G  1.6G   48G   4% /
      devtmpfs        981M     0  981M   0% /dev
      tmpfs           992M     0  992M   0% /dev/shm
      tmpfs           992M  9.6M  982M   1% /run
      tmpfs           992M     0  992M   0% /sys/fs/cgroup
      /dev/sda1       197M  102M   95M  52% /boot
      tmpfs           199M     0  199M   0% /run/user/0
相關文章
相關標籤/搜索