– linux规则,命令行,命令,目录,常用目录,绝对路径vs相对路径,linux组成.
– 核心指令::star::star::star::star::star:
– 创建目录mkdir,创建文件touch
– 查看: ls,cd,pwd
– ip,telnet,ping检查类命令
远程连接排障流程
1.检查两个ip间道路是否畅通 —> ping命令,查看连接是否通畅
2.检查是否有被劫持情况 —-> selinux与防火墙等
3.检查端口是否存在及运行 —> xshell中运行 :telnet 检查端口是否连接正常,Linux系统中:ss -Intup 检查系统端口是否存在及正常运行

Linux规则
Linux组成
由应用程序 shell命令解释器 kernel内核 三部分组成
命令行格式
[root@oldboy-kylin-v10 ~]#
用户名@主机名 ~位置为当前所在位置 ~代表家目录 #为root用户 $为普通用户
命令格式
mkdir -p /oldboy/01/02/aa.txt
命令 选项 参数
选项:命令下的不同操作
参数:操作对象
Linux目录
绝对路径与相对路径
绝对路径:从根目录开始
相对路径:从当前目录开始
核心命令
增加类命令
mkdir 创建目录 -p 创建多层目录
ls 查看目录中内容 -l详细显示 -a全部显示 -t 按时间排序 -r 倒序显示
在Linux中以 .开头的目录及文件为隐藏显示,ls -a可以全部显示出来
touch 创建文件 ,修改时间戳
查看类
cd 改变目录,进入目录里
cd 直接回到家目录
cd..返回上一级目录
pwd 显示当前所在目录(查看定位)
day003-vim及其他查看移动删除指令
– **linux快捷键,ctrl+a/e/l/c tab键 必会** esc+., ctrl+r
– **重启,关机指令(shutdown -h/-r/-c) 必会** halt ,reboot….
– **vim基本使用 必会** ,vim快捷键 逐渐掌握.
– **命令补充: cat,rm,cp,mv,echo ,>> ,> , 必会**
Linux快捷键
ctrl + a :将光标移动到最前面
ctrl + e:将光标移动到最后面
ctrl + I :清屏
ctrl + c :终止命令运行状态
tab : 补齐命令
esc + . :填入上一个命令的参数
ctrl + r : 搜索使用过的命令 ,如果不是可以继续按ctrl + r 搜索下一个
重启 关机命令
在正式工作环境中非必要不关机,关机需要检查ip对不对
shutdown -h 时间/(0/now立即关机) :将在”时间内“关机
shutdown -r 时间/(0/now立即关机) :重启
shutdown -c :取消关机或重启,只有shutdown命令可以取消,其他关机/重启命令无法取消
vim基础命令及补充命令
vim基础命令
| i | 进入编辑(插入)模式 |
| :q | 退出编辑器 |
| :w | 保存 |
| :wq | 保存并退出 |
| :wq! | 强制保存并退出 |
vim快捷键命令模式下
| :set nu | 显示行号 | |
| :set nonu | 不显示行号 | |
| yy | 复制当前所在行 | |
| pp | 粘贴当前所在位置下一行 | 可以在前面加数字表示粘贴几次 |
| dd | 剪切(删除当前所在行) | 同上 |
| G | 光标移动到文件末尾 | |
| gg | 光标移动到最前面 | |
| V | 可视化行,可批量操作行 | |
| ctrl + v | 可视化列,可批量操作列 | 选择完,按大写I进行编辑操作,操作完成按esc退出,即可操作成功 |
| u | 撤销 | |
| /内容 +回车 | 搜索内容 | N向上搜索,n向下搜索 |
Linux补充命令
| rm | 删除文件 -f强制删除-r 递归删除 删除目录必备(慎重选择,删除目录) | |
| cp | 复制文件-r复制目录(必选)递归复制-p保持属性不变-a == -rpd(软连接) | |
| echo 内容 | 输出一次内容 | 通常和 > 或>>一起使用 |
| > | 重定向。 >文件 | 将文件内容清除再写入当前内容 |
| >> | 追加重定向 | 将内容写到文件末尾 |
| cat 文件1 文件2 > 文件3 | 将前两个文件1,2内容写到后面文件3内 |
day004-Linux优化
今日重点
- {}
- seq
- 优化链接:https://www.yuque.com/lidao996/sre/abffhheqc7e7qgex
- 给linux系统配置yum/apt源(下载地址),安装常用工具.
- 修改命令行颜色.
- 关闭防火墙
- 配置openssh端口,准许root远程登录.
{}生成序列
| echo {1..10} >/oldboy.txt | 将输出写入到文件 | |
| echo {1..10} >>/oldboy.txt | 将输出追加到文件尾 | |
| touch /oldboy/old{1..10}.txt mkdir -p /old/ol{1..5} | 批量创建文件及目录 |
补充
{}整个数组为一行
[root@oldboy-kylin-v10 ~]# echo {1..10}
1 2 3 4 5 6 7 8 9 10
[root@oldboy-kylin-v10 ~]# echo {1..10..2} #从一开始到十,每次增加2
1 3 5 7 9
[root@oldboy-kylin-v10 ~]#
seq命令,生成数字序列,每个数字为一行
[root@oldboy-kylin-v10 ~]# seq 10 #生成十个数
1
2
...
9
10
[root@oldboy-kylin-v10 ~]# seq 5 20 #生成2-20范围的数
5
...
20
[root@oldboy-kylin-v10 ~]# seq 5 2 20 #生成5-20范围的数,每次增加2
5
7
...
17
19
[root@oldboy-kylin-v10 ~]#
Linux下载加速与工具安装
物理机,虚拟化环境必做,云服务器可以不用配置
1.linux下载安装软件默认从官网下载,改为国内
2.麒麟增加下载软件包地址
详细操作命令:
红帽类系统中下载安装软件命令:yum install -y tree
红帽中yum下载地址存放在/etc/yum.repos.d/目录下,以.repo结尾
[root@oldboy-kylin-v10 ~]# cd /etc/yum.repos.d/
[root@oldboy-kylin-v10 /etc/yum.repos.d]# ls -l
总用量 8
-rw-r--r-- 1 root root 664 8月 4 2022 epel.repo
-rw-r--r-- 1 root root 701 9月 8 2022 kylin_x86_64.repo
[root@oldboy-kylin-v10 /etc/yum.repos.d]#
repo文件的核心 baseurl的行
麒麟系统还需要增加yum源,增加可以下载安装软件的数量,添加的脚epel.repo
mirrors.aliyun.com
https://mirrors.tuna.tsinghua.edu.cn/
Debian/ubt中下载安装软件的命令:apt install -y tree
配置apt下载地址/源
apt源的配置文件/etc/apt/sources.list
命令行颜色
区分测试环境和正式环境
关闭防火墙

