Linux基础:常用基本命令与软件包管理
前言 :本文是"数据库基础"系列的第三篇。前两篇我们完成了 Linux 系统的安装和远程连接配置,学习了目录结构、VIM 编辑器和网络配置。本篇我们将正式进入 Linux 的常用基本命令 和软件包管理,掌握文件操作、权限管理、系统状态查看等核心技能,并学习如何使用 YUM 安装和管理软件------这些是后续安装数据库和部署应用的基础。
目录
- 一、常用基本命令
- 二、软件包管理
- 三、总结
一、常用基本命令
1.1 帮助命令
man 获得帮助信息
基本语法
bash
man [命令或配置文件]
功能描述:获得命令或配置文件的详细帮助信息。
显示说明
| 信息 | 功能 |
|---|---|
| NAME | 命令的名称和单行描述 |
| SYNOPSIS | 怎样使用命令 |
| DESCRIPTION | 命令功能的深入讨论 |
| EXAMPLES | 怎样使用命令的例子 |
| SEE ALSO | 相关主题(通常是手册页) |
案例实操
bash
# 查看 ls 命令的帮助信息
man ls
man手册中按q退出查看。
help 获得 Shell 内置命令帮助
一部分基础功能的系统命令是直接内嵌在 Shell 中的,系统加载启动后会随着 Shell 一起加载,常驻系统内存中。这部分命令被称为"内置命令"。
基本语法
bash
help 命令
功能描述:获得 Shell 内置命令的帮助信息。
案例实操
bash
# 查看 cd 命令的帮助信息(cd 是内置命令)
help cd
常用快捷键
| 快捷键 | 功能 |
|---|---|
ctrl + c |
停止进程 |
ctrl + l |
清屏,等同于 clear |
Tab 键 |
自动补全路径或命令(防止敲错) |
上下键 |
查找执行过的历史命令 |
1.2 文件目录类
pwd 显示当前目录
基本语法
bash
pwd
功能描述:print working directory,显示当前工作目录的绝对路径。
案例实操
bash
[root@master ~]# pwd
/root
ls 列出目录内容
基本语法
bash
ls [选项] [目录或文件]
功能描述:list,列出目录内容。
选项参数
| 选项 | 功能 |
|---|---|
-a |
全部文件,包括隐藏文件(以 . 开头的文件) |
-l |
长格式列出,包含文件属性与权限(等价于 ll) |
-al |
全部文件 + 长格式,最常用 |
显示说明:每行列出的信息依次是:文件类型与权限、链接数、文件属主、文件属组、文件大小(字节)、建立或最近修改的时间、文件名。
案例实操
bash
# 查看当前目录的所有内容(含隐藏文件+详细信息)
[root@master ~]# ls -al
total 132
dr-xr-x---. 18 root root 4096 Aug 23 20:34 .
dr-xr-xr-x. 18 root root 4096 Aug 12 21:11 ..
-rw-------. 1 root root 2008 Aug 8 14:56 anaconda-ks.cfg
-rw-------. 1 root root 2788 Aug 23 21:31 .bash_history
-rw-r--r--. 1 root root 18 Dec 29 2013 .bash_logout
-rw-r--r--. 1 root root 176 Dec 29 2013 .bash_profile
cd 切换目录
基本语法
bash
cd [参数]
功能描述:Change Directory,切换路径。
参数说明
| 参数 | 功能 |
|---|---|
cd 绝对路径 |
切换到绝对路径指定的目录 |
cd 相对路径 |
切换到相对路径指定的目录 |
cd ~ 或 cd |
回到用户主目录(root 为 /root) |
cd - |
回到上一次所在目录 |
cd .. |
回到当前目录的上一级目录 |
案例实操
bash
# 使用绝对路径切换到 /etc 目录
[root@master ~]# cd /etc
[root@master etc]#
# 使用相对路径切换到当前目录下的 sysconfig 子目录
[root@master etc]# cd sysconfig/
[root@master sysconfig]#
# 回到 root 用户主目录
[root@master sysconfig]# cd ~
[root@master ~]#
# 回到上一次所在目录
[root@master sysconfig]# cd ~
[root@master ~]# cd -
/etc/sysconfig
# 回到上一级目录
[root@master sysconfig]# cd ..
[root@master etc]#
mkdir 创建目录
基本语法
bash
mkdir [选项] 要创建的目录
功能描述:Make directory,建立目录。
选项参数
| 选项 | 功能 |
|---|---|
-p |
创建多层目录 |
案例实操
bash
# 创建单级目录
[root@master ~]# mkdir bigdata
# 创建多级目录
[root@master ~]# mkdir -p bigdata/31/test
rmdir 删除空目录
基本语法
bash
rmdir 要删除的空目录
功能描述:Remove directory,移除目录(只能删除空目录)。
案例实操
bash
[root@master ~]# rmdir bigdata/31/test
touch 创建空文件
基本语法
bash
touch 文件名称
案例实操
bash
[root@master ~]# touch word.txt
[root@master ~]# ls -l word.txt
-rw-r--r--. 1 root root 0 Aug 24 20:17 word.txt
cp 复制文件或目录
基本语法
bash
cp [选项] source dest
功能描述:复制 source 文件到 dest。
选项参数
| 选项 | 功能 |
|---|---|
-r |
递归复制整个文件夹 |
案例实操
bash
# 复制文件
[root@master ~]# cp word.txt bigdata/31/
# 递归复制整个目录
[root@master ~]# cp -r bigdata/31/ ./
经验技巧 :强制覆盖不提示的方法:
\cp
rm 删除文件或目录
基本语法
bash
rm [选项] deleteFile
功能描述:移除文件或目录。
选项参数
| 选项 | 功能 |
|---|---|
-r |
递归删除目录中所有内容 |
-f |
强制删除,不提示确认 |
-v |
显示指令的详细执行过程 |
案例实操
bash
# 删除文件(会提示确认)
[root@master ~]# rm word.txt
rm: remove regular empty file 'word.txt'? y
# 强制递归删除目录(最常用,需谨慎!)
[root@master ~]# rm -rf bigdata/
警告 :
rm -rf是 Linux 中最危险的命令,执行前务必确认当前目录和文件名是否正确。误删除无法恢复!
mv 移动或重命名
基本语法
bash
mv oldNameFile newNameFile # 重命名
mv /source/file /target/folder/ # 移动文件
功能描述:移动文件或目录,或重命名。
案例实操
bash
# 重命名文件
[root@master ~]# mv word.txt test.txt
# 移动文件到指定目录
[root@master ~]# mv test.txt bigdata/31/
cat 查看文件内容
基本语法
bash
cat [选项] 要查看的文件
功能描述:查看文件内容,从第一行开始显示(适合小文件)。
选项参数
| 选项 | 功能 |
|---|---|
-n |
显示所有行的行号,包括空行 |
案例实操
bash
[root@master ~]# cat -n anaconda-ks.cfg
1 #version=DEVEL
2 # System authorization information
3 auth --enableshadow --passalgo=sha512
4 # Use CDROM installation media
5 cdrom
more 分页查看文件
基本语法
bash
more 要查看的文件
功能描述:基于 VI 编辑器的文本过滤器,以全屏幕方式按页显示文本文件内容。
操作说明
| 操作 | 功能 |
|---|---|
空格键(space) |
向下翻一页 |
Enter |
向下翻一行 |
q |
立刻退出 more |
Ctrl + F |
向下滚动一屏 |
Ctrl + B |
返回上一屏 |
= |
输出当前行的行号 |
:f |
输出文件名和当前行的行号 |
案例实操
bash
[root@master ~]# more /var/log/messages
Aug 23 20:41:01 master rsyslogd: [origin software="rsyslogd" swVersion="8.24.0-55.el7" x-pid="1020" x-info="http://www.rsyslog.com"] rsyslogd was HUPed
......
Aug 24 19:34:52 master kernel: DMI: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 11/12/2020
Aug 24 19:34:52 master kernel: Hypervisor detected: VMware
--More--(2%)
less 分屏显示文件内容(更强大)
基本语法
bash
less 要查看的文件
功能描述:分屏查看文件内容,功能比 more 更强大。less 在显示文件时,不是一次将整个文件加载后才显示,而是根据显示需要加载内容,对于大型文件效率更高。
操作说明
| 操作 | 功能 |
|---|---|
空格键 |
向下翻动一页 |
[pagedown] |
向下翻动一页 |
[pageup] |
向上翻动一页 |
/字串 |
向下搜寻【字串】,n 向下查找,N 向上查找 |
?字串 |
向上搜寻【字串】,n 向上查找,N 向下查找 |
q |
离开 less |
案例实操
bash
[root@master ~]# less /var/log/messages
head 显示文件头部内容
基本语法
bash
head [选项] 文件
功能描述:显示文件的开头部分内容,默认显示前 10 行。
选项参数
| 选项 | 功能 |
|---|---|
-n <行数> |
指定显示头部内容的行数 |
案例实操
bash
# 查看文件的前2行
[root@master ~]# head -n 2 anaconda-ks.cfg
#version=DEVEL
# System authorization information
tail 显示文件尾部内容
基本语法
bash
tail [选项] 文件
功能描述:显示文件的尾部内容,默认显示后 10 行。
选项参数
| 选项 | 功能 |
|---|---|
-n <行数> |
输出文件尾部 n 行内容 |
-f |
实时追踪该文档的所有更新(查看日志常用) |
案例实操
bash
# 查看文件尾部 1 行
[root@master ~]# tail -n 1 anaconda-ks.cfg
%end
# 实时追踪日志文件(按 Ctrl+C 退出)
[root@master ~]# tail -f /var/log/messages
Aug 24 19:50:01 master systemd: Started Cleanup of Temporary Directories.
echo 输出内容
基本语法
bash
echo [选项] [输出内容]
功能描述:输出内容到控制台。
选项参数
| 选项 | 功能 |
|---|---|
-e |
支持反斜线控制的字符转换 |
| 控制字符 | 功能 |
|---|---|
\\ |
输出 \ 本身 |
\n |
换行符 |
\t |
制表符(Tab) |
案例实操
bash
# 输出普通内容
[root@master ~]# echo "hello linux"
hello linux
# 输出带转义字符的内容
[root@master ~]# echo -e "hello\tlinux"
hello linux
输出重定向 > 和 >>
基本语法
bash
ls -l > file.txt # 列表内容覆盖写入 file.txt
ls -al >> file.txt # 列表内容追加到 file.txt 末尾
cat file1 > file2 # file1 的内容覆盖到 file2
echo "内容" >> file # 追加内容到文件
案例实操
bash
# 将 ls 查看信息写入文件(覆盖)
[root@master ~]# ls -l > test.txt
# 将 ls 查看信息追加到文件(追加)
[root@master ~]# ls -l >> test.txt
# 将 hello 追加到文件
[root@master ~]# echo hello >> test.txt
ln 软链接
基本语法
bash
ln -s [原文件或目录] [软链接名]
功能描述:给原文件创建一个软链接(类似 Windows 的快捷方式)。
经验技巧
- 删除软链接:
rm -rf 软链接名(不要加/,否则会删除原文件) - 查看:
ll列表属性第 1 位是l,尾部会有指向
案例实操
bash
# 创建软链接
[root@master ~]# ln -s /test.txt ./test_link
[root@master ~]# ll
lrwxrwxrwx. 1 root root 9 Aug 24 20:46 test_link -> /test.txt
# 删除软链接(注意不要加 /)
[root@master ~]# rm -rf test_link
history 查看历史命令
基本语法
bash
history
功能描述:查看已经执行过的历史命令。
案例实操
bash
[root@master ~]# history
84 ln -s /test.txt ./test_link
85 ll
86 rm -rf test_link
87 ll
88 history
1.3 时间日期类
基本语法
bash
date [选项] [+格式]
| 选项 | 功能 |
|---|---|
-d<时间字符串> |
显示指定的时间 |
-s<日期时间> |
设置系统日期时间 |
| 参数 | 功能 |
|---|---|
+%Y |
显示年份 |
+%m |
显示月份 |
+%d |
显示日期 |
+%H:%M:%S |
显示时分秒 |
案例实操
bash
# 显示当前时间
[root@master ~]# date
Mon Aug 24 20:48:24 CST 2026
# 显示当前年月日
[root@master ~]# date +%Y%m%d
20260824
# 显示当前年月日时分秒
[root@master ~]# date "+%Y-%m-%d %H:%M:%S"
2026-08-24 20:48:51
# 显示前一天时间
[root@master ~]# date -d '1 days ago'
Sun Aug 23 20:49:05 CST 2026
# 设置系统时间
[root@master ~]# date -s "2026-08-24 20:50:00"
cal 查看日历
基本语法
bash
cal [选项]
功能描述:不加选项显示本月日历。
案例实操
bash
# 查看本月日历
[root@master ~]# cal
August 2026
Su Mo Tu We Th Fr Sa
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
# 查看2026年全年日历
[root@master ~]# cal 2026
1.4 用户管理命令
useradd 添加用户
基本语法
bash
useradd 用户名 # 添加新用户
useradd -g 组名 用户名 # 添加新用户到指定组
案例实操
bash
[root@master~]# useradd node1
[root@master~]# ll /home/
drwx------. 3 node1 node1 4096 Aug 24 20:51 node1
passwd 设置用户密码
基本语法
bash
passwd 用户名
案例实操
bash
[root@master ~]# passwd node1
Changing password for user node1.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
id 查看用户是否存在
基本语法
bash
id 用户名
案例实操
bash
[root@master ~]# id node1
uid=1002(node1) gid=1002(node1) groups=1002(node1)
cat /etc/passwd 查看所有用户
bash
[root@master ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
...
node1:x:1002:1002::/home/node1:/bin/bash
su 切换用户
基本语法
bash
su 用户名称 # 切换用户,不获取环境变量
su - 用户名称 # 切换用户,获取环境变量
功能描述:swith user,切换用户。
案例实操
bash
# 切换到普通用户
[root@master ~]# su node1
[node1@master root]$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/soft/jdk1.8.0_212/bin:/usr/local/soft/python3.11/bin:/root/bin
# 退出当前用户
[node1@master root]$ exit
exit
# 切换到用户并获得环境变量
[node1@master ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/usr/local/soft/jdk1.8.0_212/bin:/usr/local/soft/python3.11/bin:/home/node1/.local/bin:/home/node1/bin
userdel 删除用户
基本语法
bash
userdel 用户名 # 删除用户,保留用户主目录
userdel -r 用户名 # 删除用户及用户主目录
选项参数
| 选项 | 功能 |
|---|---|
-r |
删除用户的同时,删除与用户相关的所有文件 |
案例实操
bash
# 删除用户但保留主目录
[root@master ~]# userdel node1
[root@master ~]# ll /home/
drwx------. 5 1002 1002 4096 Aug 24 20:56 node1
# 删除用户及主目录
[root@master ~]# userdel -r node1
who 查看登录用户
基本语法
bash
whoami # 显示自身用户名称
who am i # 显示登录用户的用户名及登陆时间
案例实操
bash
[root@master ~]# whoami
root
[root@master ~]# who am i
root pts/0 2026-08-24 20:05 (192.168.247.1)
sudo 设置普通用户具有 root 权限
步骤
bash
# 1. 添加用户并设置密码
[root@master ~]# useradd node1
[root@node1 ~]# passwd node1
# 2. 修改 /etc/sudoers 文件
[root@master ~]# vi /etc/sudoers
# 找到 root 下面一行,添加:
root ALL=(ALL) ALL
node1 ALL=(ALL) ALL
# 或者配置为 sudo 时不需要输入密码
node1 ALL=(ALL) NOPASSWD:ALL
usermod 修改用户
基本语法
bash
usermod -g 用户组 用户名
| 选项 | 功能 |
|---|---|
-g |
修改用户的初始登录组 |
案例实操
bash
[root@master~]# usermod -g root node1
1.5 用户组管理
基本语法
bash
groupadd 组名 # 新增组
groupdel 组名 # 删除组
groupmod -n 新组名 老组名 # 修改组名
cat /etc/group # 查看所有组
案例实操
bash
# 添加组
[root@master ~]# groupadd bigdata
# 修改组名
[root@master ~]# groupmod -n Bigdata bigdata
# 查看组
[root@master ~]# cat /etc/group
...
Bigdata:x:1003:
1.6 文件权限类
Linux 文件属性
Linux 是多用户系统,不同用户处于不同地位,拥有不同权限。使用 ll 或 ls -l 可以查看文件属性。
从左到右的 10 个字符含义
-rw-------. 1 root root 2788 Aug 23 21:31 .bash_history
| 位置 | 含义 |
|---|---|
| 0 | 文件类型:- 文件、d 目录、l 链接文件 |
| 1-3 | 属主权限(User) |
| 4-6 | 属组权限(Group) |
| 7-9 | 其他用户权限(Other) |
rwx 权限说明
| 权限 | 作用到文件 | 作用到目录 |
|---|---|---|
r(读) |
可以读取、查看 | 可以 ls 查看目录内容 |
w(写) |
可以修改,不能删除(删除需对目录有写权限) | 可以在目录内创建、删除、重命名 |
x(执行) |
可以被系统执行 | 可以 cd 进入该目录 |
chmod 改变权限
基本语法
bash
# 方式一:字母方式
chmod [{ugoa}{+-=}{rwx}] 文件或目录
# 方式二:数字方式
chmod [mode=421] [文件或目录]
权限数字表示 :r=4、w=2、x=1
| 字母 | 含义 |
|---|---|
u |
所有者 |
g |
所属组 |
o |
其他人 |
a |
所有人(u+g+o) |
案例实操
bash
# 给所有者增加执行权限
[root@master ~]# chmod u+x test.txt
# 给所属组增加执行权限
[root@master ~]# chmod g+x test.txt
# 数字方式:所有者可读写执行(7)、所属组可读执行(5)、其他人可读执行(5)
[root@master ~]# chmod 755 test.txt
# 递归修改整个目录下所有文件的权限
[root@master ~]# chmod -R 777 bigdata/
注意 :
777权限表示所有用户都可读可写可执行,安全性极低,生产环境慎用。
chown 改变所有者
基本语法
bash
chown [选项] [最终用户] [文件或目录]
| 选项 | 功能 |
|---|---|
-R |
递归操作 |
案例实操
bash
# 修改文件所有者
[root@master ~]# chown node1 test.txt
# 递归修改文件所有者和所有组
[root@master ~]# chown -R node1:node1 bigdata
chgrp 改变所属组
基本语法
bash
chgrp [最终用户组] [文件或目录]
案例实操
bash
[root@master ~]# chgrp root test.txt
1.7 搜索查找类
find 查找文件
基本语法
bash
find [搜索范围] [选项]
功能描述:从指定目录向下递归遍历各子目录,将满足条件的文件显示在终端。
| 选项 | 功能 |
|---|---|
-name <查询方式> |
按文件名查找 |
-user <用户名> |
查找属于指定用户的文件 |
-size <文件大小> |
按文件大小查找:+ 大于,- 小于 |
文件大小单位 :b(512字节)、c(字节)、k(千字节)、M(兆字节)、G(吉字节)
案例实操
bash
# 按文件名查找
[root@master ~]# find / -name "*.conf"
# 按拥有者查找
[root@master ~]# find /home -user xiaobaiwen
# 查找大于200MB的文件
[root@master ~]# find /home -size +204800k
locate 快速定位文件
基本语法
bash
locate 搜索文件
功能描述:利用事先建立的文件名称及路径数据库快速定位给定文件。查询速度快,但需定期更新数据库。
案例实操
bash
[root@master ~]# updatedb
[root@master ~]# locate test.txt
/root/test.txt
grep 过滤查找
基本语法
bash
grep [选项] 查找内容 源文件
| 选项 | 功能 |
|---|---|
-n |
显示匹配行及行号 |
管道符 |:将前一个命令的处理结果输出传递给后面的命令处理。
案例实操
bash
# 查找文件中的关键词
[root@master ~]# grep -n "error" /var/log/messages
# 结合管道符过滤
[root@master ~]# ls -l | grep test
1.8 压缩解压类
gzip / gunzip
基本语法
bash
gzip 文件 # 压缩文件为 .gz(不保留原文件)
gunzip 文件.gz # 解压 .gz 文件
经验技巧
- 只能压缩文件,不能压缩目录
- 不保留原来的文件
- 多个文件会产生多个压缩包
案例实操
bash
# 压缩
[root@master ~]# gzip test.txt
[root@master ~]# ls
test.txt.gz
# 解压
[root@master ~]# gunzip test.txt.gz
zip / unzip
基本语法
bash
zip [选项] XXX.zip 要压缩的内容 # 压缩
unzip [选项] XXX.zip # 解压
| zip 选项 | 功能 |
|---|---|
-r |
压缩目录 |
| unzip 选项 | 功能 |
|---|---|
-d <目录> |
指定解压后文件的存放目录 |
经验技巧:zip 在 Windows/Linux 都通用,可以压缩目录且保留源文件。
案例实操
bash
# 压缩文件
[root@master ~]# zip mypackage.zip test.txt word.txt
# 解压到指定目录
[root@master ~]# unzip mypackage.zip -d bigdata/
tar 打包(最常用)
基本语法
bash
tar [选项] XXX.tar.gz 要打包的内容
| 选项 | 功能 |
|---|---|
-c |
产生 .tar 打包文件 |
-v |
显示详细信息 |
-f |
指定压缩后的文件名 |
-z |
打包同时压缩(生成 .tar.gz) |
-x |
解包 .tar 文件 |
-C |
解压到指定目录 |
案例实操
bash
# 压缩多个文件
[root@master ~]# tar -zcvf file.tar.gz test.txt word.txt
test.txt
word.txt
# 压缩目录
[root@master ~]# tar -zcvf bigdata.tar.gz bigdata/
# 解压到当前目录
[root@master ~]# tar -zxvf file.tar.gz
# 解压到指定目录
[root@master ~]# tar -zxvf bigdata.tar.gz -C /tmp/
1.9 磁盘管理类
du 查看磁盘占用
基本语法
bash
du [选项] [目录或文件]
功能描述:disk usage,显示目录下每个子目录的磁盘使用情况。
| 选项 | 功能 |
|---|---|
-h |
以 GB、MB、KB 等格式人性化显示 |
-s |
只显示总和 |
-a |
不仅查看子目录大小,还包括文件 |
案例实操
bash
[root@master ~]# du -sh /root
220M /root
df 查看磁盘空间
基本语法
bash
df [选项]
功能描述:disk free,列出文件系统的整体磁盘使用量。
| 选项 | 功能 |
|---|---|
-h |
以 GB、MB、KB 等格式人性化显示 |
案例实操
bash
[root@master ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 12M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root 91G 6.4G 80G 8% /
/dev/sda1 3.9G 168M 3.5G 5% /boot
tmpfs 378M 0 378M 0% /run/user/0
lsblk 查看设备挂载
bash
[root@master ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 4G 0 part /boot
└─sda2 8:2 0 96G 0 part
├─centos-root 253:0 0 92G 0 lvm /
└─centos-swap 253:1 0 4G 0 lvm [SWAP]
sr0 11:0 1 1024M 0 rom
1.10 进程管理类
ps 查看进程
基本语法
bash
ps aux # 查看所有进程(面向用户友好)
ps -ef # 查看所有进程(含父子关系)
ps aux | grep xxx # 查找指定进程
选项说明
| 选项 | 功能 |
|---|---|
a |
列出带有终端的所有用户的进程 |
x |
列出当前用户的所有进程,包括没有终端的进程 |
u |
面向用户友好的显示风格 |
-e |
列出所有进程 |
-f |
显示完整格式的进程列表 |
ps aux 显示信息说明
| 字段 | 含义 |
|---|---|
| USER | 进程是由哪个用户产生的 |
| PID | 进程的 ID 号 |
| %CPU | 进程占用 CPU 资源的百分比 |
| %MEM | 进程占用物理内存的百分比 |
| VSZ | 进程占用虚拟内存的大小(KB) |
| RSS | 进程占用实际物理内存的大小(KB) |
| TTY | 进程在哪个终端中运行 |
| STAT | 进程状态:R 运行、S 睡眠、T 暂停、Z 僵尸 |
| START | 进程的启动时间 |
| TIME | 进程占用 CPU 的运算时间 |
| COMMAND | 产生此进程的命令名 |
案例实操
bash
# 查看所有进程
[root@master ~]# ps aux
# 查看 mysql 进程
[root@master ~]# ps aux | grep mysql
kill 终止进程
基本语法
bash
kill [选项] 进程号 # 通过进程号杀死进程
killall 进程名称 # 通过进程名称杀死进程
| 选项 | 功能 |
|---|---|
-9 |
强制终止进程 |
案例实操
bash
# 强制终止进程
[root@master ~]# kill -9 3271
# 通过名称终止进程
[root@master ~]# killall firefox
pstree 查看进程树
基本语法
bash
pstree [选项]
| 选项 | 功能 |
|---|---|
-p |
显示进程的 PID |
-u |
显示进程的所属用户 |
案例实操
bash
[root@master ~]# pstree -p
top 实时监控
基本语法
bash
top [选项]
功能描述:实时监控系统进程状态(类似 Windows 任务管理器)。
| 选项 | 功能 |
|---|---|
-d 秒数 |
指定刷新间隔(默认 3 秒) |
-i |
不显示闲置或僵死进程 |
-p PID |
只监控指定进程 |
交互操作 :在 top 界面中按 M 按内存排序、按 P 按 CPU 排序、按 q 退出。
案例实操
bash
# 每秒刷新一次
[root@master ~]# top -d 1
# 只监控指定进程
[root@master ~]# top -p 2575
netstat 查看网络状态
基本语法
bash
netstat -anp | grep 进程号 # 查看进程网络信息
netstat -nltp | grep 端口号 # 查看端口占用
案例实操
bash
# 查看 sshd 进程的网络信息
[root@master ~]# netstat -anp | grep sshd
# 查看 22 端口是否被占用
[root@master ~]# netstat -nltp | grep 22
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1467/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1020/sshd
tcp6 0 0 :::22 :::* LISTEN 1020/sshd
1.11 关机重启命令
基本语法
bash
sync # 将内存数据同步到磁盘(关机前先执行)
shutdown [选项] 时间 # 关机或重启
reboot # 重启
halt # 停机(不断电)
poweroff # 关机断电
shutdown 选项说明
| 选项 | 功能 |
|---|---|
-h |
停机(halt) |
-r |
重启(reboot) |
| 参数 | 功能 |
|---|---|
now |
立刻执行 |
+分钟 |
等待指定分钟后执行 |
经验技巧 :Linux 系统为了提高磁盘读写效率,采用"预读迟写"方式。数据先写入缓冲区,等缓冲区满时再写入磁盘。使用 sync 可立即将缓冲区数据写入磁盘,防止数据丢失。
案例实操
bash
# 同步内存数据到磁盘
[root@master ~]# sync
# 立即重启
[root@master ~]# reboot
[root@master ~]# shutdown -r now
# 1分钟后关机,并通知用户
[root@master ~]# shutdown -h 1 'This server will shutdown after 1 mins'
# 立即关机
[root@master ~]# shutdown -h now
[root@master ~]# poweroff
二、软件包管理
2.1 RPM 概述
RPM(RedHat Package Manager)是 RedHat 系列操作系统的软件包管理工具,类似 Windows 的 setup.exe。
RPM 包命名规范
Apache-1.3.23-11.i386.rpm
| 部分 | 含义 |
|---|---|
Apache |
软件名称 |
1.3.23-11 |
版本号(主版本.次版本.发布版本) |
i386 |
硬件平台(Intel 32 位) |
rpm |
文件扩展名,代表 RPM 包 |
2.2 RPM 常用命令
查询命令
bash
rpm -qa # 查询所有已安装的 rpm 软件包
rpm -qa | grep 软件名 # 过滤查询指定软件
| 选项 | 功能 |
|---|---|
-q |
query,查询 |
-a |
all,所有 |
案例实操
bash
[root@master ~]# rpm -qa | grep java
java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64
卸载命令
bash
rpm -e RPM软件包 # 卸载软件
rpm -e --nodeps 软件包 # 强制卸载(忽略依赖)
| 选项 | 功能 |
|---|---|
-e |
erase,卸载 |
--nodeps |
不检查依赖,强制卸载 |
安装命令
bash
rpm -ivh RPM包全名
| 选项 | 功能 |
|---|---|
-i |
install,安装 |
-v |
--verbose,显示详细信息 |
-h |
--hash,显示进度条 |
--nodeps |
安装前不检查依赖 |
案例实操
bash
[root@master ~]# rpm -ivh mysql-community-server-8.0.33-1.el7.x86_64.rpm
2.3 YUM 概述
YUM(Yellow dog Updater Modified)是一个 Shell 前端软件包管理器。基于 RPM 包管理,能够从指定服务器自动下载 RPM 包并安装,自动处理依赖关系,一次安装所有依赖的软件包。
通俗理解:YUM 就像 Linux 的"应用商店",输入命令就能自动下载、安装、更新软件,还会自动解决依赖问题。
2.4 YUM 常用命令
基本语法
bash
yum [选项] [参数]
| 选项 | 功能 |
|---|---|
-y |
对所有提问都回答 yes |
| 参数 | 功能 |
|---|---|
install |
安装 rpm 软件包 |
update |
更新 rpm 软件包 |
check-update |
检查是否有可用的更新 |
remove |
删除指定的 rpm 软件包 |
list |
显示软件包信息 |
clean |
清理 yum 过期的缓存 |
deplist |
显示软件包的所有依赖关系 |
search |
搜索软件包 |
案例实操
bash
# 安装 wget
[root@master ~]# yum install -y wget
# 搜索 mysql 相关包
[root@master ~]# yum search mysql
# 查看已安装的软件包
[root@master ~]# yum list installed | grep mysql
# 清理缓存
[root@master ~]# yum clean all
2.5 配置国内 YUM 源
默认的 YUM 源连接国外服务器,速度较慢。可以修改为国内镜像源,如阿里云、网易 163。
配置步骤
bash
# 1. 安装 wget
[root@master ~]# yum install -y wget
# 2. 备份默认源
[root@master ~]# cd /etc/yum.repos.d/
[root@master yum.repos.d]# cp CentOS-Base.repo CentOS-Base.repo.backup
# 3. 下载阿里云源
[root@master yum.repos.d]# wget http://mirrors.aliyun.com/repo/Centos-7.repo
# 4. 替换默认源
[root@master yum.repos.d]# mv Centos-7.repo CentOS-Base.repo
# 5. 清理旧缓存,生成新缓存
[root@master yum.repos.d]# yum clean all
[root@master yum.repos.d]# yum makecache
# 6. 验证
[root@master yum.repos.d]# yum list | grep firefox
2.6 RPM 与 YUM 对比
| 对比维度 | RPM | YUM |
|---|---|---|
| 依赖处理 | 手动解决依赖,逐个安装 | 自动解决依赖,一次安装 |
| 网络需求 | 本地安装,无需网络 | 需要网络连接(从远程仓库下载) |
| 适用场景 | 无网络环境、安装特定版本 | 有网络环境、常规安装 |
三、总结
核心知识点速查
| 知识点 | 关键概念 |
|---|---|
| 帮助命令 | man、--help、help |
| 文件操作 | touch、cp、mv、rm、cat、tail -f |
| 目录操作 | pwd、ls、cd、mkdir |
| 权限管理 | chmod、chown、rwx |
| 搜索查找 | find、grep、locate |
| 压缩解压 | tar -zcvf、tar -zxvf |
| 进程管理 | ps aux、top、kill -9 |
| 软件包管理 | rpm -ivh、yum install |
常用命令速查
| 用途 | 命令 |
|---|---|
| 查看文件内容 | cat 文件名 |
| 实时查看日志 | tail -f 日志文件 |
| 复制文件 | cp 源 目标 |
| 强制删除 | rm -rf 目录 |
| 解压 tar.gz | tar -zxvf 包名.tar.gz |
| 修改权限 | chmod 755 文件名 |
| 安装软件 | yum install -y 软件名 |
| 搜索软件 | yum search 关键词 |
| 查看进程 | `ps aux |
| 查看磁盘 | df -h |
注意事项
| 要点 | 说明 |
|---|---|
rm -rf 危险 |
删除前务必确认当前目录和文件名,误删无法恢复 |
tail -f 退出 |
按 Ctrl + C 停止跟踪 |
top 退出 |
按 q 退出监控界面 |
sync 关机前执行 |
确保内存数据写入磁盘 |
| 权限最小原则 | 不要随意使用 777 权限,按需分配 |
| YUM 需要网络 | YUM 安装依赖网络仓库,无网络时使用 RPM 本地安装 |
系列直达
- 上篇 :Linux基础:目录结构、VIM编辑器与网络配置
- 本篇:Linux基础:常用基本命令与软件包管理(本文)
- 下篇:敬请期待