vim編輯器 與etc目錄

第1章         目錄結構

1.1  vim  vim故障

vim  是vi的升級版本 vi類似於文本文檔  vim類似於notepad++ 編輯

 必須先安裝vim命令

  yum  -y install vim             #  必須能上網  ping外網  ping www.baidu.com

  1.1.1  使用vim

            vim 文件  相對路徑|絕對路徑 #  文件不存在則自動創建

             vim的幾種模式說明:

                 a. vim編輯文件剛進入的界面           稱為命令模式

                 b. 可以往文本內些內容的模式          稱為編輯模式

                 c. 可以退出保存、可以查找內容的模式 稱為底行模式

1.1.2  模式間如何轉換       

命令行模式--->輸入i--->編輯模式--->esc回到命令行模式
命令行模式--->輸入:--->進入底行模式--->esc回到命令行模式
命令行模式--->輸入i--->編輯模式--->esc命令行模式--->:進入底行模式--->wq退出文本

        PS: 想要退出必須要在底行模式  在編輯模式不能直接到底行模式 必須先回到命令行模式

                編輯模式–>命令行模式  使用 esc鍵

                底行模式–>命令行模式  使用 esc鍵

1.1.3  命令行模式快捷方式

 a     # 在光標所在處的後面進入編輯模式
 A     # 快速移動光標到行尾進入編輯模式
 i      # 在光標所在的位置進入編輯模式
 I      # 快速移動光標到行首進入編輯模式
 o     # 在光標所在行的下一行進入編輯模式(新增加一行)
 O     # 在光標所在行的上一行進入編輯模式(新增加一行)
 s      # 刪除光標所在字母 並進入編輯模式
 S      # 刪除光標所在的行 並進入編輯模式
 C      # 刪除光標所在到行尾 並進入編輯模式
 ZZ     # 快速保存並退出
  u      # 撤銷操作 可以撤銷到最原始的狀態 沒保存的前提下操作
             快速移動光標操作
$      # 快速移動光標到行尾
End    # 快速移動光標到行尾
^      # 快速移動光標到行首
0       # 快速移動光標到行首
Home   # 快速移動光標到行首
 G        # 快速移動光標到文件的尾部
 gg     # 快速移動光標到文件的首行(第一行)
10gg   # 快速移動到第10行
10G    # 快速移動到第10行

1.1.4  底行模式快捷鍵

 命令行-->:--->底行模式

                 :wq        保存並退出  :q 退出不保存 :wq! 強制保存並退出  :q! 強制不保存退出

                 w :write 寫入   q: quit退出

                 :set nu 查看行號

                 set nonu 取消行號

                 / TCP 搜索內容   需要記憶

                 第一步: 在命令行模式 輸入 /

                 第二步: 在/後面輸入想要的查找的內容 然後回車

                 第三步:按n 往下查找 按大N 往上查找內容

                 ?搜索內容 n 往上 N 往下   (了解)

                 PS: 在搜索內容的過程中 想要退出 直接輸入:q  :wq

 1.1.5   vim的複製粘貼 刪除

                yy     # 複製當前光標所在的行

                3yy    # 複製光標所在往下3行 

                p      # 粘貼複製的內容到光標所在的下一行

                3p     # 粘貼三次複製的內容

                dd     # 刪除當前光標所在的行(剪切)

                2dd    # 刪除2行

                dG    #  刪除光標所在到行尾

                dw    #  刪除一個單詞  連續的字符串

                r      #  替換指定的字符信息

                R     # 連續替換多個字符信息

1.1.6      vim  故障

           a.  vim 後面必須跟文件

           b.  vim 命令必須安裝

           c.  vim 不能編輯目錄

           d.  vim 編輯文件的過程

        在vim編輯文件的時候 系統默認會生成一個 .文件名.swp 命名的隱藏文件

              如果正常編輯保存退出 系統會把隱藏的文件 移動成新文件

              如果沒有正常退出  則隱藏文件會被保留 在編輯文本的時候會提示 有swp交換文件

1.1.7  模式vim故障

            第一步:

            使用vim 編輯oldboy.txt文件輸入aaaaa

            第二步:

            直接關閉xshell連接

            第三步:

            使用xshell連接上使用vim編輯 oldboy.txt

 

1.1.7.1    什麼原因導致vim提示swap文件

 

                a. 沒有正常保存退出 直接關閉xshell連接 按了ctrl+z          

                b. 服務器直接斷電

                c. 多人編輯同一個文件

                d. 單人多窗口編輯同一個文件

                解決方法:

                a. 新增加的內容需要恢復

                  第一步:

                  vim -r oldboy.txt    # -r 恢復交換文件中的內容 然後回車 把swp的內容進行恢復

                  第二步:

                  正常保存並退出:wq

                  第三步:

                  刪除隱藏交換文件 .oldboy.txt.swp

                b. 不需要恢復新增加的內容

                   直接刪除隱藏交換文件 .oldboy.txt.wap 即可

                 ls

                -a  查看linux下的隱藏文件  隱藏文件的特點: 文件的前面都帶點.

               df -h   查看磁盤使用情況(人類可讀方式)

 

 

 

 

 

 1.2 操作系統目錄