使用systemctl指令管理.
system control
linux服务管理指令(服务管理:开,关,重启,开机自启动,不开机自启动)
1.当前的开,关,重启(start|stop|restart|status)
start #开启
stop #关闭
restart #重启
status #状态
2.开机是否自动运行(linux重启/开机软件/服务是否运行)
#麒麟系统的
#1.查看服务状态
systemctl status firewalld
#2.关闭防火墙(当前运行的)
systemctl stop firewalld
#3.关闭开机自启动
systemctl disable firewalld
#2+3合并
systemctl disable --now firewalld
#ubt系统防火墙ufw关闭
systemctl disable --now ufw
Openssh
远程连接服务 openssh-server
openssh就是远程服务。服务名字叫sshd
1.修改远程连接端口
2.ubt系统root,禁止root远程登陆
openssh-server服务配置文件在/etc/ssh/sshd_config
Port端口 端口范围推荐10000+以上 如52113
端口范围1-65535,1-1024系统服务占用
day005-Linux系统核心文件与系统巡检
- 检查linux版本信息,内核信息:hostnamectl ,/etc/os-release
- 检查与修改主机名信息.
- cpu架构:x86,arm区别
- 查看和修改网卡信息:麒麟,ubt.
- 日志文件secure,auth.log 检查是否有密码失败.
- proc下面内容,cpu硬件信息,内存信息,负载信息 (lscpu,free,w)
- 了解: motd,issue
- 书写脚本执行脚本(bash执行)
二、核心文件
(一)/etc/ 下的核心内容
- 系统版本信息文件 /etc/os-release
- 该文件仅可查看,不可修改。
- 包含关键信息:
- VERSION_ID:版本号码
- ID:发行版本的精简名字
- NAME:详细的发行版本名字
- 主机名的配置文件 /etc/hostname
- 不推荐直接修改此文件,修改后需重启 Linux 系统才能生效。
- 相关命令:
hostnamectl:可查看和修改主机名,修改后会同步更新 /etc/hostname 文件,且当前命令行立即生效。- 查看主机名与其他信息示例:
[root@devops-~]#hostnamectl
Static hostname:devops #主机名
Virtualization: vmware #虚拟化技术(使用的什么虚拟机软件)
Operating System:Kylin Linux Advanced Server V10(Lance)#系统版本
Kernel:Linux 4.19.90-52.22.v2207.ky10.x86_64 #内核版本
Architecture:x86-64 #cpu架构
麒麟系统 V10SP3:内核 4.19
Ubuntu 22.04:内核版本 5.15
Rocky 9.3:内核版本 5.14
Linux 内核官网:https://kernel.org/
Architecture作为扩展现在尽可能理解
cpu架构(指令集):
x86-64/amd64:使用广泛(个人、企业),主要搭配 Intel、AMD 的 CPU,属于复杂指令集(CISC)。
ARM(aarch64)架构:常用于手机(移动设备),功耗较低且性能可观,也可用于服务器,属于精简指令集(RISC)。


