1. Linux 操作系统概述

Linux 是一款开源、免费的操作系统内核,最初由 Linus Torvalds 于 1991 年发布。它基于 Unix 的设计思想,具有多用户、多任务、稳定、安全、高效等特点,被广泛应用于服务器、嵌入式设备、超级计算机以及个人桌面环境。

Linux 的发行版众多,常见的有 Ubuntu、CentOS、Debian、Fedora、Arch Linux 等。不同发行版在包管理、默认软件和界面风格上有所差异,但底层内核和基本指令高度一致,因此掌握一套基础指令即可在不同发行版间迁移。

2. 常用目录结构

Linux 采用树状目录结构,所有文件和目录都从根目录 / 开始。以下是几个核心目录及其作用:

  • /:根目录,所有目录和文件的起点。
  • /bin:存放系统启动和用户常用的基本命令,如 lscpmv
  • /etc:存放系统配置文件,如网络配置、用户账户信息等。
  • /home:普通用户的主目录,每个用户对应一个子目录。
  • /root:超级管理员(root)的主目录。
  • /var:存放经常变化的文件,如日志、缓存、邮件等。
  • /tmp:临时文件目录,系统重启后内容可能被清空。
  • /usr:存放系统应用程序和文件,类似 Windows 的 Program Files。
  • /dev:设备文件目录,硬件设备以文件形式呈现。
  • /proc:虚拟文件系统,反映内核和进程的实时信息。

3. 基础指令

3.1 目录与文件操作

pwd                     # 显示当前所在目录
ls                      # 列出当前目录内容
ls -l                   # 以详细列表形式显示
cd /home                # 切换到指定目录
mkdir mydir             # 创建目录
rmdir mydir             # 删除空目录
touch file.txt          # 创建空文件
cp file.txt copy.txt    # 复制文件
mv file.txt new.txt     # 移动或重命名文件
rm file.txt             # 删除文件
rm -rf mydir            # 递归强制删除目录

3.2 查看与编辑文件

cat file.txt            # 查看文件全部内容
less file.txt           # 分页查看文件
head -n 10 file.txt     # 查看文件前 10 行
tail -n 10 file.txt     # 查看文件后 10 行
grep "keyword" file.txt # 在文件中搜索关键字
vi file.txt             # 使用 vi/vim 编辑文件

3.3 权限与用户管理

chmod 755 file.txt      # 修改文件权限
chown user:group file   # 修改文件属主和属组
useradd newuser         # 新建用户
passwd newuser          # 设置用户密码
su - newuser            # 切换用户
sudo command            # 以管理员权限执行命令

3.4 系统与进程管理

ps aux                 # 查看所有进程
top                    # 实时查看系统资源占用
kill -9 PID            # 强制结束指定进程
df -h                  # 查看磁盘空间使用情况
free -h                # 查看内存使用情况
uname -a               # 查看内核版本信息
reboot                 # 重启系统
shutdown -h now        # 立即关机

3.5 网络相关指令

ping www.baidu.com     # 测试网络连通性
ifconfig               # 查看网络接口信息
ip addr                # 查看 IP 地址(新版)
curl http://example.com # 发送 HTTP 请求
wget http://example.com/file.zip  # 下载文件

4. 常用软件

Linux 生态中软件丰富,以下按用途列出几类常用软件:

  • 文本编辑器:vim、nano、gedit、VS Code。
  • 压缩解压:tar、gzip、zip、unzip。
  • 开发工具:gcc、g++、make、git、Python、Node.js。
  • 服务器软件:Nginx、Apache、MySQL、Redis、Docker。
  • 系统监控:htop、iotop、netstat、nmon。
  • 办公与浏览器:LibreOffice、Firefox、Chrome。

安装软件时,不同发行版使用不同包管理器:Debian/Ubuntu 使用 apt,CentOS/RHEL 使用 yumdnf,Arch 使用 pacman。例如在 Ubuntu 上安装 git:

sudo apt update
sudo apt install git

5. 常用软件命令详解

5.1 vim 编辑器常用命令

vim 是 Linux 下最常用的文本编辑器之一,分为命令模式、插入模式和底行模式。以下是一些高频操作:

vim file.txt            # 打开或创建文件
i                       # 进入插入模式(在光标前输入)
a                       # 进入插入模式(在光标后输入)
Esc                     # 返回命令模式
:w                      # 保存文件
:q                      # 退出 vim
:wq                     # 保存并退出
:q!                     # 强制退出不保存
dd                      # 删除当前行
yy                      # 复制当前行
p                       # 粘贴
u                       # 撤销
/word                   # 向下搜索 word
:n                      # 跳转到第 n 行

5.2 tar 打包与压缩命令