1.2.1  windows 系統目錄結構

        C: D: E: F: \文件夾

 

 

 可以理解為是多顆樹組成

     

  Linux系統目錄結構

          a. 一切都是從根開始

          b. 類似一棵倒掛的樹 有目錄層次的樹

          c. Linux的目錄可以掛載到不同的設備上

          d. 可以理解成一棵樹

          e. 是所有的硬件設備 都必須有一個入口才能正常訪問 入口文件稱為目錄(可以是自己創建、可以是系統自帶空目錄)

 

 

 

1.2.2    通過掛載cdrom理解linux的目錄結構

            第一個步驟:

          把鏡像文件放入DVD光驅

           第二個步驟:

          所有的硬件設備都在/dev目錄下

           在系統中找到DVD硬件設備  不能cd和cat查看 

    [root@oldboyedu-lnb ~]# ll /dev/cdrom

    lrwxrwxrwx. 1 root root 3 Jul 17 12:34 /dev/cdrom -> sr0

 第三個步驟:

  創建一個門 掛載      # 掛載的目錄如果有內容 則會隱藏 卸載後會出現 

[root@oldboyedu-lnb ~]#mkdir /data
[root@oldboyedu-lnb ~]# mount /dev/cdrom /data
mount: /dev/sr0 is write-protected, mounting read-only

 第四個步驟:

通過門(/data) 訪問cdrom的數據 /data相當於正常的目錄

第五個步驟:

關閉訪問cdrom的門 卸載

[root@oldboyedu-lnb ~]# umount /data

 PS

        1. 卸載的時候不要在門裏面卸載(不要在掛載目錄下卸載)

        2. 如果沒有在門裏面還提示忙

               a. 關閉xshell重新連接

               b. 使用umount -f 強制卸載

           PS: Linux下磁盤的表示方法

               sda   # 表示系統的第一塊磁盤

               sda1  # 表示系統的第一塊磁盤的第一個分區 /boot

               sda2  # 表示系統的第一塊磁盤的第二個分區 swap

               sda3  # 表示系統的第一塊磁盤的第三個分區 /

     安裝操作系統相當於是給磁盤做什麼風格的裝修 

           windows:   中式風格

        直接可以訪問分區 訪問可移動設備 訪問硬件

                Linux:    歐式風格

        所有的硬件都沒有門 自己創建門進去訪問數據

1.2.3   mv  move 移動   remove 移除  類似於windows的剪切

 語法格式:

             mv  [參數選項] 源文件 目標文件

             mv  源文件 新的文件名

          [root@oldboyedu-lnb ~]#

         [root@oldboyedu-lnb ~]# #移動/oldboy下的oldboy.txt文件 到當前的目錄

         [root@oldboyedu-lnb ~]# mv /oldboy/oldboy.txt ./

         [root@oldboyedu-lnb ~]# ll

         total 4

         -rw-r--r--. 1 root root 5 Jul 21 09:08 oldboy.txt

         [root@oldboyedu-lnb ~]# ll /oldboy/oldboy.txt

         ls: cannot access /oldboy/oldboy.txt: No such file or directory

         [root@oldboyedu-lnb ~]#

         [root@oldboyedu-lnb ~]# #把oldboy.txt 修改為test.txt

         [root@oldboyedu-lnb ~]# mv oldboy.txt test.txt

         [root@oldboyedu-lnb ~]# ll

         total 4

         -rw-r--r--. 1 root root 5 Jul 21 09:08 test.txt

        [root@oldboyedu-lnb ~]# mv test.txt /tmp/

         [root@oldboyedu-lnb ~]# ll /tmp/test.txt

         -rw-r--r--. 1 root root 5 Jul 21 09:08 /tmp/test.txt

移動目錄

[root@oldboyedu-lnb ~]# mv oldboy1 oldboy2 oldboy3 oldboy4 /tmp/

1.2.4   系統文件目錄

 文件和目錄被組織成一個單根倒置樹結構

      文件系統從根目錄下開始,用「/」表示

      根文件系統(rootfs):root filesystem

      文件名稱區分大小寫

      以.開頭的文件為隱藏文件

      路徑分隔的 /

      文件有兩類數據:

      元數據:metadata

      數據:data

      文件系統分層結構:LSB Linux Standard Base

      FHS: (Filesystem Hierarchy Standard)

      文件名最長255個位元組

      包括路徑在內文件名稱最長4095個位元組

      藍色–>目錄 綠色–>可執行文件 紅色–>壓縮文件 淺藍色–>鏈接文件 灰色–>其他文件

      除了斜杠和NUL,所有字符都有效.但使用特殊字符的目錄名和文件不推薦使用,有些字符需要用引號來引用它們

      標準Linux文件系統(如ext4),文件名稱大小寫敏感

      例如:MAIL, Mail, mail, mAiL

  

 

 

Linux下的文件類型

 

