1. Linux命令基础:从终端操作到系统掌控
刚接触Linux时,那个黑乎乎的终端窗口总是让人望而生畏。但当我真正开始使用这些看似简单的命令后,才发现它们就像瑞士军刀一样强大。Linux命令不仅仅是输入几个字母那么简单,它们是整个操作系统的基础交互方式,也是系统管理员和开发者的必备技能。
提示:所有Linux命令都区分大小写,并且大多数命令都遵循"命令 [选项] [参数]"的基本格式
我至今记得第一次用ls命令看到目录内容时的兴奋感,也记得因为误用rm -rf而痛失重要文件的惨痛教训。这些经历让我明白,掌握Linux命令不仅需要记忆,更需要理解其背后的逻辑和潜在风险。
2. 文件与目录操作:Linux的基石
2.1 导航与查看:ls、pwd、cd
ls命令可能是使用频率最高的命令之一。但很多人不知道,通过不同的选项可以获取完全不同的信息展示:
ls -l # 长格式显示,包含权限、所有者、大小等信息 ls -a # 显示所有文件,包括隐藏文件(以.开头) ls -lh # 人类可读的文件大小显示(如K、M、G)pwd(Print Working Directory)显示当前所在路径,而cd(Change Directory)用于切换目录。几个实用技巧:
cd ~ # 返回用户主目录 cd - # 返回上一个工作目录 cd .. # 进入上级目录2.2 文件操作:cp、mv、rm
文件操作三剑客需要特别注意:
cp source.txt dest/ # 复制文件 cp -r dir1/ dir2/ # 递归复制目录 mv old.txt new.txt # 重命名文件 mv file.txt ~/backup/ # 移动文件 rm file.txt # 删除文件 rm -r directory/ # 递归删除目录警告:rm命令删除的文件通常无法恢复,特别是使用-rf选项时要格外小心。建议先使用ls查看确认要删除的内容。
2.3 文件查看与编辑:cat、less、nano/vim
查看文件内容有多种方式:
cat file.txt # 显示整个文件内容 less file.txt # 分页查看,支持搜索(/关键词) head -n 5 file.txt # 显示前5行 tail -f log.txt # 实时追踪日志文件变化对于编辑,新手可以从nano开始,它有简单的底部菜单提示。而vim虽然学习曲线陡峭,但效率更高:
nano file.txt # 使用nano编辑器 vim file.txt # 使用vim编辑器3. 系统信息与进程管理
3.1 系统状态监控:top、htop、free
了解系统状态是管理Linux的基础:
top # 动态显示进程和系统资源使用情况 htop # top的增强版(需安装) free -h # 查看内存使用情况(-h人类可读格式) df -h # 查看磁盘空间使用情况 uptime # 显示系统运行时间和负载3.2 进程管理:ps、kill、pgrep
进程管理是系统运维的核心技能:
ps aux # 显示所有运行中的进程 ps -ef | grep nginx # 查找特定进程 kill -9 PID # 强制终止进程(PID通过ps获取) pkill process_name # 通过进程名终止 nice -n 10 command # 以低优先级运行命令4. 网络相关命令
4.1 网络配置与测试:ifconfig、ip、ping
网络问题排查常用命令:
ifconfig # 查看网络接口信息(较老) ip addr # 更现代的替代方案 ping example.com # 测试网络连通性 traceroute example.com # 追踪网络路径 netstat -tulnp # 查看网络连接和监听端口 ss -tulnp # netstat的现代替代4.2 远程连接:ssh、scp
远程管理是Linux运维的日常:
ssh user@hostname # 远程登录 scp file.txt user@hostname:/path/ # 安全复制文件 rsync -avz dir/ user@hostname:backup/ # 高效同步5. 权限与用户管理
5.1 文件权限:chmod、chown
Linux的权限系统是其安全基础:
chmod 755 script.sh # 设置权限(rwxr-xr-x) chmod +x script.sh # 添加执行权限 chown user:group file # 改变文件所有者和组权限数字表示法:
- 4 = 读(r)
- 2 = 写(w)
- 1 = 执行(x)
- 0 = 无权限
三个数字分别代表所有者、组和其他用户的权限组合。
5.2 用户管理:useradd、passwd、sudo
sudo useradd -m newuser # 创建新用户(-m创建家目录) sudo passwd newuser # 设置密码 sudo usermod -aG group user # 将用户添加到附加组 sudo visudo # 安全编辑sudoers文件6. 文本处理与管道
6.1 强大的文本处理工具:grep、awk、sed
grep "error" log.txt # 查找包含"error"的行 grep -r "function" /path/ # 递归搜索目录 awk '{print $1}' file.txt # 打印每行第一个字段 sed 's/old/new/g' file.txt # 替换文本6.2 管道与重定向
Linux最强大的特性之一是将命令组合使用:
cat access.log | grep "404" | awk '{print $7}' | sort | uniq -c | sort -nr这个管道组合:
- 读取日志文件
- 过滤出404错误
- 提取URL路径(第7列)
- 排序
- 统计唯一值出现次数
- 按计数反向排序
重定向也很常用:
command > output.txt # 标准输出重定向到文件 command 2> error.log # 标准错误重定向 command >> log.txt # 追加而不是覆盖 command < input.txt # 从文件读取输入7. 实用技巧与高级用法
7.1 命令组合与别名
提高效率的小技巧:
# 后台运行命令 long_running_command & # 命令序列 command1 && command2 # command1成功才运行command2 command1 || command2 # command1失败才运行command2 # 创建别名 alias ll='ls -alF' alias update='sudo apt update && sudo apt upgrade'7.2 历史命令与补全
history # 查看命令历史 !number # 执行历史中第number条命令 !! # 重复上一条命令 !string # 执行最近以string开头的命令 Ctrl+R # 反向搜索命令历史7.3 定时任务:cron
设置定时任务:
crontab -e # 编辑当前用户的cron表常见格式:
* * * * * command ┬ ┬ ┬ ┬ ┬ │ │ │ │ └─ 星期几 (0 - 6) (0是周日) │ │ │ └─── 月份 (1 - 12) │ │ └───── 日 (1 - 31) │ └─────── 小时 (0 - 23) └───────── 分钟 (0 - 59)8. 常见问题排查
8.1 命令找不到
如果遇到"command not found":
- 检查拼写错误
- 确认命令是否安装(which command)
- 检查PATH环境变量(echo $PATH)
8.2 权限被拒绝
"Permission denied"通常意味着:
- 文件不可读/写/执行
- 需要sudo权限
- SELinux策略限制
8.3 磁盘空间不足
排查步骤:
df -h # 查看磁盘使用情况 du -sh /path/* # 查看目录大小 find / -size +100M # 查找大文件9. 学习资源与进阶建议
掌握基础命令后,可以进一步学习:
- 编写Shell脚本自动化任务
- 学习正则表达式提升文本处理能力
- 理解Linux文件系统层次结构标准(FHS)
- 探索更多高级命令:lsof, strace, tcpdump等
我个人习惯将常用命令保存在一个cheatsheet文件中,并定期复习和更新。对于复杂操作,建议先在小范围测试,特别是涉及文件删除或系统修改的命令。