tar 用于打包和解包文件,常与 gzip 或 bzip2 配合实现压缩。常用参数:-c 创建、-x 解包、-v 显示过程、-f 指定文件名、-z 使用 gzip、-j 使用 bzip2。

tar -cvf archive.tar file1 file2   # 打包文件(不压缩)
tar -xvf archive.tar               # 解包文件
tar -czvf archive.tar.gz dir/      # 打包并用 gzip 压缩
tar -xzvf archive.tar.gz           # 解压 .tar.gz 文件
tar -cjvf archive.tar.bz2 dir/     # 打包并用 bzip2 压缩
tar -xjvf archive.tar.bz2          # 解压 .tar.bz2 文件
tar -tzvf archive.tar.gz           # 查看压缩包内容列表

5.3 gzip 压缩命令

gzip 用于单个文件的压缩和解压,压缩后原文件会被替换为 .gz 文件。

gzip file.txt           # 压缩文件,生成 file.txt.gz
gzip -d file.txt.gz     # 解压文件
gzip -l file.txt.gz     # 查看压缩文件信息
gzip -r dir/            # 递归压缩目录中的文件
gunzip file.txt.gz      # 解压文件(等价于 gzip -d)

5.4 zip 与 unzip 压缩命令

zip 是跨平台常用的压缩格式,可同时压缩多个文件或目录,并保留目录结构。

zip archive.zip file1 file2        # 压缩多个文件
zip -r archive.zip dir/            # 递归压缩目录
zip -q archive.zip file.txt        # 静默压缩
unzip archive.zip                  # 解压到当前目录
unzip archive.zip -d /tmp/         # 解压到指定目录
unzip -l archive.zip               # 查看压缩包内容列表
unzip -o archive.zip               # 覆盖已存在的文件

5.6 jupyter 常用命令

Jupyter 是一个基于 Web 的交互式开发环境,支持可执行代码、文档、图表等多种内容。安装后通过以下命令启动服务:

pip install jupyter                    # 安装 Jupyter
jupyter notebook --allow-root --ip=0.0.0.0 --port=8899   # 启动服务并允许远程访问

5.7 apt 包管理命令

apt 是 Debian/Ubuntu 系列发行版的包管理器,用于安装、更新和卸载软件包。

sudo apt update                        # 更新软件源镜像
sudo apt install 软件名                 # 安装软件
sudo apt uninstall 软件名               # 卸载软件

5.8 ssh 远程连接命令

ssh 用于远程登录 Linux 服务器,默认端口为 22。Linux 作为服务器,Windows 可通过 ssh 远程连接。

sudo apt install openssh-server        # 安装 ssh 服务
service ssh start                      # 启动 ssh 服务
ssh 用户名@公网IP                       # 远程连接服务器(输入密码,首次连接会提示记录 host 信息)

除了命令行,阿里云、腾讯云等云厂商自带工作台(workbench),也可以使用 Xshell 等客户端进行连接。

5.9 scp 远程拷贝命令

scp 是基于 ssh 协议的远程拷贝工具,用于在本地与远程服务器之间传输文件,弥补本地拷贝的不足。

scp 本地文件 用户名@公网IP:远程目录      # 本地文件上传到远程
scp 用户名@公网IP:远程文件 本地目录      # 远程文件下载到本地

5.10 服务管理指令

Linux 服务通常通过 systemctl 或 service 命令进行管理,常用操作如下:

sudo systemctl start 服务名            # 启动服务
sudo systemctl stop 服务名             # 停止服务
sudo systemctl restart 服务名          # 重启服务
sudo systemctl enable 服务名           # 设置开机自启
sudo systemctl status 服务名           # 查看服务状态
service 服务名 start                   # 启动服务(旧版方式)

Nginx 是一款高性能的 Web 服务器和反向代理服务器。安装后通常通过 systemctl 或 nginx 命令进行管理。

sudo apt install nginx             # Ubuntu/Debian 安装
sudo yum install nginx             # CentOS/RHEL 安装
sudo systemctl start nginx         # 启动 Nginx
sudo systemctl stop nginx          # 停止 Nginx
sudo systemctl restart nginx       # 重启 Nginx
sudo systemctl reload nginx        # 平滑重载配置
sudo systemctl enable nginx        # 设置开机自启
sudo systemctl status nginx        # 查看运行状态
nginx -t                           # 测试配置文件语法
nginx -s reload                    # 重载配置(无需 systemctl)

5. 总结

Linux 以其开源、稳定和灵活的特性成为开发与运维领域的基石。掌握常用目录、基础指令和常用软件,是入门 Linux 的第一步。建议读者在虚拟机或云服务器上动手实践,通过反复练习逐步熟悉命令行操作,为后续深入学习系统管理、网络配置和自动化运维打下坚实基础。

Logo

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

更多推荐