-  普通文件

 d 目錄文件

 b 塊設備

 c 字符設備

 l 符號鏈接文件

 p 管道文件pipe

 s 套接字文件socket

 

第2章          /etc下的重要文件

2.1  網卡配置文件

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

               TYPE=Ethernet            # 網絡類型  以太網  Fastethernet 快速以太網                   

                BOOTPROTO=none     # 獲取IP地址的方式

                 a. none      手動指定         常用

                 b. static     手動指定          常用

                 c.dhcp     自動獲取IP地址  不用

                 NAME=eth0               # 網卡在系統中的名字 系統的邏輯名稱

                UUID=23bfda9a-1954-428b-aa9f-72ee10ab57e5   # 系統會給每個設備都會分配一 個標識符 等同於硬件設備的名稱 在網卡的配置中可以刪除     

                 DEVICE=eth0                    # 硬件設備的名字

                ONBOOT=yes                    # 是否激活設備 yes是激活狀態

  IPADDR=10.0.0.200      # IP地址 使用xshell連接服務器的IP地址 使用 ip a 查看的IP地址

                                                        IP地址 虛擬機內唯一

 PREFIX=24                     # 子網掩碼 決定了當前局域網內可用的IP地址數量 一個房間裝多少個人

               a. PREFIX=24

               b.NETMASK=255.255.255.0

               c. /24 可用IP地址 10.0.0.1-10.0.0.254

               d. IP地址不能衝突 網關10.0.0.2 vmnet8 10.0.0.1

                GATEWAY=10.0.0.2       # 網關 去互聯網的必經之路 類似於大門

               a. route -n查看當前的網關

               b. 硬件網關在公司和IDC機房 中是 有專門的一個路由器上配置

              c. 雲平台服務器網關和IP不需要自己配置 自動分配的            

                DNS1=223.5.5.5           # DNS 域名解析服務

                DNS2=114.114.114.114

               把域名解析成IP地址

               www.baidu.com —-> 服務器的IP地址39.156.66.18

         PS: !cat 調用最後一次執行cat的命令

          注:雲服務器不需要配置網卡

          精簡後的網卡配置

                     

TYPE=Ethernet              # 網絡類型  以太網  Fastethernet 快速以太網           
BOOTPROTO=none             # 獲取IP地址的方式
a. none      手動指定           常用
b. static     手動指定          常用
c.dhcp     自動獲取IP地址   不用
NAME=eth0       # 網卡在系統中的名字 系統的邏輯名稱 DEVICE=eth0 # 系統會給每個設備都會分配一 個標識符 等同於硬件設備的名稱 在網卡的配置中可以刪除     ONBOOT=yes       # 是否激活設備 yes是激活狀態 IPADDR=10.0.0.200  # IP地址 使用xshell連接服務器的IP地址 使用 ip a 查看的IP地址
IP地址 虛擬機內唯一
PREFIX=24   # 子網掩碼 決定了當前局域網內可用的IP地址數量 一個房間裝多少個人 GATEWAY=10.0.0.2 # 網關 去互聯網的必經之路 類似於大門 DNS1=223.5.5.5 # DNS 域名解析服務

 2.2  配置完成後需要重啟網卡:

方法1:  重啟後沒有任何輸出信息 說明網卡配置正確

              

CentOS7.X
systemctl restart network
CentOS6.X
service network restart
 /etc/init.d/network restart

 方法2:  ifdown eth0 && ifup eth0

             關閉 eth網卡   開啟eth0網卡 開啟的時候會自動加載ifcfg-eth0的配置文件

              如果先執行ifdown eth0 會導致無法遠程連接

              && 前一條命令執行成功後  才執行後面的命令

2.3  /etc/hostname

 作用: 主機名稱 方便多台服務器之間相互連接

2.3.1    查看當前的主機名稱

 a. 通過命令提示符查看

[root@oldboyedu-lnb ~]#

                 ————-

                  主機名稱

b. 通過命令查看當前的主機名稱 

[root@oldboyedu-lnb ~]# hostname
oldboyedu-lnb

2.3.2     臨時修改主機名稱  在當前系統中生效 重啟後失效

               第一步: 使用hostname+主機名稱 臨時修改

[root@oldboyedu-lnb ~]# hostname test

              第二步: 重新遠程連接服務器 不需要重啟操作系統

[root@test ~]#

 2.3.3   永久修改主機名稱  直接修改配置文件  必須重啟操作系統才能生效

 [root@test ~]# cat /etc/hostname
 oldboyedu-lnb
 [root@oldboyedu-lnb ~]# echo test01 > /etc/hostname  修改主機名為test01

2.3.4    臨時修改主機名稱+永久修改主機名稱 重啟後必須生效

[root@test01 ~]# cat /etc/hostname
test01

  第一個步驟: 使用命令修改主機名

[root@test01 ~]# hostnamectl set-hostname oldboyedu-lnb
[root@test01 ~]# cat /etc/hostname
oldboyedu-lnb

  第二個步驟: 重新遠程連接服務器  

  PS:如果配置了多個主機名 則第一個生效

 [root@test01 ~]# cat /etc/hostname
  test01
