“在 Linux 的世界里,一切皆文件”
下面是我在学习 Linux 过程中整理的常用 Linux 命令(新手入门使用),可能不是很全,欢迎小伙伴们在评论区补充。
1、Linux 的目录结构是树状结构
2、具体的目录结构:
目录名称 | 目录简介 |
---|---|
/bin | 存放经常使用的命令 |
/sbin | 系统管理程序 |
/home | 普通用户的主目录(常用) |
/root | 系统管理员 |
/etc | 配置文件(常用) |
/usr | 用户安装的应用程序 |
/boot | 启动 Linux |
/proc /srv /sys | 不能动(常用) |
/dev | 把所有的硬件用文件的形式存储 |
/media | 自动识别设备 |
/mnt | 用户临时挂载别的文件系统(常用) |
/opt | 安装软件 |
/usr/local | 安装软件的目的目录 |
/var | 经常被修改的目录 |
1、Xshell:Xshell [1] 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。Xshell可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的。(来源:百度百科)
2、Xftp:Xftp是一个功能强大的SFTP、FTP 文件传输软件。使用了 Xftp 以后,MS Windows 用户能安全地在 UNIX/Linux 和 Windows PC 之间传输文件。(百度百科)
3、ifconfig:ifconfig是linux中用于显示或配置网络设备(网络接口卡)的命令,英文全称是network interfaces configuring
4、ping(网络诊断工具):ping IP地址
常用的三种模式:
1、正常模式
2、插入模式
3、命令行模式
示意图:
:wq 保存修改并退出
:q 退出
:q! 强制退出
快捷键(常用) | 作用 |
---|---|
yy | 拷贝当前行 |
p | 粘贴 |
dd | 删除当前行 |
/关键字 | 查找,命令模式下输入,回车查找,n 查找下一个 |
:set nu 和 :set nonu | 设置行号和取消行号 |
G , g | G 最后一行,g 首行 |
u | 撤销 |
命令 | 解释 |
---|---|
shutdown -h now | 立即关机 |
shutdown -h 或 shutdown | 关机 |
shutdown -r now | 重启 |
sync | 把内存的数据同步到磁盘 |
su - 用户名 | 切换用户 |
logout | 注销登录,在运行级别 3 下有效 |
useradd 用户名 | 添加用户 |
---|---|
useradd -d 指定目录 用户名 | |
password 用户名 | 指定/修改密码 |
pwd | 显示当前用户所在的目录 |
userdel 用户名 | 删除用户,但保留其家目录 |
userdel -r 用户名 | 删除用户和其家目录 |
id 用户名 | 查询用户信息 |
su - 切换用户名(常用) | 切换用户 |
注:1、从权限高的用户切换到权限低的用户时,不需要输入密码
2、当需要返回到原来用户时,使用 exit
或 logout
3、查看当前用户/登录用户:who am i
groupadd 组名 | 新增组 |
---|---|
groupdel 组名 | 删除组 |
useradd -g 用户组 用户名(常用) | 增加用户时直接加上组 |
usermod -g 用户组 用户名 | 修改用户的组 |
/etc/passwd | 用户的配置文件,记录用户的各种信息 |
---|---|
/etc/shadow | 口令的配置文件 |
/etc/group | 组的配置文件,记录 Linux 包含的组的信息 |
0 | 关机 |
---|---|
1 | 单用户(可找回丢失密码) |
2 | 多用户状态没有网络服务(不要用) |
3 | 多用户状态有网络服务(重要) |
4 | 系统未使用留给用户 |
5 | 图形界面(重要) |
6 | 系统重启 |
常用运行级别是 3 和 5,也可以指定默认运行级别
(常用)命令:init[runlevel]
查看当前默认级别:systemctl get-default
设置一个默认级别:systemctl set-fault x.target
man | 获取帮助信息 |
---|---|
ls -a | 列出所有文件,包括隐藏文件 |
ls -l | 单列输出,列出详细信息 |
help | 获得 shell 内置命令的帮助信息 |
pwd | 显示当前工作目录的绝对路径 |
---|---|
ls [选项] [目录/文件] | 列出目录/文件 |
cd | 切换到指定目录,cd ~ 或 cd (回到自己的家目录),cd … 回到当前目录的上一级目录 |
mkdir 选项 要创建的目录 | 创建目录,选项 -p (创建多级目录) |
rmdir | 删除空目录,-rf (强制删除非空目录) |
touch 文件名称 | 创建空文件 |
cp 选项 source dest(常用) | 拷贝文件到指定目录,-r 递归复制真个文件 |
rm 选项 要删除的文件或目录 (常用) | -r 递归删除整个文件夹,-f 强制删除不提示 |
mv | 移动文件与目录,或重命名 |
cat 文件名称 (常用) | 查看文件内容,只能浏览,不能修改。-n 显示行号 |
more 要查看的文件(常用) | 查看文件内容 |
less(了解) | 分屏查看文件内容 |
echo | 输出内容到控制台 |
head (常用) | 用于显示文件开头部分内容,head -n 行数 文件 |
tail (常用) | 输出文件中尾部的内容,tail -f 文件 :实时追踪该文件的所有更新 |
> 、>> (常用) | > 是输出重定向(覆盖),>> 是追加 |
(常用)ln -s [原文件或目录] [软链接名] | 给原文件创建一个软链接,软链接也称符号链接,类似 Windows 的快捷方式 |
history | 查看已经执行过的历史命令,也可以执行历史指令 |
date | 显示当前日期 |
---|---|
date +%Y | 显示年份 |
date +%m | 显示哪个月 |
date +%d | 显示几号 |
date +"%Y-%m-%d %H:%M:%S"(重要) | 显示年月日时分秒 |
cal | 查看日历 |
(常用)date -s “字符串时间” | 设置日期 |
1、find
作用:从指定目录向下递归的遍历其各个子目录,将满足条件的文件或目录显示在终端
语法:find [搜索范围] [选项]
选项:-name, -user, -size
2、locate
作用:快速定位文件路径,locate 数据库,无需遍历整个文件系统,查询速度较快
语法:locate 文件
updatedb:更新数据库
3、which
作用:可以查看某个指令在哪个目录下
例:which ls #/usr/bin/ls
4、grep 和管道符号 |(重要)
作用:过滤查找,将前一个命令的处理结果输出传递给后面
语法:grep [选项] 查找内容 源文件
选项:-n 显示匹配行及行号
-i 忽略字母大小写
1、gzip / gunzip
语法:gzip file #只能将文件压缩为后缀名为 gz 的文件
gunzip file.gz #解压缀名为 gz 的文件
2、zip / unzip
语法:zip 选项 *.zip
unzip 选项 *.zip
选项:-r 递归压缩,即压缩目录
-d 指定解压后文件的存放目录
3、tar(重要)
语法:tar 选项 *.tar.gz #打包
选项:-c 产生 .tar 打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
-x 解包 .tar 文件
-C 指定解压目录
常用:-zvcf(打包),-xvf(解包)
在 Linux 中每个用户必须属于一个组,不能独立于组外。每个文件有所有者,所属组,其他人的概念
一般为文件/目录的创建者
查看文件的所有者:ls -ahl
修改文件的所有者:chown 用户名 文件名
命令:groupadd 组名
查看:ls -ahl
修改:chgrp 组名 文件名
1、usermod -g 新组名 用户名
2、usermod -d 目录名 用户名
例:-rwxrw-r–
第 0 位确定文件类型(d 表示目录,- 表示普通文件,l 表示软链接,c 表示字符设备 /dev,b 表示块设备、硬盘)
第 1-3 位是用户权限,即文件拥有者的权限
4-6 位是所属组的权限,即与文件拥有者同一组的用户的权限
7-9 位是其他人的权限,即不与文件拥有者同组的其他用户的权限
r:读权限 — 4
w:写权限 — 2
x:执行权限 — 1
1、rwx 作用于文件:
r:可以读取,查看
w:可以修改,删除一个文件(前提是对该文件所在的目录有写权限)
x:可执行
2、rwx 作用于目录:
r:可以读取,ls 查看目录内容
w:可以修改,在目录中创建、删除、重命名目录
x:可以进入该目录,cd
u:所有者 g:所属组 o:其他人 a:所有人
语法:
第一种方式:通过 +、-、=
第二种方式:通过数字赋值
chmod u=rwx, g=rx, o=x 文件/目录名 或 chmod 751 文件/目录名
chmod o+w 文件/目录名
chmod a-x 文件/目录名
语法:
chown newowner 文件/目录
chown newowner:newgroup 文件/目录
选项:-R 如果是目录,则使其下所有子文件/目录递归生效
语法:chgrp newgroup 文件/目录
1、任务调度是指系统在某个时间执行特定的命令或程序。分为系统工作和个别用户工作
2、语法:crontab 选项 //进行定时任务的设置
-e :编辑定时任务;
-l:查看;
-r:删除所有
文件:/etc/crontab
3、例:*/1 * * * * ls -l /etc/ > 文件名 //每小时的每分钟执行该命令
5 个占位符:第一个 * :一小时当中的第几分钟,范围 0 ~ 59
第二个 * :一天当中的第几个小时,范围 0 ~ 23
第三个 * :一个月当中的第几天,范围 1 ~ 31
第四个 * :一年当中的第几月,范围 1~ 12
第五个 * :一周当中的星期几,范围 0 ~ 7
4、特殊符号的说明
* :任何时间
, :不连续的实际
- :连续的时间范围
*/n :每隔多久执行一次
1、一次性定时任务,以后台模式运行,检查作业队列来执行。默认 atd 守护进程每 60 s 检查作业队列
查看:ps -ef | grep atd //可以检测 atd 是否在运行
2、语法:at 选项 时间
选项 | 作用 |
---|---|
-m | 当指定的任务被完成后,将给用户发送邮件 |
-I | atq 的别名,查看系统中有无执行的 task |
-d | atrm 的别名 |
-v | 显示任务被执行的时间 |
-c | 打印人物的内容到标准输出 |
-V | 现实版本信息 |
-q<队列> | 从指定的文件读入任务 |
-f<文件> | |
-t<时间参数> |
3、at 的时间定义
hh:mm | 小时:分钟 |
---|---|
midnight、noon、teatime | 深夜、中午、下午 4 点 |
month day 或 mm/dd/yy 或 dd.mm.yy | 具体日期 |
9am, 12pm | 12 小时计时制 |
now+count time-units | 相对计时 |
today, tomorrow | 今天,明天 |
mkfs -t ext4 /dev/sdb1
mount 设备名称 挂载目录
umount 设备名称 挂载目录
mount -a
生效ls -l /opt | grep "^_" | wc -l
ls -l /opt | grep "^d" | wc -l
ls -lR /opt | grep "^_" | wc -l
ls -lR /opt | grep "^d" | wc -l
tree 目录
,如果没有 tree 命令,则使用 yum install tree
来安装1、查看虚拟网络编辑器和修改 IP 地址
2、查看网关
3、查看 Windows 系统的 VMnet8 网络配置:ipconfig
4、查看 Linux 系统的网络配置:ifconfig
测试主机之间的网络连通性
ping 目的主机ip //测试当前服务器是否可以连接到目的主机
1、自动获取
Linux 启动后会自动获取 ip ,优点是避免 ip 冲突,缺点是每次自动获取的 ip 地址可能不一样
2、指定 ip
直接修改配置文件来指定 ip ,并可以连接到外网
命令:vi /etc/sysconfig/network-scripts/ifcfg-ens33
# ip的配置方法 # DHCP 自动分配
BOOTPROTO = 'static'
# IP 地址
IPADDR =
# 网关
GATEWAY =
# 域名解析器
DNS1 =
重启网络服务或重启系统生效:service network restart 或 reboot
1、hostname 查看主机名
修改文件在 /etc/hostname,修改后,重启生效
2、设置 host 映射
如何通过主机名能够找到(ping)某个系统?
Windows 下在 C:\Windows\System32\drivers\etc\hosts
文件指定
Linux 下 /etc/hosts
文件指定
1、Hosts 是一个文本文件,用来记录 IP 和 Hostname(主机名)之间的映射关系
2、DNS,就是 Domain Name System 的缩写,简称域名系统,是互联网上作为域名和 IP 地址相互映射的一个分布式数据库
3、ipconfig /displaydns //DNS 域名解析缓存
ipconfig /flushdns //手动清理 DNS 缓存
4、顺序:本地浏览器缓存,DNS 缓存,hosts 系统缓存,DNS 分布式数据库缓存
1、在 Linux 中,每一个执行的程序都称为一个进程,每一个进程都分配一个 ID 号(pid:进程号)
2、示意图
3、每一个进程都有可能以两种方式存在,前台和后台
字段 | 说明 |
---|---|
PID | 进程识别号 |
TTY | 终端机号 |
TIME | 此进程所消耗的 CPU 时间 |
CMD | 正在执行的进程名 |
命令:ps -aux //显示所有进程
ps -aux | more
2、ps 详解
命令:ps -aux | grep sshd //筛选显示进程
%CPU | 进程占用 CPU 的百分比 |
---|---|
%MEM | 占用物理内存的百分比 |
VSZ | 占用虚拟内存的大小(KB) |
RSS | 占用物理内存的大小(KB) |
ps -ef //以全格式显示当前所有的进程
ps -ef | grep xxx
ps -ef | more
服务(service)本质就是进程,但是运行在后台,通常会监听某个端口,等待其他程序的请求,比如 mysqld,sshd,又称为守护进程
service 服务名 [ start | stop | restart | reload | status ]
在 Centos 7.0 后,很多服务已经不再使用 service
,而是使用 systemctl
。
service 指令管理的服务在 /etc/inti.d
文件查看
方式1:setup
方式2:ls -l /etc/init.d
1、Linux 系统有 7 中运行级别(runlevel),0 ~ 6,常用 3 和 5
2、开机的流程:
开机,BIOS, /boot,systemd 进程1,运行级别,对应的服务
3、设置运行级别:在 /etc/initab
1、介绍
通过 chkconfig 指令可以给服务的各个运行级别设置 自启动/关闭
在 /etc/init.d
文件查看
2、基本语法
chkconfig --list | grep xxx
chkconfig 服务名 --list
chkconfig --level 5 服务名 on/off //重启 reboot 生效
systemctl [ start | stop | restart | status ] 服务名
管理的服务在 /usr/lib/systemd/system
查看
设置服务的自启动状态:
1、systemctl list-unit-files [ | grep 服务名 ]
2、systemctl enable 服务名
3、systemctl disable 服务名
4、systemctl is-enabled 服务名
例:查看当前防火墙的状况,关闭和重启防火墙
systemctl status firewalld //查看当前防火墙的状态
systemctl stop firewalld //关闭防火墙
systemctl restart firewalld //重启防火墙
netstat -anp | more //查看网络状态
firewall -cmd --permanent --add-port = 端口号/协议 //打开端口
firewall -cmd --permanent --remove-port = 端口号/协议 //关闭端口
firewall -cmd --reload //重新载入才能生效
firewall -cmd --query-port = 端口号/协议 //查询端口是否开发
选项 | 说明 |
---|---|
-d | 指定每隔几秒更新。默认是 3 秒 |
-i | 使 top 不显示任何闲置或僵尸进程 |
-p | 通过指定监控进程 ID 来仅仅监控某个进程的状态 |
交互操作 | 说明 |
P | 以 CPU 使用率排序 |
M | 以内寸的使用率排序 |
N | 以 PID 排序 |
q | 退出 top |
监视特定用户:top u 用户名
终止指定的进程:top k pid
指定系统状态更新的时间:top -d 秒数
1、查看系统网络情况:netstat
netstat 选项
-an:按一定顺序排列输出
-p:显示哪个进程在调用
2、检测主机连接:ping
它是一种网络检测工具,用于检测主机连接是否正常,或检测两台主机间的网线/网卡故障
命令:ping 目的ip
1、介绍
RPM 是用于互联网下载包的打包及安装工具,生成具有 .RPM 扩展名的文件。RPM 是 RedHat Package Manager(红帽软件包管理工具)
2、查询已安装的 rpm 列表
rpm -qa | grep xxx
3、rpm 包名的基本格式
名称-版本号-使用操作系统
如果是 i686、i386 表示 32 位系统,noarch 表示通用
4、rpm 包的其他查询指定
指令 | 说明 |
---|---|
rpm -qa | 查询所安装的所有 rpm 软件包 |
rpm -q 软件包名 | 查询软件包是否安装 |
rpm -qi 软件包名 | 查询软件包信息 |
rpm -ql 软件包名 | 查询软件包中的文件 |
rpm -qf 文件全路径名 | 查询文件所属的软件包 |
rpm -e 包名称 | 卸载 rpm 包,加上 --nodeps 表示强制删除 |
rpm -ivh 包全路径名称 | 安装 rpm 包 |
1、介绍
yum 是一个 shell 前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依懒性关系,并且一次安装所有依赖的软件包
2、查询 yum 服务器是否有需要安装的软件
yum list | grep 软件列表
3、安装指定的 yum 包(重要)
yum install xxx
shell 是命令行解释器,为用户提供了一个向 Linux 内核发送请求以便运行程序的界面系统级程序,用户可以用 shell 来启动、挂起、停止或编写一些脚本程序
1、脚本格式要求(重要)
以 #!/bin/bash
开头,生成的脚本文件有可执行权限
2、脚本的常用执行方式
方式一:输入脚本的绝对路径或相对路径
方式二: sh + 脚本文件
1、介绍
shell 变量分为系统变量和用户自定义变量
2、基本语法
定义变量:变量名=值
,=等号两边不能有空格
撤销变量:unset 变量
声明静态变量:readonly 变量
,不能撤销
输出变量需要加上 $
3、定义变量的规则
等号两边不能有空格,变量名一般习惯大写
将命令的返回值赋给变量:
1、介绍
当我们执行一个脚本时,如果希望获取到命令行的参数信息,就可以使用到位置参数变量
2、基本语法
$n | $0 代表命令本身,$1 - $9 代表第一到第九个参数 |
---|---|
$* (常用) | 把所有的参数看成一个整体 |
$@(常用) | 把每个参数区分对待 |
$# | 命令行中所有参数的个数 |
1、介绍
指事先已经定义好的变量,可以直接在 shell 脚本中使用
2、基本语法
$$ | 当前进程的进程号 |
---|---|
$! | 后台运行的最后一个进程的进程号 |
$? | 最后一次执行的命令的返回状态。0 表示正确执行 |
1、$ (( 运算式 )) 或 $[ 运算式 ] 或 expr m + n
2、expression 表达式,expr 运算符之间要有空格
将 expr 的结果赋给某个变量,使用反引号``
3、expr m - n
4、expr *, / , % #乘,除,取余
(重要)[ condition ]
//condition 前后要有空格,非空返回 ture ,可使用 $? 验证(0 为 ture ,≥ 1 为 false)
1、字符串比较 (=)
2、两个整数的比较
-lt | 小于 |
---|---|
-le | 小于等于 |
-eq | 等于 |
-gt | 大于 |
-ge | 大于等于 |
-ne | 不等于 |
3、按照文件权限进行判断
-r:读
-w:写
-x:执行
4、按照文件类型进行判断
1、if 判断
if [ condition ]
then
code1
elif [ condition ]
then
code2
fi
注:[ condition ],中括号和条件判断是式之间必须有空格
2、case 语句
case $变量名 in
"值1")
如果变量的值等于值1,则执行程序1
;;
"值2")
如果变量的值等于值2,则执行程序2
;;
...省略其他分支...
"值i")
如果变量的值不等于以上的值,则执行此程序
;;
esac
3、for 循环
for 变量 in 值1 值2 值3...
do
程序或代码
done
for (( 初始值:循环控制条件:变量变化 ))
do
程序
done
4、while 循环
while [ 条件判断式 ]
do
程序
done
注:while 和 [] 之间有空格,条件判断式和 [] 也有空格
read 选项 参数
选项:-p 指定读取值时的提示符
-t 指定读取值时的等待时间(s)
变量:变量 指定变量名
系统函数和自定义函数
1、basename
功能:返回完整路径最后 / 的部分,常用于获取文件名
basename [pathname] [suffix]
basename 命令会删除所有的前缀包括最后一个(“/”)字符,然后将字符串显示出来
suffix 为后缀,如果 suffix 被指定了,basename 会将 pathname 中的suffix 去掉
2、dirname
功能:返回完整路径最后 / 的前面的部分,常用于返回路径部分
direname 文件绝对路径
从给定的包含绝对路径的文件名中去除非目录的部分,然后返回剩下的路径(目录的部分)
3、自定义函数
function funname()
{
Action;
[return int;]
}
调用直接写函数名:funname [值]
例:计算输入两个参数的和(动态输入),getSum
1、apt 是 Advanced Packaging Tool 的简称,是一款安装包管理工具
2、Ubuntu 软件管理操作的相关命令
sudo apt-get update //更新源
sudo apt-get install package //安装包
sudo apt-get remove package //删除包
sudo apt-cache search package //搜索软件包
sudo apt-cache show package //获取报的相关信息
sudo apt-get install package --reinstall //重新安装包
sudo apt-get -f install //修复安装
sudo apt-get remove package --purge //删除包,包括配置文件
sudo apt-get build-dep package //安装相关的编译环境
sudo apt-get upgrade //更新已安装的包
sudo apt-get dist-upgrade //升级系统
sudo apt-cache depends package //了解使用该包依赖哪些包
sudo apt-cache rdepends packeage //该包被哪些包依赖
sudo apt-get source package //下载该包的源代码
1、SSH 介绍
SSH 是 Secure Shell 的缩写,建立在应用层和传输层基础上的安全协议。
SSH 是目前较可靠的,专为远程登录会话和其他网络服务提供安全性的协议,常用于远程登录
2、和 Centos 不一样,Ubuntu 默认没有安装 SSHD 服务
使用 netstat 指令查看
apt install net-tools //安装netstat
安装 SSH 和启用:
sudo apt-get install openssh-server //安装 SSH 服务端和客户端
service sshd start //启动 SSHD ,监听 22 端口
从一台 Linux 系统远程登录另外一台 Linux 系统:
在创建服务器集群时,会使用该技术
基本语法:ssh 用户名@IP
使用 ssh 访问,如访问出错,可查看是否有该文件:/.ssh/known_ssh
登出;exit 或 logout
功能 | Centos 8.0 | Centos 7.0 |
---|---|---|
内核版本 | 4.18.0.x | 3.10.1.x |
文件大小 | 8EB | 500TB |
文件系统大小 | 1PB | 500TB |
最大内存 | 24TB | 12TB |
防火墙 | nftables 取代 iptables | firewalld 底层使用 iptables |
支持架构 | 支持 64 - bit ARM | 不支持 64 - bit ARM |
1、日志文件是重要的系统信息文件,其中记录了许多重要的系统事件,日志对于安全来说也很重要
2、日志是用来记录重大事件的工具
/var/log/ | 系统日志文件的保存位置 |
---|---|
/var/log/boot.log | 系统启动日志 |
/var/log/cron | 系统定时任务相关日志 |
/var/log/lastlog | 系统中所有用户最后一次登录时间的日志 |
/var/log/maillog | 记录邮件信息的日志 |
/var/log/message | 记录系统重要消息的日志 |
/var/log/secure | 记录验证和授权方面的日志 |
/var/tun/ulmp | 记录当前已经登录的用户的日志 |
1、Centos 7.6 日志服务是 rsyslogd
,Centos 6.x 是 syslogd
2、原理图:
3、查询 rsyslogd 服务是否启动
ps -aux | grep "rsyslog" | grep -v "grep"
4、查询 rsyslogd 服务的自启动状态
systemctl list-unit-files | grep rsyslog
5、配置文件
/etc/rsyslog.conf
6、日志类型
auth | pam 产生的日志 |
---|---|
authpriv | ssh、ftp 等登录的验证信息 |
corn | 时间任务 |
kern | 内核 |
lpr | 打印 |
邮件 | |
mark(syslog)-rsyslog | 服务内部的信息,时间标识 |
news | 新闻组 |
user | 用户程序产生的相关信息 |
uucp | unix to unix copy 主机之间的通信 |
local 1-7 | 自定义的日志设备 |
7、日志级别
debug | 调试信息 |
---|---|
info | 一般信息 |
notice | 最具有重要性的普通文件的信息 |
warning | 警告级别 |
error | 错误级别 |
crit | 严重级别 |
alert | 需要立刻修改的信息 |
emerg | 内核崩溃等重要信息 |
none | 什么都不记录 |
注:从上到下,级别从低到高,记录的信息越来越少
日志级别的格式包含以下 4 列:
时间、主机名、服务名、具体信息
一、基本介绍
把旧的日志文件移动并改名,同时建立新的空日志文件,当旧日志文件超出保存的范围后,就会进行删除
二、logrotate 配置文件
/etc/logrotate.conf 为 logrotate 的全局配置文件
也可以把某个日志文件的轮替规则写到 /etc/logrotate.d/ 中
参数说明:
daily | 每天 |
---|---|
weekly | 每周 |
monthly | 每月 |
rotate 数字 | 保留的日志文件的个数 |
compress | 日志轮替时,旧的日志进行压缩 |
create mode owner group | 建立新日志,同时指定新日志的权限、所有者和所属组 |
mail address | |
missingok | |
notifempty | |
minsize 大小 | 日志轮替的最小值 |
size | 大小 |
dateext | 使用日期作为日志轮替文件的后缀 |
sharedscripts | 在此关键字之后的脚本只执行一次 |
prerotate / endscript | |
postrotate /endscript |
1、依赖系统定时任务
/etc/cron.daily/
logrotate 文件(可执行)
journalctl | 查看全部 |
---|---|
-n 3 | 查看最新 3 条 |
–since time1 --until time2 | 查看从 time1 到 time2 的日志 |
-p err | 查看报错日志 |
-o verbose | 日志详细内容 |
例:
journal_PID=1245 _COMM=sshd
或 journalctl | grep sshd
注:journalctl 查看的是内存日志,重启清空
1、首先 Linux 要通过自检,检查硬件设备有无故障
2、如果有多块启动硬盘,需要在 BIOS 中选择启动硬盘
3、启动 MBR (主引导区记录)中的 bootloader 引导程序
4、加载内核文件
5、执行所有进程的父进程 systemctl
6、进入欢迎界面,加载内核文件时的关键文件:
kernel 文件和 initrd 文件
方式一:直接拷贝一份安装好的虚拟机文件
方式二:使用 VMware 的克隆操作,克隆时,要先关闭 Linux 系统
1、为什么要阅读 Linux 内核?
深入理解 Linux 底层运行机制,操作系统
2、进程有阻塞、就绪、执行几个状态
1W 行,内核地址:https://www.kernel.org/
阅读内核源码技巧
1、懂 C 语言
2、知道 Linux 源码的整体分布情况。现代的操作系统一般由进程管理、内存管理、文件系统、驱动程序和网络等组成
3、纵向:顺着程序的执行顺序逐步进行。横向:按模块进行
4、反复的过程
源码相关文件
bopt | 和系统引导相关 |
---|---|
fs | 存放文件系统代码 |
include | 核心的头文件 ,*.h |
init | 存放 main.c |
kernel | 和系统内核相关的源码 |
lib | 存放库代码 |
Makefile | 编译文件 |
mm | 内存管理 |
tools | 工具 |
下载、解压
下载:wget 下载地址
解压:tar -zxvf *.tar.gz
内核升级(兼容性问题)
yum info kernel -q //检测内核版本,显示可以升级的内核
uname -a //查看当前内核版本
yum list kernel -q //查看已安装的内核
yum update kernel //升级内核
一、备份有两种方式
1、TAR打包
2、使用 dump 和 restore 命令
安装 dump 和 restore :
yum -y install dump
yum -y install restore
二、使用 dump 完成备份
1、基本介绍
dump 支持分卷和增量备份,只有分区才支持增量备份
2、基本语法
dump [-cu] [-123456789] [-f<备份后文件名>] [-T<日期>] ~
选项:
-j:调用 bzlib 库压缩备份文件
-u:备份完成后,在 /etc/dumpdares 中记录备份的文件系统、层级、日期和时间等
层级为 0 ,为完整备份
3、通过 dump 命令配合 crontab 可实现自动备份
dump -W //显示需要备份的文件及其最后一次备份的层级、日期、时间
4、cat /etc/dumpdares //查看备份时间文件
文件或目录,不支持增量备份,只能使用 0 级别备份
三、使用 restore 完成恢复
1、基本语法
restore [模式选项] [选项]
模式 | 说明 |
---|---|
-C | 对比 |
-i | 交互 |
-r | 还原 |
-t | 查看 |
4个模式,在一次命令中,只能指定一种
选项:-f <备份文件>
一、基本介绍
Webmin 是一个基于 Web 的 Unix/Linux 的系统管理工具
1、下载地址:http://download.webmin.com/download/yum/
2、安装:rpm -ivh ~
3、重置密码
4、修改 Webmin 服务的端口号(默认是 10000),修改 port=
vim /etc/webmin/miniserv.conf
5、重启 Webmin
6、防火墙打开修改后的端口
firewall-cmd --zone=public --add-port=端口号/协议
firewall-cmd --reload //更新防火墙配置
firewal-cmd --zone=public --list-ports //查看已经开放的端口号
7、登录 Webmin
一、基本介绍
Linux 面板是提升运维效率的服务器管理软件,支持一键 LAMP/LNMP/集群/监控/网站/ FTP /数据库/ Java 等多项服务器管理功能
1、安装和使用
安装:yum install -y wget
下载:wget -O install.sh http://download.bt.cn/install/install_6.0.sh
编译:sh install.sh
注:如果 BT 的用户名,密码忘记了,可使用 bt default
查看