1.系统根下面重要目录结构
tree
显示目录属性结构信息
tree -L
显示目录层级结构信息
tree -L 1 /
/
├── bin -> usr/bin #存放系统命令文件(二进制文件)目录 binary
cd /bin(快捷方式)==cd /usr/bin /bin是/usr/bin目录的 软链接
├── sbin -> usr/sbin #存放系统命令(二进制文件)目录 super binar 此目录大部分只能root用户使用
├── boot #存放系统启动引导文件信息
├── dev #(device) 存放系统的设备文件信息
├── etc #存放系统或服务配置文件信息(重点)
├── home #存放用户的家目录信息 普通人的家
├── root #存储管理员用户家目录 皇宫
├── var #存储可变的文件数据信息(日志文件) Variable (重点)
├── mnt #作为临时挂载点目录
├── opt #存储第三方软件程序
├── usr #存储第三方软件程序
├── proc #存储系统硬件信息/系统内核配置信息 优化系统 此目录中存储数据信息都在内存中
├── tmp #类似windows系统回收站/进行数据临时存储 mv data /tmp
├── lib -> usr/lib #系统或软件服务程序库文件存储目录 32bit 识别内存容量 最大识别4G
库文件:开发软件程序需要依赖库文件 QQ通讯软件程序
做饭: 叉子 锅 盆 调料 食材 (库文件)
├── lib64 -> usr/lib64 #系统或软件服务程序库文件存储目录 64bit 识别内存容量 最大识别256G?
2.系统重要文件介绍
/etc
(1)系统网卡文件
路径信息: /etc/sysconfig/network-scripts/ifcfg-eth0
内容信息:
cat /etc/sysconfig/network-scripts/ifcfg-eth0 #查看内容信息
TYPE="Ethernet" #设置网络类型
BOOTPROTO="static" #是否自动获取IP地址
none/static #ip地址需要手工设置
dhcp #自动获取ip地址
DEFROUTE="yes" #是否激活静态默认路由条目 如果没有静态默认路由等价于禁止主机访问外网
NAME="eth0"
HWADDR="00:0C:29:F4:7E:C9"
NM_CONTROLLED="yes"
ONBOOT="yes" #是否激活网卡状态
UUID="2a76c2f8-cd47-44af-936d-11559b3a498d" #系统硬件标识信息,不是很重要
IPADDR="192.168.154.19" (自己设置)
NETMASK="255.255.255.0"
DNS1="223.5.5.5" (根据实际自己设置)
============================================================
系统中如何修改网卡名称(共5个步骤,视频中25:00左右)
1)修改网卡文件中名称信息
cd /etc/sysconfig/network-scripts
NAME=eth0
DEVICE=eth0
2)修改网卡文件名称
mv ifcfg-ens33 ifcfg-eth0
3)修改系统加载网卡信息文件
vi /etc/default/grub
#GRUB_CMDLINE_LINUX="spectre_v2=retpoline rhgb quiet" 自己
GRUB_CMDLINE_LINUX=" crashkernel=auto biosdevname=0 net.ifnames=0 rhgb quiet" #重点要新添加 net.ifnames=0 biosdevname=0
4)执行命令加载grub文件的配置信息
grub2-mkconfig -o /boot/gru2/grub.cfg
5)重启系统
reboot
=============================================================
(2)系统域名解析配置文件
路径信息:cat /etc/resolv.conf
文件信息:
# Generated by NetworkManager
nameserver 223.5.5.5
作用:可以影响系统域名的访问
(3)指定域名与IP地址解析关系
路径信息:cat /etc/host
文件信息:
IP地址信息 域名信息
curl www.baidu.com #类似windows浏览器访问网页
=============================================================
系统安全服务: !!!安全服务默认开启会影响后期学习服务运行!!!
(a)防火墙服务:将不安全的数据流量进行隔离
systemctl stop firewalld #临时关闭防火墙
systemctl is-active firewalld #查看防火墙服务是否开启或者关闭
systemctl disable firewalld #永久关闭防火墙
systemctl enable firewalld #永久打开防火墙
systemctl is-enable firewalld #查看防火墙服务是否永久关闭或永久开启
(b)selinux服务:可以限制root用户操作行为 #当远程连接连不上时可以试试关闭此项
临时关闭:
setenforce 0 #1 开启
永久关闭:
sed -i 's#enforcing#disable#g' /etc/selinux/config
=============================================================
(4)实现自动挂载功能文件
文件路径: /etc/fstab #直接用 blkid 可以显示相关内容
文件内容:
UUID=288fc7d2-6ae4-401a-b190-51f307f9e862 / xfs defaults 0 0
UUID=1bafa4b5-b299-4648-90ec-e65cf3a29b93 /boot xfs defaults 0 0
UUID=0742ea62-a391-40f1-b936-d127b58eb286 swap swap defaults 0 0
第一列信息:表示进程挂载时存储设备文件信息 可以使用设备的UUID信息替代
第二列信息:表示进行挂载时指定的挂载点目录
第三列信息:表示文件系统类型(数据存储到磁盘方式) Linux xfs(推荐-效率较高) ext3/ext4(保证数据安全性)
NTFS:可以存储任意容量的数据
FAT32:可以存储小于4G单个文件可以存储
第四列信息:挂载参数配置
第五列信息:表示是否具有数据自动保存机制 不建议开启,容易造成磁盘空间浪费
第六列信息:表示是否开启磁盘自检机制 不建议开启,扫面检查磁盘过程也会对磁盘有损坏
vi /etc/fstab
#添加需要挂载的信息,例如
/dev/sdb3 /mnt xfs defaults 0 0
练习–如何进行光驱自动挂载
vi /etc/fstab
/dev/cdrom /mnt(不能与已有的目录名重复) iso96000 defaults 0 0
(5)实现开机自动执行命令
文件路径:/etc/rc.local ==/etc/rc.d/rc.local
文件信息:
touch /var/lock/subsys/local
chmod +x /etc/rc.d/rc.local #使此文件功能生效,需要执行的命令
系统开机后,将系统重要文件保存备份
例如:将网卡文件 dns解析文件 fstab每次开启保存备份到/backup
vi /etc/rc.local #进入后添加如下信息
Date_info=$(date "+%F")
cp /etc/sysconfig/network-scripts/ifcfg-eth0 /backup/ifcfg-eth0_${Date_info}
cp /etc/resolv.conf /backup/resolv.conf_${Date_info}
cp /etc/fstab /backup/fstab_${Date_info}
chmod +x /etc/rc.d/rc.local # 加一次权限就好
Esc
:wq #保存退出
(6)系统运行级别配置文件
系统运行级别:系统启动后, 会加载什么服务
图形界面-开发 / 命令行界面-运维
0 -- init 0 ==关机
1 -- 系统正常启动,但不会运行网络服务 单用户级别 修复系统/破解系统密码(面试题)
2 -- 系统多用户级别 不支持网络服务
3 -- 系统多用户级别 支持网络服务 常用的
4 -- 预留未设置
5 -- 系统进入图形界面
6 -- 重启级别 init == 重启
永久修改运行级别:
centos7:
#/etc/inittab
systemctl get-default #查看系统默认级别
systemctl set-default multi-user.target #设置系统默认级别
#ll /usr/lib/systemd/system/runlevel*target
lrwxrwxrwx. 1 root root 15 6月 9 2021 /usr/lib/systemd/system/runlevel0.target -> poweroff.target
lrwxrwxrwx. 1 root root 13 6月 9 2021 /usr/lib/systemd/system/runlevel1.target -> rescue.target
lrwxrwxrwx. 1 root root 17 6月 9 2021 /usr/lib/systemd/system/runlevel2.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 6月 9 2021 /usr/lib/systemd/system/runlevel3.target -> multi-user.target
lrwxrwxrwx. 1 root root 17 6月 9 2021 /usr/lib/systemd/system/runlevel4.target -> multi-user.target
lrwxrwxrwx. 1 root root 16 6月 9 2021 /usr/lib/systemd/system/runlevel5.target -> graphical.target
lrwxrwxrwx. 1 root root 13 6月 9 2021 /usr/lib/systemd/system/runlevel6.target -> reboot.target
=============================================================
命令补充:
runlevel #查看系统当前运行级别
init #可以切换系统运行级别
grep #过滤删选文件信息
alias #设置别名信息
alias 别名='命令信息'
unalias #取消别名设置
unalias 别名
=============================================================
思考:如何使用单用户修改破解密码?
1)进入开机选择菜单界面
进行上下方向键切换-------停止读秒过程
按e--- 在UTF-8的后面加上 init=/bin/sh---ctrl+x---进入单用户模式
2)需要修改系统的密码信息
mount -o remount,rw / #在改写密码前,让根目录有读写权限
passwd #回车输入新密码,共两次
touch /.autorelabel #在根目录下创建一个隐藏文件
3)执行命令,重启系统
exec /sbin/init
(6)系统显示输出文件
vi /etc/motd #可以在用户登录系统之后,显示输出的信息 新建的,自己编辑所需内容
vi /etc/issue #可以在用户登录系统之前,显示输出的信息 (需要在虚拟机/即服务器上操作) 已有三行 可以根据自己的需求编辑所需内容
============================================================ vim批量调整文件多行信息技巧
删除注释信息:
将光标移动到指定位置----ctrl+v----上下移动光标选中多行-----d #可以将光标选中内容删除
添加注释信息:
将光标移动到指定位置----ctr+v----上下移动光标选中多行---shift+i----编辑内容---Esc #可以对多行统一编写
=============================================================
2021-12-29
/ect目录:
可以用于设置变量与别名信息:/etc/profile /etc/bashrc ~/.bashrc ~/.bash_profile
以上文件配置改动后如何生效
方式一:重新建立会话
方式二:执行命令重新加载文件
source /etc/profile
. /etc/profile
source == .
设置变量:可以让变量永久生效
/etc/profile /etc/bashrc: 文件配置变量信息之后,会全局失效(系统中所有用户都可以识别)
~/.bashrc ~/.bash_profile:文件配置变量信息之后,只会局部生效(只有指定用户可以识别,其他用户无法识别)
PS:局部设置会优先于全局设置
别名设置:可以让复杂命令简单化
设置别名:别名名称 ifnet0='/etc/sysconfig/network-scripts/ifcfg-eth0'(临时设置)
alias ifnet0='/etc/sysconfig/network-scripts/ifcfg-eth0'
PS:别名名称信息尽量不要和已有命令名称冲突
将变量设置信息放入:/etc/profile /etc/bashrc ~/.bashrc ~/.bash_profile 可以使别名全局生效
vim /etc/proflile
alias ifnet0='/etc/sysconfig/network-scripts/ifcfg-eth0'
如何取消别名:
方式一:利用unalias取消别名
方式二:采用命令绝对路径方式执行
/bin/cp /etc/hosts /tmp
方式三:进行名命令的转义
\cp /etc/hosts /tmp/
\ #转移符号 将没有意义的字符信息变得有意义,将没有意义的字符信息变得没有意义
问题:希望设置一个rm别名 把要删除的信息移动到临时目录
1)编写别名设置信息
alias rm="mv -t /tmp" #实现rm /etc/hosts 等同于 mv -t /tmp /etc/host
2)将别名设置信息放入/etc/profile文件中
vi /etc/profile
alias rm='mv -t /tmp'
3)检查是否有用户局部变量设置
vi ~/.bashrc
alias rm='rm -i' #注释掉该信息
补充:隐藏文件信息如何删除
rm -rf ./.y* 多写上一些隐藏文件名称开头字符 #进行删除
rm -rf /.* #不建议使用
服务运行日志文件(排错查找)
/var 目录重要文件信息:
(1)cat /var/log/messages
messages :可以记录系统服务运行状态
查看日志信息:
方式一:grep过滤查看文件信息
grep -E "信息1|信息2|信息3" 文件目录信息 #同时过滤多个信息
grep -i "信息1" 文件目录信息 #忽略大小写进行过滤
grep -Ei "22:*(erro|Fail)" 文件目录信息 #根据时间信息进行过滤筛选
grep -A #可以过滤指定行信息以及行以下内容
grep -B #可以过滤指定行信息以及行以上内容
grep -C #可以过滤以指定行为中心,上下几行内容
grep -r newytt(表示要查找的信息) /root/* #根据指定目录遍历所有文件查找相应数据内容
方式二:tail -f 追踪查看日志变化
tail -f #实时追踪查看
》面试题:此时有一个大约1G的日志文件,如何查看里面数据信息《
tail -f 或者 tail -1000|grep "xxxxx(要找的信息)"
| 命令行里面的管道符 ,将前一个命令执行的结果交给后面的命令进行识别处理
(2)cat /var/log/secure #用户登录信息日志
secure :系统当前登录用户信息日志
用户登录成功
Dec 30 03:33:59 centos-server sshd[1487]: Accepted password for root from 192.xxx.xxx.169 port 50726 ssh2
Dec 30 03:33:59 centos-server sshd[1487]: pam_unix(sshd:session): session opened for user root by (uid=0)
=============================================================
命令补充:
grep #过滤删选文件信息
grep -r #进行递归过滤
alias #设置别名信息
alias 别名='命令信息'
unalias #取消别名设置
unalias 别名
=============================================================
硬件信息查看文件
/proc 目录重要文件信息:
(1)/proc/cpuinfo #查看CPU硬件信息
model name: Intel(R) Core(TM) i7-6600U CPU @ 2.60GHz #CPU型号
physical id : 0 #cpu颗数
processor : 0 #cpu核心数
grep -c "physical id" /proc/cpuinfo #服务器中有多少颗CPU
PS:总结颗数时,要确认physical id不能相同才能进行统计,相同时需要取消重复的
grep -c "processor" /proc/cpuinfo #服务器总核心数
PS:每颗CPU核心数=CPU总核心数/颗数
(2)/proc/meminfo #查看内存硬件信息
MemTotal: 1882084 kB #服务器总空闲情况
MemFree: 1554888 kB #服务器空闲内存容量 多
MemAvailable: 1086204 kB #服务器可用内容容量 少 关注可用
Buffers: 2084 kB #缓冲区占用内存空间
Cached: 295520 kB #缓存区占用内存空间
SwapCached: 0 kB #占用交换分区容量
(3)/proc/loadavg#查看系统负载情况
0.00 0.01 0.05 #分别代表每分钟平均负载、每5分钟平均负载、每15分钟平均负载
PS:负载值 < 服务器的总核心数
(4)/proc/mounts #查看磁盘挂载情况 (先简单了解)
3.系统重要目录介绍
/usr/local - -存放安装第三方软件程序数据
系统安装软件方式方法(4种):
方式一:yum安装软件
优点:可以解决软件依赖
确定:无法实现定制化安装
安装软件: yum install -y 软件名称
方式二:rpm安装软件
优点:无需依赖网络安装软件
缺点:无法解决软件依赖
安装软件:rpm -ivh 软件包.rpm
i --install
v --verbose 显示安装过程
h --hash 软件包安装时列出哈希标记
方式三:编译安装软件
优点:解决可以实现定制化安装
缺点:无法解决软件依赖
安装前提:需要有编译软件源码包
安装软件:三部曲
1)配置过程:
--prefix=PATH #修改程序安装路径
--with-xxx #软件可以支持功能
--without-xxx #取消软件默认功能
2)编译过程:让系统识别源码信息
make
3)安装过程:(编译安装)
make install
方式四:二进制包方式安装软件 ==绿色软件/硬盘版软件 MySQL
优点:节省软件安装过程时间
缺点:无法解决软件依赖
安装前提:需要具有二进制软件包
安装过程:进行解压--将解压后的目录保存在指定系统目录下--就可以直接使用
参考:B站老男孩云计算