oldboyedu-lnb

2.4   /etc/fstab  file system table   文件作用:   開機自動掛載硬件的配置文件

  UUID=91daf9b9-e872-41e9-86cc-cef1a3c70318  /      xfs     defaults      0   0

             1                                                                 2               3       4                   5   6

        1: UUID 設備的唯一標識  硬件的一種標識方法 可以是UUID 可以是sda3

           系統為硬件分配的一個標識符

           如何查看設備的標識符

            blkid 直接回車查看

     

   [root@oldboyedu-lnb ~]# blkid
       /dev/sda1: UUID="efcbe32a-cd6e-494b-95f0-bcbe8c021af0" TYPE="xfs"
       /dev/sda2: UUID="fb10d54e-1d99-43fa-a4bc-510540fe31c0" TYPE="swap"
      /dev/sda3: UUID="91daf9b9-e872-41e9-86cc-cef1a3c70318" TYPE="xfs"
      /dev/sr0: UUID="2018-05-03-20-55-23-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"

  2: 掛載點     硬件設備的入口 門  / 目錄

  3:  xfs       文件系統類型  CentOS7.X 默認是xfs

  4:  defaults   默認的參數 決定能不能在硬件設備中刪除和讀取數據

  5:   0        是否對磁盤進行備份 0是不備份 1是備份  不需要備份 影響磁盤使用速度和使用率

  6:   0        是否對磁盤進行檢查 fsck  0不檢查 1檢查  不檢查

        示例: 開機自動掛載cdrom

                 第一步: 插入鏡像文件到光驅

                 第二步: 在當前系統中進行掛載測試

 [root@oldboyedu-lnb ~]# mount /dev/cdrom /data

               第三步: 寫入fstab開機自動掛載

                       1.  硬件名稱或者UUID

                            cdrom

                            blkid    查看硬件設備的UUID

                       2.   寫入fstab

                            vim /etc/fstab

                             UUID=2018-05-03-20-55-23-00       /data          iso9660 defaults     0  0

                  第四步: 重啟測試是否自動掛載

                             1.reboot

                             2.df -h 查看是否自動掛載到/data 目錄

[root@oldboyedu-lnb ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3        19G  1.6G   18G    8%   /
devtmpfs        477M     0  477M   0%  /dev
tmpfs             488M     0  488M   0%  /dev/shm
 tmpfs           488M  7.7M  480M  2%  /run
tmpfs           488M     0  488M   0% /sys/fs/cgroup
 /dev/sr0       4.2G  4.2G   0     100% /data

   PS: 不想開機自動掛載

           注釋掉#

       #UUID=2018-05-03-20-55-23-00            /data        iso9660 defaults    0  0

2.5   /etc/resolv.conf           文件作用: 配置DNS服務器

            223.5.5.5—>阿里雲服務器

DNS作用: 域名解析   把域名解析成對應的IP地址

例: 自己購買一台雲服務器 116.63.0.10

      搭建一個社交平台—->域名訪問—>註冊–>chunming.com cn org net

      域名服務器上配置—>綁定域名—>chunming.com—IP地址綁定在一起

      瀏覽器—>輸入chunming.com—>DNS服務器—>返回服務器的真實IP地址116.63.0.10

      瀏覽器—> 116.63.0.10 建立連接

      DNS服務器 都是免費使用 免費讓我們解析域名

      公司自己內部搭建的DNS服務器 解析速度快 運營商 IDC機房自己的DNS服務器

       公用DNS服務器

       223.5.5.5                     阿里雲DNS服務器

       114.114.114.114          電信DNS服務器

              8.8.8.8                 谷歌的DNS服務器

       202.106.0.20               北京聯通

       正常訪問網站的流程

       瀏覽器輸入網址www.oldboyedu.com —> DNS服務器—>返回真實IP—->瀏覽器—>IP地址建立連接

        租房—–>中介—->房東

        比較兩個DNS配置文件:            

    

   1. /etc/resolv.conf 和 網卡的配置ifcfg-eth0 都可以配置DNS
兩個配置文件的不同點:
    /etc/resolv.conf ---> nameserver 223.5.5.5
   網卡配置ifcfg-eth0--> DNS1=223.5.5.5
   2. 網卡如果配置了DNS 重啟網卡會覆蓋resolv.conf
   3. 網卡中如果不配置DNS 不會覆蓋resolv.conf
   4. 在resolv.conf中配置DNS服務器 直接生效
    查看當前系統使用的哪個DNS服務器解析的
    yum -y install bind-utils    # 安裝解析命令
 [root@oldboyedu-lnb ~]# nslookup www.baidu.com
Server:       114.114.114.114
Address:      114.114.114.114#53
Non-authoritative answer:
www.baidu.com canonical name = www.a.shifen.com.
 Name:         www.a.shifen.com
Address:      39.156.66.18
 Name:         www.a.shifen.com
 Address:      39.156.66.14

   5. 網卡配置文件不是直接生效 需要重啟

   6. 在工作中使用resolv.conf配置DNS

   7. 如果不配置DNS服務器 對服務器有什麼影響

       a. 不能訪問域名 可以訪問IP地址

       b. 不影響用戶正常使用

   8. 如果一個DNS出問題 會繼續向下請求DNS

     nameserver        223.5.5.5

     nameserver        114.114.114.114

     ifcfg-eth0

     DNS1=223.5.5.5

     DNS2=114.114.114.114

2.6   /etc/issue            # 清空登陸操作系統前的提示信息 提高系統的安全性  系統優化使用

  [root@oldboyedu-lnb ~]# cat /etc/issue

   \S

  Kernel \r on an \m

  [root@oldboyedu-lnb ~]# > /etc/issue

2.7   /etc/issue.net   # 清空遠程連接前的提示信息 提高系統的安全性      系統優化使用

2. 8  /etc/motd      文件作用: 登陸系統後顯示的內容 默認空文件

2.9  /etc/hosts     文件作用:域名和IP地址的對應關係表     好比是本地的DNS服務器

 公司的內部測試 二階段學習

          正常訪問一個網站的流程:

          1.輸入www.oldboyedu.com

          2.系統會查找本地的/etc/hosts文件 有沒有域名和IP地址的對應關係

          3.如果有www.oldboyedu.com 10.0.0.200  系統會給瀏覽器返回域名的真實IP 而不需要在去

/etc/resolv.conf 中找DNS服務器去查找

 

 

     4.如果沒有域名對應關係 則會去/etc/resolv.conf  DNS服務器去找真實的IP地址

            windows hosts文件的位置

            C:\Windows\System32\drivers\etc

2.10   /etc/rc.local   文件的作用: 開機自動執行命令 或者是 自動啟動服務(開機自啟)

               shell腳本: 把命令放入到文件中 按照順序執行 從上到下一步步的執行

                    1)開機自動執行命令 命令必須是可執行的

                       mkdir  /data

                    2)加入開機自動執行 —–>  Linux中的軟鏈接  類似於windows的快捷方式

                       a. 先給rc.local 一個執行權限(有沒有權限來運行這個命令) x  execute

                        chmod +x /etc/rc.d/rc.local

                       b. 把命令寫入rc.local   

                      服務器的開機自動運行

                      1) 關閉sshd開機自動啟動

  [root@oldboyedu-lnb ~]# systemctl disable sshd

                     2) sshd服務加入到/etc/rc.local 實現開機自動啟動        

