Linux操作系统入门到精通

对于许多刚刚接触Linux的初学者来说,黑底白字的命令行界面可能显得有些"朴素",但一旦你熟悉了它的逻辑,就会发现其强大的功能让人上头。前期学习可能像爬山一样有些吃力,但跨过门槛后,你将体验到如滑翔般顺畅的掌控感。

本文从零开始,系统性地带你完成Linux的学习之旅:从系统安装与环境配置,到必备命令详解,再到磁盘管理实战和软件安装配置,涵盖Linux运维与开发中最核心的知识体系。无论你是为了未来的服务器部署、云计算、大数据开发,还是为了理解操作系统的底层运转,这都将是你打开通向高级工程师大门的完整指南。

一、Linux系统安装与环境配置

1.1 Linux系统概述

Linux系统简介

Linux是一套免费使用和自由传播的类UNIX操作系统。它基于POSIX和UNIX标准,是一个支持多用户、多任务、多线程和多CPU的强大操作系统。POSIX标准的引入,意在获得源代码级别的软件可移植性。

如今,Linux的应用范围极其广泛。全球Top500超级计算机100%运行Linux,超过七成的服务器、几乎所有云平台和超级计算中心也都基于Linux。此外,它在Web网站平台、大数据、虚拟化、Android(以Linux内核为核心衍生)、物联网以及人工智能等领域也扮演着不可或缺的角色。

Linux系统发行版本

Linux拥有众多的发行版本,初学者在选择时可能会眼花缭乱。以下是几个主流版本的特点:

  • Red Hat Linux:商业版,稳定性极高,广泛应用于企业级服务器,但需要付费订阅。
  • CentOS:基于Red Hat源码重新编译的免费版本,是企业服务器的主流选择(注:传统CentOS已停止维护,现多推荐使用Rocky Linux等替代)。
  • Ubuntu:基于Debian,拥有庞大的社区支持,图形界面友好,非常适合桌面端和初学者入门。
  • SUSE Linux:在欧洲市场占有较高份额,以高稳定性和优秀的企业级管理工具著称。
  • Fedora Linux:Red Hat的社区测试版,包含最新的技术和软件包,适合开发者尝鲜。

1.2 虚拟机安装

虚拟化实施

虚拟化技术允许我们在单个物理服务器上运行多个虚拟机(VM)。对于学习Linux而言,VMware虚拟机就像是一个"虚拟PC"软件,它可以在你的Windows系统上模拟出一台独立的计算机,让你在不影响主机的情况下安全地练习。

虚拟化软件安装

  1. 前往VMware官方网站下载VMware Workstation安装包。
  2. 运行安装程序,按照向导提示完成安装。
  3. 安装完成后,启动VMware并根据需要输入许可证密钥(或使用免费个人版)。

1.3 Linux系统安装

创建虚拟机

  1. 打开VMware,点击"创建新的虚拟机"。
  2. 选择"典型(推荐)"配置。
  3. 选择"稍后安装操作系统",以便我们先自定义硬件配置。
  4. 客户机操作系统选择"Linux",版本选择对应的CentOS或Ubuntu。
  5. 为虚拟机命名并指定存储位置。
  6. 指定磁盘容量(建议初学者分配40GB以上,并选择"将虚拟磁盘拆分为多个文件")。

Linux系统安装

  1. 在虚拟机设置中,装载下载好的Linux ISO镜像文件。
  2. 启动虚拟机,进入安装界面,选择安装语言。
  3. 磁盘分区(关键步骤):
    • /boot 分区:用于存放引导文件,建议分配 500MB - 1GB。
    • swap 分区:交换分区,建议与物理内存大小相当或为其1.5倍。
    • / 根分区:将剩余所有空间分配给根目录。
  4. 选择正确的时区(如 Asia/Shanghai)。
  5. 软件选择中,建议选择"最小安装(Minimal Install)"以保持系统纯净。
  6. 设置Root用户密码,等待安装完成并重启。

网络配置

