kali基础命令
前言:Linux命令数量非常庞大,往往需要在使用的时候进行查找,但是网络上资料繁杂,就笔者的观感而言,很难找到一份既有命令的用法也有参数的介绍,同时还可以提供一些简单示例的的高质量文章,因此本篇文章应运而生。本文按照命令的使用类型和场景进行了分类,相信可以使笔者更快速的查找和理解需要用到的命令。
目录
一.文件和目录管理命令
▐ ls - 列出目录内容
▐ cd - 更改当前工作目录
▐ pwd - 显示当前工作目录
▐ cp - 复制文件或目录
▐ mv - 移动或重命名文件或目录
▐ rm - 删除文件或目录
▐ mkdir - 创建目录
▐ rmdir - 删除空目录
▐ find - 查找文件或目录
▐ touch - 创建空文件或更新文件的时间戳
二.文件内容操作命令
▐ vi 和 vim
\1. 命令模式(Command Mode)
\2. 插入模式(Insert Mode)
\3. 底行模式(Last Line Mode)
▐ cat - 连接并显示文件内容
▐ more - 分页显示文件内容
▐ less - 分页显示文件内容(功能比more更强大)
▐ head - 显示文件的前几行
▐ tail - 显示文件的后几行
▐ grep - 在文件中搜索文本
▐ wc - 统计文件的行数、字数和字符数
三.文件权限管理命令
▐ chmod - 修改文件或目录的权限
▐ chown - 修改文件的所有者和组
▐ chgrp - 修改文件的所属组
四.进程管理命令
▐ ps:显示当前运行的进程
▐ top:实时显示系统资源使用情况
▐ kill:终止进程
五.压缩和归档命令
▐ tar:创建归档文件并支持压缩
▐ gzip:文件压缩工具
▐ bzip2:高效文件压缩工具
▐ xz:高效文件压缩工具
▐ zip:创建压缩归档文件
▐ unzip:解压缩 zip 归档文件
六.用户管理命令
▐ who:显示当前登录的用户
▐ useradd:添加新用户
▐ usermod:修改用户信息
▐ userdel:删除用户
▐ groupadd:添加新组
▐ groupdel:删除组
▐ passwd:修改用户密码
▐ su:切换用户
▐ sudo:以超级用户权限执行命令
▐ id:显示用户和组信息
七.网络管理命令
▐ ifconfig:配置网络接口
▐ ip:显示和操作路由、设备、策略路由等
▐ ping:检查网络连通性
▐ traceroute:跟踪路由路径
▐ netstat:显示网络连接、路由表、接口状态等
八.磁盘管理命令
▐ df:显示文件系统的磁盘空间使用情况
▐ fdisk:磁盘分区管理
▐ parted:高级磁盘分区管理
▐ mkfs:创建文件系统
▐ mount:挂载文件系统
▐ umount:卸载文件系统
九.程序安装和包管理命令
▐ 1. apt-get/apt:Debian系发行版的软件包管理工具
apt-get
apt
▐ 2. yum/dnf:Red Hat系发行版的软件包管理工具
yum
dnf
▐ 3. rpm:Red Hat Package Manager,用于安装、卸载和管理RPM包
一.文件和目录管理命令
这部分命令及其选项涵盖了文件和目录管理的常见操作,掌握这些命令就可以有效地管理和操作Linux系统中的文件和目录。
▐ ls - 列出目录内容
用法:
ls [选项] [目录]
常用选项:
-l:使用长格式列出文件信息。
-a:显示所有文件,包括隐藏文件。
-h:以人类可读的格式显示文件大小。
-R:递归列出目录及其子目录中的内容。
示例:
ls -l
ls -a /home/user
ls -lh /var/log
▐ cd - 更改当前工作目录
用法:
cd [目录]
示例:
cd /home/user
cd ..
cd ~
▐ pwd - 显示当前工作目录
用法:
pwd
▐ cp - 复制文件或目录
用法:
cp [选项] 源文件 目标文件
cp [选项] 源文件… 目标目录
常用选项:
-r:递归复制目录及其内容。
-i:在覆盖文件前提示确认。
-u:仅在源文件比目标文件新或目标文件不存在时复制。
示例:
cp file1.txt file2.txt
cp -r dir1 dir2
cp -i file1.txt /backup/
▐ mv - 移动或重命名文件或目录
用法:
mv [选项] 源文件 目标文件
mv [选项] 源文件… 目标目录
常用选项:
-i:在覆盖文件前提示确认。
-u:仅在源文件比目标文件新或目标文件不存在时移动。
示例:
mv oldname.txt newname.txt
mv file1.txt file2.txt /backup/
▐ rm - 删除文件或目录
用法:
rm [选项] 文件…
常用选项:
-r:递归删除目录及其内容。
-f:强制删除,不提示确认。
-i:删除前逐个文件提示确认。
示例:
rm file1.txt
rm -r directory/
rm -f file1.txt
▐ mkdir - 创建目录
用法:
mkdir [选项] 目录…
常用选项:
-p:递归创建目录,包括必要的父目录。
示例:
mkdir newdir
mkdir -p /newdir/subdir
▐ rmdir - 删除空目录
用法:
rmdir [选项] 目录…
示例:
rmdir emptydir
▐ find - 查找文件或目录
用法:
find [路径] [选项] [表达式]
常用选项:
-name:按名称查找文件。
-type:按类型查找(f为文件,d为目录)。
-size:按大小查找文件。
-mtime:按修改时间查找文件。
-exec:对查找到的文件执行指定的命令。
示例:
find /home -name “.txt”
find /var/log -type f -size +1M
find /tmp -mtime -1
find / -type f -name “.log” -exec rm -f {} ;
▐ touch - 创建空文件或更新文件的时间戳
用法:
touch [选项] 文件…
常用选项:
-a:仅更新访问时间。
-m:仅更新修改时间。
示例:
touch newfile.txt
touch -a -m existingfile.txt
二.文件内容操作命令
下面是Linux中用于查看和遍历文件内容的命令的详细介绍,包括每个命令的基本用法和常见选项。
▐ vi 和 vim
这里要对vi 和 vim 单独说一下,vi 和 vim 是 Linux 系统中常用的文本编辑器,其中 vim 是 vi 的增强版,提供了更多的功能和改进。vi 有三种主要模式,它们分别是命令模式(Command Mode)、插入模式(Insert Mode)和底行模式(Last Line Mode)。以下是每种模式的详细解释:
\1. 命令模式(Command Mode)
- 解释: 命令模式是 vi 和 vim 的默认模式。当你第一次启动 vi 或 vim 时,编辑器处于命令模式。在此模式下,你可以执行各种命令来导航、删除、复制、粘贴文本等。
特点:
导航:可以使用 h、j、k、l 键来移动光标。
删除文本:例如,使用 x 删除当前字符,使用 dd 删除当前行。
复制文本:例如,使用 yy 复制当前行。
粘贴文本:例如,使用 p 粘贴文本。
切换模式:可以通过按 i、a、o 等命令进入插入模式,或者按 : 进入底行模式。
示例:
h # 左移一个字符
j # 下移一行
k # 上移一行
l # 右移一个字符
dd # 删除当前行
yy # 复制当前行
p # 粘贴文本
i # 进入插入模式 - # 进入底行模式
\2. 插入模式(Insert Mode)
解释: 插入模式用于插入和编辑文本。在命令模式下,通过按 i、a、o 等命令可以进入插入模式。进入插入模式后,所有键入的字符都会直接插入到文本中。
特点:
插入文本:可以在光标当前位置、光标后面、新行等位置插入文本。
退出模式:按 Esc 键可以退出插入模式,返回命令模式。
示例:
i # 在光标前插入文本
a # 在光标后插入文本
o # 在当前行下方新开一行并插入文本
O # 在当前行上方新开一行并插入文本
Esc # 退出插入模式,返回命令模式
\3. 底行模式(Last Line Mode)
解释: 底行模式用于执行文件保存、退出、搜索、替换等命令。在命令模式下,通过按 :、/ 或 ? 可以进入底行模式。进入底行模式后,光标移动到编辑器底部,显示一个命令提示符。
特点:
文件操作:保存文件、退出编辑器等。
搜索文本:在文件中搜索特定文本。
替换文本:在文件中替换特定文本。
执行命令:按 Enter 键执行命令。
示例:
:w # 保存文件
:q # 退出编辑器
:wq # 保存并退出
:q! # 强制退出(不保存)
/pattern # 搜索模式,向下查找
?pattern # 搜索模式,向上查找
:s/old/new # 替换当前行的第一个匹配
:%s/old/new/g # 替换整个文件的所有匹配
▐ cat - 连接并显示文件内容
用法:
cat [选项] 文件…
常用选项:
-n:显示行号。
-b:对非空输出行编号。
-s:压缩连续的空行。
-E:在每行末尾显示 $。
示例:
cat file1.txt
cat file1.txt file2.txt > merged.txt
cat -n file1.txt
▐ more - 分页显示文件内容
用法:
more [选项] 文件…
常用选项:
-d:显示”Press space to continue…”提示。
-num:指定每页显示的行数。
-s:压缩连续的空行。
示例:
more file1.txt
more -d file1.txt
▐ less - 分页显示文件内容(功能比more更强大)
用法:
less [选项] 文件…
常用选项:
-N:显示行号。
-I:忽略搜索时的大小写。
-S:禁止自动换行。
示例:
less file1.txt
less -N file1.txt
▐ head - 显示文件的前几行
用法:
head [选项] 文件…
常用选项:
-n:指定显示的行数。
-c:指定显示的字节数。
示例:
head file1.txt
head -n 20 file1.txt
head -c 50 file1.txt
▐ tail - 显示文件的后几行
用法:
tail [选项] 文件…
常用选项:
-n:指定显示的行数。
-c:指定显示的字节数。
-f:实时显示文件内容,常用于查看日志文件。
-r:倒序显示文件内容。
示例:
tail file1.txt
tail -n 20 file1.txt
tail -f /var/log/syslog
tail -c 100 file1.txt
▐ grep - 在文件中搜索文本
用法:
grep [选项] 模式 文件…
常用选项:
-i:忽略大小写。
-r:递归搜索目录。
-v:显示不匹配的行。
-n:显示行号。
-l:只显示包含匹配的文件名。
-c:显示匹配的行数。
-H:显示匹配的文件名。
-o:只输出匹配部分。
示例:
grep “search_term” file1.txt
grep -i “search_term” file1.txt
grep -r “search_term” /var/log/
grep -v “search_term” file1.txt
grep -n “search_term” file1.txt
grep -l “search_term” *
▐ wc - 统计文件的行数、字数和字符数
用法:
wc [选项] 文件…
常用选项:
-l:显示行数。
-w:显示字数。
-c:显示字节数。
-m:显示字符数。
示例:
wc file1.txt
wc -l file1.txt
wc -w file1.txt
wc -c file1.txt
三.文件权限管理命令
在Linux系统中,文件权限管理是非常重要的一部分。它控制了谁可以读取、写入或执行文件和目录。Linux文件权限包括三个部分:文件的所有者、文件所属的组以及其他用户。每个部分都有三种权限:
读(r):允许读取文件内容或列出目录内容。
写(w):允许修改文件内容或在目录中创建、删除、重命名文件。
执行(x):允许执行文件(如果是可执行文件)或访问目录。
权限通常表示为一个十位的字符串,如 -rwxr-xr–,其中:
第一位表示文件类型(例如,- 表示普通文件,d 表示目录)。
接下来的九位分为三组,每组三位,分别表示所有者、组、其他用户的权限。
查看文件权限
ls 命令
查看文件权限通常使用 ls 命令:
ls -l
输出示例:
-rw-r–r– 1 user group 4096 May 19 12:34 file.txt
▐ chmod - 修改文件或目录的权限
用法:
chmod [who] [operation] [permission] file
其中:
who:权限修改对象,u(用户),g(组),o(其他),a(所有)。
operation:+(添加权限),-(移除权限),=(设置权限)。
permission:r(读),w(写),x(执行)。
示例:
chmod u+x file.txt # 为文件所有者添加执行权限
chmod g-w file.txt # 移除组的写权限
chmod o=r file.txt # 设置其他用户只读权限
chmod a+r file.txt # 为所有用户添加读权限
八进制模式:
chmod [mode] file
mode 是一个三位的八进制数,每位代表不同的权限:
读(r):4
写(w):2
执行(x):1
示例:
chmod 755 file.txt # 设置文件权限为 -rwxr-xr-x
chmod 644 file.txt # 设置文件权限为 -rw-r–r–
▐ chown - 修改文件的所有者和组
用法:
chown [选项] [新所有者] [:新组] 文件
示例:
chown user file.txt # 修改文件所有者为 user
chown user:group file.txt # 修改文件所有者为 user,组为 group
chown :group file.txt # 仅修改文件所属组为 group
chown -R user:group /path/to/dir # 递归修改目录及其子文件夹和文件的所有者和组
▐ chgrp - 修改文件的所属组
用法:
chgrp [选项] 新组 文件
示例:
chgrp group file.txt # 修改文件所属组为 group
chgrp -R group /path/to/dir # 递归修改目录及其子文件夹和文件的所属组
四.进程管理命令
▐ ps:显示当前运行的进程
用法:
ps [选项]
常用选项:
-e 或 -A:显示所有进程。
-f:显示完整格式的输出,包括PPID、C、STIME、TTY、TIME、CMD。
-u 用户:显示特定用户的进程。
-p PID:显示指定PID的进程。
示例:
ps -ef # 显示所有进程的完整格式
ps -aux # 显示所有进程,包括详细信息
▐ top:实时显示系统资源使用情况
用法:
top
特点:
默认情况下,每隔几秒钟更新一次系统的进程信息。
显示CPU、内存使用情况和每个进程的信息。
常用操作:
q:退出 top。
h:显示帮助。
k:终止一个进程。
r:重新调整进程的优先级(renice)。
示例:
top # 启动top,实时显示系统资源使用情况
▐ kill:终止进程
用法:
kill [选项] PID
常用选项:
-9:强制终止进程。
-15:发送TERM信号(默认),请求进程终止。
示例:
kill 1234 # 终止进程ID为1234的进程
kill -9 1234 # 强制终止进程ID为1234的进程
五.压缩和归档命令
在Linux中,压缩和归档命令是管理文件和目录的重要工具。常见的压缩和归档命令包括 tar、gzip、bzip2、xz 和 zip 等。这些工具可以单独使用,也可以组合使用,以便创建压缩的归档文件。
▐ tar:创建归档文件并支持压缩
tar(tape archive)命令用于创建、提取和管理归档文件。
用法:
tar [选项] [归档文件] [文件或目录]
常用选项:
-c:创建新的归档文件。
-x:解压归档文件。
-t:列出归档文件内容。
-v:显示详细信息。
-f:指定归档文件名。
-z:使用 gzip 压缩或解压缩。
-j:使用 bzip2 压缩或解压缩。
-J:使用 xz 压缩或解压缩。
-C:指定解压到的目录。
示例:
# 创建 tar 归档文件
tar -cvf archive.tar file1 file2 directory/
# 创建 gzip 压缩的 tar 归档文件
tar -czvf archive.tar.gz file1 file2 directory/
# 创建 bzip2 压缩的 tar 归档文件
tar -cjvf archive.tar.bz2 file1 file2 directory/
# 创建 xz 压缩的 tar 归档文件
tar -cJvf archive.tar.xz file1 file2 directory/
# 解压 tar 归档文件
tar -xvf archive.tar
# 解压 gzip 压缩的 tar 归档文件
tar -xzvf archive.tar.gz
# 解压 bzip2 压缩的 tar 归档文件
tar -xjvf archive.tar.bz2
# 解压 xz 压缩的 tar 归档文件
tar -xJvf archive.tar.xz
# 列出 tar 归档文件内容
tar -tvf archive.tar
# 解压到指定目录
tar -xvf archive.tar -C /path/to/directory
▐ gzip:文件压缩工具
gzip(GNU zip)用于压缩单个文件。
用法:
gzip [选项] [文件]
常用选项:
-d:解压文件。
-k:保留原文件。
-r:递归压缩目录中的所有文件。
示例:
# 压缩文件
gzip file
# 解压文件
gzip -d file.gz
# 压缩并保留原文件
gzip -k file
# 递归压缩目录中的所有文件
gzip -r directory/
▐ bzip2:高效文件压缩工具
bzip2 用于压缩单个文件,通常比 gzip 压缩率更高,但速度较慢。
用法:
bzip2 [选项] [文件]
常用选项:
-d:解压文件。
-k:保留原文件。
示例:
# 压缩文件
bzip2 file
# 解压文件
bzip2 -d file.bz2
# 压缩并保留原文件
bzip2 -k file
▐ xz:高效文件压缩工具
xz 用于压缩单个文件,压缩率比 gzip 和 bzip2 更高,但速度较慢。
用法:
xz [选项] [文件]
常用选项:
-d:解压文件。
-k:保留原文件。
-z:压缩文件(默认行为)。
-T:指定使用的线程数。
示例:
# 压缩文件
xz file
# 解压文件
xz -d file.xz
# 压缩并保留原文件
xz -k file
# 使用多线程压缩文件
xz -T4 file
▐ zip:创建压缩归档文件
zip 命令用于创建压缩归档文件,支持多文件和目录。
用法:
zip [选项] [归档文件] [文件或目录]
常用选项:
-r:递归压缩目录。
-d:从归档文件中删除文件。
-u:更新归档文件中的文件。
-m:压缩后删除原文件。
示例:
# 创建 zip 归档文件
zip archive.zip file1 file2 directory/
# 递归压缩目录
zip -r archive.zip directory/
# 从归档文件中删除文件
zip -d archive.zip file1
# 更新归档文件中的文件
zip -u archive.zip file1
# 压缩后删除原文件
zip -m archive.zip file1
▐ unzip:解压缩 zip 归档文件
unzip 命令用于解压缩 zip 归档文件。
用法:
unzip [选项] [归档文件]
常用选项:
-d:指定解压到的目录。
-l:列出归档文件内容。
-o:覆盖已存在的文件。
示例:
# 解压 zip 归档文件
unzip archive.zip
# 解压到指定目录
unzip archive.zip -d /path/to/directory
# 列出 zip 归档文件内容
unzip -l archive.zip
# 覆盖已存在的文件
unzip -o archive.zip
六.用户管理命令
在Linux中,用户管理命令用于管理用户账户和用户组,确保系统的安全和资源的有效分配。
▐ who:显示当前登录的用户
用法:
who [选项]
常用选项:
-H:显示列标题。
-q:显示登录用户的数量和名称。
-b:显示系统最后的启动时间。
示例:
who # 显示当前登录的用户
who -q # 显示当前登录用户的数量和名称
who -b # 显示系统最后的启动时间
▐ useradd:添加新用户
useradd 命令用于在系统中添加新用户。
用法:
useradd [选项] 用户名
常用选项:
-m:创建用户的主目录。
-d 目录:指定用户的主目录。
-s shell:指定用户的登录 shell。
-g 组:指定用户的主组。
-G 组1,组2,…:指定用户的附加组。
-u 用户ID:指定用户ID。
-c “描述”:添加用户描述信息。
示例:
# 添加新用户并创建主目录
useradd -m newuser
# 添加新用户,指定主目录和登录 shell
useradd -m -d /home/customdir -s /bin/bash newuser
# 添加新用户,指定主组和附加组
useradd -m -g users -G wheel,audio,video newuser
▐ usermod:修改用户信息
usermod 命令用于修改现有用户的信息。
用法:
usermod [选项] 用户名
常用选项:
-l 新用户名:更改用户名。
-d 新目录:更改用户主目录。
-m:移动用户主目录到新位置。
-s 新shell:更改用户的登录 shell。
-g 新组:更改用户的主组。
-G 新组1,新组2,…:更改用户的附加组。
-u 新用户ID:更改用户ID。
-c “新描述”:更改用户描述信息。
示例:
# 更改用户名
usermod -l newusername oldusername
# 更改用户主目录并移动内容
usermod -d /new/home/directory -m username
# 更改用户登录 shell
usermod -s /bin/zsh username
# 更改用户主组和附加组
usermod -g newgroup -G newgroup1,newgroup2 username
▐ userdel:删除用户
userdel 命令用于从系统中删除用户。
用法:
userdel [选项] 用户名
常用选项:
-r:删除用户的主目录和邮件池。
示例:
# 删除用户但保留主目录
userdel username
# 删除用户并删除主目录
userdel -r username
▐ groupadd:添加新组
groupadd 命令用于在系统中添加新组。
用法:
groupadd [选项] 组名
常用选项:
-g 组ID:指定组ID。
示例:
# 添加新组
groupadd newgroup
# 添加新组并指定组ID
groupadd -g 1001 newgroup
▐ groupdel:删除组
groupdel 命令用于从系统中删除组。
用法:
groupdel 组名
示例:
# 删除组
groupdel oldgroup
▐ passwd:修改用户密码
passwd 命令用于修改用户密码。
用法:
passwd [用户名]
示例:
# 修改当前用户的密码
passwd
# 修改指定用户的密码(需要超级用户权限)
passwd username
▐ su:切换用户
su 命令用于切换到另一个用户的身份。
用法:
su [选项] [用户名]
常用选项:
-:切换到用户并加载该用户的环境变量。
示例:
# 切换到 root 用户
su -
# 切换到指定用户
su username
▐ sudo:以超级用户权限执行命令
sudo 命令用于以超级用户或其他用户的身份执行命令。
用法:
sudo [选项] 命令
常用选项:
-u 用户:以指定用户的身份执行命令。
-s:启动交互式 shell。
示例:
# 以超级用户权限执行命令
sudo command
# 以指定用户身份执行命令
sudo -u username command
# 启动超级用户的交互式 shell
sudo -s
▐ id:显示用户和组信息
id 命令用于显示指定用户或当前用户的ID、组ID和附加组信息。
用法:
id [选项] [用户名]
常用选项:
-u:显示用户ID。
-g:显示组ID。
-G:显示所有组ID。
-n:显示名称而不是数字ID。
示例:
# 显示当前用户的信息
id
# 显示指定用户的信息
id username
# 显示当前用户的用户ID
id -u
# 显示当前用户的所有组ID
id -G
七.网络管理命令
在Linux中,网络管理命令用于配置、管理和监控网络接口、路由、连接状态等。
▐ ifconfig:配置网络接口
ifconfig 命令用于显示或配置网络接口。
用法:
ifconfig [接口] [选项]
常用选项:
up:启动网络接口。
down:关闭网络接口。
inet 地址:设置接口的IP地址。
netmask 地址:设置接口的子网掩码。
broadcast 地址:设置接口的广播地址。
示例:
# 显示所有网络接口的信息
ifconfig
# 启动网络接口 eth0
ifconfig eth0 up
# 关闭网络接口 eth0
ifconfig eth0 down
# 配置网络接口 eth0 的IP地址、子网掩码和广播地址
ifconfig eth0 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255
▐ ip:显示和操作路由、设备、策略路由等
ip 命令是 ifconfig 的现代替代品,功能更强大。
用法:
ip [选项] 对象 命令
常用对象和命令:
addr:管理IP地址。
show:显示地址。
add:添加地址。
del:删除地址。
link:管理网络接口。
show:显示接口。
set:设置接口状态(up/down)。
route:管理路由表。
show:显示路由。
add:添加路由。
del:删除路由。
示例:
# 显示所有网络接口的信息
ip addr show
# 显示接口 eth0 的信息
ip addr show eth0
# 启动网络接口 eth0
ip link set eth0 up
# 关闭网络接口 eth0
ip link set eth0 down
# 添加IP地址到接口 eth0
ip addr add 192.168.1.100/24 dev eth0
# 删除接口 eth0 上的IP地址
ip addr del 192.168.1.100/24 dev eth0
# 显示路由表
ip route show
# 添加默认网关
ip route add default via 192.168.1.1
# 删除默认网关
ip route del default
▐ ping:检查网络连通性
ping 命令用于测试与目标主机的连通性。
用法:
ping [选项] 目标
常用选项:
-c 次数:指定发送的ICMP请求数。
-i 间隔:指定每次请求间的间隔时间。
-s 大小:指定ICMP数据包的大小。
示例:
# ping 一个主机,直到手动停止
ping www.example.com
# ping 一个主机5次
ping -c 5 www.example.com
# 每隔0.5秒 ping 一次
ping -i 0.5 www.example.com
▐ traceroute:跟踪路由路径
traceroute 命令用于显示数据包到目标主机的路径。
用法:
traceroute [选项] 目标
常用选项:
-n:使用IP地址而非主机名。
-m 最大跳数:设置最大跳数。
示例:
# 跟踪到目标主机的路由
traceroute www.example.com
# 跟踪到目标主机的路由,使用IP地址
traceroute -n www.example.com
▐ netstat:显示网络连接、路由表、接口状态等
netstat 命令用于显示各种网络相关信息。
用法:
netstat [选项]
常用选项:
-a:显示所有连接和监听端口。
-t:显示TCP连接。
-u:显示UDP连接。
-n:以数字形式显示地址和端口。
-r:显示路由表。
-i:显示网络接口信息。
示例:
# 显示所有连接和监听端口
netstat -a
# 显示所有TCP连接
netstat -t
# 显示所有UDP连接
netstat -u
# 显示所有连接和监听端口,以数字形式
netstat -an
# 显示路由表
netstat -r
# 显示网络接口信息
netstat -i
八.磁盘管理命令
在Linux中,磁盘管理命令用于查看、配置和管理磁盘和文件系统。
▐ df:显示文件系统的磁盘空间使用情况
用法:
df [选项] [文件]
常用选项:
-h:以人类可读的格式显示磁盘使用情况。
-T:显示文件系统类型。
示例:
df -h # 以人类可读的格式显示所有挂载的文件系统的磁盘使用情况
df -Th # 显示所有挂载的文件系统的磁盘使用情况和类型
▐ fdisk:磁盘分区管理
fdisk 命令用于查看和编辑磁盘分区表。
用法:
fdisk [选项] 设备
常用选项:
-l:列出所有磁盘及其分区信息。
-u:显示分区大小以扇区为单位。
示例:
# 显示所有磁盘及其分区信息
fdisk -l
# 编辑磁盘 /dev/sda 的分区表
fdisk /dev/sda
常用交互命令:
n:创建新分区。
d:删除分区。
p:打印分区表。
w:写入分区表并退出。
q:退出但不保存更改。
▐ parted:高级磁盘分区管理
parted 命令用于创建和管理磁盘分区,支持更多类型的分区表。
用法:
parted [设备] [命令]
常用命令:
mklabel:创建新的分区表。
mkpart:创建新分区。
print:显示分区表。
rm:删除分区。
resizepart:调整分区大小。
示例:
# 进入交互模式编辑磁盘 /dev/sda
parted /dev/sda
# 在交互模式下显示分区表
(parted) print
# 创建新的 GPT 分区表
(parted) mklabel gpt
# 创建新分区
(parted) mkpart primary ext4 0% 100%
▐ mkfs:创建文件系统
mkfs 命令用于在分区上创建新的文件系统。
用法:
mkfs -t 文件系统类型 设备
常用文件系统类型:
ext4:第四代扩展文件系统。
xfs:XFS 文件系统。
vfat:FAT 文件系统。
示例:
# 在分区 /dev/sda1 上创建 ext4 文件系统
mkfs -t ext4 /dev/sda1
# 在分区 /dev/sdb1 上创建 xfs 文件系统
mkfs -t xfs /dev/sdb1
# 在分区 /dev/sdc1 上创建 vfat 文件系统
mkfs -t vfat /dev/sdc1
▐ mount:挂载文件系统
mount 命令用于将文件系统挂载到指定的挂载点。
用法:
mount [选项] 设备 挂载点
常用选项:
-t 类型:指定文件系统类型。
-o 选项:指定挂载选项(如只读、用户、绑定等)。
示例:
# 将设备 /dev/sda1 挂载到 /mnt 目录
mount /dev/sda1 /mnt
# 挂载 ext4 文件系统
mount -t ext4 /dev/sda1 /mnt
# 以只读模式挂载
mount -o ro /dev/sda1 /mnt
▐ umount:卸载文件系统
umount 命令用于卸载已挂载的文件系统。
用法:
umount [选项] 挂载点或设备
常用选项:
-f:强制卸载。
-l:延迟卸载。
示例:
# 卸载 /mnt 挂载点上的文件系统
umount /mnt
# 强制卸载 /mnt
umount -f /mnt
# 延迟卸载 /mnt
umount -l /mnt
九.程序安装和包管理命令
在Linux中,程序安装和包管理命令用于安装、更新、卸载和管理软件包。不同的Linux发行版使用不同的包管理工具和命令,下面是常见的包管理命令及其详细信息:
在Linux中,程序安装和包管理命令主要分为以下三个角度:
apt-get/apt:Debian系发行版的软件包管理工具
yum/dnf:Red Hat系发行版的软件包管理工具
rpm:Red Hat Package Manager,用于安装、卸载和管理RPM包
▐ 1. apt-get/apt:Debian系发行版的软件包管理工具
这些工具主要用于基于Debian的发行版,包括但不限于以下操作系统:
Debian:原始的Debian发行版。
Ubuntu:最流行的基于Debian的发行版,包括其各种官方衍生版,如Kubuntu、Lubuntu、Xubuntu等。
Linux Mint:基于Ubuntu的发行版,提供更友好的用户界面。
Elementary OS:基于Ubuntu的发行版,注重美观和简洁。
Kali Linux:基于Debian的发行版,专注于安全测试和数字取证。
Raspbian:为Raspberry Pi优化的Debian发行版。
apt-get 和 apt 是Debian系和Ubuntu系发行版中最常用的包管理工具。
apt-get
apt-get 是高级包管理工具,适用于命令行环境,用于处理软件包的安装、升级、删除等操作。
常用命令:
update:更新包列表。
upgrade:升级所有已安装的软件包。
install:安装新软件包。
remove:卸载软件包。
autoremove:自动卸载不再需要的软件包。
clean:清理下载的包文件。
dist-upgrade:进行发行版升级。
示例:
# 更新包列表
sudo apt-get update
# 升级所有已安装的软件包
sudo apt-get upgrade
# 安装新软件包
sudo apt-get install package_name
# 卸载软件包
sudo apt-get remove package_name
# 自动卸载不再需要的软件包
sudo apt-get autoremove
# 清理下载的包文件
sudo apt-get clean
# 进行发行版升级
sudo apt-get dist-upgrade
apt
apt 命令是 apt-get 的简化版,提供了更友好的用户界面,更易于使用。
常用命令:
update:更新包列表。
upgrade:升级所有已安装的软件包。
install:安装新软件包。
remove:卸载软件包。
autoremove:自动卸载不再需要的软件包。
search:搜索软件包。
show:显示软件包信息。
示例:
# 更新包列表
sudo apt update
# 升级所有已安装的软件包
sudo apt upgrade
# 安装新软件包
sudo apt install package_name
# 卸载软件包
sudo apt remove package_name
# 自动卸载不再需要的软件包
sudo apt autoremove
# 搜索软件包
apt search package_name
# 显示软件包信息
apt show package_name
▐ 2. yum/dnf:Red Hat系发行版的软件包管理工具
这些工具主要用于基于Red Hat的发行版,包括但不限于以下操作系统:
Red Hat Enterprise Linux (RHEL):商业支持的企业级发行版。
CentOS:RHEL的社区版,提供免费使用的RHEL功能。
Fedora:由Red Hat支持的社区版,常作为RHEL的新功能测试平台。
Oracle Linux:基于RHEL的发行版,提供Oracle支持。
AlmaLinux:社区驱动的RHEL替代品,主要用于服务器环境。
Rocky Linux:由CentOS创始人Gregory Kurtzer发起的RHEL替代品。
yum
yum 是Red Hat系和CentOS系发行版中常用的包管理工具,支持自动解决软件包依赖性问题。
常用命令:
check-update:检查可用更新。
update:升级所有已安装的软件包。
install:安装新软件包。
remove:卸载软件包。
clean:清理缓存。
list:列出软件包。
示例:
# 检查可用更新
sudo yum check-update
# 升级所有已安装的软件包
sudo yum update
# 安装新软件包
sudo yum install package_name
# 卸载软件包
sudo yum remove package_name
# 清理缓存
sudo yum clean all
# 列出所有已安装和可用的软件包
yum list
dnf
dnf 是 yum 的下一代版本,提供了改进的性能和更多功能。
常用命令:
check-update:检查可用更新。
upgrade:升级所有已安装的软件包。
install:安装新软件包。
remove:卸载软件包。
clean:清理缓存。
list:列出软件包。
示例:
# 检查可用更新
sudo dnf check-update
# 升级所有已安装的软件包
sudo dnf upgrade
# 安装新软件包
sudo dnf install package_name
# 卸载软件包
sudo dnf remove package_name
# 清理缓存
sudo dnf clean all
# 列出所有已安装和可用的软件包
dnf list
▐ 3. rpm:Red Hat Package Manager,用于安装、卸载和管理RPM包
RPM包管理器最初由Red Hat开发,现在广泛用于许多基于RPM的发行版,包括但不限于以下操作系统:
Red Hat Enterprise Linux (RHEL):使用rpm作为其基础包管理工具。
CentOS:使用rpm来管理软件包。
Fedora:使用rpm作为其底层包管理工具。
SUSE Linux Enterprise:SUSE的企业级发行版,使用rpm包管理器。
openSUSE:SUSE的社区版,使用rpm来管理软件包。
Oracle Linux:基于RHEL的发行版,使用rpm包管理器。
Mageia:基于Mandriva Linux的社区发行版,使用rpm包管理器。
PCLinuxOS:基于Mandriva的独立发行版,使用rpm包管理器。
rpm 是Red Hat Package Manager的缩写,用于管理RPM包。适用于Red Hat系发行版以及使用RPM包的其他发行版,如Fedora、CentOS等。
常用命令:
-i:安装软件包。
-e:卸载软件包。
-U:升级软件包。
-q:查询软件包。
示例:
# 安装RPM软件包
sudo rpm -i package_file.rpm
# 卸载RPM软件包
sudo rpm -e package_name
# 升级RPM软件包
sudo rpm -U package_file.rpm
# 查询已安装的软件包
rpm -q package_name
# 查询所有已安装的软件包
rpm -qa
选项说明:
-i:安装一个新软件包。
-e:卸载一个已安装的软件包。
-U:升级一个已安装的软件包,或如果未安装则安装。
-q:查询软件包信息。
-qa:列出所有已安装的软件包。
查询选项:
-qi:显示已安装软件包的详细信息。
-ql:列出已安装软件包的文件列表。
-qc:列出已安装软件包的配置文件。
示例:
# 显示已安装软件包的详细信息
rpm -qi package_name
# 列出已安装软件包的文件列表
rpm -ql package_name
# 列出已安装软件包的配置文件
rpm -qc package_name