vim /etc/rc.local
 systemctl start sshd
                     

                     3) 重啟測試

                       PS: 上面的例子是系統自帶的服務 服務都有專門命令進行管理 systemctl

                        第三方應用程序、開發人員開發的應用程序(python) 寫入/etc/rc.local

2.11    /etc/inittab    文件作用: 設置開機運行級別配置文件

 什麼是運行級別:

      1)7個運行級別0-6

      2)每一個運行級別表示不同的界面、實現不同的功能 類似於windows的正常登陸和安全模式

      3)紅燈–> 停止 綠燈–>行  黃燈–>等

  centos6.X 運行級別 runlevel                                                 centos7.x target
0# 表示關機狀態 如果配置文件中設置 為0 不能啟動操作系統 ----> poweroff.target a.不允許設置為0 b.可以使用 init 0 進行關機 1 # 表示單用戶模式 ----> rescue.target a.安全模式 在忘記密碼的時候 可以通過此級別來修改密碼 b.擁有root權限 登陸的時候不需要密碼 2 # 表示多用戶模式 ----> multi-user.target a. 沒有NFS b. 不用 3 # 表示完全多用戶 ----> multi-user.target a. 默認是用3運行級別 b. 工作中使用3運行級別 4 # 保留 待開發 ----> multi-user.target 5 # 表示帶桌面的操作系統 ----> graphical.target a. 必須安裝DESKTOP包才能使用 b. 工作中不使用 6 # 表示重啟操作系統 配置文件不能配置成級別6 進入死循環重啟狀態 --> reboot.target

        4)  查看默認的運行級別 centos6和7

  [root@oldboyedu-lnb ~]# runlevel
   N 3

        5)centos6.x  centos7.x   臨時修改運行級別

 [root@oldboyedu-lnb ~]# init 6     # 在命令行臨時切換運行級別

        6)  centos6.x 永久修改運行級別

2.12   修改/etc/inittab文件

               id:5:initdefault:        # 設置開機運行在級別5  圖形化界面  工作中不修改

         7)  centos7.x 永久修改運行級別

               centos7第二種查看運行級別的方法     

[root@oldboyedu-lnb ~]# systemctl get-default
multi-user.target

 永久設置運行級別

  systemctl set-default TARGET.target
