Linux运维-05目录结构

目录结构

系统目录结构

  • linux目录结构: 一切从根开始,一个倒挂的树

  • windows目录结构:按照盘符进行划分 C盘:

  • linux系统中的挂载技术

  • 让用户可以将一个目录作为一个存储设备的挂载点,通过挂载点可以看到存储设备中的数据

    • 实际操作演示linux系统挂载过程

    • 第一个步骤:拥有一个存储设备-光驱 使光驱加载光盘

    • 第二个步骤:在linux系统中找到光驱设备

      • [root@jarvis ~]# ls -l /dev/cdrom         device 设备目录
        lrwxrwxrwx. 1 root root 3 Mar 29 12:02 /dev/cdrom -> sr0
        
    • 第三个步骤:需要将存储设备进行挂载

      • 挂载命令语法格式:mount 挂载设备文件信息 挂载点(目录信息)

      • 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 bu iltin
      • 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-eth0 => 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
      
posted @ 2020-04-15 04:24  Raoguozhong  阅读(191)  评论(0编辑  收藏  举报