虚拟机网络主要有桥接和NAT两种组网方式。桥接模式让虚拟机直接接入物理网络,拥有独立IP;NAT模式则通过宿主机进行网络地址转换,配置更简单。以下是NAT网络配置步骤:

  1. NAT路由器配置:在VMware的"虚拟网络编辑器"中配置NAT网关和子网掩码。
  2. 配置宿主机IP:确保Windows宿主机的VMnet8网卡IP与NAT网段一致。
  3. 关闭防火墙:为避免网络拦截,可临时关闭宿主机和Linux的防火墙。
  4. 配置Linux网卡参数:编辑网卡配置文件,设置静态IP、网关和DNS。
  5. 重启网卡:使配置生效。
systemctl restart network
# 或者在较新的系统中使用
nmcli connection reload && nmcli connection up <网卡名称>
  1. 检查网络:使用 ping 命令测试连通性。
ping www.baidu.com
  1. 网络时间同步:安装并启动chrony或ntpd服务,确保系统时间准确。
  2. 修改主机名:使用 hostnamectl set-hostname <新主机名> 进行永久修改。

1.4 远程管理工具安装

虽然可以直接在VMware中操作,但使用专业的远程管理工具体验会更好。

PowerShell

Windows 10/11自带的PowerShell已内置OpenSSH客户端。你可以直接在终端中使用以下命令连接Linux:

ssh root@<Linux虚拟机IP地址>

MobaXterm

MobaXterm是一款功能强大的全能型远程管理工具。它不仅支持SSH、Telnet,还内置了SFTP、RDP和VNC等协议,并自带X11转发和SFTP文件传输面板,是Linux运维和开发的利器。

1.5 资源库优化

CentOS默认的官方源在国内访问较慢,建议更换为国内镜像源(如阿里云、清华大学等)。

  1. 备份并下载新的repo文件
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo <国内镜像源URL>/CentOS-Base.repo
  1. 生成缓存
yum makecache
  1. 安装常用基础软件
yum install -y wget vim

二、必备命令详解

2.1 目录与文件操作命令

cd:目录切换

cd命令用于切换当前工作目录,支持绝对路径和相对路径。

# 使用绝对路径
cd /home/user/documents

# 使用相对路径
cd ../projects

# 返回上一次所在目录
cd -

pwd:显示当前目录路径

pwd
# 输出示例:/home/user/documents

ls:浏览目录文件

ls是最常用的目录查看命令,常用参数如下:

ls -a    # 显示所有文件(包括隐藏文件)
ls -l    # 长格式显示详细信息
ls -la   # 结合以上两个参数

ls -l 输出字段详解:

字段 说明
-rwxr-xr-- 文件类型与权限(第1位为类型,后9位为权限)
1 硬链接数
user 文件属主
group 文件属组
4096 文件大小(字节)
Jun 10 14:30 最后修改时间
script.sh 文件名

mkdir:创建目录

mkdir mydir           # 创建单个目录
mkdir -p a/b/c        # 递归创建多级目录
mkdir -v newdir       # 显示创建过程信息

rm:删除文件

rm file.txt           # 删除文件
rm -f file.txt        # 强制删除,不提示
rm -r mydir           # 递归删除目录及其内容
rm -rf mydir          # 强制递归删除(谨慎使用!)

touch:创建文件或修改时间戳

touch newfile.txt     # 创建空文件
touch existing.txt    # 更新已有文件的访问和修改时间

cp:复制文件

cp src.txt dst.txt        # 复制文件
cp -r srcdir dstdir       # 递归复制目录
cp -a srcdir dstdir       # 归档复制(保留权限、时间戳、链接等)
cp -p src.txt dst.txt     # 保留文件属性

mv:移动或重命名文件

mv oldname.txt newname.txt    # 重命名
mv file.txt /target/dir/      # 移动文件

echo:打印或回显内容

echo "Hello Linux"            # 输出字符串
echo "Line1" > file.txt       # 覆盖写入文件
echo "Line2" >> file.txt      # 追加写入文件

cat:连接并打印文件内容

cat file.txt              # 显示全部内容
cat -n file.txt           # 显示行号(包括空白行)
cat -b file.txt           # 显示行号(空白行不编号)

