在Linux系统中,进程是资源分配的基本单位。当我们执行一个程序时,内核会为其创建一个进程控制块(PCB),包含以下关键信息:
进程的典型生命周期包括:
实际经验:通过
cat /proc/sys/kernel/pid_max可查看系统最大PID值,当进程数接近此值时需警惕资源泄露
bash复制# 显示完整格式的进程树
ps -ef --forest
# 查看特定用户的进程
ps -u username -o pid,ppid,cmd,%mem,%cpu
# 按CPU占用排序
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head
关键字段说明:
%mem:物理内存占用百分比%cpu:CPU时间占用百分比VSZ:虚拟内存使用量(KB)RSS:常驻内存集(实际物理内存)交互模式下常用操作:
M:按内存使用排序P:按CPU使用排序k:终止指定PID的进程1:显示所有CPU核心的负载Shift + >:向右滚动查看完整命令避坑指南:当top显示负载高但CPU使用率低时,可能是I/O等待(wa值高)导致,应检查磁盘性能
常用信号列表:
| 信号编号 | 名称 | 作用 |
|---|---|---|
| 1 | SIGHUP | 挂起,重载配置 |
| 2 | SIGINT | 中断(Ctrl+C) |
| 9 | SIGKILL | 强制终止 |
| 15 | SIGTERM | 优雅终止(默认信号) |
| 19 | SIGSTOP | 暂停进程 |
实际应用场景:
bash复制# 优雅重启Nginx
kill -HUP $(pgrep nginx)
# 批量终止Python进程
pkill -f "python.*script.py"
典型工作流示例:
bash复制# 启动长时间任务到后台
tar -czf backup.tar.gz /data &
# 查看后台任务
jobs -l
# 将任务1调回前台
fg %1
# 暂停当前前台任务
Ctrl+Z
# 让暂停的任务在后台继续运行
bg %1
经验技巧:使用
nohup可防止SSH断开导致进程终止:
bash复制nohup ./long_running.sh > output.log 2>&1 &
Bash的工作流程:
环境变量关键路径:
/etc/profile:系统级配置~/.bash_profile:用户级登录配置~/.bashrc:非登录交互配置配置建议:将
umask 022加入bashrc确保新建文件权限合理
现代Linux系统(使用systemd)对应关系:
| 传统级别 | systemd target | 用途 |
|---|---|---|
| 0 | poweroff.target | 关机 |
| 1 | rescue.target | 单用户模式 |
| 3 | multi-user.target | 多用户文本模式 |
| 5 | graphical.target | 图形界面模式 |
| 6 | reboot.target | 重启 |
操作示例:
bash复制# 查看当前运行级别
systemctl get-default
# 切换到多用户模式
sudo systemctl isolate multi-user.target
# 设置默认启动级别
sudo systemctl set-default multi-user.target
故障排查:若图形界面无法启动,可尝试
sudo systemctl restart display-manager
Vim的模态编辑体系:
mermaid复制graph LR
A[命令模式] -->|i/I/a/A/o/O| B[插入模式]
B -->|Esc| A
A -->|:/?| C[末行模式]
C -->|Esc| A
vim复制" 单词级移动
w - 下一个单词开头
e - 当前单词结尾
b - 上一个单词开头
" 屏幕导航
H - 屏幕顶部行
M - 屏幕中间行
L - 屏幕底部行
Ctrl+f - 向下翻页
Ctrl+b - 向上翻页
vim复制" 删除并进入插入模式
ciw - 修改当前单词
ci" - 修改引号内内容
ct) - 删除到右括号前并插入
" 宏录制
qa - 开始录制到寄存器a
q - 停止录制
@a - 执行宏
推荐.vimrc基础配置:
vim复制set number " 显示行号
set tabstop=4 " Tab显示宽度
set shiftwidth=4 " 自动缩进宽度
set expandtab " 用空格代替Tab
set hlsearch " 高亮搜索
syntax on " 语法高亮
" 快速保存退出
nmap <leader>w :w<CR>
nmap <leader>q :q!<CR>
插件推荐:Vundle管理插件,安装NERDTree实现文件树浏览
推荐关机步骤:
syncwall "系统将在5分钟后维护"shutdown -h +5whopoweroff常用压缩格式对比:
| 格式 | 压缩命令 | 解压命令 | 特点 |
|---|---|---|---|
| .tar.gz | tar -czf file.tar.gz dir | tar -xzf file.tar.gz | 高压缩比,较慢 |
| .tar.bz2 | tar -cjf file.tar.bz2 dir | tar -xjf file.tar.bz2 | 平衡压缩比和速度 |
| .zip | zip -r file.zip dir | unzip file.zip | Windows兼容性好 |
性能测试:使用
time命令比较不同格式的压缩速度:
bash复制time tar -czf test.tar.gz /path/to/data
完整章节结构:
bash复制# 搜索所有章节
man -k keyword
# 查看特定章节
man 2 open
# 生成命令速查PDF
man -t bash | ps2pdf - bash_manual.pdf
遇到问题时,我通常会按以下流程排查:
whatis command - 查看简要说明command --help - 快速参考选项man command - 查阅完整手册