Linux操作系统入门:从安装到基础命令全指南
1. Linux操作系统概述
Linux是一种开源的类Unix操作系统内核,由林纳斯·托瓦兹在1991年首次发布。作为自由和开放源代码软件的最著名代表,Linux内核被广泛应用于服务器、超级计算机、移动设备和嵌入式系统等领域。
提示:Linux严格来说指的是内核,而我们常说的"Linux系统"通常是包含内核和各种GNU工具的整体发行版。
Linux系统的核心优势在于其开源特性、稳定性和安全性。与商业操作系统不同,Linux允许用户自由查看、修改和分发源代码,这为系统定制和问题排查提供了极大便利。在企业级应用中,Linux服务器因其出色的稳定性和安全性而备受青睐,据统计,全球超过90%的云基础设施和75%的网页服务器都运行在Linux系统上。
2. Linux基础环境搭建
2.1 选择适合的Linux发行版
对于初学者来说,选择合适的Linux发行版至关重要。主流发行版可分为以下几类:
新手友好型:
- Ubuntu:拥有庞大的社区支持和丰富的软件库
- Linux Mint:基于Ubuntu,界面更接近Windows
- elementary OS:以美观著称,适合从macOS转来的用户
服务器专用型:
- CentOS(已转向CentOS Stream)
- Debian
- Ubuntu Server
高级用户型:
- Arch Linux
- Gentoo
- Slackware
注意:对于完全的新手,建议从Ubuntu或Linux Mint开始,它们的硬件兼容性好,安装过程简单,且有大量中文文档支持。
2.2 安装Linux系统
Linux系统的安装主要有以下几种方式:
物理机直接安装:
- 制作启动U盘(推荐使用Rufus或BalenaEtcher工具)
- 调整BIOS/UEFI设置
- 按照图形化向导完成安装
虚拟机安装:
- 使用VirtualBox或VMware Workstation
- 分配适当的资源(至少2GB内存,20GB存储空间)
- 启用虚拟化技术支持
Windows子系统(WSL):
- 适用于Windows 10/11用户
- 通过Microsoft Store安装
- 适合开发环境但不适合学习完整Linux系统
安装过程中的关键注意事项:
- 确保网络连接稳定
- 对于双系统安装,注意分区操作,避免误删原有系统
- 记录安装过程中设置的用户名和密码
- 建议选择英文环境安装,避免后续开发中出现编码问题
3. Linux基础命令与文件系统
3.1 Linux文件系统结构
Linux采用单一的树状文件系统结构,所有设备、分区和网络资源都挂载在这个结构下。主要目录及其用途如下:
| 目录 | 用途 |
|---|---|
| / | 根目录,所有目录的起点 |
| /bin | 基本命令二进制文件 |
| /etc | 系统配置文件 |
| /home | 用户主目录 |
| /var | 可变数据(日志、邮件等) |
| /usr | 用户程序和数据 |
| /tmp | 临时文件 |
| /dev | 设备文件 |
| /proc | 进程和内核信息 |
3.2 基础命令操作
掌握以下基础命令是使用Linux的第一步:
文件操作:
ls -lha # 详细列出目录内容 cp -r dir1 dir2 # 递归复制目录 mv file1 file2 # 移动或重命名文件 rm -i file # 交互式删除文件目录操作:
pwd # 显示当前工作目录 mkdir -p dir1/dir2 # 创建多级目录 cd ~ # 返回用户主目录文件查看:
cat file # 显示文件内容 less file # 分页查看文件 head -n 5 file # 显示文件前5行 tail -f logfile # 实时查看日志文件权限管理:
chmod 755 script.sh # 设置文件权限 chown user:group file # 更改文件所有者
实操技巧:使用
man 命令名可以查看任何命令的详细手册,例如man ls会显示ls命令的所有选项和用法。
4. Linux系统管理基础
4.1 用户和组管理
Linux是多用户系统,良好的用户管理习惯至关重要:
用户管理命令:
sudo adduser newuser # 添加新用户 sudo passwd username # 修改用户密码 sudo usermod -aG groupname username # 将用户添加到附加组 sudo userdel -r username # 删除用户及其主目录权限管理:
- 理解
rwx权限(读、写、执行) - 掌握数字表示法(755=rwxr-xr-x)
- 特殊权限(SUID、SGID、Sticky bit)
- 理解
sudo配置:
- 通过
/etc/sudoers文件配置 - 使用
visudo命令安全编辑 - 示例:
username ALL=(ALL:ALL) ALL
- 通过
4.2 进程管理
Linux提供了强大的进程管理工具:
基本命令:
ps aux # 查看所有运行中的进程 top # 动态查看系统进程 htop # 增强版的top(需安装) kill -9 PID # 强制终止进程服务管理(systemd系统):
systemctl start service # 启动服务 systemctl stop service # 停止服务 systemctl enable service # 设置开机启动 systemctl status service # 查看服务状态后台任务:
command & # 在后台运行命令 jobs # 查看后台任务 fg %1 # 将任务1调回前台
4.3 软件包管理
不同发行版使用不同的包管理系统:
Debian/Ubuntu系(APT):
sudo apt update # 更新软件包列表 sudo apt upgrade # 升级所有已安装软件包 sudo apt install package # 安装软件包 sudo apt remove package # 移除软件包RHEL/CentOS系(YUM/DNF):
sudo yum update # 更新系统 sudo yum install package # 安装软件包 sudo yum remove package # 移除软件包Arch Linux系(Pacman):
sudo pacman -Syu # 同步并更新系统 sudo pacman -S package # 安装软件包 sudo pacman -R package # 移除软件包
常见问题:如果遇到依赖问题,可以尝试
sudo apt --fix-broken install(APT)或sudo yum autoremove(YUM)来解决。
5. Linux网络配置与远程连接
5.1 基础网络配置
查看网络信息:
ip addr show # 查看IP地址 ip route # 查看路由表 ping example.com # 测试网络连通性网络配置工具:
nmtui:文本界面网络配置工具nmcli:命令行网络管理工具- 直接编辑
/etc/network/interfaces(Debian系)
DNS配置:
- 修改
/etc/resolv.conf(注意可能被覆盖) - 永久配置在
/etc/systemd/resolved.conf或网络管理工具中
- 修改
5.2 SSH远程连接
SSH是管理Linux服务器的标准协议:
基本用法:
ssh username@hostname # 连接远程主机 ssh -p 2222 user@host # 指定非标准端口密钥认证(更安全的方式):
ssh-keygen -t rsa -b 4096 # 生成密钥对 ssh-copy-id user@host # 将公钥复制到远程主机SSH配置优化:
- 修改
/etc/ssh/sshd_config提高安全性 - 禁用root登录
- 使用密钥认证替代密码
- 更改默认端口
- 修改
5.3 防火墙管理
Linux系统通常使用iptables或firewalld作为防火墙:
iptables基础:
sudo iptables -L # 列出当前规则 sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 允许SSHfirewalld(更易用):
sudo firewall-cmd --permanent --add-service=http # 永久允许HTTP sudo firewall-cmd --reload # 重载配置UFW(Ubuntu简单防火墙):
sudo ufw allow 22/tcp # 允许SSH sudo ufw enable # 启用防火墙
6. Linux日常使用技巧
6.1 提高效率的技巧
Shell快捷键:
- Ctrl+C:终止当前命令
- Ctrl+Z:暂停当前命令(可用fg恢复)
- Ctrl+D:结束输入或退出会话
- Ctrl+R:反向搜索命令历史
命令组合:
command1 && command2 # command1成功才执行command2 command1 || command2 # command1失败才执行command2 command1 | command2 # 管道,将command1输出作为command2输入实用小工具:
tree:以树状图列出目录ncdu:交互式磁盘使用分析器tmux或screen:终端复用器
6.2 常见问题排查
磁盘空间不足:
df -h # 查看磁盘使用情况 du -sh * # 查看当前目录各文件/目录大小 journalctl --vacuum-size=200M # 清理journal日志系统性能分析:
free -h # 查看内存使用 vmstat 1 # 查看系统整体状态 iostat -x 1 # 查看磁盘I/O服务启动失败:
sudo systemctl status service # 查看服务状态 journalctl -u service -n 50 # 查看服务日志
6.3 学习资源推荐
在线文档:
- Linux man pages(
man command) - TLDP(The Linux Documentation Project)
- Arch Wiki(适用于所有发行版的高质量文档)
- Linux man pages(
书籍推荐:
- 《鸟哥的Linux私房菜》
- 《Linux命令行与shell脚本编程大全》
- 《UNIX环境高级编程》
练习平台:
- OverTheWire Bandit(命令行游戏)
- Linux Journey(交互式学习网站)
- 自己搭建虚拟机实验环境
个人经验:学习Linux最好的方法就是实际使用它。可以尝试将日常使用的电脑换成Linux系统,或者在虚拟机中搭建一个完整的LAMP开发环境。遇到问题时,学会阅读错误信息和查阅文档比记住所有命令更重要。
