🐧 Linux 学习指南
Linux 是一个强大且免费的操作系统,掌握 Linux 对于开发者来说非常重要。
为什么学习 Linux?
- 🌐 服务器主导 - 大部分服务器使用 Linux 系统
- 💻 开发友好 - 强大的命令行和开发工具
- 🔧 高度可定制 - 完全掌控你的系统
- 📚 开源免费 - 自由使用和学习
学习路线
1. 基础知识
文件系统结构
/ # 根目录
/home # 用户主目录
/etc # 配置文件
/var # 变量数据
/usr # 用户程序
/tmp # 临时文件
基本命令
# 文件操作
ls -la # 列出文件
cd /path/to/dir # 切换目录
pwd # 显示当前目录
mkdir dirname # 创建目录
rm -rf filename # 删除文件
cp source dest # 复制文件
mv source dest # 移动文件
# 文本查看
cat file # 查看文件内容
less file # 分页查看
head -n 10 file # 查看前 10 行
tail -f file # 实时查看文件末尾
# 系统信息
uname -a # 系统信息
df -h # 磁盘使用情况
free -h # 内存使用情况
top # 进程监控
2. 用户和权限
# 用户管理
sudo useradd username # 添加用户
sudo passwd username # 设置密码
sudo userdel username # 删除用户
# 权限管理
chmod 755 file # 修改文件权限
chown user:group file # 修改文件所有者
权限说明:
r(read) = 4w(write) = 2x(execute) = 1755= rwxr-xr-x (所有者全权限,其他读+执行)
3. 包管理
Ubuntu/Debian 系统:
sudo apt update # 更新包列表
sudo apt upgrade # 升级所有包
sudo apt install package # 安装软件包
sudo apt remove package # 卸载软件包
CentOS/RHEL 系统:
sudo yum update # 更新系统
sudo yum install package # 安装软件包
sudo yum remove package # 卸载软件包
4. 进程管理
ps aux # 查看所有进程
ps aux | grep name # 搜索特定进程
kill PID # 终止进程
kill -9 PID # 强制终止进程
jobs # 查看后台任务
bg # 后台运行
fg # 前台运行
5. 网络操作
ping host # 测试连接
ifconfig # 查看网络配置
ip addr # 查看 IP 地址
netstat -tuln # 查看端口监听
curl url # 下载文件
wget url # 下载文件
ssh user@host # SSH 连接
实用技巧
1. 管道和重定向
command > file # 输出重定向到文件
command >> file # 追加到文件
command1 | command2 # 管道传递
command 2>&1 # 错误输出重定向
2. 查找和搜索
find /path -name "*.txt" # 查找文件
grep "pattern" file # 在文件中搜索
grep -r "pattern" /path # 递归搜索
locate filename # 快速定位文件
3. 文本处理
sed 's/old/new/g' file # 替换文本
awk '{print $1}' file # 提取列
cut -d':' -f1 /etc/passwd # 分割文本
sort file # 排序
uniq file # 去重
学习资源推荐
在线教程:
书籍推荐:
- 《鸟哥的 Linux 私房菜》
- 《Linux 命令行与 shell 脚本编程大全》
- 《UNIX/Linux 系统管理技术手册》
实践建议
- 动手实践 - 理论结合实践,多敲命令
- 搭建环境 - 使用虚拟机或云服务器练习
- 记录笔记 - 整理常用命令和问题解决方案
- 阅读文档 - 善用
man命令查看帮助文档 - 参与社区 - 在论坛和社区交流学习
常见问题
Q: 新手应该选择哪个发行版? A: 推荐 Ubuntu 或 Linux Mint,用户友好,社区活跃。
Q: 如何快速提升命令行技能? A: 日常工作尽量使用命令行,避免依赖图形界面。
Q: 忘记命令怎么办?
A: 使用 man command 查看帮助,或者 command --help。
总结
Linux 学习是一个持续的过程,不要急于求成。从基础命令开始,循序渐进,多实践多思考。
下一步:
- 尝试编写简单的 Shell 脚本
- 学习 vim 或 emacs 编辑器
- 了解 Linux 系统管理和运维知识
加油!🚀
有问题欢迎在评论区讨论交流。