核心配置文件②&&核心命令

核心配置文件②&&核心命令
[TOC]
/etc/核心配置文件
/etc/hosts
位置: /etc/hosts
作用: 本地DNS解析、将字符串解析成IP地址
浏览器输入www.baidu.com ----> /etc/hosts ---> DNS223.6.6.6 ---> 返回百度对应IP地址给浏览器
你的主机先访问你本地的DNS解析,如果找不到,然后再访问223.6.6.6
- Linux系统: /etc/hosts
- 这个是斜线
- windows系统: C:\Windows\System32\drivers\etc
- 这个是撬棍
⚠️ 我们可以手动劫持,它不安全,将 www.jd.com 的域名映射到别的IP地址上去,那么我们就会访问到一个假的京东
'格式'[root@oldboy ~]# cat /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.219.128 centos192.168.219.128 www.baidu.com www.jd.com www.taobao.com# 后面可以跟多个域名,或主机名,空格隔开10.0.0.200 hhhh# 也可以是一个随机的字符串
[root@oldboy ~]# ping hhhh # **ping hhhh**PING hhhh (10.0.0.200) 56(84) bytes of data.64 bytes from hhhh (10.0.0.200): icmp_seq=1 ttl=64 time=0.802 ms64 bytes from hhhh (10.0.0.200): icmp_seq=2 ttl=64 time=0.540 ms# 相当于是自己ping自己/etc/motd
📌 存放字符串 每次xshell连接显示里面的内容
- 直接编辑里面文件即可,然后重新连接Xshell就会出现了!
- 网址链接放这了提高学习Linux的兴趣(自娱自乐篇)
- Ascii艺术字
(@) * (@) * (@) : * (@) * (@) * .; (@) * (@) * (@) * (@) * ; * ; (@) * ; * : ;\ \ \ \| / / /; \\ \ Y/ / / `_\ |/ _' / \\Y// \ ( ,-}={-, ) \_//((\_/ //))(\ (/ )) (/ _ooOoo_ o8888888o 88" . "88 (| -_- |) O\ = /O ____/`---'\____ .' \\| |// `. / \\||| : |||// \ / _||||| -:- |||||- \ | | \\\ - /// | | | \_| ''\---/'' | | \ .-\__ `-` ___/-. / ___`. .' /--.--\ `. . __ ."" '< `.___\_<|>_/___.' >'"". | | : `- \`.;`\ _ /`;.`/ - ` : | | \ \ `-. \_ __\ /__ _/ .-` / /======`-.____`-.___\_____/___.-`____.-'====== `=---='^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 佛祖保佑 永不死机 心外无法 法外无心/etc/issue和/etc/issue.net
📌 连接时一些冗余信息
直接清空两个文件就行
[root@oldboyedu ~]# > /etc/issue # 清空issue文件[root@oldboyedu ~]# > /etc/issue.net # 清空issue.net文件/etc/os-release
📌 ⭐查看操作系统版本信息
[root@oldboyedu ~]# cat /etc/os-release # 查看系统版本NAME="Kylin Linux Advanced Server"VERSION="V10 (Lance)"ID="kylin"VERSION_ID="V10"PRETTY_NAME="Kylin Linux Advanced Server V10 (Lance)"ANSI_COLOR="0;31"# 不管什么版本都能够查看/var/核心配置文件
📌 一般来查看各种日志,最新的日志在最底部
/var/log/messages
📌 系统日志
/var/log/secure
📌 系统用户登录和退出日志
tail -f 日志路径
📌 实时查看文件最新的日志
可以敲回车至一个空白处,然后,只要有信息,就会显示!
⚠️ 使用ctrl+c结束

/proc核心配置文件

上传写入用Buffer
我们把一些热点数据放在Cache”读缓存”中
- 这样用户就可以快速的进行读了
/proc/meminfo
📌 查看内存信息
[root@oldboyedu ~]# cat /proc/meminfo # 查看内存信息MemTotal: 954520 kB # 内存总大小MemFree: 433032 kB # 内存空闲大小MemAvailable: 579144 kB # 内存可用大小 ✅️'我们以可用的内存大小为标准'# 因为内存有欺骗行为,假设这两个服务同时依赖这个库文件# 内存显示用了400M,但实际只用了300MBuffers: 2708 kB # 写缓冲区Cached: 261096 kB # 读缓存区
[root@oldboyedu ~]# free -h # ⭐重点命令# -h以人类可读形式显示 总内存 使用了多少 空闲 共享内存 缓冲/缓存 可用内存 total used free shared buff/cache availableMem: 932Mi 219Mi 422Mi 6.0Mi 289Mi 565MiSwap: 2.0Gi 0B 2.0Gi# 主要以可用的内存为标准/proc/cpuinfo
📌 查看CPU信息
[root@oldboy ~]# cat /proc/cpuinfo # 查看CPU信息processor : 0vendor_id : AuthenticAMDcpu family : 25model : 80model name : AMD Ryzen 5 5600H with Radeon Graphicslscpu


