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 https://pypi.tuna.tsinghua.edu.cn/simple
https://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服务

3.3  /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.4  /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   # 了解 挂载信息


 

posted @ 2020-09-01 17:24  上善若水~小辉  阅读(682)  评论(0编辑  收藏  举报