1. 为什么学习 Linux

Linux 是一款开源的操作系统内核,广泛应用于服务器、嵌入式设备、云计算和开发环境。学习 Linux 不仅有助于理解计算机系统的运行原理,也是进入后端开发、运维、网络安全等领域的重要基础。

与 Windows 或 macOS 不同,Linux 强调命令行操作和文件权限管理,掌握这些能力可以让你更高效地完成自动化任务和远程服务器管理。

2. Linux 的常见发行版

Linux 有众多发行版,不同发行版面向不同使用场景。初学者可以从社区活跃、资料丰富的发行版入手。

  • Ubuntu:界面友好,社区庞大,适合新手入门和日常开发。
  • CentOS / Rocky Linux:稳定性强,常用于服务器环境。
  • Debian:稳定可靠,是许多发行版的基础。
  • Arch Linux:高度可定制,适合希望深入理解系统的进阶用户。

3. 安装与启动

学习 Linux 的第一步是搭建可用的实验环境。常见方式包括安装双系统、使用虚拟机或借助云服务器。

对于初学者,推荐使用虚拟机软件安装 Ubuntu,这样可以在不影响主系统的情况下自由练习。安装完成后,你会进入图形界面,但真正的学习重点在于终端。

4. 文件系统与目录结构

Linux 采用树状目录结构,所有文件和设备都挂载在根目录 / 之下。理解常用目录的作用是使用 Linux 的基础。

  • /home:普通用户的主目录。
  • /etc:系统配置文件目录。
  • /var:存放日志、缓存等动态数据。
  • /usr:系统软件和应用程序的安装位置。
  • /tmp:临时文件目录。

5. 常用基础命令

命令行是 Linux 的核心操作方式。以下命令是日常使用频率最高的基础命令。

pwd                     # 查看当前所在目录
ls                      # 列出当前目录下的文件
cd /home                # 切换目录
mkdir mydir             # 创建目录
touch file.txt          # 创建空文件
cp file.txt copy.txt    # 复制文件
mv file.txt new.txt     # 移动或重命名文件
rm file.txt             # 删除文件
cat file.txt            # 查看文件内容

6. 文件权限管理

Linux 使用权限机制控制文件和目录的访问。每个文件都有所有者、所属组和其他用户的读、写、执行权限。

使用 ls -l 可以查看文件权限详情,使用 chmod 修改权限。例如,将脚本设置为可执行:

chmod +x script.sh
./script.sh

7. 用户与进程管理

Linux 是多用户操作系统,用户管理是系统管理的重要部分。常用命令包括:

whoami                  # 查看当前用户
sudo useradd newuser    # 创建新用户
ps aux                  # 查看所有进程
top                     # 实时查看系统资源
kill 1234               # 结束指定进程

8. 网络与软件安装

联网是服务器和开发环境的基本需求。常用网络命令包括 pingcurlifconfig。软件安装则依赖发行版的包管理器。

# Ubuntu / Debian 系列
sudo apt update
sudo apt install nginx
CentOS / Rocky 系列
sudo yum install nginx

9. 学习建议与进阶方向

学习 Linux 需要坚持动手实践。建议从搭建环境开始,逐步熟悉命令、权限和脚本编写,再深入 Shell 编程、服务部署和系统调优。

进阶方向包括:Shell 脚本自动化、Linux 网络服务配置、容器化技术(Docker)、以及云计算平台上的 Linux 运维。持续练习和阅读官方文档是提升的关键。

10. 实战:从零搭建一个 Linux 开发环境

前面学习了 Linux 的基础知识,下面通过一个完整实战,在 Ubuntu 上从零搭建一套可用的开发环境。整个过程分为三步:安装常用开发工具、配置 SSH 远程登录、编写 Shell 脚本自动化部署 Nginx。

10.1 安装常用开发工具

首先更新软件源,然后安装 Git、Vim 和 VS Code。Git 用于版本管理,Vim 是终端下的轻量编辑器,VS Code 则提供图形化的开发体验。

# 更新软件源
sudo apt update
安装 Git 和 Vim
sudo apt install -y git vim
安装 VS Code(通过微软官方仓库)
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -o root -g root -m 644 packages.microsoft.gpg /etc/apt/trusted.gpg.d/
echo "deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" | sudo tee /etc/apt/sources.list.d/vscode.list
sudo apt update
sudo apt install -y code

安装完成后,可以验证各工具的版本:

git --version
vim --version
code --version

10.2 配置 SSH 远程登录

SSH 是远程管理 Linux 服务器的标准方式。先在本地生成密钥对,再把公钥复制到服务器,即可实现免密登录。

# 在本地生成密钥对(一路回车即可)
ssh-keygen -t rsa -b 4096
将公钥复制到远程服务器
ssh-copy-id user@server_ip
测试免密登录
ssh user@server_ip

出于安全考虑,建议修改 SSH 配置文件,禁止 root 直接登录并关闭密码登录:

sudo vim /etc/ssh/sshd_config

在文件中找到并修改以下两行:

PermitRootLogin no
PasswordAuthentication no

保存后重启 SSH 服务使配置生效:

sudo systemctl restart sshd

10.3 编写 Shell 脚本自动化部署 Nginx

下面编写一个 Shell 脚本,自动完成 Nginx 的安装、启动和状态检查。脚本会先判断系统是否已安装 Nginx,未安装则自动安装,最后输出服务状态。

#!/bin/bash
# deploy_nginx.sh - 自动化部署 Nginx
set -e
echo "===== 开始部署 Nginx ====="
1. 更新软件源
echo "[1/4] 更新软件源..."
sudo apt update
2. 安装 Nginx
echo "[2/4] 安装 Nginx..."
if ! command -v nginx > /dev/null; then
sudo apt install -y nginx
else
echo "Nginx 已安装,跳过安装步骤。"
fi
3. 启动并设置开机自启
echo "[3/4] 启动 Nginx 并设置开机自启..."
sudo systemctl enable nginx
sudo systemctl start nginx
4. 检查服务状态
echo "[4/4] 检查服务状态..."
if systemctl is-active --quiet nginx; then
echo "Nginx 部署成功,服务运行中。"
echo "访问地址:http://$(hostname -I | awk '{print $1}')"
else
echo "Nginx 启动失败,请检查日志:sudo journalctl -u nginx"
exit 1
fi
echo "===== 部署完成 ====="

保存脚本后,赋予执行权限并运行:

chmod +x deploy_nginx.sh
./deploy_nginx.sh

脚本执行完成后,在浏览器中访问服务器 IP 即可看到 Nginx 的默认欢迎页面。至此,一套包含开发工具、远程登录和自动化部署的 Linux 开发环境就搭建完成了。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