天天看点

Linux运维-系统目录结构篇Linux运维-系统目录结构篇

Linux运维-系统目录结构篇

开篇导读:

Linux中,一切从/目录开始,以树状结构向下扩展分布,这一章中将介绍/etc,/var/,/usr,/proc等一些重要的目录.

系统重要目录说明

bin     --- 存储命令文件信息(普通用户可以使用命令文件)     Binary
sbin    --- 存储命令文件信息(超级管理员用户可以使用命令文件)  super Binary
etc     --- 保存程序配置文件信息
lib     --- 保存系统32位库文件信息    library
lib64   --- 保存系统64位库文件信息    library
root    --- 用户家目录(皇宫   皇帝家   root)
home    --- 用户家目录(平民窟 普通用户 oldboy)
var     --- 保存经常发生变化的数据信息 日志文件log            Variable
boot    --- 系统启动引导目录
dev     --- 存储系统设备文件信息       device
mnt     --- 临时挂载点目录
tmp     --- 临时存放文件目录(回收站)     temporary
usr     --- 根目录替身
opt     --- 第三方软件程序数据保存的目录
proc    --- 存储系统进程和内核文件信息  
            存储数据都是存储到了内存中
           

/etc

作用: /etc是linux中存放配置文件的目录

  1. ifcfg-eth0: 网卡配置文件

    地址: /etc/sysconfig/network-scripts/ifcfg-eth0

    配置文件构成参数:

    TYPE=Ethernet      --- 网络类型         以太网网络类型 
     BOOTPROTO=none     --- 获取地址方式     自动获取IP地址(dhcp)/手动静态配置(none static静态)  
     DEFROUTE=yes       --- 是否开启默认路由 可以实现主机访问外网???
     NAME=eth0	       --- 网卡的名称信息
     DEVICE=eth0        --- 网卡的名称信息
     UUID=b9738c93-895f-4cbe-9e9a-48aa091f4efb    --- 设备硬件标识信息
     ONBOOT=yes         --- 确认网卡是否激活
     IPADDR=10.0.0.200  --- 网卡IP地址信息
     PREFIX=24          --- 子网掩码信息     决定一个局域网中可以有多少台主机配置IP地址
                        255.255.255.0    拥有多少个主机  250个人
     GATEWAY=10.0.0.254 --- 网关可以实现A网络主机可以和其他任意网络主机进行通讯 
     DNS1=10.0.0.254    --- DNS(domain name system 域名解析系统)
                        实现网络通讯需要有IP地址 和 百度服务器主机通讯
     				   利用名称(域名)服务器  -DNS服务器(www.baidu.com 182.61.200.7)-  百度IP地址
               
    配置文件生效:
    方法一:systemctl restart network
     	异常问题:
     	1)配置文件有错
     	2)systemctl stop NetworkManager 关闭NetworkManager再systemctl restart network.
     	
     方法二:
     	ifdown eth0 ; ifup eth0 
     	ifdown eth0 && ifup eth0
     	重启网卡eth0
               
    修改网卡名称方法:
    1) 修改网卡文件中的名称
        NAME=eth0	
        DEVICE=eth0	
     2) 修改网卡文件本身名称
        cd /etc/sysconfig/network-scripts/
        mv ifcfg-ens33 ifcfg-eth0
     3) 修改系统内核配置文件
        vim /etc/default/grub
        GRUB_CMDLINE_LINUX="biosdevname=0 net.ifnames=0 rhgb quiet"
     4) 使配置文件生效
        grub2-mkconfig -o /boot/grub2/grub.cfg
     5) 重启系统
        reboot
               
  2. resolv.conf: 配置公网DNS域名解析服务器网址

    地址:/etc/resolv.conf

    文件配置信息:

    # Generated by NetworkManager
     nameserver 10.0.0.254             ---> DNS服务器地址信息 223.5.5.5 223.6.6.6(阿里云) 114.114.114.114(电信公司)
               

    配置文件生效:

    两种方法:

    1. 配置好信息, 会立即生效
    2. 在网卡中配置DNS, 重启网络服务
  3. hosts: 配置DNS域名解析

    地址:/etc/hosts

    文件配置信息:

    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
     ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
     182.61.200.7  www.baidu.com
     10.0.0.41     backup
               

    配置文件生效:

    文件配置完毕, 立即生效

  4. hostname: 主机名称配置文件

    地址:/etc/hostname

    主机名称修改方法:

centos6 centos7
临时修改:hostname Jeter 临时修改:hostnamectl set-hostname Jeter
永久修改:修改文件信息 vim /etc/sysconfig/network 永久修改:hostnamectl set-hostname Jeter
  1. rc.local: 文件中的命令会在系统启动时自动运行

    地址:/etc/rc.local

    文件配置信息:

    vim /etc/rc.local 
     mount /dev/cdrom /mnt
               

    配置文件生效:

    修改文件权限 chmod +x /etc/rc.d/rc.local

    什么是脚本文件?

    将多个命令操作整合在一个文件中, 这个文件就是脚本文件.

    脚本文件以 #!/bin/bash 开头.表明这是一个脚本文件.

    运行脚本文件:

    方法一: 加上sh命令执行脚本文件中信息

    sh test_01.sh
               
    方法二: 不要加上sh命令直接运行脚本文件,需要文件有执行权限
    /server/scripts/test_01.sh
               
  2. fstab: 永久挂载配置文件

    地址:/etc/fstab

    文件配置信息:

    UUID=8814f471-53b4-4eb7-aee9-a20b2ce6fe64 /                       xfs     defaults        0   0
     UUID=7f45bd81-656c-45c3-8c9b-01105857d65a /boot                   xfs     defaults        0   0
     UUID=79d951d0-06a4-4f9f-9d10-e273dc25d4d1 swap                    swap    defaults        0   0
                   1                             2                      3        4             5   6
               
    1. 存储设备文件信息 可以使用UUID或者/dev/sdax进行配置

      [email protected] ~]# blkid

      /dev/sr0: UUID=“2018-11-25-23-54-16-00” LABEL=“CentOS 7 x86_64” TYPE=“iso9660” PTTYPE=“dos”

      /dev/sda1: UUID=“7f45bd81-656c-45c3-8c9b-01105857d65a” TYPE=“xfs”

      /dev/sda2: UUID=“79d951d0-06a4-4f9f-9d10-e273dc25d4d1” TYPE=“swap”

      /dev/sda3: UUID=“8814f471-53b4-4eb7-aee9-a20b2ce6fe64” TYPE=“xfs”

    2. 挂载点目录信息
    3. 文件系统类型

      存储数据 – 磁盘 — 做阵列 — 分区 — 格式化 — 创建文件系统(存储数据方式不太一样) — 挂载操作

      居住环境 – 地 — 连接起来 — 规划 — 清理 — 建筑风格 — 门

    4. 默认挂载参数信息
    5. 是否进行磁盘数据备份
    6. 是否检查磁盘信息

    配置文件生效:

    存储设备文件信息 挂载点信息 xfs defaults 0 0

    方法一: 重启系统

    方法二: mount -a

    挂载与卸载:

    目的:实现数据可以存放到磁盘中.Linux中想要使用硬盘,必须将该硬盘挂载到某个目录中,才可以使用该硬盘.

    挂载操作原理:

    1. 系统分区说明: 使用一个文件表示一个分区

      /dev/sda (sas disk a 第一块磁盘)

      /dev/sda1 (sas disk a 第一块磁盘 第一个分区)

      /dev/sda2 (sas disk a 第一块磁盘 第一个分区)

      分区操作:

      /dev/sda1 /boot 目录

      /dev/sda2 swap 交换分区 ???

      /dev/sda3 / 目录

      add mount(挂载) point(点)

    2. 如何进行分区挂载操作:

      第一个里程: 获得一个存储设备

      ls -l /dev/cdrom — 光驱存储设备文件

      第二个里程: 创建一个目录作为挂载点

      mkdir /oldboy — 创建一个空目录

      第三个里程: 挂载操作

      语法格式: mount 存储设备信息 挂载点(空目录)

      mount /dev/cdrom /oldboy

      第四个里程: 检查确认工作

      检查方式一:

      [[email protected] ~]# cd /oldboy

      [[email protected] oldboy]# ls

      CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7

      EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL

      检查方式二:

      [[email protected] oldboy]# df

      Filesystem 1K-blocks Used Available Use% Mounted on

      /dev/sr0(存储设备文件) 4480476 4480476 0 100% /oldboy 挂载点

      [[email protected] oldboy]# ls -l /dev/cdrom

      lrwxrwxrwx. 1 root root 3 Oct 18 10:17 /dev/cdrom -> sr0

      [[email protected] oldboy]# ls -l /dev/sr0

      brw-rw----. 1 root cdrom 11, 0 Oct 18 10:17 /dev/sr0

      说明: /dev/sr0是真正光驱设备文件, 而/dev/cdrom是光驱设备文件的快捷方式

      第五个里程: 挂载点目录卸载过程

      umount /oldboy

      说明: 尽量要离开挂载点目录, 再进行卸载

    挂载异常问题:
    1. 没有使用空目录进行挂载

      源目录中的数据无法再进行查看

    2. 目录挂载后无法看到存储设备中数据

      在挂载点目录中, 进行的挂载操作

  3. inittab: 查看/设置系统默认运行模式(运行级别)

    地址: /etc/inittab

    系统运行级别:

centos6 centos7
0 - halt (Do NOT set initdefault to this) 关机级别 runlevel0.target -> poweroff.target
1 - Single user mode 单用户级别 runlevel1.target -> rescue.target 单用户模式
2 - Multiuser, without NFS (The same as 3, if you do not have networking) 多用户无网络级别 multi-user.target 多用户模式
3 - Full multiuser mode 多用户网络级别 multi-user.target 多用户模式
4 - unused 未使用 multi-user.target 多用户模式
5 - X11 图形化级别 runlevel5.target -> graphical.target 图形化模式
6 - reboot (Do NOT set initdefault to this) 重启级别 runlevel6.target -> reboot.target 重启模式

临时配置:

centos6: init 3 切换到3多用户网络模式
centos7: systemctl set-default multi-user.target 切换到多用户模式
           

永久配置:

centos6: vim /etc/inittab 
	     id:3:initdefault:    --- 默认是3运行级别
centos7: systemctl set-default multi-user.target 切换到多用户模式
           
  1. profile: 系统变量/环境变量配置文件

    地址: /etc/profile

    变量:

    a 什么是变量: 应用题 已知条件 未知条件

    100m 人每秒4m速度前行 多久走完100m 3*x=100 x=33.33

    x=33.33 oldboy=xxx

    变量 值(abc 100)

    b 如何应用变量:

    设置

    oldboy=123456

    应用

    echo $oldboy

    c 变量存在的意义: 在脚本中存在

    #!/bin/bas

    info=oldgirl

    echo /oldboy/ i n f o − 01 / info-01/ info−01/info-02/ i n f o − 03 e c h o / o l d g i r l / info-03 echo /oldgirl/ info−03echo/oldgirl/info-01/ i n f o − 02 / info-02/ info−02/info-03

    echo /oldbaby/ i n f o − 01 / info-01/ info−01/info-02/$info-03

    指定一些经常变化的信息, 利用变量可以快速修改调整

    环境变量: PATH

    1. 系统默认已经设置好的变量 OK
    2. 环境变量都是大写字母表示 OK
    3. 环境变量可以被所有用户调用 OK
    4. 系统环境变量都有具体存在价值

      echo $PATH

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

    设置修改环境变量:
    临时修改环境变量: 直接在命令行改
     PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/.local/bin:/root/bin:/tmp
     永久修改环境变量: 进入到配置文件中修改
     vim /etc/profile
     PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/.local/bin:/root/bin:/tmp
               

    方法一: 配置文件生效

    重新连接

    方法二: 利用命令记录加载

    source /etc/profile

    . /etc/profile

    设置别名功能:

    别名有什么用:

    1. 简化复杂命令重复输入
    2. 将危险命令进行转换 rm 删除文件 == 将文件移动到 /tmp

    实现别名配置: alias(查看别名 设置别名) unalias(取消)

    临时配置:

    alias 别名=‘命令信息’

    alias net=‘cat /etc/sysconfig/network-scripts/ifcfg-eth0’

    永久配置:

    vi /etc/profile

    alias net=‘cat /etc/sysconfig/network-scripts/ifcfg-eth0’

    补充说明: 永久配置变量 环境变量 别名文件信息

    1. 全局配置文件 — 对系统中所有用户都有影响

      /etc/profile /etc/bashrc

    2. 局部配置文件 — 对系统中某个用户有影响

      ~/.bash_profile ~/.bashrc

      说明: 系统中以. 开头的文件都是隐藏文件

      说明: 局部配置优先于全局配置

  2. motd: 用户登录前显示提示信息

    地址: /etc/motd

  3. issue,issue.net: 用户登录后显示提示信息

    地址: /etc/issue, /etc/issue.net

/usr

/usr/local | /opt — 第三方软件安装程序目录

系统安装软件方法:
   a 利用yum命令安装软件           360软件管家(yum仓库)  
     特点说明: 下载软件 并进行安装 自动解决依赖关系
     操作演示: yum install -y tree
   
   b 利用rpm命令安装软件           官网下载软件安装程序 --- 安装软件 
     特点说明: 需要解决软件依赖关系  安装软件 
     操作演示: 
	 下载过程
	 wget https://mirrors.aliyun.com/centos/7.7.1908/os/x86_64/Packages/vim-enhanced-7.4.629-6.el7.x86_64.rpm
     安装过程
	 rpm -ivh  vim-enhanced-7.4.629-6.el7.x86_64.rpm
   
   c 利用编译方法安装软件
     特点说明: 灵活的安装或配置软件功能  无法解决软件依赖
	 操作演示: 
	 三部曲(配置 configure 编译 make  安装 make install)
   
   d 利用二进制包方法安装软件
     特点说明:  绿色软件(软件解压后直接使用)  数据库服务
           

/var

