Type:查看命令的所属分类
man:查看命令的帮助
help:获取帮助
ls命令
ls -l:显示文章的详细信息
ls -a:显示文章的隐藏文件
ls -r:逆顺序显示文件
ls -R:递归显示
ls -t:按照时间显示
head:显示文件前几行
tail:显示文件后几行
cat:查看文件信息 cat f 查看文件更新信息
wc:统计文件行数
tar:打包命令,配合gzip和bzip可以使用打包和压缩命令
gzip:压缩和解压缩命令,拓展名.gz
bzip2:压缩与解压缩命令,扩展名.bz2
useradd:添加用户
userdel:删除命令
Passwd: 设置用户密码
usermod:修改用户信息
groupadd:添加组用户
groupdel:删除组用户
chmod:修改权限
chown:更改主,属组
chgrp:可以单独更改属组,不常用
正则表达式
对字符串操作的一组逻辑公式
用于对符合规则的字符串进行查找和替换
文本与文件的查找
grep
grep -i 忽略大小写
grep -v 反转
grep -a 处理二进制文件
grep -R 递归方式
find
find -name 按照文件名搜索
find -perm 按照权限查找
find -user 按照属主搜索
find -type 按照文件类型搜索
软件安装与更新
rpm -i 安装
rpm -q 查询
rpm -U 升级
rpm -e 卸载
./comfigure make make install 源码编译
yum install 安装
yum remove 卸载
yum update 升级
网络配置
ifconfig 查看和配置网络接口
ip addr 查看和配置接口漏油
netstat 查看进程监听端口状态
network与NetworkManager 网络管理脚本
相关配置文件
ifcfg-eth0 eh0网卡配置文件
networking 主机名配置文件
resolv.conf 域名配置文件
常用系统日志
/var/log 系统日志默认目录
message 系统日志
dmesg 内核启动日志
secure 安全日志
mount挂载命令
mount -t 指定文件系统类型
mount -ro 只读挂载
mount -rw 读写挂载
remount 重挂载
文件系统
fdisk -l 查看分区信息
fdisk /dev/sdx 分区某存储
df 查看分区使用空间大小
du 查看文件使用空间大小
mkfs.ext4 格式化为ext4文件系统
mkfs.xfs 格式化为XFS文件系统
逻辑卷与lvm
lvm分三层:PV物理卷 VG卷组 LV逻辑卷
pvcreate 建立PV pvs 查看PV
vgcreate 建立VG vgs 查看VG
lvcreate 建立LV lvs 查看lv
lvextend 扩展LV
防火墙
SELinux访问控制分类:DAC自主访问控制 MAC强制访问控制
getenforce 查看SELinux状态
setenforce 修改访问状态
selinux配置文件/etc/selinux/config
enforcing 强制控制
permissive 通知但不强制控制
disable 禁止访问控制
iptables
表:filter 用于过滤 nat 用于地址转换
链:INPUT 进入本主机方向
OUTPUT 本主机发出方向
FORWARD 转发方向
PREROUTING 路由前转换
POSTROUTING 路由后抓换
选项:-i -o 接口
-s -d ip地址/子网掩码
-p tcp/udp协议
--sport 源端口
--dport 目的端口
-j 动作
ACCEPT 允许此规则匹配的数据包通过
DROP 丢弃此规则匹配的数据包
REJECT 拒绝此规则匹配的数据包并返回rst包
SNAT 源地址转换
DNAT 目的地址转换
MASQUERADE 动态源地址转换
tcpdump -r filename 从文件读取已抓取的数据包
tcpdump -w filename 将抓取的数据包保存至文件
tcpdump -v 显示详细信息
tcpdump -n 不将ip地址解析为主机名
tcpdump -i 接口
tcpdump host 主机
tcpdump port 端口
系统启动过程与故障修复
系统启动过程简述
BISO 选择启动设备
MBR 硬盘可引导扇区
GRUB Linux 系统可引导工具
内核
init或者systemd
service服务或者systemd服务
启动tty等待用户登陆
更新内核版本
rpm方式更新
安装速度快,没有最新版本
源码编译方式更新
可以使用最新版本,编译时间长
shell部分
shell是命令解释器,翻译用户的命令给内核执行,并将结果返回给对方
shell脚本好处:组合系统命令实现自动化功能,组成脚本的基本元素是命令,不用深入掌握系统函数库
内建命令与外部命令:内建命令不会创建子进程,但是对子shell无效,外部命令会创建子进程。
管道与重定向
管道符:|
重定向符号:< 输入重定向
> 输出重定向
>>输出重定向,追加方式
join 连接两个字符串
转义和引用:特殊符号,转义符 / ,引用符号’’ ””
函数:对重复利用的代码进行封装,函数的定义方法是 函数名(){}
函数的使用:直接使用函数名
运算符
运算符 +-*/ % 加减乘除取余
shell运算的弊端:支持整数运算,但和编译语言比起来效率较低,对浮点运算支持不好
循环
while循环:while循环根据while判断结果是否继续执行
判断结果为命令的返回值,如果为0则循环会继续执行
如果判断结果一直为真0,无法到达循环称死循环
for循环:shell的for循环使用遍历方式,for...in...格式
for循环支持c语言写法,需要使用(())格式
支持使用break,continue对循环进行控制
for循环支持嵌套使用
进程与内存查看
ps/ top 对当前系统的进程信息查看
内存查看命令
free 查看内存系统使用率
sar 显示更详细的系统运行状态,用于故障排除
常用第三方系统命令查看
lftop 查看某一进程的网络流量
变量与环境变量
变量:shell变量无声明,销毁变量unset变量
变量的赋值:变量名=变量值
环境变量:PATH命令解释路径
环境变量的配置文件
/etc/profile 系统环境变量的默认保存文件
/etc/bashrc login shell执行初始化的配置文件
计划任务
一次性计划任务at
周期性计划任务cron
查看周期性计划任务crontab -l
编辑周期性任务 contab -e
测量与判断
test测试:可以书写为[]
可以使用[[]]扩展格式
文件测试
数字比较
if判断:基本原理:根据命令的返回值是否为0进行分支判断
支持if...else...写法
支持if嵌套写法
case分支:case分支一般作为if判断的补充
case分支的结束符号是”;;”,它是”;”的转义形式
正则表达式与文本搜索
元字符大全
. 单个字符
* 一个(包括零个)它前面的字符
[...] 匹配方括号中的任意字符
^ 匹配行开始
$ 匹配行结尾
\ 转义特殊字符
{…} 匹配出现次数
+ 匹配前面的正则表达式出现一次或多次
? 匹配前面的正则表达式出现零次或一次
| 并列匹配
() 分组
POSIX 字符类
sed基础
基本语法:sed ‘cmd’ filename
sed -e ‘cmd’ -e ‘cmd’ filename
sed的工作方式:模式空间
sed命令:s 替换
d 删除
a 追加
i 插入
c 更改
n 下一步
r 读文件
w 写文件
q 退出
y 替换
p 打印
sed高级命令
多行命令
N:将多行追加到模式空间进行处理
D:删除对行模式空间的第一个字符至第一个换行符,并返回到脚本的开头执行
P:输出模式空间中的第一个字符至第一个换行符
保持空间模式
h:将模式空间中的内存存储至保存空间,并覆保持空间的内容
H:将模式空间中内容存储至保存空间,并追加到保持空间的内容
g:将保持空间的内容存储至模式空间,并覆盖模式空间的内容
G:将保持空间的内容存储至模式空间,并追加至模式空间
x:交换模式空间和保持空间的内容
条件与分支
:标签
b branch命令用于在脚本中将控制权转移到另一行,如果没有指定标签就转移脚本的结尾
t 测试命令,如果当前匹配地址的行进行了成功替换,test命令就转移到标签处,如果没有指定标签就转移到脚本的结尾
AWK
工作方式
BEGIN{} 模式用于处理文件前的预处理
{} 模式用于对文件每行进行处理
BED{}模式用于处理完文件之后的操作
运算符
算数运算符 关系运算符 布尔运算符
循环
支持while循环
支持for循环
支持break循环,continue循环
系统变量
FS字段分隔符
OFS输出字段分隔符
RS记录分隔符
ORS输出记录分隔符
条件
和c语言用法相似
语法格式为:if(判断)
支持if……else……用法
支持if嵌套
函数
算数函数
随机函数
字符串函数