more / less:分页浏览

more file.txt             # 按空格翻页,q退出
less file.txt             # 支持上下翻页、搜索(/pattern)

head / tail:查看文件首尾

head -n 20 file.txt       # 查看前20行
tail -n 20 file.txt       # 查看后20行
tail -f app.log           # 实时追踪日志输出

find:查找文件

find /home -name "*.txt"              # 按名称查找
find /var -type f -size +100M         # 查找大于100M的文件
find /tmp -mtime -7 -user root        # 查找7天内修改过的root文件

ln:创建链接

ln -s /path/to/target linkname    # 创建软链接(类似快捷方式)
ln /path/to/target hardlink       # 创建硬链接(共享inode)

软链接 vs 硬链接: 软链接是一个独立文件,指向目标路径,目标删除后链接失效;硬链接与原文件共享同一inode,删除任一不影响另一个,但不能跨文件系统。

zip / unzip:压缩与解压缩

zip -r archive.zip dir/       # 压缩目录
unzip archive.zip             # 解压缩

2.2 重定向与管道命令

标准重定向

echo "data" > file.txt        # 覆盖写入
echo "more" >> file.txt       # 追加写入
sort < input.txt              # 从文件读取输入

特殊重定向

command 2> error.log          # 仅重定向标准错误
command > out.log 2>&1        # 标准输出和错误合并到同一文件

管道命令

管道 | 将前一个命令的输出作为后一个命令的输入:

cat access.log | grep "ERROR" | wc -l     # 统计ERROR行数
ps aux | grep nginx                       # 查找nginx进程

2.3 Linux命令四剑客

find:文件查找

find /etc -name "nginx.conf" -type f
find /home -size +50M -mtime -3

sed:流编辑器

sed 's/old/new/g' file.txt                # 替换(不修改原文件)
sed -i 's/old/new/g' file.txt             # 直接修改原文件
sed -n '5,10p' file.txt                   # 打印第5到10行
sed '/pattern/d' file.txt                 # 删除匹配行
sed '2a\New Line' file.txt                # 在第2行后追加
sed '2i\New Line' file.txt                # 在第2行前插入

awk:文本处理利器

awk '{print $1, $3}' file.txt             # 打印第1和第3列
awk -F':' '{print $1}' /etc/passwd        # 以冒号分隔,打印用户名
awk 'NR==5' file.txt                      # 打印第5行
awk '{sum+=$2} END {print sum}' data.txt  # 求第2列总和
awk '{gsub(/old/, "new"); print}' file.txt  # 替换并输出

awk常用内置变量:

  • FS:字段分隔符
  • NR:当前行号
  • NF:当前行字段数
  • $0:整行内容
  • $1~$n:第1到第n个字段

grep:文本搜索

grep "error" app.log              # 搜索包含error的行
grep -i "error" app.log           # 忽略大小写
grep -c "error" app.log           # 统计匹配行数
grep -n "error" app.log           # 显示行号
grep -v "debug" app.log           # 反向匹配(排除debug)
grep -r "TODO" ./src/             # 递归搜索目录

2.4 用户操作命令

用户组管理

groupadd devteam              # 创建用户组
groupmod -n newname oldname   # 修改组名
groupdel devteam              # 删除用户组

用户管理

useradd -m -s /bin/bash newuser     # 创建用户并指定shell
usermod -aG devteam newuser         # 将用户追加到devteam组
userdel -r olduser                  # 删除用户及其家目录

/etc/passwd 文件9列详解:

username:x:UID:GID:comment:home_directory:shell

说明
1 用户名
2 密码占位符(x表示密码存储在/etc/shadow)
3 用户ID(UID)
4 主组ID(GID)
5 用户描述信息
6 家目录路径
7 登录Shell

passwd:密码管理

passwd username         # 修改指定用户密码
passwd -d username      # 删除密码(设为空)
passwd -l username      # 锁定账户

id:查看用户信息

id username
# 输出示例:uid=1001(username) gid=1001(username) groups=1001(username),27(sudo)

gpasswd:管理组成员

