1. Linux系统环境概述
作为一名从Windows转向Linux的老用户,我清楚地记得第一次打开终端时的茫然无措。与图形化界面主导的Windows不同,Linux的精髓在于命令行操作。经过15年的运维工作,我可以负责任地说:掌握Linux环境与基础命令,是打开开源世界大门的金钥匙。
Linux系统环境主要由内核、Shell和应用程序三部分组成。内核负责硬件资源管理,Shell作为用户与内核交互的接口,而各种命令实质上是Shell调用的应用程序。这种模块化设计使得Linux既稳定又灵活——我的生产服务器曾连续运行3年无需重启,这在Windows环境下简直难以想象。
提示:初学者常见误区是试图在Linux中寻找Windows的影子。建议从一开始就接受命令行操作思维,这能大幅降低学习曲线。
当前主流的Linux发行版可分为几个家族:
- RedHat系(CentOS/RHEL/Fedora):企业级稳定性首选
- Debian系(Ubuntu/Debian):桌面与开发者友好
- Arch系(Manjaro):滚动更新适合进阶用户
- 国产化发行版(统信UOS/麒麟):政务领域常见
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 文件系统与目录结构
2.1 Linux与Windows文件系统差异
第一次查看Linux目录时,那种"我的电脑在哪"的困惑至今难忘。与Windows的盘符划分不同,Linux采用单根目录结构:
code复制/ # 根目录
├── bin # 基础命令程序
├── etc # 系统配置文件
├── home # 用户主目录
├── usr # 用户程序资源
└── var # 可变数据(日志等)
这种设计带来两个重要特性:
- 路径分隔符使用正斜杠(/)而非反斜杠(\)
- 没有盘符概念,所有设备挂载到目录
2.2 必须掌握的目录操作命令
bash复制# 查看当前路径
pwd
# 切换目录(注意空格位置)
cd /usr/local
cd .. # 返回上级
cd ~ # 返回用户主目录
# 列出目录内容(常用组合)
ls -alh # 显示所有文件(含隐藏文件)、长格式、人类可读大小
# 创建/删除目录
mkdir project/src # 创建多级目录需要-p参数
rmdir empty_dir # 只能删除空目录
注意:Linux严格区分大小写,"File"和"file"是两个不同文件。这是我早期最常犯的错误之一。
3. 文件操作核心命令
3.1 文件基础操作四件套
bash复制# 查看文件内容
cat config.yml # 全部内容
head -n 20 log.txt # 前20行
tail -f access.log # 实时追踪日志更新
# 文件复制/移动(重命名)
cp file.txt backup/ # 基本复制
cp -r dir/ backup/ # 递归复制目录
mv old.txt new.txt # 重命名
mv file.txt /tmp/ # 移动文件
# 删除文件(谨慎使用!)
rm temp.log # 普通删除
rm -rf dangerous/ # 强制递归删除(无法恢复)
3.2 文件权限管理
Linux的权限系统曾让我头疼不已,直到理解了这个模型:
code复制-rw-r--r-- 1 user group 1024 Jun 1 10:00 file.txt
↑ 权限位 ↑所有者 ↑所属组
权限修改命令:
bash复制chmod 755 script.sh # 数字模式:7=rwx,5=r-x
chmod +x install.sh # 添加执行权限
chown user:group file # 修改所有者
经验:生产环境中,给日志文件设置
chmod 644,脚本文件设置755是最佳实践。
4. 系统监控与进程管理
4.1 资源监控三板斧
bash复制top # 动态进程监控(按q退出)
htop # 增强版top(需安装)
free -h # 内存使用情况(-h人性化显示)
df -h # 磁盘空间检查
4.2 进程控制命令
bash复制ps aux | grep nginx # 查找nginx进程
kill -9 1234 # 强制终止PID为1234的进程
systemctl start httpd # 系统服务管理(新系统)
service httpd start # 旧系统服务管理
我曾遇到服务器CPU跑满的情况,通过top发现是某个Java进程异常,用kill -9终止后系统恢复正常。这种问题在Windows下通常只能重启解决。
5. 网络相关命令
5.1 网络配置检查
bash复制ifconfig # 查看IP地址(新系统用ip addr)
ping baidu.com # 测试网络连通性
netstat -tulnp # 查看端口监听情况
ss -tulnp # netstat的现代替代
5.2 远程连接工具
bash复制ssh user@192.168.1.100 # 基本SSH连接
scp file.txt user@host:/path/ # 安全复制
rsync -avz src/ user@host:dest/ # 增量同步
避坑指南:使用SSH密钥认证比密码更安全。生成密钥对用
ssh-keygen,拷贝公钥到服务器用ssh-copy-id。
6. 文本处理神器
6.1 grep与正则表达式
bash复制grep "error" /var/log/syslog # 基本搜索
grep -r "TODO" ./src/ # 递归目录搜索
egrep "[0-9]{3}-[0-9]{4}" data # 扩展正则匹配电话号码
6.2 sed流编辑器
bash复制sed 's/foo/bar/g' file.txt # 替换所有foo为bar
sed -i.bak 's/old/new/' config # 直接修改文件(保留备份)
6.3 awk数据处理
bash复制awk '{print $1}' access.log # 打印第一列
awk -F: '{print $1}' /etc/passwd # 指定冒号为分隔符
这些命令组合起来威力巨大。比如统计Nginx日志中每个IP的访问次数:
bash复制awk '{print $1}' access.log | sort | uniq -c | sort -nr
7. 实用技巧与排错
7.1 历史命令优化
bash复制history # 查看命令历史
!100 # 执行历史中第100条命令
ctrl+r # 反向搜索历史命令
echo "alias ll='ls -alh'" >> ~/.bashrc # 创建常用别名
7.2 常见问题排查
问题1:命令找不到
bash复制which python # 查看命令路径
echo $PATH # 检查PATH环境变量
问题2:权限不足
bash复制sudo !! # 用sudo执行上条命令
visudo # 安全编辑sudo配置
问题3:磁盘空间不足
bash复制du -sh * # 查看当前目录占用空间
find / -size +100M # 查找大于100MB的文件
这些年来,我总结出一个黄金法则:遇到问题先看日志。大多数服务的日志位于/var/log/目录下,用tail -f实时查看往往能快速定位问题根源。
8. 国产化环境特别注意事项
随着国产化替代推进,银河麒麟、统信UOS等系统逐渐普及。这些系统基于Linux但有其特殊性:
- 软件安装通常使用
apt/yum的变种命令,如麒麟的kylin-software-center - 部分硬件驱动需要额外安装
- 安全策略更严格,可能需要配置SELinux
例如在银河麒麟上安装软件:
bash复制sudo kylin-software-center --install package
对于从Windows迁移过来的用户,建议先用虚拟机熟悉基础命令,再逐步过渡到生产环境。我带的许多新人通过这种方式,通常在2-3周后就能熟练完成日常运维工作。