[root@oldboyedu-lnb ~]# systemctl set-default runlevel5.target # 設置為運行級別5

  2.13   補充問題

                   什麼是啟動           # 在當前的操作系統中運行起來 通過雙擊鼠標運行

             什麼是開機自動啟動   # 在重啟電腦後自動運行的程序 自動運行QQ 自動運行微信 自動運行紅蜘蛛

                  如果在/etc/rc.local中配置

                  systemctl enable sshd  # 第一次開機自動運行命令 會執行成功

                 # sshd 服務會啟動嗎? 不會 會把sshd服務設置為開機自動啟動

                 # 在第二次重啟操作系統的時候 sshd會自動運行

2.14  /etc/profile   文件作用: 配置環境變量 永久生效

 能夠保證我們正常使用操作系統

      什麼是變量:

          1) x=1 y=x+1  y=2

          x 變量的名稱

          1變量的值  可變的

          2) 書本

                      目錄      —-> 內容

                       lg.jpg-10頁—> 圖片

                   3) 變量的分類

                      a. 普通變量  局部變量 自己定義的變量     類似於家規   

                      b. 環境變量  全局變量 系統中存在的變量   類似於國法

                   4) 變量的定義方法 變量名稱不允許以數字開頭

                      a. 臨時定義變量

                        語法:

                      變量名稱=變量的值    # 等號兩端不允許有空格 後面的值可以是數字 字母 命令

 [root@oldboyedu-lnb ~]# name=oldboy

                     b. 調用變量 $

[root@oldboyedu-lnb ~]# echo $name
oldboy

                     c. 永久生效

  vim /etc/profile
  name=oldboy
                   

                     d. 及時生效 不需要xshell重新連接

                      source 和. 含義: 讓配置文件重新加載運行

[root@oldboyedu-lnb ~]# source  /etc/profile
[root@oldboyedu-lnb ~]# .  /etc/profile

示例: 為什麼使用變量

          1.  方便 變量可以重複調用

 [root@oldboyedu-lnb ~]# eth0=/etc/sysconfig/network-scripts/ifcfg-eth0
[root@oldboyedu-lnb ~]# cat $eth0 

           2.   系統滿足我們操作需求  bin sbin 所有系統自帶的服務和第三方程序的執行命令都是在bin sbin

                            $PATH   # 路徑

                            執行命令的原理過程:  PATH 設置的是所有命令的全路徑

                              a. 手動輸入命令 系統會在PATH變量中查找此命令的路徑

                              b. 如果PATH路徑中有命令所在的目錄 則會執行晨歌功

                              c. 如果沒有在PATH路徑則提示命令找不到

[root@oldboyedu-lnb ~]# ll /data/

 total 56

                  -rwxr-xr-x. 1 root root 54080 Apr 11  2018 cat

                  [root@oldboyedu-lnb ~]# echo $PATH

                  /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

                  [root@oldboyedu-lnb ~]# cat /etc/hosts

                  -bash: cat: command not found

                  [root@oldboyedu-lnb ~]# /data/cat /etc/hosts

                   127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

                     ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

       定義PATH變量

[root@oldboyedu-lnb ~]# PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/data' [root@oldboyedu-lnb ~]# cat /etc/hosts
 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1      localhost localhost.localdomain localhost6 localhost6.localdomain6

第3章        /usr目錄

3.1  /usr/local    文件作用:  編譯安裝的軟件默認存放文件的位置

    Linux中安裝軟件的方法:

        第一種: yum安裝 最常用的安裝方式:

               語法:

 yum -y install package-name

 參數選項:

                     -y  : yes 在安裝過程中會提示是否繼續 手動輸入y 自動增加參數-y

                     yum安裝軟件的特點:

                 a. 能夠自動解決依賴問題 

                      什麼是依賴

                  b. 類似於點外賣: 點水餃 辣椒 大蒜 網紅辣醬 自動解決所有一切需求 不用我們去管

                  c. 知道軟件包的名字即可

                  d. 如何知道包的名字

                      1) 使用命令查找  不一定能查到       

    [root@oldboyedu-lnb ~]# yum provides wget
     wget-1.14-18.el7_6.1.x86_64

                        2) 百度查找

                        3) 使用yum -y install wget 安裝

                     e. 安裝的時候可以不帶版本號 也可以帶

                     常用

                     使用yum命令卸載軟件   # 卸載自動解決依賴問題  

   yum -y remove package.name 

               f.重新安裝

 yum -y reinstall package.name

 例子: 安裝Linux命令 rzwindows上傳文件 szLinux下載文件到windows

                  安裝 ifconfig命令

                   第一步 查找包名:

 [root@oldboyedu-lnb ~]#yum provides rz

                   第二步 安裝軟件

[root@oldboyedu-lnb ~]# yum -y install lrzsz

  PS:已安裝最新的軟件包的提示

Package lrzsz-0.12.20-36.el7.x86_64 already installed and latest version
 Nothing to do

  PS: 自動補全的包

 yum -y install bash-completion.noarch擴展自動補全包

    注意事項: 安裝不上軟件包

    1. YUM倉庫問題

     2. YUM倉庫緩存倉庫       

         yum clean all      # 清空yum緩存

     3. 網絡原因      盡量使用國內的倉庫進行安裝

       安裝python的依賴包  pip3.5 install python-name    # 默認是國外的網站

      如何使用國內的源進行安裝

 pip install pythonname -i //pypi.tuna.tsinghua.edu.cn/simple
