Linux操作系统学习记录
一.常用命令
### 1.查看所在目录
pwd
2.更换用户
su 用户名
su - 用户名
- 带一杠的是环境也切换,不带的是只切换用户
3.帮助命令
man
or--help
4.目录切换命令
cd
+ 要切换到的目录
5.显示当前目录下得文件
ls
参数: -a -A -c -C -d -l -i
- -a:显示当前目录的所有文件,包括隐藏文件
- -A: 显示当前目录下得所有文件和子文件
- -c:按时间排序显示
- -C:分成多列显示各行
- -d:如果参数是目录,只显示目录名称,不显示它的子文件
- -l:以长格显示文件详细信息
- -i:在输出的第一列显示文件的i节点
6.显示文件内容
-
cat
参数:-b -n
-
-b:对非空行标注行号
-
-n:对所有行标注行号
-
more
参数:-num +num
-
-num:指定分页时每页的行数
-
+num:指定从文件的第num行开始显示
-
less
-
还可以使用cat合并文件内容
cat file1 file2>file3 #将文件file11和file2的内容覆盖输出到file3 cat file1 file2>>file3 #将文件file11和file2的内容追加输出到file3
6.2显示文件的前n行和后n行
- 显示前n行
head
参数-n
-
-n:显示的行数
- 显示最后n行
tail
参数-n
-
-n:显示的行数
7.创建目录
mkdir
参数: -p
-
-p:创建时,若父目录不存在,同时创建父目录和子目录
8. 删除目录空目录
rmdir
参数: -p
-
-p:会一起删除父目录,如果父目录没有其他子目录
9.创建文件和更新文件时间
touch
参数: -d yyyymmdd -a -m
-
-d yyyymmdd:将文件的存取时间或修改时间修改为yyyy年mm月dd日
-
-a:将文件的存取时间修改为当前时间
-
-m:将文件的修改时间修改为当前时间
10.目录和文件的复制
cp
参数: -a -R或-r -u
文件名或目录名
-
-a:尽可能将文件的状态、权限等属性按原状复制
-
-R或-r: 复制目录,包括子目录
-
-u:当复制的文件与目标文件存在差异时才会复制
11.移动目录和目录改名
mv
参数: -i -f
源文件或目录
目标文件或目录
-
-i:如果目标文件或目录存在,则提示是否覆盖
-
-f:无提示,无论目标文件或目录是否存在
12.删除文件或目录
rm
参数: -d -i -f -R或-r *
文件名或目录名
-
-d:删除空目录
-
-i:删除时是否提示,不带也提示
-
-f:删除时不提示用户
-
-R或-r:递归删除,删除包括子目录
-
*:删除所有文件
13.创建文件链接
ln
参数 -s
源文件
目标文件
-
-s:创建软链接,不带该参数时创建硬链接
-
软链接:只是一个文件的指向,不会额外占用磁盘空间
-
硬链接:在目标目录创建一个一模一样的目录或文件,会额外占用磁盘空间
-
删除链接和删除文件一样,直接
rm
14.关机和重启
- 立即关机:
shutdown -h now
- 一分钟后关机:
shutdown -h 1
- 立即重启:
reboot
或shutdown -r now
- 把内存的数据保存到磁盘:
sync
,关机和重启默认会先执行该命令
15.查看历史执行命令
history
- 带上参数10,表示查看最近10条历史命令,不带参数表示参看所以历史命令
!10
:表示执行编号为10的历史命令
16.查看时间日期命令
参看时间日期
date
参数 +%Y %m %d %H %M %S %s
-
参数是标准的时间格式化,需要使用引号
-
Y:年
-
m:月
-
d:日
-
H:小时
-
M:分钟
-
S:分钟
-
s:时间戳
查看日期
cal
参数
- 不带参数,显示的是本月的日期
- 参数可以是年份
17.find,locate,which,grep查找命令
1.find
find 搜索范围
参数 -name -user -size
目标文件
-
-name:按名称查找
-
-user:按文件所有者查找
-
-size:按文件大小查找(+n:表示大于,-n:表示小于,单位有:k,M,G)
2.locate
locate
文件名
- 用于快速定位文件路径,查找是在它自己的数据库里查找,速度非常快
- 第一次执行,需要先执行
updatedb
命令更新数据库
3.which
which
命令名称
- 用于查看一个指令所在的路径
4.grep
grep
参数 -n -i
和|
(管道符)
-
grep:过滤查找
-
-n:显示匹配行和行号
-
-i:忽略字母大小写
-
“|”:管道符号表示,将前一个命令的结果传递给后一个指令处理
18.压缩和解压
- gzip和gunzip是一组命令,通常配合使用
- zip和unzip是一组命令,通常配合使用
1.gzip压缩
gzip 文件名
-
用于压缩文件
2.gunzip解压
gunzip 压缩包名.gz
- 用于解压文件
3.zip压缩
zip 文件或者目录
参数 -r
-
-r:递归压缩文件,即压缩文件夹(目录)
zip myhome.zip /home -r
- 表示将整个home目录压缩,并命名为myhome.zip
4.unzip解压
unzip 压缩包名.zip
参数 -d
-
-d:指定解压后存放文件的目录
unzip myhome.zip -d /opt/tmp
- 表示将myhome.zip解压到/opt/tmp目录下
5.tar指令
tar 目标文件/目标目录
参数 -c -v -f -z -x
-
-c:产生.tar打包文件
-
-v:显示打包或解压过程的详细信息
-
-f:指定压缩后的文件名
-
-z:打包同时压缩
-
-x:解压.tar文件
-
tar即可以压缩也可以解压
-
tar是打包命令
tar -zcvf ./test.tar.gz ./aa/*
- 表示将目录aa的所有文件打包到test.tar.gz压缩包
tar -zxvf ./test.tar.gz -C /tmp
- 表示将test.tar.gz解压到/tmp目录
二.查看系统信息相关命令
1.查看主机的状态
hostnamectl
或 hostname status
2.修改主机名
hostnamectl set-hostname
新的主机名
- 也可以修改
/etc/hostname
文件进行主机名的修改
3.显示系统信息
uname
参数 -a或-all -m或-machin -n或-nodename -r或-release - s或-sysname - v
- -a或-all:显示全部信息
- -m或-machin:显示计算机的类型
- -n或-nodename:显示计算机在网络上的名称
- -r或-release:显示操作系统的发行编号
- -v:显示版本信息
- 还可以通过
/proc/version
文件获得Linux版本信息
4.查看内存信息
free
参数 -h -t -V
- -h:以合适的单位显示内存
- -t:显示内存的总和
- -V:显示版本的信息
5.查看磁盘的信息
df
参数 -h -T --total
-
-h:以合适的单位显示
-
-T:显示文件系统的形式
-
--total:显示系统中磁盘的使用情况
查看指定目录的磁盘使用情况
du
参数 -s -h -a --max-depth=1 -c
目录
- -s:指定目录占用大小汇总
- -h:以合适的单位显示
- -a:和文件的大小一起显示
- --max-depth=n:显示子目录的深度(n)
- -c:列出明细同时增加汇总值
3.vi和vim
1.常用快捷键
1. 拷贝当前行: `yy` ,拷贝当前向下5行: `5yy` ,按`p`粘贴(在一般模式下执行)
2. 删除当前行: `dd` ,删除当前向下五行: `5dd` (在一般模式下执行)
3. 查找:在命令行模式下输入`/要查找的内容`
4. 设置显示行号: `set nu` ,取消显示行号: `set nonu`
5. 快速定位到最首行:`gg`,5. 快速定位到最末行:`G`
5. 快速定位到第n行:先输入要定位到的行号,再输入`Shift + g`
6. 撤销一次:'uu',撤销5次:'5uu'
7. 恢复:'ctrl + r'
8. 选择:'v'
3.用户管理
- 查看用户信息,用户id,组id,所在组
id 用户名
-
注销用户
logout
1.添加用户
useradd 用户名
参数 -c -d -e -f -g -G -m -M -n -p -r -s -u
-
-c :用户的注释信息
-
-d: 指定用户的主目录
-
-e:禁用用户的日期
-
-f:设置账户过期n天后禁用用户,-1 表示永不禁用, 0 表示马上禁用
-
-g:设置用户基本组,添加到指定的用户组,如果没有指定组,就会生成一个和用户名相同的组,并将该用户添加到该组
-
-G:设置用户的附属组
-
-m:若用户主目录不存在则创建
-
-M:不创建用户主目录
-
-n:不为用户创建私人组
-
-p:设置密码
-
-r:创建uid小于1000的不带系统账户的用户
-
-s:指定用户登录的shell
2.修改密码和指定密码
passwd 用户名
参数 -l -u -d -f -n -x -w -i -S
-
-l: 锁定用户
-
-u:口令解锁
-
-d:将口令设置为空,但可以登录,没有设置口令的用户不能登录
-
-f:强制用户下次登录必须修改口令
-
-n:指定口令的最短存活期
-
-x:指定口令的最长存活期
-
-w:口令过期前n天提醒
-
-i:口令过期n天后停用用户
-
-S:显示用户口令的简短信息
-
不带用户名修改的是当前用户的密码
修改用户信息
chage 用户名
参数-l -m -M W -I -E -d
- -l: 列出口令属性的各个数值
- -m:指定密码的最小年龄
- -M:指定密码的最大年龄
- -W:密码过期前n天警告
- -I:密码过期n一天禁用用户
- -E:用户到期作废的日期
- -d:设置密码的上一次修改日期
3.删除用户
userdel 用户名
参数 -r
- -r:和home目录一起删除
- 不带参数,home目录会保留
4.添加用户组
groupadd 组名
5.删除用户组
groupdel 组名
6.用户组的修改
group
参数 -g -n -o
组名
- -g:修改gid
- -n:修改组名
- -o:强制更改gid为重复的gid(允许重复的gid)
7.修改用户所在的组
usermod 用户名
参数 -c -d -m -g -G -L -U -s -u
-
-c:填写用户的备注信息
-
-d-m:这两个参数一起使用,可以指定新的家目录,并把数据迁移过去
-
-g 组名:将用户所在组修改为指定的组
-
-G:设置用户的拓展组
-
-L:锁定用户
-
-U:解锁用户
-
-s:变更默认终端
-
-u:修改uid
group 组名
参数 -g -n -o
- -g:修改组的gid
- -n:修改组的名称
- -o:强制设置重复的gid
chage命令
chage
参数-l -m -M -W -I -E -d
用户名
- 可以使用chage命令修改年龄等消息
- 可以不带参数
- -l:列出账户口令的各个属性值
- -m:指定最小密码年龄
- -M:指定最大密码年龄
- -W:密码过期多少天前警告
- -I:密码过期多少天后停用用户
- -E:用户账户到期作废的日期
- -d:设置上一次密码修改的日期
8.用户和组相关的文件
- 可以使用
pwck
命令检查/etc/passwd和/etc/shadow文件的字段的完整性(是否一致) - 可以使用
grpck
命令检查/etc/group和/etc/group文件的字段的完整性(字段是否一致)
用户的默认配置信息文件(etc/login.defs)
- 新创建用户没有指定的信息都从该文件获取
/etc/passwd
- 用户的配置文件,记录用户的各种信息
- 每行的含义:
用户名:口令(密码):用户标识符(uid):组标识符(gid):注释性描述:主目录:登录的shell
/etc/shadow
- 口令的配置文件
- 每行的含义
登录名:加密后的口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志>
/etc/group
- 组的配置文件
- 每行的含义
/etc/sudoers
- 管理员的配置文件
给用户组设置密码(gpasswd命令)
gpasswd 用户 组
参数 -a -d -r -A
- -a:将用户加入到组
- -d:将用户从组中删除
- -r:取消组群的密码
- -A:给组群指派管理员
4.运行级别
- 一共有七种运行级别
- 0(shutdown.target):关机
- 1( emergency.target):单用户模式(在该模式下可以找回丢失密码),不能远程登陆
- 2(rescure.target):多用户状态没有网络服务
- 3(multi-user target):多用户状态有网络服务
- 4:系统未使用保留给用户
- 5(graphical.target):图形化界面(多用户的)
- 6:系统重启
切换运行级别
init
参数
- 例如:
init 5
,切换为图形化界面 - 获得当前的运行级别
systemctl get-default
-
修改默认的运行级别
systemctl set-default multi-user.target
,默认运行级别修改为多用户有网络模式 -
开机流程
graph LR;
start[(开机)]--->step1[BIOS];
step1--->step2[/boot];
step2--->step3[systemd进程1];
step3--->step4[运行级别];
step4--->result[(运行级别对应的服务)]
5.找回root密码(针对contos7以上的版本)
-
重启系统,在此界面按“e”
-
找到inux16,并在该行最后添加“init=bin/sh”,然后按” Ctrl + x “进入单用户模式
- 输入"mount-o remount,rw/",然后回车
4.输入passwd,设置root密码
-
输入“touch /.autorelabel”,再输入“exec /sbin/init”
-
等待重启,新密码生效
6.虚拟机的三种网络连接模式
- 桥接模式:分配和主机在同一网段的ip,同一网段的主机数量过多时,可能会发生ip冲突,可以访问到外部网络,外部网络也可以访问到虚拟主机
- NAT(网络连接转换)模式:和主机建立独立的连接,可以通过主机访问到外部网络,但外部网络不能访问到虚拟主机,不会发生ip冲突
- 主机模式:完完全全独立的虚拟主机,不能访问到外部网络,外部网络也不能访问到虚拟主机
7.文件/目录管理,及权限管理
-
文件信息详解
-
第0位代表文件的类,l:代表链接,d:代表目录,c:代表字符设备文件,b:代表块设备
-
2,第1~3位代表所有者拥有的权限(user)
-
3.第4~6位代表所在组拥有的权限(group)
-
4第7~9位代表其他组拥有的权限(other)
-
r:表示可读,用数字表示r=4
-
w:代表可写,可以修改文件,如果要删除文件需要对文件所在目录有写的权限,用数字表示w=2
-
x:代表可执行,可以进入目录,用数字表示x=1
-
rwx= 4+2+1=7
1. 修改文件/目录所有者
- 如果是目录加上参数
-R
可以使子文件/子目录也生效
chown 用户名 文件/目录名
2.修改文件/目录所在组
- 如果是目录加上参数
-R
可以使子文件/子目录也生效
chgrp 组名 文件/目录名
3.权限的修改
chmod
参数+ - = u g o a
文件/目录名`
-
+:添加权限
-
-:删除权限
-
=:赋予权限
-
u:所有者
-
g:所在组
-
o:其他用户
-
a:所有人(相当于u、g、o的总和)
chmod u=rwx,g=rw,o=r ./aa.txt
- 给文件aa.txt的所有者赋予可读、可写、可执行的权限,所在组赋予可读、可写的权限,其他用户赋予可读的权限
chmod o+w bb.txt
- 给文件bb.txt的其他用户添加可写的权限
chmod a-x cc.txt
- 给文件cc.txt的所有用户删除可执行的权限
8.crond(周期定时任务)
crontab
参数 -e -l -r
-
-e:编辑crondtab定时任务
-
-l:查询crontab任务
-
-r:删除当前用户的所有crontab任务
-
service crond restart
表示重启任务调度 -
cornd任务的执行周期取决于该部分(时间占位符(*))
-
特殊的符号
-
*:代表任何时间,比如第一个*表示一个小时中的每分钟执行一次
-
,(逗号):代表不连续的时间,比如
0 8,12,16 * * *
表示每天的8:00,12:00,16:00执行一次 -
-:表示连续的时间,比如
0 5 * * 1-6
表示周一到周六的凌晨5:00执行一次 -
*/n:表示每隔多久执行一次比如
*/1 * * * *
表示每一分钟都执行一次
- 第一个"*“表示一个小时的第n分钟执行一次(范围:0~59)
- 第二个”*"表示一天的第n小时执行一次(0~23】
- 第三个“*“表示一个月的第n天执行一次(1~31)
- 第四个”*"表示一年的第n个月执行一次(1~12)
- 第五个”*"表示一个星期的星期n执行一次(0~7,0和7都代表星期天)
-
-
五个部分的和就是一个执行周期
9.at(一次性定时任务)
at
参数-m -I -d -v -c -V -q -f -t
时间(hh:mm) (midnight,noon,teatime) (AM,PM) ()
-
Ctrl + D:输入两次Ctrl + D表示结束任务指令的输入
-
-m:当任务结束后,给用户发邮件,即使没有标准输出
-
-I:atq(查询)的别名
-
-d:atrm(删除)的别名
-
-v:显示任务将被执行的时间
-
-c:打印任务的内容到标准输出
-
-V:显示版本信息
-
-q(队列):使用指定队列
-
-f(文件):从指定文件读入任务,而不是从标准输入读入
-
-t(时间参数):以时间参数的形式提交要运行的任务
-
at指定时间的方式
- 接受在当天的hh:mm(小时:分钟)式的时间指定,假如该时间已过去,那么就放在第二天执行。例如:
04:00 - 使用midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4点)等比较模糊的词语来指
定时间, - 采用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午,刚如:12pm
- 指定命令执行的具体日期,指定格式为month day(月日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年),指定的日期必须跟在指定时间的后面。例如:04:00 2021-03-1
- 使用相对计时法,指定格式为:now+count time-units,now就是当前时间,time-units是时间单位,
这里能够是minutes(分钟)、hours(小时)、days(天)、weeks(星期),count是时间的数量,几天,几小时.例知:now+5 minutes(五分钟后执行) - 直接使用tody(今天)、tomorrow(明天)来指定完成命令的时间,
- 接受在当天的hh:mm(小时:分钟)式的时间指定,假如该时间已过去,那么就放在第二天执行。例如:
-
使用at定时任务,一定要启动atd
-
存在at任务时,atd会定时(60秒)去检测任务,有符合要求的任务就执行,执行后任务就删除了
10.防火墙相关的指令
-
查看防火墙的状态:
firewall-cmd --state
-
开启防火墙:
systemctl start firewall.service
-
关闭防火墙:
systemctl stop firewall.service
-
防火墙重启:
systemctl restart firewall.service
-
重新加载防火墙:
firewall-cmd --reload
-
添加开放端口:
firewall-cmd --zone=public --add-port=443/tcp --permanent
- --zone=public:表示作用域是公共的
- --add-port=443/tcp:添加tcp协议的443端口
- --permanent:表示永久生效,可以不加
-
关闭端口:
firewall-cmd --zone=public --remove-port=8080/tcp --permanent
-
查看已开启的端口:
firewall-cmd --list-ports
11.linux磁盘分区和挂载
- linux硬盘分为IDE硬盘和SCSI硬盘,基本上使用的是SCSI硬盘
查看所有设备的挂载情况
lsblk
或者lsblk -f
硬盘分区(fdisk)
fdisk 要分区的硬盘
- m:参看菜单
- p:显示磁盘分区
- n:新增分区
- d:删除分区
- w:写入磁盘分区的修改,保存,退出
硬盘格式化,创建文件系统(mkfs)
mkfs -t ext4 /dev/sdb1
磁盘挂载(mount)
mount
要挂载的磁盘分区 挂载的位置
磁盘的卸载(umount)
umount
磁盘的名称
磁盘的自动挂载
-
修改/etc/fstab文件实现自动挂载
检查硬盘的完整性(fsck)
fsck
参数-t
硬盘的位置
- -t:检查的文件系统类型
磁盘情况查看-工作中实用指令、
-
统计/etc目录下的文件个数
ls -l /etc |grep '^- |wc -l'
- 使用ls查询所有目录
- 使用grep搭配正则表达式过滤文件
- 使用wc统计数量
-
统计/etc目录下文件夹的数量
ls -l /etc |grep '^d' |wc -l
-
统计/etc目录下的文件个数,包括子文件夹的文件
ls -lR /etc |grep '^-' |wc -l
-
统计/etc目录下文件夹的数量,包括子文件夹
ls -lR /etc |grep '^d' |wc -l
-
以树状显示/etc目录结构
tree /etc
LVM磁盘管理
- LVM(Logical Volume Manager)逻辑卷管理,是在硬盘分区和文件系统之间添加的一个逻辑层,为文件系统屏蔽下层硬盘分区布局,并提供一个抽象的盘卷,在盘卷上建立文件系统。管理员利用LVM可以在硬盘不用重新分区的情况下动态调整文件系统的大小,并且利用LVM管理的文件系统可以跨越物理硬盘。当服务器添加了新的硬盘后,管理员不必将原有的文件移动到新的硬盘上,而是通过LVM直接扩展文件系统来跨越物理硬盘。
- 物理存储介质(The physical media):LVM存储介质,可以是硬盘分区、整个硬盘、raid阵列或SAN硬盘。设备必须初始化为LVM物理卷,才能与LVM结合使用。
- 物理卷PV(physical volume):物理卷就是LVM的基本存储逻辑块,但和基本的物理存储介质比较却包含与LVM相关的管理参数,创建物理卷可以用硬盘分区,也可以用硬盘本身。
- 卷组VG(Volume Group):LVM卷组类似于非LVM系统中的物理硬盘,一个卷组VG由一个或多个物理卷PV组成。可以在卷组VG上建立逻辑卷LV。
- 逻辑卷LV(logical volume):类似于非LVM系统中的硬盘分区,逻辑卷LV建立在卷组VG之上。在逻辑卷LV之上建立文件系统。
- 物理块PE(physical Extent):物理卷PV中可以分配的最小存储单元,PE的大小可以指定,默认为4MB
- 逻辑块LE(Logical Extent):逻辑卷LV中可以分配的最小存储单元,在同一卷组VG中LE的大小和PE是相同的,并且一一相对。
- 卷组(VG)是LVM中使用的最高级别的抽象。 它将逻辑卷和物理卷集合在一起成为一个管理单元
graph TB;
subgraph VG[卷组:VG];
subgraph PV[物理卷:PV];
subgraph LV[逻辑卷:LV];
subgraph PE[物理块:PE];
subgraph LE[逻辑块:LE];
end
end
end
end
end
LVM常用命令
[root@centos7 ~]$ pv # 使用tab按键获取pv相关命令
pvchange pvck pvcreate pvdisplay pvmove pvremove pvresize pvs pvscan
[root@centos7 ~]$ vg # 使用tabl按键获取vg相关的命令
vgcfgbackup vgck vgdisplay vgimport vgmknodes vgrename vgsplit
vgcfgrestore vgconvert vgexport vgimportclone vgreduce vgs
vgchange vgcreate vgextend vgmerge vgremove vgscan
[root@centos7 ~]$ lv # 使用tabl按键获取lv先关的命令
lvchange lvdisplay lvmconf lvmdump lvmsadc lvremove lvs
lvconvert lvextend lvmconfig lvmetad lvmsar lvrename lvscan
lvcreate lvm lvmdiskscan lvmpolld lvreduce lvresize
- pv打头的:代表pv相关的命令
- vg带头的:代表vg相关的命令
- lv带头的: 代表lv相关的命令
- create:创建相关
- remove:移除相关
- display:显示相关
- import:导入 相关
- export:导出相关
- rename:重命名
- vgchange:改变状态相关
- extend:扩展相关(扩容)
- reduce:缩进相关(缩容)
LVM的使用演示
- 创建(使用pvcreate命令)物理卷(PV),关联到LVM磁盘管理系统
- 创建(使用vgcreate命令)一个卷组(VG)
- 创建(使用lvcreate命令)一个逻辑卷(LV),指定大小使用"-L"参数,指定名称使用"-n"参数
- 给逻辑卷(LV)扩容(使用lvextend命令)
- 查看磁盘文件系统的类型
mount |grep root
-
刷新文件系统
resize2fs
:针对的是ext2、ext3、ext4文件系统xfs_growfs
:针对的是xfs文件系统
-
挂载
- 自动挂载,将挂载写入/etc/fstab
网络
- ifconfig:查看网络的IP相关信息,在Linux下是ifconfig,在Windows下是ipconfig
配置静态ip
- 编辑
/etc/sysconfig/network-scripts/ifcfg-ens33
文件,设置静态ip - 将HDCP改为static
- 添加静态ip地址和网关
- 使用
service network restart
命令重启网络服务,使配置生效 - 修改虚拟网卡,使虚拟机能访问到外网
设置主机名和host的映射
- 就是将ip地址与域名映射起来,通过
hosts
文件配置ip与域名的关系 - window系统的
hosts
文件在C:\Windows\System32\drivers\etc\hosts
路径下 - linux系统的
hosts
文件在/etc/hosts
路径下 - 对windows系统的hosts文件进行修改
- 对Linux系统下的
hosts
文件进行修改
- 对域名解析的流程
- 先到系统或浏览器缓存中查询,如果没有查询到
- 再到hosts文件中查询,如果也没有查询到
- 最后到DNS域名解析服务器中查询,如果还没有,就返回错误信息
- windows系统中,查看DNS(域名)解析缓存的命令
ipconfig /displaydns
,清除DSN缓存的命令ipconfig flushdns
graph TB;
start[(访问一个域名)]--查询-->step1{系统或浏览器中的域名解析缓存是否存在对应的解析};
step1--是-->result[(返回域名对应的ip)];
step2--是-->result;
step3--是-->result;
result-.返回ip.->start;
step1--否-->step2{继续查询hosts文件是否存在对应的解析};
step2--否-->step3{查询DNS域名解析服务器是否存在对应的解析};
step3-.在DNS域名解析服务器也没有对应的解析,返回错误信息.->start;
进程管理
查看进程
ps
参数-a -x -u -e -f
- -a:显示当前的所有进程
- -u:以用户的格式显示进程信息
- -x:显示后台进程运行的参数
- -e:显示所有进程
- -f:显示进程的父进程
- 进程字段的含义:
USER
:该进程所属的用户PID
:进程的id编号PPID
:父进程的进程id编号C
:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表
明进程是I/O密集型运算,执行优先级会提高%CPU
:占用cpu的百分比%MEM
:占用物理内存的百分比VSZ
:进程占用的虚拟内存大小(单位:KB)RSS
:进程占用的物理内存大小(单位:KB)TTY
:终端名称,缩写STAT
:进程状态,其中S-睡眠,S-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z僵死进程,T被跟踪或者被停止等等STIME
:进程启动的时间STARTED
:进程的启动时间TIME
:CPU时间,即进程使用CPU的总时间COMMAND
:启动进程所用的命令和参数,如果过长会被截断显示CMD
:启动进程所用的命令和参数
终止进程
kill
参数-9
进程号(进程id)-9
:表示强制终止进程,有些时候系统会忽视kill命令,使用参数-9
可以阻止系统的忽视,强制终止进程kill
命令是通过进程号终止进程的killall
进程名killall
是通过进程名称终止进程的,支持通配符,会终止与该进程相关的进程,包括子进程
查看进程树(pstree)
pstree
参数-p -u
-u
:以用户树的形式显示-p
:以进程号的形式显示
服务(Service)管理
- 一个服务就是一个进程
service
服务名 参数start stop restart status reload
start
:表示启动服务stop
:表示停止服务restart
:表示重启服务status
:表示查看服务的状态reload
:表示重新加载服务
- 在Centos7.0版本后,很多服务不再使用
service
命令进行管理,而是使用servicectl
命令进行管理 - 使用
setup
可以查看所有的服务,服务分为两部分,一部分是使用service
命令管理的,另一部分是使用servicectl
命令进行管理的,带*
的服务表示开机自启
chkconfig命令
chkconfig
--list:可以查看各个服务在不同运行级别的自启情况
chkconfig --level
运行级别 服务名off 或者 on
- 将运行级别3的网络服务自启设置为关,然后在设置为开
使用systemctl
管理服务
systemctl服务管理命令
systemctl
参数start stop restart status
服务名start
:启动服务stop
:停止服务restart
:重启服务status
:查看服务的状态
- 在
/usr/lib/systemd/system
目录下可以查看所有服务的名称
systemctl服务自启管理
systemctl list-unit-files
:查看所有服务是否可以开机自启systemctl enable 服务名
:设置服务开机可以自启(同时设置运行级别3和5)systemctl disable 服务名
: 设置服务不能开机自启(同时设置运行级别3和5)systemctl is-enabled 服务名
:查询服务是否能开机自启
firewall防火墙命令
firewall-cmd --permanent --add-prot=端口号/协议
:防火墙开放端口firewall-cmd --permanent --remove-prot=端口号/协议
:防火墙关闭端口firewall-cmd --reload
:重新载入防火墙firewall-cmd --query-prot=端口号/协议
:查询防火墙是否开发该端口
netstat -anp
:查看系统网络的状态
进程监控
top
参数-d -i -p
交互参数(进入监控状态后使用)P M N u k q R
-d
:指定监控更新的间隔时间,默认是三秒-i
:不显示任何闲置或僵死进程-p
:指定监控的进程的id,用于仅监控某个进程
- 交互参数
P
:以cpu的使用率排序进程M
:以内存的使用率排序进程N
:以进程id(PID)排序进程u
:输入"u",然后输入用户名,查看属于某个用户的进程k
:输入"k",然后输入进程的id,终止某个进程q
:退出进程监控R
:颠倒当前排序的顺序
- 进程监控字段的含义:
网络监控
netstat
参数-a -n -p
-a
:显示所有的网络连接-n
:显示网络连接的ip地址,而不是域名-p
:显示连接的关联进程id和进程名
linux的包管理
rpm包管理工具
- rpm软件包的后缀为
.rpm
- 使用rpm安装软件包不会处理软件包之间的依赖关系,需要注意安装的顺序,否则会安装失败
rpm
参数-q -qa -qi -ql -qf -e -i -v -h
-q
:查询已安装的软件包-qa
:查询所有已经安装的软件包-qi
:查询软件包的详细信息-ql
:查询软件包含有什么文件-qf
:查询一个文件属于哪个软件包-e
:卸载软件包,卸载某些是其他软件包依赖的软件包时,会出现警告(不给卸载),再加一个--nodeps
参数强制卸载-i
:安装软件包,参数后加软件包的路径和软件包名-v
:显示提示信息-h
:显示命令操作的进度- 一般使用
-ivh
安装软件包
- 卸载和安装firefox
yum包管理工具
- yum是一个Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包
yum list
:查询指定服务器中所有可用的yum软件包.或显示软件包的信息
yum install
:安装软件包yum update
:更新软件包yum check-update
:检查软件包是否可以更新yum remoove
:删除软件包yum localinstall
:显示本地安装的yum软件包yum resolvedep
:显示软件包的依赖关系yum deplist
:显示所有软件包的依赖关系
Linux下的javaee环境搭建
安装jdk
- 使用xftp将jdk的压缩包上传到Linux系统
- 使用
tar -zxvf
命令解压压缩包 - 编辑
/etc/profile
文件,配置环境变量 - 使用
source /etc/profile
命令使配置生效
安装tomcat
- 将tomcat压缩包上传到
/opt/tomcat/
目录 - 解压tomcat的压缩包
- 使用tomcat的bin目录下的startup.sh脚本文件启动tomcat
安装mysql
-
使用
wget http://dev.mysql.com/get/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
命令获取mysql的压缩包 -
将mysql的压缩包解压
-
删除linux自带的mariadb数据库,centos7.6自带的类mysql数据库是mariadb,会跟mysql冲突,要先删除
- 使用
rpm -qa|grep mariadb
查询mariadb数据库是否存在
- 使用
-
使用
rpm -e
命令卸载mariadb数据库,将习惯的软件包都卸载,必要是使用--nodeps
参数强制删除
- 使用
rpm -ivh
命令正式安装mysql,依次安装mysql的软件包- common软件包
- libs软件包
- client软件包
- service软件包
- 多条命令写在一行时使用分号";"区别,一行写不下时使用反斜杠
\
换行
- 多条命令写在一行时使用分号";"区别,一行写不下时使用反斜杠
- 使用
systemctl start mysqld.service
启动MySQL数据库 - 设置root用户的密码,系统会给root用户设置一个随机的密码,使用
grep "password" /var/log/mysqld.log
查看系统设置的初始密码
- 使用
set global validate_password_policy=0;
将密码策略设为0,默认为1,最高为2
- 使用
set password for root@localhost = password('MIMA2004@mysql')
将root用户的密码设为"MIMA2004@mysql" - 使用
flush privileges
刷新密码配置
安装idea
- 将idea的压缩包上传到
/opt/idea
目录 - 将idea的压缩包解压
- 运行idea的
bin/idea.sh
脚本运行idea,需要图形化界面环境运行,远程登陆运行会报错
shell脚本
- shell脚本的后缀是
.sh
- shell脚本中使用
$
美元符号引用变量,变量的赋值与其他编程语言一样,如var=1
,将1赋值给var变量
shell脚本快速入门
- 在shell文件的第一行指定shell脚本的解释器,
#!/bin/bash
- 使用
echo
打印变量信息或字符
- shell脚本需要可执行权限才能运行,没有可执行权限也可以使用
sh hello.sh
命令运行
shell编程中的注释
#注释内容
:单行注释,以井号开头:<<! 注释内容 !
:多行注释,以冒号开头,接两个小于号,然后接一对感叹号,在感叹号中写注释内容,注意空格间隔- 案例
#我是单行注释
:<<! 我是多行注释
注释一
注释二
... !
shell编程的变量
- Linux中shell变量有两种:系统变量和自定义变量
- 系统变量有:
$HOME $PWD $SHELL $USER
等等
- 使用
set
命令可以查看当前shell的所有变量
变量的和常量定义
变量名=值
:变量的定义,等号两边不能有空格unset
变量名:撤销变量readonly 常量名=值
:常量的定义,常量不能被unset
$变量名
:变量的使用,用一个美元符号加变量名引用一个变量- 案例
#!/bin/bash
#定义一个变量
A=1;
#输出变量的值,使用美元符号引用变量
echo A=$A;
echo "A=$A";
#撤销一个变量
unset A;
#尝试输出撤销的变量
echo A=$A;
echo "A=$A";
#定义一个常量
readonly B=2;
#输出常量的值
echo "B=$B";
- 结果
返回命令的结果给变量
- 语法:
#使用反引号将命令括起来
变量名=`命令`;
#使用美元符号加小括号
变量名=$(命令);
- 案例
#!/bin/bash
#使用变量接受命令的返回
A=`date`;
B=$(date);
C=$(cal);
#输出变量的值
echo "使用反引号接受的值=$A";
echo "使用美元符号接受的值=$B";
echo "$C";
- 结果
位置参数变量
- 位置参数就是执行shell脚本时传进来的参数,比如
./position.sh 100 200
, - 第一个位置参数变量就是100,在shell脚本中使用
${1}
表示,第二个位置参数变量就是200,使用${2}
表示
${0}
:表示命令本身${n}
:表示第n个位置参数变量,n为各位数时可以省略大括号,直接用数字$*
:表示所有的位置参数变量,把所有位置参数变量当作一个整体$@
:也是表示所有位置参数变量,不过不是把所有参数当作一个整体,而是有区别的$#
:表示位置参数变量的个数- 代码
#!/bin/bash
echo "第一个位置参数=$1,第二个位置参数=$2";
echo "\$\*所有的位置参数=$*";
echo "\$\@所有的位置参数=$@";
echo "位置参数的个数=$#";
- 截图
设置环境变量
-
环境变量一般配置在
/etc/profile
文件中 -
export 变量名
=值:将一个变量设置为环境变量 -
source 配置文件
:重新加载环境变量的配置文件,使新加入的环境变量生效 -
echo $变量名
:查看环境变量的值 -
案例:
# 添加java的环境变量
export JAVA_HOME=/usr/local/java/
#添加tomcat的环境变量
export TOMCAT_HOME=/opt/tomcat/apache-tomcat-8.5.89
# 使用冒号(":")将两个环境变量关联在一起
export PATH=$JAVA_HOME/bin:$PATH
- 结果
预定义变量
- 预定义变量是shell设计者预先定义的变量,可以直接在shell脚本中使用
$$
:表示当前进程的进程号pid$!
:表示最后一个后台进程的进程号pid$?
:表示当前最后一次命令执行的状态,零(0)表示正常执行成功,非零表示没有执行成功
#!/bin/bash
echo "当前进程号=$$";
#运行一个后台脚本,并获取它的进程号
/root/shcode/hello.sh &
echo "当前最后一个后台进程的pid=$!";
echo "当前最后一个命令的执行结果=$?";
运算式
- 有三种运算式的写法,第一种:
$((运算式))
,第二种:$[运算式]
,第三种:expr 运算式
,使用第三种运算式要返回结果时,需要使用反引号括("`")起来,运算式的每个元素还需要使用空格间隔 +
:加法运算符-
:减法运算符*
:乘法运算符,注意使用第三种运算式时,乘法需要使用反斜杠("\")转义/
:乘法运算符
#!/bin/bash
#案例一:求(2+3)*4的结果
#运算式一
RES1=$(((2+3)*4));
#使用"$"符号引用变量
echo "运算式一:(2+3)*4=$RES1";
#运算式二
RES2=$[(2+3)*4];
echo "运算式二:(2+3)*4=$RES2";
#运算式三,注意乘法需要使用反斜杠,运算元素之间还需要空格间隔
TEMP=`expr 2 + 3`;
RES3=`expr $TEMP \* 4`;
echo "运算式三:(2+3)*4=$RES3";
#案例二:使用位置参数变量求和(20+50)
RES4=$[$1+$2];
echo "位置参数变量求和=$RES4";
条件判断
- 逻辑表达式的语法:
[ 逻辑表达式 ]
,在中括号写逻辑表达式,开始和结束都要有空格 - 逻辑表达式非空返回真,0也是真,其他的数值都是假,空串是假
- 支持与(&&)和或(||)运算
- 常用的判断条件
=
:判断字符串是否相等!
:判断取反- 按数值判断
-lt
:小于-le
:小于等于-eq
:等于-gt
:大于-ge
:大于等于-ne
:不等于
- 按文件权限判断
-r
是否有读的权限-w
:是否有写的权限-x
:是否有可执行的权限
- 按文件类型判断
-f
:文件存在,且文件是一个常规文件-e
:文件存在-d
:文件存在,且文件是一个目录
- 单分支判断的语法:以
if
标志开头,以fi
标志结束,then
表示程序体的开始,else
后不用跟then
if [ 逻辑表达式 ]
then
程序体;
else
程序体;
fi
- 案例
#!/bin/nash
#案例一:判断"ok"等于"ok"
if [ "ok" = "ok" ]
then
echo "ok=ok";
fi
#案例二:判断23大于22
if [ 23 -ge 22 ]
then
echo "23大于22";
fi
#案例三:判断文件/root/shcode/aaa.text文件是否存在
if [ -f /root/shcode/aaa.text ]
then
echo "存在";
fi
- 结果
- 多分支判断语法:多分支使用
elif
标志下一个逻辑判断,还是以if
和fi
标志开始和结束,以then
标志程序体的开始
if [ 逻辑表达式 ]
then
程序体;
elif [ 逻辑表达式 ]
then
程序体;
else
程序体
fi
- 案例
#!/bin/bash
if [ $1 -ge 60 ]
then
echo "及格了";
elif [ $1 -lt 60 ]
then
echo "不及格";
else
echo "数据不合法";
fi
- 结果
流程控制(case语句)
- 与java的switch语句很像
- 语法:
case
标志开始,esac
(以case反过来写)标志结束,以;;
两个分号表示一个流程块的结束 值n)
:一个值加右小括号表示与变量进行匹配的值,只能匹配字符串*)
:星号加右小括号表示没有匹配上的其他情况
case 变量 in
值一)
程序体
;;
值二)
程序体
;;
*)
程序体
esac
- 案例:根据输入的数字输出对应的星期几
#!/bin/bash
case $1 in
'1')
echo '星期一';;
'2')
echo '星期二';;
'3')
echo '星期三';;
*)
echo 'other...';;
esac
- 结果
for循环
- 语法:
do
标志程序体的开始,done
标志程序体的结束 - 语法一:使用
in
关键字,循环的是具体的值,与Python的for循环类似 - 语法二:使用两层小括号,注意空格分割,循环是数值,与Java的for循环类似
# 语法一:
for 变量 in 值1 值2 ...
do
程序体;
done
# 语法二:
for(( 初始值;循环条件;循环变量的变化 ))
do
程序体;
done
- 案例一:使用语法一,输出传进去的参数,可以看到
$*
和$@
的区别
#!/bin/bash
#使用$*输出
for i in "$*"
do
echo $i;
done
echo '===================';
#使用$@输出
for j in $@
do
echo $j;
done
echo '===================';
#输出事先准备好的数组
for k in '1' '2' '3'
do
echo $k;
done
- 结果
- 案例二:使用语法二,实现从1累加到100
#!/bin/bash
#从1累加到n
SUM=0;
for(( i=1; i<=$1; i++))
do
SUM=$[$SUM+$i];
done
echo "结果=$SUM";
- 结果
while循环
- 语法:注意
while
与逻辑表达式的空格
while [ 逻辑表达式 ]
do
程序体;
done
- 案例:从1累加到100
#!/bin/bash
#1累加到100
i=0;
SUM=0;
while [ $i -le 100 ]
do
SUM=$[$SUM+$i];
i=$[$i+1];
done
echo "结果=$SUM";
- 结果
read输入
read
参数-p -t
变量
-p
:指定获取输入时的提示信息-t
:指定获取输入时的超时时间- 使用read可以从键盘获取用户的输入
- 案例:
#!/bin/bash
#获取用户输入的数值
read -p "请输入一个数字=" NUM1;
echo "用户输入的unm1=$NUM1";
#获取用户输入的num2,设置超时时长
read -t 10 -p "请输入num2=" NUM2;
echo "用户输入的num2=$NUM2";
- 结果
函数
系统函数
basename
:常用于获取文件名,它有两个参数,一个是文件的绝对路径,另一个是文件的后缀名- 当传一个文件的绝对路径时,会返回文件的完整名称,包括后缀
- 当即传了文件的绝对路径又传了文件的后缀名,只返回文件的名称,不包含后缀
dirname
:常用于获取文件的所在的目录,它需要一个参数,文件的绝对路径
自定义函数
- 语法:
function 函数名 (形参列表)
{
程序体;
return 返回值;
}
- 案例:
#!/bin/bash
#编写一个求和函数
function sum1 ()
{
#通过位置参数变量,获取传进来的参数
#也可以直接通过变量名获取穿进来的参数
RESULT=$[$n1+$n2];
return $RESULT;
}
# function关键字也可以省略
sum2 ()
{
RESULT=$[$n1+$n2];
return $RESULT;
}
#接受用户的输入
read -p "请输入第一个数:" n1;
read -p "请输入第二个数:" n2;
#调用函数sum1
sum1;
#通过$?获取函数的返回值,返回值只能是0-255之间的数值
res1=$?;
#调用函数sum1
sum2 $n1 $n2;
#通过$?获取函数的返回值,返回值只能是0-255之间的数值
res2=$?;
echo "sum1结果是=$res1";
echo "sum2结果是=$res2";
- 结果
shell编程定时备份数据库
- 编写一个备份数据库的shell脚本
#!/bin/bash
echo "开始备份数据库";
#备份目录
BACKUP=/data/backup/db
#获取当前时间,年月日时分秒
TIME=$(date +%Y-%m-%d_%H%M%S);
echo "$TIME";
#数据库地址
HOST=localhost;
#数据库用户名
DB_USER=root;
#数据库密码
DB_PASSWD=MIMA2004@mysql;
#备份的数据库名
DB_NAME=my_test
#创建备份目录
[ ! -d "${BACKUP}/${TIME}" ] && mkdir -p "${BACKUP}/${TIME}";
#登陆数据库开始备份
mysqldump -u${DB_USER} -p${DB_PASSWD} --host=${HOST} -q -R --databases ${DB_NAME} | gzip > ${BACKUP}/${TIME}/${TIME}.sql.gz;
#将备份文件打包成tar.gz格式
cd ${BACKUP};
tar -zcvf ${TIME}.tar.gz ${TIME};
#删除对应的备份目录
rm -rf ${BACJUP}/${TIME};
#删除10天前的备份文件
find ${BACKUP} -name "*.tar.gz" -atime +10 -exec rm -rf {} \;
echo "数据库${DB_NAME}备份完成,${TIME}";
- 结果
- 使用crond周期定时任务调用数据库备份脚本
30 2 * * * /root/shcode/dbbackup.sh
Linux系统-Ubuntu
- Python开发者中流行的Linux系统是Ubuntu
- Ubuntu默认安装了Python的开发环境
- 输入
python3
进入Python的开发环境 - 在Python的开发环境中输入
quit()
退出开发环境,回到终端
在Ubuntu中设置root用户的密码,并切换到root用户
- Ubuntu中默认登陆的是普通用户,想执行一些只有root用户才能执行的命令需要才命令前加上
sudo
sudo password
:给root用户设置密码su root
:切换为root用户,使用exit
返回普通用户
Ubuntu下的软件包管理工具(apt)
apt软件包管理工具换源
/etc/apt/source.list
:apt软件包管理工具的源配置文件,记录了软件包的源地址- 使用
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
命令将源配置文件备份 - 使用
echo '' > ./sources.list
命令将源配置文件清空,然后将清华源的配置拷贝进去 - 阿里源的配置内容(Ubuntu 20.04LTS版本的配置)
deb https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
# deb https://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
- 换源成功后,使用
sudo apt-get update
命令更新软件列表,检测配置是否修改成功
apt软件包管理的常用命令
-
sudo apt-get update
:更新软件源和软件包列表 -
sudo apt-get install 软件包名
:安装软件包 -
sudo apt-get remove 软件包名
:删除软件包,但不删除配置文件,如要删除配置文件,需要带上参数--purge
-
sudo apt-cache show 软件包名
:查看软件包的详细信息 -
sudo apt-get upgrade
:更新所有已经安装的软件包 -
案例:安装和卸载vim编辑器
- 卸载
- 安装
- 查看详细信息
Ubuntu远程登陆使用SSH
- Ubuntu默认没有安装sshd服务
- 使用
sudo apt-get install openssh.server
命令安装sshd服务 - 使用
systemctl enable sshd
命令设置sshd服务开机自启 - 使用
systemctl start sshd
启动sshd服务 - Ubuntu默认也没有安装网络监控工具,使用
netstat
命令时会报错 - 使用
sudo apt-get install net-tools
命令安装网络监控工具
在Linux中一样ssh远程连接另一台linux机器
- 需要目标机器开启sshd服务
- 使用
ssh 用户名@IP地址
命令连接到另一台Linux机器
- 使用
exit
或logout
退出远程连接的机器
Ubuntu中配置静态ip
- 编辑
/etc/netplan/01-network-manager-all.yaml
配置文件
日志管理
- 日志文件是重要的系统信息文件,其中记录了许多重要的系统事件,包括用户的登录信息、系统的启动信息、系统
的安全信息、邮件相关信息、各种服务相关信息等。 - 日志对于安全来说也很重要,它记录了系统每天发生的各种事情,通过日志来检查错误发生的原因,或者受到攻击
时攻击者留下的痕迹。 - 可以这样理解日志是用来记录重大事件的工具
- 日志一般保存在
/var/log/
目录下
系统常用的日志
日志管理服务(rsyslogd)
- centos7使用的日志管理服务是
rsyslogd
服务,centos6使用的日志管理服务是syslogd
服务,两者是兼容的 /etc/rsyslog.conf
文件是日志服务管理的配置文件*.*
:是日志服务管理配置文件的格式,第一个*
表示日志的类型,第二个*
表示日志的级别- 日志的类型:
auth
:pam产生的日志authpriv
:ssh、fp等登录信息的验证信息corn
:时间任务相关kern
:内核相关Ipr
:打印相关mail
:邮件相关mark(syslog)-rsyslog
:服务内部的信息,时间标识news
:新闻组user
:用户程序产生的相关信息uucp
:unix to nuix copy主机之间相关的通信local 1-7
:自定义的日志设备
- 日志的级别(越下面的级别越高,记录的信息越少):
debug
:有调试信息的,日志通信最多info
:一般信息日志,最常用notice
:最具有重要性的普通条件的信息warning
:警告级别err
:错误级别,阻止某个功能或者模块不能正常工作的信息crit
:严重级别,阻止整个系统或者整个软件不能正常工作的信息alert
:需要立刻修改的信息emerg
:内核崩溃等重要信息none
:什么都不记录
- 日志的类型:
- 日志信息的格式:
事件发生的时间 发生事件的服务器主机名 发生事件的服务或进程:事件的详细信息
-
配置自己的日志记录
- 编辑
/etc/rsyslog.conf
配置文件
- 编辑