gpasswd -a username groupname     # 将用户添加到组
gpasswd -d username groupname     # 将用户从组中移除

su / sudo:权限切换

su - username             # 完全切换到目标用户环境
sudo command              # 以root权限执行命令

提示: 使用 sudo 的用户需加入 wheel 组(CentOS/RHEL)或 sudo 组(Ubuntu/Debian)。

2.5 文件访问权限命令

chown:修改文件属主

chown user:group file.txt       # 同时修改属主和属组
chown -R user:group dir/        # 递归修改目录

chgrp:修改文件属组

chgrp devteam file.txt

chmod:修改权限

权限数字表示法:r=4, w=2, x=1

chmod 755 script.sh     # rwxr-xr-x(属主全权限,其他读+执行)
chmod 644 config.txt    # rw-r--r--(属主读写,其他只读)
chmod 770 private/      # rwxrwx---(属主和属组全权限,其他无权限)
chmod -R 600 .ssh/      # 递归设置SSH目录权限

2.6 进程管理命令

ps:查看进程

ps -ef                  # 全格式显示所有进程
ps aux                  # BSD风格详细进程列表
ps aux | grep java      # 查找Java进程

pgrep:按名称查找进程

pgrep nginx             # 返回nginx进程的PID
pgrep -u username       # 查找指定用户的进程

后台运行与持久化

./script.sh &           # 后台执行
nohup ./script.sh &     # 关闭终端后仍持续运行,输出写入nohup.out

kill:终止进程

kill PID                # 发送SIGTERM优雅终止
kill -9 PID             # 发送SIGKILL强制终止

2.7 网络管理命令

ping:测试连通性

ping -c 4 8.8.8.8       # 发送4个ICMP包测试网络

ifconfig:查看网卡信息

ifconfig                # 显示所有网络接口状态
ifconfig eth0           # 查看指定网卡信息

注意: 新版Linux推荐使用 ip addr 替代 ifconfig。

ssh:远程登录

ssh user@192.168.1.100              # 默认22端口登录
ssh -p 2222 user@192.168.1.100      # 指定端口登录

scp:远程复制

scp file.txt user@host:/path/       # 上传文件
scp user@host:/path/file.txt ./     # 下载文件
scp -r dir/ user@host:/path/        # 递归复制目录

netstat:网络状态查看

netstat -ntlp             # 显示TCP监听端口及对应进程
netstat -an               # 显示所有连接和监听状态

提示: 新版Linux推荐使用 ss -ntlp 替代 netstat,性能更优。

三、磁盘管理实战

3.1 磁盘分区

3.1.1 为什么要分区

新买的硬盘并不能直接拿来存文件,它必须经过三个步骤才能投入使用:

  1. 低级格式化:划分磁道和扇区(通常由厂商完成)。
  2. 分区:将物理硬盘划分为多个逻辑区域。
  3. 高级格式化:创建文件系统,让操作系统能够识别和管理文件。

在Linux中,我们通常将物理硬盘称为物理盘,例如 /dev/sda/dev/sdb/dev/sdc 等。而分区则被称为逻辑盘,命名规则是在物理盘名称后加上数字,例如 /dev/sda1/dev/sda2/dev/sdb1 等。

3.1.2 分区类型

Linux下的分区类型主要分为以下几种:

  • 主分区(Primary):必须存在的分区,可以直接用来安装操作系统。
  • 扩展分区(Extended):除主分区外,利用剩余空间建立的分区。一个硬盘最多只能有一个扩展分区,且它不能直接使用,必须进一步划分。
  • 逻辑分区(Logical):从扩展分区中划分出来的子分区,通常用于存储数据。

此外,Linux还有两个特殊分区:

  • /boot 分区:存放引导加载程序(如GRUB)和内核镜像,是系统启动的关键。
  • Swap 分区:虚拟内存空间,通常建议设置为物理内存的2倍,用于在物理内存不足时提供缓冲。

3.1.3 lsblk 命令

lsblk是查看磁盘和分区信息的利器,它以树状图显示设备的层次结构。