作用:存放系统临时数据

  1. messages: 记录系统或软件运行情况的日志文件

    地址:/var/log/messages

    用户登录成功信息 	
      Oct 22 12:13:45 linux67 sshd[8410]: Accepted password for root from 10.0.0.1 port 51635 ssh2
      Oct 22 12:13:45 linux67 sshd[8410]: pam_unix(sshd:session): session opened for user root by (uid=0)
      用户断开连接信息
      Oct 22 12:14:42 linux67 sshd[8410]: pam_unix(sshd:session): session closed for user root
      用户登录错误信息
      Oct 22 12:15:41 linux67 unix_chkpwd[8437]: password check failed for user (root)
      Oct 22 12:15:41 linux67 sshd[8435]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=10.0.0.1  user=root
      Oct 22 12:15:41 linux67 sshd[8435]: pam_succeed_if(sshd:auth): requirement "uid >= 1000" not met by user "root"
      Oct 22 12:15:43 linux67 sshd[8435]: Failed password for root from 10.0.0.1 port 51642 ssh2
      Oct 22 12:15:47 linux67 sshd[8435]: error: Received disconnect from 10.0.0.1 port 51642:0:  [preauth]
      Oct 22 12:15:47 linux67 sshd[8435]: Disconnected from 10.0.0.1 port 51642 [preauth]
           01           02       03              04
      
      1. 登录连接时间信息
      2. 显示主机名称信息
      3. 登录方式是什么    sshd(远程连接)  login(本地连接)
      4. 登录过程详细信息  关注失败信息
               

    日志信息如何进行查看: cat

    方法一: 只查看最新的信息

    head -n 文件信息 — 查看文件前几行信息

    tail -n 文件信息 — 查看文件后几行信息

    tail -f 文件信息 — 实时查看日志文件最新数据内容

    方法二: 关注指定信息 fail error

    grep “关注信息” 文件

    -C -B -A -i

/proc

作用: 存放进程文件和内核文件

  1. cpuinfo: 存放cpu信息

    地址: /proc/cpuinfo

    重要参数:

    physical id	: 0    --- 服务器上有几颗CPU
     processor	: 0    --- 服务器CPU核心数
               

    统计服务器核心数: grep -c processor /proc/cpuinfo

    使用命令查看: lscpu

  2. meminfo: 存放内存信息

    地址: /proc/meminfo

    重要参数:

    MemTotal:        2028116 kB    --- 服务器总的内存数量
     MemFree:         1720948 kB    --- 空闲内存数量
     MemAvailable:    1703560 kB    --- 可用的内存数量     ***
     Buffers:            2092 kB    --- 划分内存一定空间用于缓冲使用  加快数据写入
     Cached:            98352 kB    --- 划分内存一定空间用于缓存使用  加快数据读写
               

    使用命令查看: free -h

    -h: 以更适合人类查看的单位显示

    [[email protected] ~]# free 
               	 total        used        free      shared  	buff/cache   available
     Mem:        2028116      140908     1720708        9700      166500     1703320
     Swap:       1048572           0     1048572
     [[email protected] ~]# free -h
                   total        used        free      shared  	buff/cache   available
     Mem:           1.9G        137M        1.6G        9.5M        162M        1.6G
     Swap:          1.0G          0B        1.0G
               
  3. mounts: 查看硬盘信息

    地址:/proc/mounts

    硬盘信息: cat /proc/mounts

    /dev/sr0   /mnt  iso9660 ro,relatime                                0     0
     /dev/sda1  /boot xfs     rw,seclabel,relatime,attr2,inode64,noquota 0   0
          01          02     03                  04                                                  05  06
     1. 存储设备文件信息
     2. 磁盘挂载点信息
     3. 文件系统类型信息
     4. 挂载的参数信息
     5. 是否备份磁盘信息
     6. 是否检查磁盘
               
    使用命令查看: df -h
  4. loadavg: 查看系统负载

    地址: /proc/loadavg

    0.09     0.10    0.07      1/133(?) 8019(?)
     每1分钟  每5分钟 每15分钟
               

    负载值 <= 服务器总的核心数

    使用命令查看: w,uptime,top

    w

    10:36:31 up  1:36,  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:37    7.00s  0.60s  0.00s w
     01       02       03               04       05         06       07
    
     01: 登录系统用户信息
     02: 登录系统方式     pts/x(远程登录) ttyx(本地登录)
     03: 远程登录主机用户IP地址信息
     04: 用户登录主机时间
     05: 用户登录主机空闲时间
     06: 用户操作系统占用CPU情况
     07: 检查用户远程之后再做什么
         w       --- 用户在执行w命令
     	-bash   --- 进行基础命令操作
     	vim     --- 编辑文件状态
     	sh xxx  --- 执行脚本
               

继续阅读