[root@oldboyedu ~]# lscpu # 查看CPU架构信息架构: x86_64 ✅️CPU: 4 ✅️ # 总共的核心数在线 CPU 列表: 0-3 # 列表# 0代表第一个CPU,以此类推每个核的线程数: 1 # 每个核可以同时做的事情数量每个座的核数: 2 ✅️ # 每个CPU的核心数/proc/loadavg
📌 查看系统负载
[root@oldboy ~]# cat /proc/loadavg # 查看系统负载0.00 0.00 0.00 3/160 2444# 1,5,15分钟的平均负载 当前运行的进程/总共的进程1)uptime[root@oldboyedu ~]# uptime # 查看系统运行时间和负载'w命令也可以查看系统负载' --> 第一行和uptime一样 10:47:20 up 12 min, 1 user,load average: 0.00, 0.00, 0.00# 当前时间 运行了12分钟 1个用户 平均负载 1分钟 5分钟 15分钟平均负载
2)w'后面也可以查看登录的用户并且正在干什么!'[root@oldboyedu ~]# w # 查看系统负载和登录用户 10:50:54 up 16 min, 1 user, load average: 0.00, 0.00, 0.00# w的第一行等于uptime命令USER TTY LOGIN@ IDLE JCPU PCPU WHATroot pts/0 10:34 0.00s 0.05s 0.00s w# 登录用户 第一个终端 登录时间 ................📌 什么是系统负载?
系统负载是衡量系统的繁忙程度,如果负载接近于CPU的核心数说明系统非常繁忙
CPU核心4核: 负载达到4说明满负荷状态. 如果负载达到5说明有进程已经处于等待状态
负载 = 4,在4核机器上 ≈ CPU刚好满载
负载 = 4,在2核机器上 ≈ 进程排队严重(过载)
达到多少是系统负载高? 90%以上❌️ <— 驴唇不对马嘴
✅️ 系统负载达到了核心数,说明系统非常繁忙了. 是核心数! 并非百分比!
那这些百分比说明啥? CPU的使用率,内存的使用率,磁盘的使用率
📌 关键点:
即使 CPU 空闲,高 I/O 也会推高负载
高负载 ≠ 高 CPU:可能是磁盘慢、NFS 卡住、大量进程等
哪些问题会导致系统负载?
- CPU 大量的计算
- 大量磁盘I/O
- 内存(使用 swap 分区)
- 网络原因
- 程序问题
查看磁盘信息
[root@oldboyedu ~]# df -h # 查看磁盘使用情况文件系统 容量 已用 可用 已用% 挂载点devtmpfs 963M 0 963M 0% /dev/dev/mapper/klas-root 47G 3.7G 44G 8% /# 根分区,整个磁盘空间的大小,基本上都给它了...................../dev/sda1 1014M 169M 846M 17% /boot# 别的,我们后面讲磁盘管理的时候再详细的了解(1)sda
📌 表示第一块磁盘
sda1 # 表示第一块磁盘的第一个分区sda2 # 表示第一块磁盘的第二个分区(2)sdb
📌 表示第二块磁盘
sdb1 # 表示第二块磁盘的第一个分区面试题:
| 需求 | 命令 |
|---|---|
| 查看系统内存 | free -h |
| 查看系统CPU | lscpu |
| 查看系统负载以及三个数的含义 | uptime / w |
| 三个数含义 | 1分钟 5分钟 15分钟系统的平均负载 |
| 查看系统的磁盘 | df -h |
系统核心命令
less
📌 一页一页的查看文件内容、主要查看大文件 超过200M的文件
语法格式:
less 文件名称less -N d.txt
📌 显示文件的行号
📌 less配合管道,可以处理屏幕上显示的内容
cat d.txt | less -N # 支持所有命令的输出history | less -N # 历史命令和less简直绝配-
这个
N/n是**/搜索模式**下使用的 -
正常的翻页是空格和 f向下翻页 / b向上翻页
📌:快捷键
| 快捷键 | 功能 |
|---|---|
| 空格 / f | 往下翻页 |
| b | 往上翻页 |
100G | 快速移动到100行 |
gg | 到文件的第一行 |
G | 快速到文件的末尾 |
q | 退出命令 |
/搜索的内容 | 搜索 N/n匹配 |
🧣这个查找的功能配合less非常好用
more
📌 和less相似 了解
vim的快捷键用不了,比较鸡肋
只能上下翻,q退出
head
📌 显示头部信息
(1)head file
📌 默认显示文件的前10行
[root@oldboyedu ~]# cp /etc/passwd . # 复制passwd到当前目录[root@oldboyedu ~]# ll passwd # 查看文件信息-rw-r--r-- 1 root root 1882 10月 31 11:46 passwd[root@oldboyedu ~]# head passwd # 默认显示前10行..........(2)head -n 3
📌 显示文件的前3行
[root@oldboyedu ~]# head -n3 passwd # 显示前3行root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologin(3)简写-3
📌 省略-n
[root@oldboyedu ~]# head -3 passwd # 显示前3行(省略-n)root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologin(4)配合管道符
其他命令输出 | head
[root@oldboyedu ~]# history | head -3 # history结果取前3行 1 history 2 ip a 3 touch a.txttail
(1)tail file
📌 默认显示文件的后10行
[root@oldboyedu ~]# tail passwd # 默认显示后10行.........(2)tail -n 3 file
📌 显示文件的后3行
[root@oldboyedu ~]# tail -n 3 passwd # 显示后3行tcpdump:x:72:72::/:/sbin/nologinold:x:1000:1000::/home/old:/bin/bashntp:x:38:38::/etc/ntp:/sbin/nologin(3)tail -3 file
📌 简写
[root@oldboyedu ~]# tail -3 passwd # 显示后3行(省略-n)tcpdump:x:72:72::/:/sbin/nologinold:x:1000:1000::/home/old:/bin/bashntp:x:38:38::/etc/ntp:/sbin/nologin(4)tail -f file
📌 实时持续查看文件的变化
可以敲回车至一个空白处,然后,只要有信息,就会显示! ---> ✅ 方便观察
⚠️ 使用ctrl+c结束
(5)tail -F file
📌 实时查看文件的变化、文件不存在也可以监控(了解)
✅ 即使没有这个文件,一直在这里等着…
(6)history | head -15 | tail -5
📌 显示指定的行数(11-15)(不要前十行了)
[root@oldboy ~]# history | head -15 | tail -5'显示第11-15行'11 route12 route -e13 ping www.baidu.com14 ip a15 cat /etc/resolv.conf# 可以通过衔接head和tail显示指定的行数grep
格式: grep 关键字 文件路径
📌 作用: 模糊过滤文件中包含字符串的行
我们后面会继续学习更深层次的过滤,现在仅供了解
过滤文件中包含 failure 的行
[root@oldboyedu ~]# grep failure /var/log/secure # 过滤包含failure的行Oct 30 10:19:08 oldboy-lnb passwd[17518]: authentication failure;Oct 30 10:19:14 oldboy-lnb passwd[17522]: authentication failure;[root@oldboy ~]# cat /var/log/secure | grep failure # 用管道符过滤# 我还是习惯用管道符进行过滤==高亮显示==
📌 为它设置别名即可
[root@oldboy home]# alias grep='grep --color=auto' # 设置grep高亮别名'Kylin默认没有高亮,Ubuntu有的'[root@oldboy home]# grep failure /var/log/secure # 过滤并高亮# 重新连接后,就没有了,临时生效# 想要永久生效,写入到/etc/profile中-c
📌 统计包含关键字的行数
- 这条命令的作用是 统计包含关键字 failure 的==行数==
- ⚠️ 而不是统计关键字出现的总次数 ❌(即”个数”)
[root@oldboy home]# cat > hh.txt <<EOF # 创建测试文件> Dec 7 10:00 sshd[1234]: Failed password for user (failure)> Dec 7 10:01 sshd[1235]: Failed password for user (failure) and another failure> Dec 7 10:02 sshd[1236]: Accepted password for user> EOF'总共包含3个failusre'[root@oldboy home]# grep -c failure ./hh.txt # 统计包含failure的行数2 <-- 统计的是行数 ✅[root@oldboy home]# grep failure ./hh.txt # 查看具体内容Dec 7 10:00 sshd[1234]: Failed password for user (failure)Dec 7 10:01 sshd[1235]: Failed password for user (failure) and another failure# -c统计的是行数,不是failure出现的总次数-v
📌 不包含字符串的行.对过滤到的内容取反
[root@oldboyedu ~]# cat 1.txt # 查看测试文件a 111111b 222222c 333333[root@oldboyedu ~]# grep a 1.txt # 正常过滤a 111111[root@oldboyedu ~]# grep -v a 1.txt # -v取反,排除包含a的行b 222222c 333333# 顺利把包含a的行排除掉了alias(了解)
📌 作用: 给命令起一个外号
- 个人感觉只是给变量赋了一个值,所以临时生效
- 想要永久生效,写入到/etc/profile环境变量中 —> 别忘了,source生效
alias 外号='可执行的命令'📌 系统外号: ls -l的外号是ll, rm -i的外号是rm
alias可以给存在的命令起外号、也可以是不存在的命令 —> 自娱自乐
type
查看命令的别名
[root@rocky10 ~]# type ll # 查看ll的别名ll is aliased to `ls -l --color=auto'# ll 是 `ls -l --color=auto' 的别名🌰 案例1. 给 mkdir -p 起个外号叫 mkdir
[root@oldboyedu ~]# alias mkdir='mkdir -p' # 设置别名[root@oldboyedu ~]# mkdir a/b/c # 测试递归创建[root@oldboyedu ~]# ll # 验证结果总用量 12-rw-r--r-- 1 root root 27 10月 31 14:36 1.txtdrwxr-xr-x 3 root root 15 10月 31 14:39 a🌰 案例2. 给一个不存在的起外号
[root@oldboyedu ~]# alias vimens33='vim /etc/sysconfig/network-scripts/ifcfg-ens33' # 给长命令起别名[root@oldboyedu ~]# vimens33 # 直接敲别名进入编辑TYPE=EthernetBOOTPROTO=noneNAME=ens33DEVICE=ens33ONBOOT=yesIPADDR=10.0.0.200PREFIX=24GATEWAY=10.0.0.2⚠️ 以上两个案例都是临时生效,重新连接Xshell或者重新启动服务器,就没有了
- 永久生效,请写入/etc/profile环境变量
- 并不是**/etc/rc.local(不放变量,放可执行命令)**
🌰 我们这里演示永久让grep高亮显示案例:
中间犯了一个错误 alias grep='grep --color=red'
又犯了一个错误
重启后,再次过滤,进行验证,永久生效
alias
📌 查看系统已经存在的外号
直接回车即可
[root@oldboy ~]# alias # 查看所有别名alias cp='cp -i'alias grep='grep --color=auto'alias l.='ls -d .* --color=auto'alias ll='ls -l --color=auto'alias ls='ls --color=auto'alias mkdir='mkdir -p'alias mv='mv -i'alias rm='rm -i'alias vimens33='vim /etc/sysconfig/network-scripts/ifcfg-ens33'unalias
📌 取消alias别名
因为默认是临时生效的,所以,重新连接后(重启后),就失效了
[root@oldboyedu ~]# unalias rm # 取消rm的别名'不想退出重连,用这个命令'因为企业里面的东西都是不能删除的,特别是当你操作客户的机子时,一定要提前设置好alias别名,不要乱删
- 数据恢复很麻烦!!! 尽量使用mv来替代rm删除键
- 后面操控用户电脑,先给rm起别名…并提示…
[root@oldboy ~]# alias rm='echo 使用mv替代rm删除,不要乱删文件!!!' # 给rm设置保护别名[root@oldboy ~]# rm -rf /home/hh.txt # 测试删除使用mv替代rm删除,不要乱删文件!!! -rf /home/hh.txt# 文件没有被真正删除![root@oldboy ~]# ll /home/hh.txt # 验证-rw-r--r-- 1 root root 189 12月 7 10:32 /home/hh.txt[root@oldboy ~]# unalias rm # 取消别名[root@oldboy ~]# rm -rf /home/hh.txt # 真正删除[root@oldboy ~]## 成功删除# 用\rm也行,取消别名: \ 临时取消别名文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!