# 查看磁盘和分区的层次结构
lsblk

# 列出文件系统信息(包括UUID、FSTYPE等)
lsblk -f

3.1.4 df 命令

df命令用于查看文件系统的磁盘使用情况。

# 以人类可读的格式(如GB、MB)显示
df -h

# 指定以GB为单位显示
df -BG

3.1.5 fdisk 命令

fdisk是Linux下最常用的交互式分区工具。

主要操作参数:

  • m:显示帮助菜单
  • p:查看当前分区表
  • n:新建分区(p=主分区,e=扩展分区,l=逻辑分区)
  • d:删除分区
  • t:改变分区类型
  • g:创建GPT分区表
  • w:保存并退出
  • q:不保存退出

实操示例:将200G的 /dev/sdc 进行分区

需求:主分区 sdc1(20G)、扩展分区 sdc2(176G)、逻辑分区 sdc5(100G)、sdc6(76G)、交换分区 sdc3(4G)。

fdisk /dev/sdc

进入交互模式后,依次执行:

# 新建主分区 sdc1 (20G)
n -> p -> 1 -> 回车(默认起始) -> +20G

# 新建扩展分区 sdc2 (176G,使用剩余空间)
n -> e -> 2 -> 回车(默认起始) -> 回车(默认结束)

# 新建逻辑分区 sdc5 (100G)
n -> l -> 回车(默认起始) -> +100G

# 新建逻辑分区 sdc6 (76G)
n -> l -> 回车(默认起始) -> +76G

# 新建交换分区 sdc3 (4G)
n -> p -> 3 -> 回车(默认起始) -> +4G

# 将sdc3类型改为Linux swap
t -> 3 -> 82

# 保存退出
w

3.2 磁盘格式化

3.2.1 文件系统

文件系统的作用是合理规划硬盘空间,管理文件分配表(FAT)。不同操作系统使用不同的文件系统:

  • Windows:FAT16、FAT32、NTFS
  • Linux:Ext2、Ext3、Ext4、XFS

XFS文件系统特点:全64-bit架构,支持上百万TB的分区大小,对大文件和大分区支持极佳,读写速度快,是现代Linux服务器的主流选择。

3.2.2 mkfs 命令

使用 mkfs 对分区进行格式化,创建文件系统。

# 将 sdc1 格式化为 XFS 文件系统
mkfs.xfs /dev/sdc1

3.2.3 mkswap 命令

设置交换分区并激活。

# 格式化交换分区
mkswap /dev/sdc3

# 激活交换分区
swapon /dev/sdc3

3.2.4 blkid 命令

查询块设备的文件系统类型、卷标、UUID等关键信息,在配置永久挂载时非常有用。

blkid /dev/sdc1

3.3 磁盘挂载

3.3.1 磁盘挂载简介

挂载(Mounting)是将存储设备上的文件系统与Linux目录树关联的过程。与Windows自动分配盘符(如C:、D:)不同,Linux需要将设备挂载到一个已有的目录(挂载点)上,用户才能访问其中的文件。

3.3.2 mount 命令

mount用于临时挂载文件系统。

# 基本语法
mount [选项] 设备名 目录

# 只读挂载
mount -o ro /dev/sdc1 /mnt/data

# 可读写挂载
mount -o rw /dev/sdc1 /mnt/data

# 挂载 /etc/fstab 中定义的所有设备
mount -a

3.3.3 umount 命令

卸除已挂载的文件系统。

# 通过挂载点卸载
umount /mnt/cdrom

# 通过设备名卸载
umount /dev/sdc1

3.3.4 永久挂载

临时挂载在重启后会失效,要实现开机自动挂载,有两种方式:

方式一:/etc/rc.local

在文件末尾添加挂载语句,简单但不推荐用于生产环境。

方式二:/etc/fstab(推荐)

编辑 /etc/fstab 文件,格式如下:

# 设备名         挂载点       文件系统类型  挂载选项    dump  fsck
/dev/sdc1       /mnt/data    xfs          defaults    0     0
UUID=xxxx-xxxx  /mnt/backup  ext4         rw,noatime  0     2

