1. Linux系统环境概述
第一次接触Linux的人往往会被它的命令行界面吓到,但我要告诉你一个秘密:我刚开始工作时连cd命令都用不利索。经过15年的运维工作,我现在可以负责任地说,掌握Linux环境就像学会骑自行车,一旦上手就再也忘不掉。
Linux系统的核心优势在于其稳定性和灵活性。与图形界面操作系统不同,Linux将大部分功能都通过命令行实现,这种设计理念带来了极高的效率。想象一下,当你需要批量处理上千个文件时,图形界面操作可能需要数小时,而一个简单的命令行脚本可能只需要几秒钟。
当前Linux在多个领域占据主导地位:
- 服务器市场占有率超过90%
- 嵌入式设备(路由器、智能家居等)的核心系统
- 云计算基础设施的默认选择
- 开发者的标准开发环境
提示:不要被各种Linux发行版吓到,它们的内核和基础命令都是相同的。Ubuntu、CentOS、Debian等只是预装了不同的软件包和管理工具。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Linux基础命令精讲
2.1 文件系统操作命令
文件操作是Linux中最基础也最常用的功能。以下命令我每天都要用几十次:
-
目录导航
bash复制pwd # 显示当前工作目录(print working directory) cd /path/to/directory # 切换目录(change directory) cd .. # 返回上级目录 cd ~ # 返回用户主目录实际案例:当我在/var/log目录下排查问题时,突然需要检查用户配置,可以快速跳转:
bash复制cd ~/.config && ls -l -
文件列表
bash复制ls # 简单列表 ls -l # 详细列表(我习惯用ll别名) ls -a # 显示隐藏文件(以.开头) ls -lh # 人类可读的文件大小显示注意:Linux是大小写敏感系统,"File.txt"和"file.txt"是两个不同文件。
-
文件操作
bash复制cp source.txt destination/ # 复制文件 mv oldname.txt newname.txt # 重命名或移动文件 rm file.txt # 删除文件(谨慎使用!) mkdir new_folder # 创建目录经验技巧:使用
-i参数让命令交互式运行,避免误操作:bash复制cp -i source.txt destination/ rm -i file.txt
2.2 文本处理命令
处理文本文件是Linux的强项,这些命令组合使用可以完成复杂任务:
-
查看文件内容
bash复制cat file.txt # 输出整个文件内容 less file.txt # 分页查看(支持搜索) head -n 10 file.txt # 查看前10行 tail -f logfile.log # 实时查看日志更新 -
文本搜索
bash复制grep "error" logfile.log # 搜索包含"error"的行 grep -r "function" /path/to/code # 递归搜索目录高级技巧:结合正则表达式实现复杂搜索
bash复制grep -E "^[A-Z]" file.txt # 查找以大写字母开头的行 -
文本处理
bash复制sort file.txt # 排序 uniq file.txt # 去重(通常先sort) wc -l file.txt # 统计行数实际案例:统计日志中每种错误出现的次数
bash复制grep "ERROR" app.log | sort | uniq -c | sort -nr
3. 系统管理核心命令
3.1 进程管理
Linux是多任务系统,进程管理至关重要:
-
查看进程
bash复制ps aux # 查看所有进程(我最常用的组合) top # 动态查看系统资源使用情况 htop # 增强版top(需要安装) -
进程控制
bash复制kill 1234 # 终止PID为1234的进程 kill -9 1234 # 强制终止(慎用) pkill process_name # 按名称终止进程经验分享:当服务无响应时,我通常先用
kill正常终止,如果无效才用kill -9,因为强制终止可能导致数据丢失。
3.2 权限管理
Linux的权限系统是其安全性的基石:
-
权限查看
bash复制ls -l # 查看文件权限 id # 查看用户身份信息权限示例:
code复制-rwxr-xr-- 1 user group 1024 Jan 1 10:00 script.sh解释:
- 第一个字符:
-表示文件,d表示目录 - 接下来三组:所有者(rwx)、所属组(r-x)、其他用户(r--)权限
- r=读,w=写,x=执行
- 第一个字符:
-
修改权限
bash复制chmod 755 script.sh # 设置权限为rwxr-xr-x chown user:group file.txt # 修改所有者和组实用技巧:快速设置目录及其内容权限
bash复制chmod -R 755 /path/to/directory
4. 网络相关命令
4.1 网络配置与诊断
-
基础网络命令
bash复制ifconfig # 查看网络接口信息(新系统用ip addr) ping google.com # 测试网络连通性 netstat -tuln # 查看监听端口 ss -tuln # 更现代的替代方案 -
网络连接测试
bash复制curl -I https://example.com # 获取HTTP头信息 wget https://example.com/file.zip # 下载文件 telnet example.com 80 # 测试端口连通性(需安装)排障案例:当网站无法访问时,我的诊断流程:
bash复制ping example.com # 检查基本连通性 curl -v https://example.com # 检查HTTP响应 telnet example.com 443 # 检查端口是否开放
4.2 安全传输命令
-
SSH连接
bash复制ssh username@hostname # 基本连接 ssh -p 2222 user@host # 指定非标准端口 scp file.txt user@host:/path # 安全复制文件实用技巧:配置SSH免密登录
bash复制ssh-keygen # 生成密钥对 ssh-copy-id user@host # 上传公钥
5. 实用工具与技巧
5.1 效率提升工具
-
终端多路复用器
bash复制tmux # 启动会话(防止SSH断开导致任务终止) screen # 替代方案我的tmux工作流:
bash复制tmux new -s work # 新建会话 Ctrl+b % # 垂直分割窗口 Ctrl+b " # 水平分割窗口 tmux attach -t work # 重新连接会话 -
命令历史与补全
bash复制history # 查看命令历史 !123 # 执行历史中第123条命令 Ctrl+r # 反向搜索历史命令
5.2 脚本编写基础
-
基础脚本示例
bash复制#!/bin/bash # 这是一个简单的备份脚本 BACKUP_DIR="/backups" mkdir -p $BACKUP_DIR tar -czf $BACKUP_DIR/backup_$(date +%Y%m%d).tar.gz /path/to/data -
脚本调试技巧
bash复制bash -x script.sh # 显示执行过程 set -e # 脚本开头添加,任何命令失败则退出经验分享:在脚本中使用
set -euo pipefail可以避免很多常见错误:bash复制#!/bin/bash set -euo pipefail # 严格模式
6. 常见问题排查
6.1 磁盘空间问题
-
空间检查
bash复制df -h # 查看磁盘使用情况 du -sh * # 查看当前目录各文件/目录大小实用命令:找出大文件
bash复制find / -type f -size +100M -exec ls -lh {} \;
6.2 性能瓶颈分析
-
系统负载检查
bash复制uptime # 查看负载平均值 free -h # 查看内存使用 iostat 2 5 # 查看磁盘I/O(需安装sysstat)性能分析流程:
bash复制top # 查看CPU使用率高的进程 iotop # 查看I/O高的进程(需安装) lsof -p PID # 查看进程打开的文件
7. 进阶学习路径
掌握基础命令后,可以逐步学习:
- 正则表达式:grep/sed/awk的高级用法
- Shell脚本编程:实现自动化任务
- 系统服务管理:systemd/service管理
- 网络配置:iptables/防火墙设置
- 容器技术:Docker/Podman基础
我建议新手从编写简单的自动化脚本开始,比如自动备份、日志分析等。在实际工作中,这些技能会大幅提升效率。记住,Linux学习是一个持续的过程,我工作十几年了,仍然每天都能学到新东西。
