文本处理和编辑
- 文件内容:less、more、cat
- 文件截取:head、tail
- 按列抽取:cut
- 文字抽取:grep
- -i:忽略大小写
- -v:排除所选项
- -E:多条件过滤
- “^……”:表示以……开头
- “……$”:表示以……结尾
- “^$”:空行
grep -v "^#" /etc/ssh/sshd_config | grep -v "^$"
文件处理工具:
1. wc
2. sort
1. -u:去除重复行
2. -k:按指定字段排序
3. -h:按人类可读的数字排序
4. -r:逆序排序
5. -t:指定字段分隔符
3. diff:用于比较两个文件或目录内容差异的命令
文本编辑工具
命令行模式:
dd:删除一行
yy:复制一行
p: 粘贴
G: 返回行尾
gg:返回行首
u: 撤销一次操作
末行模式
:set nu(设置行号)
:set paste(设置成粘贴模式)
:/(正向查找)
:?(反向查找)
:%s/*/*/g
i:忽略大小写替换
10,20:10-20行替换
%:全局
软件管理
rpm:欧拉、麒麟、Oracle Linux、rhel hat、suse
rpm
# 查询
-qa:查询系统所有包
-qi:显示软件详细信息
-ql:列出软件包中的文件
-qf:查询文件所属的软件包
-qpR:列出软件包的依赖性
# 安装
-i:安装一个新的软件包
-v:显示详细信息
-h:在安装过程中显示进度条
-U:更新软件包
-e:卸载软件包
--nodeps:忽略依赖关系
rpm包数据库:/var/lib/rpm/
# 自定义本机yum源
#mount /dev/sr0 /mnt
#cat /etc/yum.repos.d/cdrom.repo
[server]
name=server baseurl=file:///mnt//Server enabled=1 gpgcheck=0 # 设置默认启动为命令行界面 systemctl set-default multi-user.target # 设置默认启动为图形界面 systemctl set-default graphical.target
systemd 管理
Linux 操作系统的启动首先从 BIOS 开始,接下来进入 boot loader,由 bootloader 载入内核,进行内核初始化。内核初始化的最后一步就是启动 pid 为 1 的 init /systemd进程。这个进程是系统的第一个进程。它负责产生其他所有用户进程。
initramfs
(初始 RAM 文件系统)主要用于在 Linux 内核启动时加载必要的驱动和工具,以便挂载真正的根文件系统。
SysVinit
运行非常良好,概念简单清晰。主要依赖于 Shell 脚本,这就决定了它的最大弱点:启动太慢。
特性 | /usr/lib/systemd/system/ | /etc/systemd/system/ |
---|---|---|
用途 | 存储系统默认的单元文件 | 存储自定义或覆盖的单元文件 |
优先级 | 较低 | 较高(systemd 优先使用此目录中的文件) |
是否可修改 | 不应手动修改(可能被软件包更新覆盖) | 可以手动修改或添加自定义配置 |
文件来源 | 由软件包管理器安装 | 由系统管理员创建或自定义 |
典型内容 | 系统服务的默认单元文件 | 自定义服务配置、覆盖默认配置的符号链接 |
# 查看各个级别下服务是否设置开机自启动
systemctl list-unit-files --type=service
# 列出系统启动时间
systemd-analyze
# 列出服务启动时间
systemd-analyze blame
# 查看启动日志
dmesg -T
cat /var/log/boot.log(7支持)
网络管理和配置
功能 | nmcli | ip |
---|---|---|
配置持久性 | 自动保存到配置文件,重启后生效 | 临时修改,重启后丢失(除非手动保存) |
功能复杂性 | 支持复杂网络配置(如 VLAN、绑定、VPN) | 主要用于基本网络配置(如 IP 地址、路由) |
依赖服务 | 需要 NetworkManager 服务运行 | 不依赖额外服务,直接操作内核网络栈 |
配置文件 | /etc/NetworkManager/system-connections/ | /etc/network/interfaces 或 /etc/netplan/ (取决于发行版) |
适用场景 | 动态管理、自动化脚本、复杂网络环境 | 基础网络配置、临时修改、底层操作 |
# 查看网络设备
lspci | grep -i eth
# 查看网卡驱动
modinfo
lsmod
# 通过查看Link detected,判断是否插网线
ethtool
-i:查看驱动版本
-S:查看连接是否有丢包情况
-p:定位网卡位置
MTU(Maximum Transmission Unit,最大传输单元) 是网络通信中的一个重要概念,指的是网络接口在一次传输中能够承载的最大数据包大小(以字节为单位)。MTU 的大小直接影响网络传输的效率和性能。、
网络状态检测
# 查看网络状态
ip a
ifconfig -a
# 查看路由信息
ip route
route -n
# 查看端口监听状况
netstat -an
# 网络测试
ping 180.76.76.76
# 查看DNS解析
nslookup
# 追踪路由
traceroute
双网卡绑定
bond配置
nmcli connection add type bond ifname bond0 con-name bond0 mode active-backup miimon 100 ip4 192.168.1.10/24 gw4 192.168.1.1
nmcli connection add type bond-slave ifname ens22 con-name ens22 master bond0
nmcli connection add type bond-slave ifname ens33 con-name ens33 master bond0
team配置
nmcli connection add type team ifname team0 con-name teamo config'{"runner":{""name":"lacp"}}'ip4 10.248.21.51/24 gw4 10.248.21.254 ipv4.method manual ipv4.dns 114.114.114.114
nmcli connection add type team-slave con-name teamport1 ifname enol master team0
nmcli connection add type team-slave con-name teamport2 ifname eno2 master team0
状态检查
bond使用 cat /proc/net/bonding/bondX
team使用teamdctl teamX state