//blog.csdn.net/qq_36949176/article/details/82939676

        4. 命令錯誤 軟件包名稱

           第二種: rpm安裝   必須先下載對應的.rpm

                 1)語法:

                 rpm -ivh 軟件包名稱.rpm 結尾

                參數選項:                  

     -i   install
     -v   verbose  顯示安裝過程
     -h   顯示安裝進度
     -q   query  查詢
     -a   查看所有的安裝過的軟件
     -ql  顯示軟件所有的安裝文件

 特點: 類似於點外賣 點水餃 買的速凍 鍋 水 勺子 碗 筷子 醬油醋 辣椒 大蒜

                               a. 不能自動解決依賴問題 手動安裝

                               b. 安裝必須先下載rpm包  執行的過程要注意 絕對路徑或者相對路徑

                               c. 安裝第三方軟件常用的方式

                               d. rpm包去哪裡下載  軟件的官網

                               e. 安裝過程需要什麼 手動安裝   #必要的依賴 可以使用yum安裝

                     2)查看軟件是否安裝

                                a. 直接執行命令回車                        

[root@oldboyedu-lnb ~]# wget
-bash: /usr/bin/wget: No such file or directory

                            b. 使用which命令             

[root@oldboyedu-lnb ~]# which wget
 /usr/bin/which: 
no wget in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)

                          c. 使用rpm -qa 查看

                              rpm -qa         # 查看所有已經安裝過的軟件

[root@oldboyedu-lnb ~]# rpm -qa wget     # 查看wget軟件是否安裝
 [root@oldboyedu-lnb ~]# rpm -qa wget
 wget-1.14-18.el7_6.1.x86_64

                            d. 查看版本號的方式      了解

[root@oldboyedu-lnb ~]# wget --version
GNU Wget 1.14 built on linux-gnu.

3) 使用rpm卸載軟件  卸載不支持解決依賴問題

    rpm -e 軟件包名  

          

[root@oldboyedu-lnb ~]# rpm -e wget
---------
[root@oldboyedu-lnb ~]# rpm -qa jenkins
 jenkins-2.176.1-1.1.noarch
[root@oldboyedu-lnb ~]# rpm -e jenkins-2.176.1-1.1.noarch

 例子:

 使用rpm安裝zsh-5.0.2-28.el7.x86_64.rpm 軟件包名

 安裝

查看是否安裝成功

使用rpm卸載

使用yum卸載

查看安裝了哪些文件

查看命令的路徑在哪裡

第三種: 編譯安裝  特點: 自己備食材 餃子皮 餃子餡 油….

第一步:

           下載源碼包

第二步:

           cd 進入源碼包

 第三步:

           ./configure  # 自己選擇我想使用什麼功能

  make

  make install

       特點:        

           a. 安裝時間久

           b. 功能可定製

3.2  /var # variable 變化的 日誌經常發生變化

          

 /var/log                        # 目錄
/var/log/messages      # 系統默認的日誌文件 保存了系統的運行狀況 執行命令的信息

 Jul 27 11:36:17 oldboyedu-lnb systemd: Started The Apache HTTP Server.

               時間      主機名稱      系統命令: 啟動httpd服務

/var/log/secure                 # 系統默認的日誌文件 保存了安全方面的信息 登陸 退出操作系統     

grep ‘Failed’ /var/log/secure  # 過濾文件本中包含Failed的行 如果出現的失敗次數過多 系統存在安全隱患

查看日誌的最後10行 tail -n  顯示尾巴n

 [root@oldboyedu-lnb ~]# tail /var/log/messages
 [root@oldboyedu-lnb ~]# tail -n 2 /var/log/messages   # 顯示最後2行內容

查看日誌的前10行      head -n  顯示頭部n行    

[root@oldboyedu-lnb ~]# head /var/log/messages
Jul 22 09:19:15 oldboyedu-lnb kernel: e1000: eth0 NIC Link is Down
Jul 22 09:19:19 oldboyedu-lnb kernel: e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
        Jul 22 10:01:01 oldboyedu-lnb systemd: Started Session 54 of user root.
        Jul 22 10:01:01 oldboyedu-lnb systemd: Starting Session 54 of user root.
        Jul 22 10:04:58 oldboyedu-lnb systemd-logind: Removed session 35.
        Jul 22 10:05:23 oldboyedu-lnb systemd-logind: Removed session 37.
        Jul 22 10:08:39 oldboyedu-lnb systemd: Started Session 55 of user root.
        Jul 22 10:08:39 oldboyedu-lnb systemd-logind: New session 55 of user root.
        Jul 22 10:08:39 oldboyedu-lnb systemd: Starting Session 55 of user root.
        Jul 22 10:12:41 oldboyedu-lnb systemd-logind: Removed session 52.

