一、高效快捷键与终端操作优化
1.1 核心控制快捷键
进程与输入控制
Ctrl + C
:强制终止前台进程,等价于发送SIGINT
信号。适用于终止卡住的tail
、ping
等命令。bash
# 示例:终止持续输出的日志监控 tail -f app.log → Ctrl + C
Ctrl + Z
:将当前进程挂起(暂停并放入后台),可通过fg
恢复前台或bg
转为后台运行。bash
# 挂起当前命令并查看后台任务 tar -zcvf data.tar.gz /data → Ctrl + Z jobs → # 查看后台任务列表 fg %1 → # 恢复第一个后台任务到前台
Ctrl + D
:EOF(End of File)信号,用于退出交互式程序(如python
、mysql
)或登出终端(等价于exit
)。
历史命令高级操作
history
命令参数扩展:bash
history -c → # 清空历史命令 history -w → # 将内存中的历史命令写入磁盘(~/.bash_history)
- 交互式搜索:
Ctrl + R
进入逆向搜索模式,输入关键字匹配历史命令(如搜索ssh
相关命令)。 - 命令重用:
!$
引用上一条命令的最后一个参数,!*
引用所有参数。bash
# 示例:快速复制上一条命令的文件路径 cp /data/source.txt /backup → mv !$ /backup/source.bak # !$指代/backup/source.txt
1.2 光标与文本操作
精准定位技巧
Ctrl + A
/Ctrl + E
:跳转到行首 / 行尾(等价于Home
/End
键)。Alt + B
/Alt + F
:按单词向左 / 右移动(需配置终端支持,如bash
的readline
库)。Ctrl + U
:删除从光标到行首的内容;Ctrl + K
:删除从光标到行尾的内容。
多行编辑与粘贴
Ctrl + Shift + C/V
:终端内复制粘贴(适用于图形化终端如 Xshell、FinalShell)。Shift + PageUp/PageDown
:滚动查看历史输出。
1.3 终端优化配置
清屏与窗口管理
Ctrl + L
/clear
:清空终端显示,clear
等价于执行printf "\033c"
。- 终端分屏:使用
tmux
或screen
工具创建多个窗口 / 面板(需安装)。bash
yum install tmux → tmux new -s mysession → # 创建新会话
个性化配置
- 修改终端提示符(
PS1
变量):bash
# 在~/.bashrc中添加以下行,显示当前用户、主机名、路径 export PS1="[\u@\h \W]\$ " source ~/.bashrc → # 生效配置
- 修改终端提示符(
二、软件安装与服务管理深度解析
2.1 包管理体系对比
系统类型 | 包管理器 | 软件仓库格式 | 依赖处理 | 典型命令 |
---|---|---|---|---|
CentOS/RHEL | yum/dnf | RPM | 自动解决 | yum install , dnf update |
Ubuntu/Debian | apt/apt-get | DEB | 自动解决 | apt install , apt upgrade |
Arch Linux | pacman | pkg.tar.zst | 自动解决 | pacman -S , pacman -Rs |
通用方案 | snap/flatpak | 沙盒化包 | 内置依赖 | snap install , flatpak install |
Yum 高级操作
- 更换软件源:修改
/etc/yum.repos.d/
下的 repo 文件,使用阿里云、清华源等镜像。bash
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/CentOS-vault.repo yum makecache → # 生成缓存
- 离线安装:使用
yumdownloader
下载包及依赖。bash
yum install yum-utils → yumdownloader --resolve wget → # 下载wget及其依赖
- 更换软件源:修改
Apt 进阶技巧
- 手动安装 DEB 包:
dpkg -i package.deb
,解决依赖问题用apt -f install
。 - 多版本管理:通过
apt-cache showpkg package
查看可用版本,使用apt install package=version
指定版本。
- 手动安装 DEB 包:
2.2 systemctl 与服务治理
服务生命周期管理
bash
systemctl start|stop|restart|reload sshd → # 管理sshd服务(reload用于重新加载配置) systemctl enable|disable --now sshd → # 启用自启并立即启动
服务状态诊断
bash
systemctl status sshd → # 查看服务运行状态、日志 journalctl -u sshd → # 查看sshd相关日志(systemd日志管理) systemctl list-dependencies sshd → # 查看服务依赖关系
自定义服务创建
创建/etc/systemd/system/myapp.service
文件:ini
[Unit] Description=My Application Service After=network.target [Service] Type=simple ExecStart=/usr/local/myapp/myapp.sh ExecStop=/usr/local/myapp/stop.sh Restart=always [Install] WantedBy=multi-user.target
生效配置:
systemctl daemon-reload && systemctl enable --now myapp
。
三、网络与系统配置实战
3.1 网络基础与 IP 管理
IP 地址与路由
- 查看网络接口:
ip addr show
(推荐)或ifconfig
(需net-tools
包)。 - 配置静态 IP(以 CentOS 为例):
bash
vim /etc/sysconfig/network-scripts/ifcfg-ens33 → # 修改以下字段 BOOTPROTO=static IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 systemctl restart network → # 重启网络服务
- 查看网络接口:
域名解析与 Hosts 文件
hosts
文件优先级高于 DNS,适用于本地测试:bash
echo "127.0.0.1 local.test.com" >> /etc/hosts
- 清除 DNS 缓存:
systemd-resolve --flush-caches
(systemd 环境)。
3.2 时间同步与时区设置
- 时区调整全流程
bash
timedatectl list-timezones → # 查看所有时区 timedatectl set-timezone Asia/Shanghai → # 设置东八区时区 timedatectl set-ntp true → # 启用NTP时间同步
- 手动校准与服务配置
bash
ntpdate -u ntp.aliyun.com → # 手动同步阿里云时间 systemctl enable --now chronyd → # 启用chrony时间服务(替代ntpd)
3.3 端口与网络工具
- 端口扫描与监控
nmap
基础用法:bash
nmap -p 1-1024 192.168.1.1 → # 扫描目标IP的1-1024端口 nmap -sV 192.168.1.100 → # 检测开放端口的服务版本
netstat
与ss
命令:bash
netstat -antp | grep 80 → # 查看80端口占用(需安装net-tools) ss -tunlp | grep :443 → # 推荐使用ss查看TCP/UDP端口(更高效)
四、文件系统与数据管理
4.1 环境变量深度应用
变量作用域解析
- 全局变量:写入
/etc/profile
或/etc/bashrc
,对所有用户生效。 - 用户变量:写入
~/.bash_profile
或~/.bashrc
,仅当前用户生效。 - 会话变量:通过
export
临时设置,关闭终端后失效。
- 全局变量:写入
PATH 变量优化
bash
# 添加自定义脚本目录到PATH(推荐写入~/.bashrc) export PATH=$PATH:/home/user/bin source ~/.bashrc → # 立即生效
动态库路径设置
bash
# 临时添加动态库路径 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib # 永久生效需写入/etc/ld.so.conf.d/目录 echo "/usr/local/lib" > /etc/ld.so.conf.d/local.conf ldconfig → # 刷新动态库缓存
4.2 压缩与归档高级技巧
压缩格式对比表
格式 压缩算法 扩展名 压缩比 适用场景 tar 无 .tar 1:1 简单归档 gzip DEFLATE .tar.gz 3:1 文本文件、日志 bzip2 bzip2 .tar.bz2 4:1 高压缩比需求 xz LZMA .tar.xz 5:1 归档后长期存储 zip Deflate .zip 2:1 跨平台传输 分卷压缩与加密
bash
# 分卷压缩(每个文件100MB) tar -czvf - /data | split -b 100M -d - data.tar.gz. # 合并分卷并解压 cat data.tar.gz.* | tar -xzvf -
bash
# 使用gpg加密压缩包 gpg --symmetric data.tar.gz → # 设置密码加密 gpg data.tar.gz.gpg → # 输入密码解密
五、系统监控与故障排除
5.1 资源监控工具链
实时监控三剑客
top
:按F
键自定义显示字段,Shift + M/P/T
分别按内存 / CPU / 时间排序。htop
:增强版top
,支持鼠标操作和进程树显示(需安装htop
包)。glances
:可视化监控工具,支持输出到 Web 界面或文件。bash
pip install glances → glances -w → # 启动Web服务器,访问http://localhost:61208
磁盘与 I/O 分析
bash
iostat -x 5 → # 每5秒显示磁盘I/O详细信息(需安装sysstat包) df -hT → # 查看文件系统类型与使用情况 du -sh /data → # 快速统计目录大小(-h人性化单位,-s总大小)
5.2 常见故障排查流程
系统无法启动
- 进入救援模式:开机按
E
键编辑启动项,在linux16
行末尾添加rescue
。 - 修复文件系统:
fsck /dev/sda3
(假设根分区为 sda3)。 - 重置 root 密码:挂载根分区为可写,修改
/etc/shadow
或使用passwd
命令。
- 进入救援模式:开机按
网络连接异常
bash
ping 127.0.0.1 → # 检查本地环回接口 ping gateway_ip → # 检查网关连通性 traceroute www.baidu.com → # 追踪路由路径 tcpdump -i ens33 port 80 → # 抓包分析网络流量
六、高级进阶:用户权限与自动化
6.1 用户与权限管理
用户组与 ACL 权限
bash
groupadd developers → # 创建开发组 useradd -G developers bob → # 将bob加入developers组 setfacl -m u:bob:rwx /project → # 给bob用户单独设置/project目录读写执行权限
sudo 权限配置
bash
visudo → # 编辑sudo配置文件 bob ALL=(ALL) NOPASSWD: /usr/sbin/service httpd restart → # 允许bob无密码重启httpd服务
6.2 Shell 脚本自动化
- 基础脚本示例:每日日志备份
bash
#!/bin/bash LOG_DIR="/var/log/app" BACKUP_DIR="/backup/logs/$(date +%Y%m%d)" mkdir -p $BACKUP_DIR tar -zcvf $BACKUP_DIR/logs.tar.gz $LOG_DIR/* find /backup/logs/ -type f -mtime +7 -exec rm {} \; → # 删除7天前备份
配置定时任务:crontab -e
添加0 2 * * * /path/to/backup.sh
。
七、附录:常用命令速查表
类别 | 命令 | 说明 |
---|---|---|
系统信息 | uname -a , hostname |
查看内核信息、主机名 |
文件操作 | cp , mv , ln |
复制、移动、链接文件 |
权限管理 | chmod , chown , umask |
修改权限、所有者、默认权限 |
网络工具 | ssh , scp , rsync |
远程连接、文件传输、同步 |
进程管理 | pstree , killall , nice |
查看进程树、终止进程、调整优先级 |