1. Linux命令与快捷键:从入门到精通的必备指南
作为一个在Linux环境下摸爬滚打多年的老鸟,我深知命令行操作和快捷键掌握程度直接决定了工作效率。记得刚接触Linux时,我还在用鼠标一个个点击菜单,直到看到同事在终端里行云流水地操作,才意识到命令行和快捷键的强大。今天我就把这些年积累的实用命令和快捷键整理成这份指南,无论你是刚接触Linux的新手,还是想提升效率的中级用户,都能从中找到实用的干货。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 基础命令:Linux世界的敲门砖
2.1 文件与目录操作
cd、ls和pwd这三个命令构成了Linux文件操作的基础三角。但很多人不知道的是,cd -可以快速返回上一个工作目录,这在多层目录切换时特别有用。ls命令的-l参数显示详细信息,-a显示隐藏文件,而-lh则以人类可读的格式显示文件大小。
文件操作方面,cp和mv命令的-i参数可以在覆盖前询问确认,避免误操作。rm命令要格外小心,特别是-rf组合,我建议新手先使用-i参数养成确认习惯。一个实用的技巧是使用mkdir -p可以一次性创建多级目录。
2.2 文本处理三剑客
grep、awk和sed是文本处理的三大神器。grep的基础用法是搜索文本,但加上-v可以反向搜索,-r递归搜索目录。awk的强大之处在于它能处理结构化文本,比如awk '{print $1}'可以提取每行的第一个字段。
sed则擅长流编辑,我最常用的是s/old/new/g全局替换。这三个命令组合使用可以解决大部分文本处理需求。例如统计日志中某个错误出现的次数:grep "ERROR" logfile | wc -l。
2.3 系统监控与管理
top和htop是查看系统资源的利器,htop提供了更友好的交互界面。df -h查看磁盘使用情况,du -sh *查看当前目录下各文件/目录的大小。free -m显示内存使用情况。
网络方面,ifconfig(或新的ip命令)查看网络配置,netstat -tulnp查看端口占用,ping和traceroute用于网络诊断。ssh远程连接时,配合~.可以强制断开连接(先按Enter,再输入~.)。
3. 进阶命令:提升效率的利器
3.1 管道与重定向
管道|是Linux最强大的特性之一,它允许将一个命令的输出作为另一个命令的输入。比如ps aux | grep python查找所有Python进程。重定向>和>>分别用于覆盖和追加输出到文件,2>重定向错误输出。
一个实用的组合:command > output.log 2>&1将标准输出和错误输出都重定向到同一文件。tee命令可以在输出到屏幕的同时保存到文件:ls -l | tee listing.txt。
3.2 后台任务管理
&让命令在后台运行,jobs查看后台任务,fg将任务调到前台,bg继续后台运行。nohup可以让任务在退出终端后继续运行:nohup command &。
screen和tmux是更强大的终端复用工具,可以创建持久会话。我强烈推荐学习tmux,它支持分屏、会话保持等功能,服务器管理时特别有用。
3.3 权限与用户管理
chmod修改权限,数字模式如chmod 755 file或符号模式chmod u+x file。chown改变文件所有者,chgrp改变所属组。sudo以超级用户权限执行命令,su切换用户。
passwd修改密码,useradd/userdel添加/删除用户,groupadd/groupdel管理用户组。visudo安全地编辑sudoers文件。
4. 必知快捷键:终端操作的加速器
4.1 基础编辑快捷键
Ctrl+A/Ctrl+E:移动到行首/行尾Ctrl+U/Ctrl+K:删除光标前/后所有内容Ctrl+W:删除前一个单词Ctrl+Y:粘贴刚才删除的内容Ctrl+R:反向搜索命令历史Ctrl+L:清屏(相当于clear命令)
这些快捷键在输入长命令时特别有用,可以大幅减少光标移动时间。
4.2 进程控制快捷键
Ctrl+C:终止当前命令Ctrl+Z:暂停当前命令(可用fg恢复)Ctrl+D:发送EOF(退出终端或结束输入)Ctrl+S/Ctrl+Q:暂停/恢复终端输出(处理大量输出时有用)
4.3 历史命令操作
!!重复上一条命令,!$引用上条命令的最后一个参数,!n执行历史记录中第n条命令。!string执行最近以string开头的命令。
history查看命令历史,配合grep可以快速找到过去执行的命令。Ctrl+R反向搜索历史是我最常用的功能之一。
5. 开发相关命令与技巧
5.1 版本控制:Git常用命令
git init初始化仓库,git clone克隆远程仓库。git status查看状态,git add添加文件,git commit提交更改。git push推送更改,git pull获取更新。
分支操作:git branch查看分支,git checkout切换分支,git merge合并分支。git log查看提交历史,git diff查看更改内容。
5.2 编译与调试
gcc编译C程序,make自动化构建。gdb调试程序,基本命令包括run运行,break设置断点,next单步执行,print查看变量值。
strace跟踪系统调用,ltrace跟踪库函数调用,都是强大的调试工具。valgrind检测内存泄漏。
5.3 包管理工具
不同发行版使用不同的包管理器:
- Debian/Ubuntu:
apt-get install、apt-cache search - RedHat/CentOS:
yum install、yum search - Arch Linux:
pacman -S、pacman -Ss
dpkg/rpm直接安装本地软件包。pip管理Python包,npm管理Node.js包。
6. 实用脚本与自动化
6.1 Shell脚本基础
Shell脚本以#!/bin/bash开头。变量赋值var=value(注意等号两边不能有空格),使用$var引用变量。if条件判断,for/while循环。
特殊变量:$0脚本名,$1第一个参数,$#参数个数,$?上条命令的退出状态。test或[ ]用于条件测试。
6.2 定时任务:cron
crontab -e编辑当前用户的cron表。基本格式:
code复制* * * * * command
分 时 日 月 周 命令
例如每天凌晨备份:0 0 * * * /path/to/backup.sh。crontab -l查看当前任务,crontab -r删除所有任务。
6.3 实用脚本示例
备份脚本:
bash复制#!/bin/bash
tar -czf backup-$(date +%Y%m%d).tar.gz /path/to/backup
find /backup -name "*.tar.gz" -mtime +30 -exec rm {} \;
日志分析脚本:
bash复制#!/bin/bash
grep "ERROR" /var/log/app.log | awk '{print $5}' | sort | uniq -c | sort -nr
7. 问题排查与性能调优
7.1 日志分析
tail -f实时查看日志文件,grep过滤关键信息。journalctl查看systemd日志,dmesg查看内核日志。/var/log/目录包含各种系统日志文件。
awk和sed可以提取和转换日志数据。例如统计HTTP状态码:awk '{print $9}' access.log | sort | uniq -c。
7.2 性能监控
vmstat、iostat和sar提供系统性能数据。pidstat监控进程资源使用。iftop和nethogs监控网络流量。
strace -c统计系统调用,perf进行性能分析。tcpdump和wireshark抓包分析网络问题。
7.3 常见问题解决
"Command not found"通常是因为命令不在PATH中,或者没安装。which和type命令可以检查命令位置。
"Permission denied"检查文件权限和所有者。ls -l查看权限,sudo尝试以root运行。
"Disk full"使用df -h确认,然后du -sh *找出大文件。lsof可以查看被删除但仍被进程占用的文件。
8. 环境配置与个性化
8.1 Shell配置
~/.bashrc是bash的配置文件,修改后需要source ~/.bashrc重新加载。可以在这里设置别名和环境变量。
实用别名示例:
bash复制alias ll='ls -alF'
alias grep='grep --color=auto'
alias ..='cd ..'
8.2 终端美化
PS1环境变量控制提示符格式。安装zsh和oh-my-zsh可以获得更强大的功能和主题。
tmux配置可以修改状态栏、快捷键等。vim/nano配置可以设置语法高亮、缩进等。
8.3 远程连接优化
ssh配置文件中可以设置别名、保持连接等:
code复制Host myserver
HostName server.example.com
User myname
Port 2222
IdentityFile ~/.ssh/id_rsa
scp和rsync用于文件传输,后者支持增量同步和断点续传。sshfs可以将远程目录挂载到本地。