修改主机名
hostnamectl set-hostname develop-kilin
hostnamectl命令也会修改/etc/hostname文件同时当前命令行失效
主机名修改规则
看见主机名能知晓服务器作用
考虑未来主机名与网站服务共享需求。share01.oldboy.cn。
可采用其他规则功能缩写
hostname命令(临时修改主机名,重启linux后失效,查看主机名)
hostname一般用于查看主机名
查看内核
查看内核
uname -r
查看cpu架构
uname -m
查看所有
uname -a
- 网卡信息查看与修改
麒麟nmtui–>/etc/sysconfig/network-scripts/ifcfg-ens33
/etc/系统配置
/etc/sysconfig/系统配置
/etc/sysconfig/network-scripts/网络脚本/配置
/etc/sysconfig/network-scripts/ifcfg-ens33
if-->interface网卡/接口
cfg-->configure配置
ens33
ensxxxxx
ethxxxxx
#1. 网卡获取 ip 的方式 2 种
##1.1 自动获取 dhcp
##1.2 手动设置 (固定 ip) manual 手动 (安装系统,nmtui 中)
## 详细配置
#BOOTPROTO=dhcp 自动获取 ip,
#BOOTPROTO=none 或 static ip 手动 / 固定.
BOOTPROTO=none
#2. NAME,DEVICE 网卡名字
NAME=ens33
DEVICE=ens33
#3. ONBOOT 网卡是否开机自启动
ONBOOT=yes
#4. IPADDR IP 地址 10.0.0.3 - 254 不同 Linux 系统 ip 不能冲突.
IPADDR=10.0.0.200
#5. 网关 (网络流量出入口 类似于大门.)
GATEWAY=10.0.0.2
#6. DNS
DNS1=223.5.5.5
DNS2=223.6.6.6
#dns 配置文件
1) 主要在网卡配置文件中写
2)/etc/resolv.conf 可以用于检查当前使用的 DNS.
[root@oldboy-kylin-101~]#cat /etc/resolv.conf
#Generated by NetworkManager
nameserver 223.5.5.5
nameserver 223.6.6.6
DNS:域名解析服务 域名jd.com /taobao.com/12306.com -DNS->ip
网卡配置文件:DNS服务器的ip(公共DNS服务器)
阿里云 DNS:223.5.5.5、223.6.6.6
114 114.114.114.114、114.114.115.115
https://dnsdaquan.com/
- 修改麒麟网卡配置文件并生效:
修改 IP 后,重启指定网卡
ifdown ens33&&ifup ens33
使用systemctl重启网卡
yum install -y network-scripts
然后
systemctl restart network
- 故障案例:

Ubuntu /etc/netplan/00-installer-config.yaml
plaintext
#ubt网卡配置文件中,注意缩进,注意缩进,注意缩进
[root@oldboy-ubt ~]#cat /etc/netplan/00-installer-config.yaml
#This is the network config written by 'subiquity"
network:
ethernets:
ens33:
addresses:
- 10.0.0.211/24 #ip
nameservers:
addresses:
- 223.5.5.5 #dns
- 223.6.6.6 #dns
search:[]
routes:
to:default
via:10.0.0.2 #网关
version:2
#ubt网卡配置文件生效
netplan apply #结果警告忽略
#networkctl reload 如果不生效在执行
- 小结:
- 麒麟、Ubuntu 网卡核心指标:IP(自动获取 / 手动设置)、网关、DNS。
- 麒麟系统:可通过
systemctl重启,ifup/ifdown作为备用方式。 - Ubuntu 系统:使用
netplan apply生效配置。 - Rocky 系统:用
nmcli管理网卡,麒麟、Ubuntu 等系统也支持nmcli管理网卡。
- /etc/motd 与 /etc/issue
- 两者均用于显示系统基本信息,具体区别如下表:
| 文件 | 说明 | 应用建议 |
| /etc/issue | 文件内容在用户登录系统之前显示,一般用于本地连接 | 清空文件 |
| /etc/motd | 文件内容在用户登录系统后输出 | 配置系统基本信息(一般是固定不变的信息) |
(二)/var/log/ 目录
log 日志:服务软件,系统运行的记录.
日志默认在 /var/log/ 目录存放
日志查看关键提示:关注 “Failed Password”“failure” 等关键词,
ssh 命令,ssh 服务的客户端远程连接工具 (命令)
ssh -p 端口号 用户名 @ip
tail 查看文件末尾的信息 默认看 10 行.
tail -f 查看文件末尾的实时更新,看日志好帮手.
| 系统类型 | 系统用户登录日志 | 系统日志(启动、服务默认日志) |
| 红帽类系统 | /var/log/secure | /var/log/messages |
| Ubuntu/Debian 系统 | /var/log/auth.log | /var/log/syslog |