提示: 建议使用UUID而非设备名,因为设备名可能在重启后发生变化。使用 blkid 命令可获取UUID。

四、软件安装与配置

4.1 系统安装软件默认目录

Linux遵循"一切皆文件"的理念,软件的各个组成部分(如可执行文件、配置文件、库文件等)通常会被分散存放在不同的目录中。了解这些目录是管理Linux软件的第一步。

4.1.1 用户软件安装目录

  • /opt 目录:opt是optional的缩写。这个目录主要用于给主机额外安装大型软件,比如商业软件、第三方大型应用等,通常解压后直接放在该目录下。

4.1.2 系统软件安装目录

  • /usr 目录:全称为unix shared resources,是系统级的核心目录,类似于Windows的Program Files。它包含以下重要子目录:
    • /usr/src:系统源码存放目录。
    • /usr/local:用户级程序目录,通常用于存放用户自己编译安装的软件。
    • /usr/bin:存放普通用户可执行的命令。
    • /usr/sbin:存放需要root权限的系统管理命令。
    • /usr/lib:存放软件运行所需的函数库。
    • /usr/share/doc:存放软件的说明文档。
    • /usr/share/man:存放帮助手册文件。

4.1.3 配置文件安装目录

  • /etc 目录:这是Linux系统的配置中心。绝大多数软件的配置文件都会存放在这里,常见的包括 passwd(用户信息)、group(用户组)、hosts(主机名解析)、resolv.conf(DNS配置)等。

4.1.4 which 命令

which命令用于查找并显示给定命令的绝对路径,非常适合用来确认当前使用的是哪个版本的命令:

which python

4.1.5 whereis 命令

whereis命令可以查找命令的二进制文件、源码文件和手册信息,比which更全面:

# 查找命令的所有相关信息
whereis nginx

# 只查找二进制文件
whereis -b nginx

# 只查找说明文档
whereis -m nginx

4.2 软件下载工具

在Linux中,我们经常需要从网络上下载源码包或安装包,以下两个工具必不可少。

4.2.1 wget 命令

wget是一个强大的命令行下载工具,支持从URL下载文件:

# 基础下载
wget http://example.com/file.tar.gz

# -O 指定下载后的文件名
wget -O my_file.tar.gz http://example.com/file.tar.gz

# -P 指定下载保存的目录
wget -P /opt/downloads http://example.com/file.tar.gz

# -c 断点续传
wget -c http://example.com/large_file.iso

# -b 后台下载
wget -b http://example.com/file.tar.gz

4.2.2 curl 命令

curl是一个支持多种协议(HTTP/HTTPS/FTP等)的文件传输工具:

# -O 使用远程文件的原始文件名保存
curl -O http://example.com/file.tar.gz

# -o 自定义本地保存的文件名
curl -o my_file.tar.gz http://example.com/file.tar.gz

4.3 软件安装工具yum

对于CentOS/RHEL等基于RPM的系统,yum是最常用的包管理工具。它基于RPM包构建,最大的优势是能够自动解决软件之间的依赖关系。

4.3.1 yum 源

yum的软件仓库配置文件位于 /etc/yum.repos.d/ 目录下,扩展名为 *.repo。常见的源分为两类:

  • 网络仓库(如 CentOS-Base.repo):从互联网下载软件,速度快且版本新。
  • 本地仓库(如 CentOS-Media.repo):从本地光盘或镜像安装,适用于无网络环境。

4.3.2 yum 源优化

默认的网络源在国内访问较慢,通常建议替换为阿里源或清华源。优化步骤如下:

# 1. 备份原配置文件
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

# 2. 下载新的阿里源配置文件(以CentOS 7为例)
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

# 3. 清除旧缓存并生成新缓存
yum clean all
yum makecache

此外,如果默认源中找不到需要的软件,可以安装 EPEL(Extra Packages for Enterprise Linux)扩展源,它提供了大量高质量的第三方软件包。

4.3.3 yum 常用命令

# 显示所有可用包或单个包
yum list [package_name]

# 显示包的详细信息
yum info [package_name]

