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
-