(三)/proc/ 目录
- process 进程信息.
- /proc/ 存放的是各种服务软件进程信息,内核信息 (配置)
- /proc/ 目录相当于是给内存开了个入口。进程的内存信息.
- 虚拟目录,不占用磁盘空间。仅仅入口.
- /proc/ 展示的是内存中的信息,目录本身不占用磁盘空间.
- 一切皆文件.
- 内存:运行内存,运行程序软件的地方.
- 磁盘 / 硬盘:永久存放数据.
| /proc/ 目录内容 | 说明 | 命令 |
| 数字命名的目录(仅数字) | 进程信息,数字为进程的编号(PID) | – |
| /proc/cpuinfo 文件 | CPU 硬件信息 | lscpu |
| /proc/meminfo 文件 | 内存信息 | free |
| /proc/loadavg 文件 | 负载信息(Linux 系统繁忙程度) | w |
- CPU 硬件信息
processor:第几个核心
physical id:第几颗 CPU
[root@devops--kylin ~]#lscpu
架构: x86_64
CPU运行模式: 32-bit, 64-bit
字节序: Little Endian
Address sizes: 45 bits physical, 48 bits virtual
CPU: 1 #cpu核心数
在线CPU列表: 0
每个核的线程数: 1
每个座的核数: 1
座: 1 #cpu颗数
mem 内存信息 使用情况.
CPU–> 内存 –> 硬盘
loadavg 平均负载 linux 系统繁忙程度
[root@devops-kylin ~]# w
16:53:23 up 39 min, 1 user, load average: 0.00, 0.00, 0.00
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 16:14 3.00s 0.09s 0.00s w
[root@devops--kylin ~]#
load average: 0.00, 0.00, 0.00
最近 1 分钟 最近 5 分 最后 15 分钟
忙?不忙?
与 cpu 核心总数对比。接近和超过 cpu 核心总数就是忙了.
三、书写系统巡检脚本(自动输出系统基本信息)
(一)系统巡检常用命令
#1. 查看系统发行版本
cat /etc/os-release
#2. 查看主机名信息
hostname
hostnamectl
#3. 查看内核信息
uname -r
lscpu架构
uname -m
#4. 网络信息
cat /etc/sysconfig/network-scripts/ifcfg-ens33
#5. 用户登录情况信息
#分析/var/log/secure 或 /var/log/auth.log
#6. cpu硬件信息
lscpu
#7. 内存信息
free -h
#8. 负载信息
w
(二)脚本文件命名大礼包
脚本命名: xxx.sh xxx.bash结尾
[root@oldboy-kylin-101 ~]# cat /server/scripts/check_sys.sh
#说明信息
#脚本作用:系统巡检脚本
echo '#####################'
echo '#1. 查看系统发行版本'
cat /etc/os-release
echo '#####################'
echo '#####################'
echo '#2. 查看主机名信息'
hostname
hostnamectl
echo '#####################'
echo '#####################'
echo '#3. 查看内核信息'
echo '#内核'
uname -r
echo '#cpu架构'
uname -m
echo '#####################'
echo '#####################'
echo '#4. 网络信息'
cat /etc/sysconfig/network-scripts/ifcfg-ens33
echo '#####################'
echo '#####################'
echo '#5. 用户登录情况信息'
echo '#分析/var/log/secure 或 /var/log/auth.log'
echo '#####################'
echo '#####################'
echo '#6. cpu硬件信息'
lscpu
echo '#####################'
echo '#####################'
echo '#7. 内存信息'
free -h
echo '#####################'
echo '#####################'
echo '#8. 负载信息'
w
echo '#####################'
day006-日志与查看指令
- 故障案例:vim编辑大日志文件导致内存不足.
- tail/head/less/more
- grep
- wc
- 管道
一、查看日志文件命令组合
1、tail/head
tail:尾巴,查看文件末尾内容,默认10行
head:头,查看文件头部内容,默认10行
tail -n20 /etc/passwd #显示文件末尾20行
tail -20 /etc/passwd #显示文件末尾20行 ,简写
tail -f /etc/passwd #显示文件末尾并实时更新,默认十行
#tail有,head没有
head -20 /etc/passwd #显示文件开头二十行
2、grep在文件中过滤,查找
四剑客:
- find
- grep
- sed
- awk
| grep命令 | 说明 | 只能查看、过滤、无法修改 |
| -i | 不区分大小写 | |
| -n | 显示行号 | |
| -v | 取反、过滤指定内容的行不显示 | |
| –color | 给过滤出来的内容添加颜色 |
grep 'root' /etc/passwd/ #在passwd文件中查找含有root的位置
grep --color 'root' /etc/passwd/ #给查找到的内容添加颜色
grep --color 'port' /etc/ssh/sshd_config
#查找远程连接配置中的port,严格区分大小写
grep --color 'Port' /etc/ssh/sshd_config #查找端口位置
grep --color -i 'permitrootlogin' /etc/ssh/sshd_config
#不区分大小写
[root@oldboy-kylin-v10-sp3 ~]# grep --color -in 'permitroot' /etc/ssh/sshd_config
39:PermitRootLogin yes
91:# the setting of "PermitRootLogin without-password".
#添加行号
[root@oldboy-ubt-2204 ~]# #在/etc/passwd文件中 过滤 不包含'/bin/bash/'
[root@oldboy-ubt-2204 ~]# grep -i '/bin/bash' /etc/passwd
root:x:0:0:root:/root:/bin/bash
oldboy:x:1000:1000:oldboy-ubt-2204:/home/oldboy:/bin/bash
[root@oldboy-ubt-2204 ~]# grep -iv '/bin/bash' /etc/passwd
sbin/nologin
fwupd-refresh:x:112:118:fwupd-refresh user,,,:/run/systemd:/usr/sbin/nologin
usbmux:x:113:46:usbmux daemon,,,:/var/lib/usbmux:/usr/sbin/nologin
lxd:x:999:100::/var/snap/lxd/common/lxd:/bin/false
3、less/more组合
按页查看文件内容,类似于vim,但无法修改文件内容
q 退出
g 移动到第一行
G 移动到最后一行
100g 移动到指定行
ctrl f 下一页
ctrl b 上一页
ctrl f 下一页
ctrl b 上一页
移动到最后自动退出
4、wc
| wc | 统计信息,通常结合|使用 |
| -l | 统计行数 |
5、|管道
左边加上命令
将左边命令的输出结果输入到管道右边
- 统计/etc/passwd文件中命令解释器是/bin/bash的数量
grep '/bin/bash' /etc/passwd
grep '/bin/bash' /etc/passwd | wc -l
- 统计系统中进程总数(ps -ef查看所有进程)
ps -ef | wc -l
- 统计系统中指定进程的数量例如:/sbin/sshd
ps -ef | grep 'sbin/sshd' | grep -v 'grep' | wc -l
- 查看端口,过滤sshd服务的端口
ss -lntup | grep -v 'sshd'
day007-日志与查看指令和再战脚本
- sort,uniq,awk
- 目标:分析access.log和secure日志
- 时间相关命令:date,ntpdate,timedatectl
- 反引号: 优先执行,加上命令,输出.
- 重新书写脚本: 变量
- 目标:书写巡检脚本,跟着课程不断完善巡检脚本.
一、日志处理后续
1、sort
| sort | 说明 | |
| -r | 逆序排序 | |
| -n | 数字排序 | |
| -k5 | 对第五列排序 | |
| -h | 人类可读 |
1、使用cat命令一件创建有多行内容的文件
[root@oldboy-kylin-v10-sp3 ~]# cat >/oldboy/sort.txt<<EOF
>
> 1
> 3
> 5
> 7
> 75
> 3
> 2
> 4
> 5
> 7
> 8
> 9
> 6
> 5
> 42
>
> EOF
1、标记两边不要有空格
2、结束标记EOF,两边必须一致
3、找个地方写好再复制过来
2、对文件或管道内容进行排序
[root@oldboy-kylin-v10-sp3 ~]# sort /oldboy/sort.txt #按字符排序
[root@oldboy-kylin-v10-sp3 ~]# sort -n /oldboy/sort.txt #按数字排序
[root@oldboy-kylin-v10-sp3 ~]# sort -rn /oldboy/sort.txt #按数字逆序排序
3、对指定列排序
先创建文件
cat >/oldboy/sort-v2.txt<<EOF
a 2
b 56
c 1
EOF
[root@oldboy-kylin-v10-sp3 ~]# sort -rn -k2 /oldboy/sort-v2.txt #按照第二列排序
b 56
a 2
c 1
1、-rnk2 可以写在一起,但k和2不能分开
[root@oldboy-kylin-v10-sp3 ~]# sort -rn -k2 /oldboy/sort-v2.txt | head -2
b 56
a 2
2、可以接管道显示前两行
4、人类可读大小排序
#前面命令有-h 后面排序加上-h
#-h和-n选一个
[root@oldboy-kylin-v10-sp3 ~]# du -sh /* | sort -hrk1
#du -sh 显示磁盘大小
# *显示所有
2、uniq
| uniq | 说明 | 只能去重相邻行通常和sort一起使用 |
| -c | 去重并统计次数 |
去重操作
基本和sort一起使用
[root@oldboy-kylin-v10-sp3 ~]# sort -rnk1 /oldboy/uniq-1.txt | uniq -c
2 ld
1 c
2 b
4 a
2
#将内容排序,再去重,因为去重只能去除相邻行
#还可以再次接管道排序,按照重复次数查看次数
3.awk
| awk | 说明 | |
| ‘{print $1}’ | 取第一列 | |
| ‘{print $(NF-1)}’ | 取倒数第二行 | 当没有此行会报错 |
| -F’:’ 以冒号分隔 | 识别以:分隔的列 | 默认空格/连续空格 |
管道接column -t 以tap间隔对齐
功能:取列、取行、计算统计
awk取列功能:格式'{print 列/$1}’
取多列:逗号间隔
[root@oldboy-kylin-v10-sp3 ~]# cat /oldboy/awk.txt #创建文件
q 12 34 s
q 14 33 s
q 13 32 s
[root@oldboy-kylin-v10-sp3 ~]# awk '{print $2}' /oldboy/awk.txt #取第二列
12
14
13
[root@oldboy-kylin-v10-sp3 ~]# awk '{print $2}' /oldboy/awk.txt |sort -rn
14
13
12
[root@oldboy-kylin-v10-sp3 ~]# awk '{print $2}' /oldboy/awk.txt |sort -rn | head -2
14
13
[root@oldboy-kylin-v10-sp3 ~]# #取倒数第二行,倒序排序并取前两行
[root@oldboy-kylin-v10-sp3 ~]# awk '{print $(NF-1)}' /oldboy/awk.txt | sort -rn |head -2
34
33
[root@oldboy-kylin-v10-sp3 ~]#
[root@oldboy-kylin-v10-sp3 ~]# cat /etc/passwd | awk -F':' '{print $1,$3,$NF}' | column -t
root 0 /bin/bash
bin 1 /sbin/nologin
daemon 2 /sbin/nologin
2、日志分析
1、日志分析流程
access.log网站访问日志,用户打开网站/app,查看页面.日志中记录.
客户端ip 时间 访问页面 大小 手机 浏览器 ....
目标:分析access.log
每个ip访问的次数. 取出ip后uniq去重.
步骤:
1.awk取列(ip列) 第1列
2.对数据加工下,一致的数据(ip)在一起 sort
3.uniq去重统计次数(每个ip次数)
4.后续加工,对次数排序
5.取出次数最多的5个.
效果:
次数 ip
awk '{print $1}' access.log | sort | uniq -c | sort -rnk1 | head -5
3、时间查看与修改
1、修改时间与自动修改时间
1、手动修改
| date | 说明 | |
| -s | 手动修改时间 | date -s “年月日 时:分:秒” |
| +%F | 年-月-日 | 相当于+%Y-%m-%d |
| +%y | 输出年的后两位 | |
| +%T | 时间 | 时:分:秒 |
| +%H | 小时 | |
| +%M | 分钟 | |
| +%S | 秒 | |
| +%w | 周 |
2、ntpdate命令自动修改时间工具(其他工具chrony服务)
ntpdate 时间服务器
ntpdate ntp.aliyun.com
2、查看与修改时区
timedatectl #查看Time Zone 时区
timedatectl set-timezone Asia/Shanghai
3、以指定格式显示时间
年-月-日
[root@oldboy-ubt-2204 ~]# date +%F
2025-09-01
[root@oldboy-ubt-2204 ~]# date +%Y-%m-%d
2025-09-01
[root@oldboy-ubt-2204 ~]# date +%T
15:36:12
[root@oldboy-ubt-2204 ~]# #不同时间连接格式
[root@oldboy-ubt-2204 ~]# date +%H-%M-%S
15-36-34
[root@oldboy-ubt-2204 ~]# date +%H:%M:%S
15:36:55
[root@oldboy-ubt-2204 ~]# date +%w
1
[root@oldboy-ubt-2204 ~]#
年-月-日_时
年-月-日_周
[root@oldboy-ubt-2204 ~]# date +%F_%H
2025-09-01_15
[root@oldboy-ubt-2204 ~]# date +%F_%w
2025-09-01_1
[root@oldboy-ubt-2204 ~]#
4、反引号与日期
创建带有日期的文件目录压缩包
``或$() 说明:优先执行,运行命令时先运行反引号里面的命令。命令会把输出留下
创建带有时间、日期的文件
广泛应用于脚本
创建带有日期的文件
touch /lidao`date +%F`.txt
创建带有日期的目录
mkdir /lidao`date +%F-%H:%M`
4、再战脚本
1、变量:
#变量创建 kui="a"
#使用/修改 $kui
[root@oldboy-ubt-2204 ~]# kui="a"
[root@oldboy-ubt-2204 ~]# echo $kui
a
[root@oldboy-ubt-2204 ~]#
2、变量的名字要求
- 不能使用数字开头
- 名字要有意义
- 使用_连接
3、变量与脚本
[root@oldboy-ubt-2204 ~]# dir=/oldboy/
[root@oldboy-ubt-2204 ~]# file=lidao.txt
[root@oldboy-ubt-2204 ~]# name=`hostname`
[root@oldboy-ubt-2204 ~]# echo $dir
/oldboy/
[root@oldboy-ubt-2204 ~]# echo $file
lidao.txt
[root@oldboy-ubt-2204 ~]# echo $name
oldboy-ubt-2204
[root@oldboy-ubt-2204 ~]#
4、巡检脚本
输出效果:
########################################
##系统基本信息:
##1.主机名:xxx
##2.内核版本
##3.发行版本
##4.cpu架构
##5.负载信息
##6.ip地址(可选)
########################################
########################################
##用户登录情况:
###用户登录的失败的数量: xxx failures grep+wc
########################################
########################################
##CPU情况:
###cpu使用率(讲解完成进程管理再加入)
########################################
########################################
##内存情况:
###可用内存: xxx
########################################