# 模糊查找软件包
yum search [keyword]

# 精确查找提供某个命令或文件的包
yum provides [command_or_file]

# 安装软件包
yum install [package_name]

# 卸载软件包
yum remove [package_name]

# 升级软件包
yum update [package_name]

# 包组管理:列出和安装包组
yum grouplist
yum groupinstall "Development Tools"

# 查看yum操作历史
yum history

4.4 其它安装工具

除了yum,Linux还提供了更底层的安装工具,适用于特定场景。

4.4.1 rpm 安装工具

rpm是预先编译好的安装包格式,安装快捷,但缺点是不会自动解决依赖关系。常用选项如下:

# 安装软件包 (-i: 安装, -v: 可视化, -h: 显示进度)
rpm -ivh package_name.rpm

# 升级软件包
rpm -Uvh package_name.rpm

# 卸载软件包
rpm -e package_name

# 查询已安装的包
rpm -q package_name

# 列出软件包安装的所有文件
rpm -ql package_name

# 查询软件包的依赖关系
rpm -R package_name

4.4.2 tar 安装工具

tar是Linux下最常用的打包压缩工具,很多开源软件以源码包形式发布。常用参数如下:

# 解压 .tar.gz 文件 (-x: 解开, -z: gzip格式, -v: 显示过程, -f: 指定文件名)
tar -zxvf archive.tar.gz

# 解压到指定目录 (-C: 指定目标路径)
tar -zxvf archive.tar.gz -C /opt/

# 创建压缩包 (-c: 创建)
tar -zcvf archive.tar.gz /path/to/dir

# 列出压缩包内容 (-t: 列出)
tar -ztvf archive.tar.gz

提示: 通过 tar 解压安装的软件,如果不需要了,直接使用 rm -rf 删除对应目录即可。

4.5 常用软件安装:Java虚拟机配置

Java环境是Linux服务器上的常客。以下是手动安装配置JDK的标准流程:

  1. 下载JDK安装包:从Oracle官网或镜像站下载对应版本的JDK压缩包。
  2. 解压到/opt目录
tar -zxvf jdk-8u301-linux-x64.tar.gz -C /opt/
  1. 重命名目录(方便后续管理)
mv /opt/jdk1.8.0_301 /opt/java
  1. 配置环境变量:编辑 /etc/profile 文件,在末尾添加以下内容:
export JAVA_HOME=/opt/java
export PATH=$JAVA_HOME/bin:$PATH
  1. 使配置立即生效
source /etc/profile
  1. 验证安装
java -version

总结

恭喜你完成了《Linux操作系统入门到精通》全部内容的学习!本文系统地涵盖了Linux学习的四大核心模块:

  1. Linux系统安装与环境配置:从Linux概述与发行版选择,到VMware虚拟机安装、CentOS系统部署、NAT网络配置,再到远程管理工具和yum源优化,帮你搭建起完整的Linux学习环境。

  2. 必备命令详解:涵盖文件操作命令(cd/ls/mkdir/rm/cp/mv/touch/cat/head/tail/find/ln/zip/unzip)、重定向与管道、四剑客(sed/awk/grep)、用户管理、权限控制、进程管理与网络管理,构成了Linux日常运维的命令体系基础。

  3. 磁盘管理实战:从磁盘分区原理与类型(主分区、扩展分区、逻辑分区),到fdisk分区实操、文件系统格式化(mkfs/mkswap/blkid),再到磁盘挂载与永久挂载配置,掌握了存储管理的完整流程。

  4. 软件安装与配置:梳理了Linux系统目录结构规范,掌握了wget/curl下载工具、yum包管理器及其优化配置、rpm和tar安装工具,并通过实战完成了Java环境的配置。

Linux的世界博大精深,命令只是起点。建议大家在虚拟机或云服务器上多加练习,将本文中的命令逐一敲一遍,养成优先使用命令行的习惯。保持好奇,持续实践,你终将精通Linux!如果觉得本文对你有帮助,欢迎点赞、收藏、转发,有任何问题欢迎在评论区留言讨论。

Logo

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

更多推荐