3.3 /var  日誌特點

         a. 最新的日誌在文件的最底部

         b. 系統的問題 優先查看messages

         c. 服務的日誌默認的位置  在/var/log下以自身服務命名的目錄下

          cat /var/log/httpd/access_log

         d. 服務日誌如果解決不了 注意查看messages

         e. 日誌的切割  文件過大 統計較慢 系統配置內存

              1. 方便我們更快速的統計數據

              2. 日誌的安全性

              3. 系統的日誌 默認都是自動切割

              4. 服務的日誌 自研發的服務 定時任務+腳本的方式

                  把源日誌移動走 不要cp 速度慢

                  把相關的服務重新加載

第4章       /proc目錄

4.1 proc

文件作用: 內存的映射文件 Linux一切皆文件

4.1.1  /proc/cpuinfo

文件作用: 查看cpu信息

             processor : 0           # 核心數量       從0開始是第一個

             physical id: 0            # CPU的個數   從0開始是第一個

       

  [root@oldboyedu-lnb ~]# grep 'processor' /proc/cpuinfo
          processor : 0
          processor : 1
          processor : 2
          processor : 3
   [root@oldboyedu-lnb ~]# grep 'physical id' /proc/cpuinfo
          physical id   : 0
          physical id   : 0
          physical id   : 1
          physical id   : 1

 4.1.2  使用命令的方式查看cpu信息

           lscpu

                        CPU(s):                4      # 核心數量

         On-line CPU(s) list:         0-3     # 核心數量列表

                      Socket(s):              2       # CPU的個數  

4.2  /proce/meminfo

       文件作用: 查看內存信息 

 MemTotal         997980 kB     # 總共的
 MemFree          727608 kB     # 空閑的
 MemAvailable     705476 kB    # 可用的
 Buffers            2092 kB          # 寫buffer
 Cached            85084 kB        # 讀cache

4.2.1  命令查看內存的信息

  free -h  以下列方式顯示內存的詳細信息

                B = bytes

                K = kilos

                M = megas

                G = gigas

                T = teras    

     

 [root@oldboyedu-lnb ~]# free -h

                             total        used        free      shared  buff/cache   available

        Mem:            974M        123M       707M        7.6M    143M        687M

        Swap:            1.0G          0B         1.0G

 4.3  /proc/loadvag

          作用: 系統的平均負載

 

 [root@oldboyedu-lnb ~]# cat /proc/loadavg 
	0.08    0.03      0.05        2/130        1546
	  1分鐘   5分鐘    15分鐘

 a. 什麼是系統負載  對外提供訪問的服務器

                負載是衡量服務器空閑的一個程度 一個指標

                如何負載的值 達到了核心的總數 當前的系統處於繁忙狀態

                CPU核心數量4核心—負載4  ===== 繁忙

                CPU核心數量16核心–負載16 ===== 繁忙

  b. 什麼對負載的影響最大

              CPU 磁盤

4.3.1  使用命令查看負載信息

 [root@oldboyedu-lnb ~]# uptime
  10:17:44 up 41 min,  1 user,  load average: 0.00, 0.01, 0.05
   -----------------

        

 [root@oldboyedu-lnb ~]# w
 10:19:23 up 43 min,  1 user,  load average: 0.00, 0.01, 0.05
 USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
 root    pts/0     10.0.0.1         09:36    3.00s  0.19s  0.02s  w

 

 

 [root@oldboyedu-lnb ~]# top       # 動態的方式實時顯示硬件信息的變化
  top - 10:32:26 up 56 min,  2 users,  load average: 0.00, 0.01, 0.05
  Tasks: 116 total,   1 running, 115 sleeping,   0 stopped,   0 zombie
          %Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
          KiB Mem :   997980 total,   716984 free,   128604 used,   152392 buff/cache
          KiB Swap:  1048572 total,  1048572 free,        0 used.   698564 avail Mem
          退出top命令 q 或者ctrl+c

 4.3.2  擴展命令:

  ps axu 查看系統中所有運行的進程信息

     

   [root@oldboyedu-lnb ~]# ps axuf|grep pts/0

    root       1212  0.0  0.5 158804  5560 ?        Ss   09:36   0:00 sshd: root@pts/0

    root       1453  0.0  0.3 116460  3196 pts/0    Ss   09:36   0:00 -bash

    root       1568  0.1  0.5 149316  5292 pts/0    S+   10:20   0:00 vim /etc/passwd

    root       1597  0.0  0.0 112704   960 pts/1    S+   10:22   0:00 grep --color=auto pts/0

   [root@oldboyedu-lnb ~]# kill -9 1453

 全能型人才 不可替代

  ps : 查看進程信息

 [root@oldboyedu-lnb ~]# ps axu|grep pts

 | 管道  前面命令的結果做為後面命令的輸出

 [root@oldboyedu-lnb ~]# cat 1.txt|grep '白星'
白星  87.5
白星  67.00
[root@oldboyedu-lnb ~]# grep '白星' 1.txt
白星  87.5
白星  67.00  

4.4   /proc/mounts   # 了解 掛載信息