Linux常用命令可以分为多个类别,包括文件操作、系统管理、网络管理、进程管理等。以下是一些常见的Linux命令及其解析:
文件和目录操作命令
ls - 列出目录内容
- 格式:
ls [选项] [文件/目录]
- 常用选项:
-l 显示详细信息 -a 显示隐藏文件 -h 人类可读格式 - 示例:
注意:
ls -l
和ll
通常是等效的,都用于显示目录内容的详细列表。ls -l
是个常用的命令,为了提高工作效率,一些Linux发行版将其别名为ll
,以便用户可以更方便地输入。
cd - 切换当前工作目录
- 格式:
cd [切换的目录]
- 示例:
pwd - 显示当前工作目录绝对路径
- 格式:
pwd
- 示例:
mkdir - 创建新目录
- 格式:
mkdir 新目录名
- 示例:
touch - 创建新文件或修改文件时间戳
- 格式:
touch 新文件名
- 示例:
cp - 复制文件或目录
- 格式:
cp [选项] 源文件/目录 目标文件/目录
- 常用选项:
-r 递归复制 -v 显示详细信息 - 示例:
mv - 移动或重命名文件或目录
- 格式:
mv [选项] 源文件或目录 目标文件或目录
- 示例:
rm - 删除文件或目录
- 格式:
rm [选项] 文件/目录
- 常用选项:
-r 递归删除 -f 强制删除 - 示例:
文本处理命令
cat - 连接文件并打印到标准输出设备
- 格式:
cat 已存在的文件
- 示例:
find - 在文件系统中查找文件。
- 格式:
find [路径] [选项] [表达式]
- 常用选项:
-name pattern
根据文件名进行匹配 -type type
根据文件类型进行匹配(如 f
表示文件,d
表示目录)-size [+|-]size
根据文件大小进行匹配 -user user
根据文件所有者进行匹配 -group group
根据文件所属组进行匹配 -mtime [+|-]days
根据文件修改时间进行匹配 - 示例:
grep - 在文件中查找字符串模式
- 格式:
grep [选项] [表达式] [文件]
- 常用选项:
-i
忽略大小写 -r
递归搜索 -n
显示行号 - 示例:
head - 显示文件开头几行。
- 格式:
head [选项] [文件]
- 常用选项:
-n
指定显示的行数,默认为10行 -c
指定显示的字节数 -q
不显示文件名 -v
显示文件名 - 示例:
- 显示文件的前10行内容:head file.txt
- 显示多个文件的前10行内容:head file1.txt file2.txt
- 显示标准输入的前10行内容(通过管道):cat filename.txt | head
tail - 显示文件末尾几行。
- 格式:
head [选项] [文件]
- 常用选项:
-n
显示文件末尾的行数。默认为10行 -f 实时跟踪文件末尾的内容,等待文件增长 -c 显示文件末尾的字节数 -v
显示文件名 - 示例:
- 显示文件末尾10行内容:tail file.txt
- 实时跟踪文件末尾的内容:tail -f file.txt
more - 分页查看文本内容
- 格式:
more 已存在的文件
- 示例:
more
会逐页显示文件的内容。用户可以按下空格键来向下翻页,按下q
键来退出more
命令。more
命令只支持向下翻页,不支持向上翻页或跳转到特定行。相比于more
,less
具有更多的特性和功能。
less - 显示文件内容,并允许向前或向后翻页。
- 格式:
less [选项] 文件
- 常用选项:
-N 显示每行的行号 -i 忽略搜索时的大小写 -S 长行自动换行显示 -F 在文件只有一页时,不进行分页,直接显示文件内容 - less功能按键:
- 空格键(Space): 向下翻页。
- b键: 向上翻页。
- 回车键(Enter): 向下滚动一行。
- 上箭头键和下箭头键: 向上和向下滚动一行。
- /: 进入搜索模式,输入要搜索的字符串,然后按下回车键。按下n键可以继续向下搜索,按下N键可以向上搜索。
- q键: 退出
less
命令。
vim - 文本编辑器
- 格式:
vim 文件
- 注意:如果文件不存在,保存时候vim会创建一个新文件。
授权类命令
chmod - 修改文件或目录的权限
(1)数字形式修改权限:
- 格式:
chmod [选项] 数字模式 [文件/目录]
- 常用选项:
-R
:递归地修改目录及其下所有文件和子目录的权限
- 示例:
chmod 777 file.txt:
将文件file.txt
设置为所有用户可读、写、执行权限chmod -R 777 folder:
设置文件夹folder
及其所有子目录和文件的权限
扩展:
数字模式是一种表示权限的简便方式,使用数字来表示文件或目录的权限。它的计算方式是将权限分为三组:用户权限、组权限和其他用户权限,每组权限又分为读、写和执行权限,分别用数字 4、2、1 来表示。以如下为例:chmod 644 file
其中:
- 文件所有者权限为 6(4+2,可读可写)。
- 组权限为 4(只读)。
- 其他用户权限为 4(只读)
(2)符号形式修改权限:
- 格式:
chmod [ugoa][+-=][rwx] [文件/目录]
- 符号说明:
符号类型 | 符号 | 说明 |
分组符号 | u | 表所有者(User) |
g | 所属组(Group) | |
o | 其他用户(Others) | |
a | 所有用户(User、Group、Others) | |
关联符号 | + | 添加权限; |
- | 移除权限 | |
= | 设置权限 | |
权限符号 | r | 读权限(Read) |
w | 写权限(Write) | |
x | 执行权限(eXecute) | |
- | 无权限 |
- 示例:
- 给文件所有者添加执行权限:chmod u+x filename
chown - 用于修改文件或目录的所有者
- 格式:
chown [选项] 用户名 [文件/目录]
- 常用选项:
-R
:递归地修改目录及其子目录下的所有者。
- 示例:
- 将文件
file.txt
的所有者修改为用户user1
:chown user1 file.txt
- 将目录
folder
及其所有子目录和文件的所有者修改为用户user2
:chown -R user2 folder
- 将文件
扩展:同时修改所属用户和用户组:chown [用户名]:[用户组名] [文件/目录]
chgrp - 用于修改文件或目录的所属用户组
- 格式:
chgrp [选项] 用户组名 文件名
- 说明:用于修改文件或目录的所属用户组。
- 常用选项:
-R
:递归地修改目录及其子目录下的所属用户组。
- 示例:
- 将文件
file.txt
的所属用户组修改为用户组group1
:chgrp group1 file.txt
- 将目录
folder
及其所有子目录和文件的所属用户组修改为用户组group2
:chgrp -R group2 folder
- 将文件
系统管理命令
top - 实时显示系统的资源占用情况和进程信息
- 格式:
top
- 示例:
free - 显示内存使用情况
- 格式:
free [选项]
- 常用选项:
- -m:以MB为单位显示内存大小
- -g:以GB为单位显示内存大小
- -t:在输出末尾添加一行总计信息,显示总计的内存使用情况
- 示例:
打印出来的信息说明:
字段 | 说明 |
total | 内存总大小 |
used | 使用的内存 |
free | 除了 buff/cache 剩余的内存 |
Shared | 共享内存 |
Buff/cact | 缓冲、缓存区内存数 |
available | 真实剩余的可用内存数 |
ps - 显示当前进程信息
- 格式:
ps [选项]
- 特殊选项:aux,由三个独立的选项组合而成的:
a
:显示所有用户的进程,而不仅仅是当前用户的进程。u
:以详细的格式显示进程信息,包括用户、进程ID、CPU占用率、内存占用等。x
:显示没有控制终端的进程,通常是守护进程或后台进程。
- 常用选项:
- -e:显示所有进程。
- -f:显示完整的进程信息。
- -l:显示长格式的进程信息。
- -a:显示除控制进程和无终端进程之外的所有进程。
- -x:显示没有控制终端的进程。
- -u user:显示特定用户的进程。
- -p pid:显示特定进程ID的进程。
- -C command:显示特定命令名的进程。
- -o format:自定义输出格式。
- --sort key:按照指定的键值对进程进行排序显示。
- --forest:以树形结构显示进程。
- 示例:
- 显示所有用户的详细进程信息:ps aux
- 列出系统的所有进程信息:ps -ef
打印出来的信息说明:
字段 | 说明 |
USER | 进程的用户名,表示该进程是由哪个用户启动的 |
PID | 进程ID,唯一标识系统中的每个进程 |
%CPU | CPU使用率,表示进程占用CPU的百分比 |
%MEM | 内存使用率,表示进程占用内存的百分比 |
VSZ | 虚拟内存大小(Virtual Size),表示进程虚拟内存的大小,以KB为单位 |
RSS | 常驻内存集(Resident Set Size),表示进程实际使用的物理内存大小,以KB为单位 |
TTY | 控制终端,表示进程关联的控制终端 |
STAT | 进程状态,包括运行状态(R)、睡眠状态(S)、僵尸状态(Z)等 |
START | 进程启动时间,表示进程启动的时间点 |
TIME | CPU时间,表示进程累计占用CPU的时间 |
COMMAND | 进程的命令行,表示启动进程时使用的命令和参数 |
扩展:
1)只显示包含指定进程名的行:ps aux | grep <进程名>
2)ps -ef 和 ps aux 两者都可用于列出系统的所有进程信息,但ps aux更适合快速查看当前系统中的进程情况。
kill - 终止进程
- 格式:
kill [选项] PID
- 常用选项:
- -9:表示强制终止进程
- 示例:
- 终止进程ID为3252的进程:
kill -9 3252
- 终止进程ID为3252的进程:
扩展:
- 执行命令ps -ef | grep <进程名>可获取进程ID(PID);
用
jps 命令获取正在运行的Java进程的进程ID(PID)及其对应的Java主类名称。
df - 显示磁盘空间使用情况
- 格式:
df [选项]
- 常用选项:
- -h:使用人类可读的格式显示磁盘空间大小(例如,KB、MB、GB等)
- -T:显示文件系统类型
- -t <类型>:仅显示指定类型的文件系统
- --total:显示总计信息,包括所有文件系统的总空间、已用空间和可用空间
- 示例:
df -h
du - 显示文件和目录的磁盘使用情况
- 格式:
du [选项] 目录
- 常用选项:
-
-h
:以人类可读的方式显示文件大小,例如KB、MB、GB等。 -
-s
:显示指定目录的总大小,而不显示其子目录的大小。 -
-a
:显示所有文件的大小,包括隐藏文件。 -
-c
:显示总大小,同时显示每个子目录的大小。 -
-k
:以KB为单位显示文件大小。 -
-m
:以MB为单位显示文件大小。 -
-B <block-size>
:设置块大小,可以指定以字节、KB、MB等为单位的块大小。
-
- 示例:
uname - 显示系统信息。
- 格式:
uname [选项]
- 常用选项:
-a
:显示全部系统信息。-s
:显示系统内核名称。-n
:显示网络节点主机名。-r
:显示内核发布号。-v
:显示内核版本。-m
:显示机器硬件名称。-p
:显示处理器类型或unknown。-i
:显示硬件平台或unknown。-o
:显示操作系统名称。
- 示例:
[root@linux100 ~]# uname -a
Linux linux100 4.15.0-70-generic #79-Ubuntu SMP Tue Nov 12 10:36:11 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
打印出来的信息说明:
字段 | 对应打印的值 | 说明 |
操作系统类型 - Operating System Type | Linux | 显示操作系统类型,如Linux、Unix等。 |
主机名 - Hostname | linux100 | 显示当前主机的名称 |
内核版本 - Kernel Version | 4.15.0-70-generic | 显示当前系统正在使用的内核版本号 |
操作系统发行版版本号 - OS Distribution Version | #79 | 显示操作系统发行版的版本号。 |
操作系统发行版 - OS Distribution | Ubuntu | 显示操作系统的发行版信息,如Ubuntu、CentOS等。 |
操作系统架构 - Architecture | x86_64 | 显示操作系统的架构,如x86_64、i386等 |
service - 管理系统服务
- 格式:
service [选项] 服务名称 [命令]
- 选项:用于指定
service
命令的一些额外参数,如--status-all
用于显示所有系统服务的状态。 - 服务名称:要操作的系统服务的名称。
- 命令:指定要执行的操作
- start:启动指定的系统服务。
- stop:停止指定的系统服务。
- restart:重启指定的系统服务。
- reload:重新加载指定的系统服务的配置文件,通常用于重新加载配置而不需要重启服务。
- status:显示指定的系统服务的当前状态,如是否正在运行。
- enable:设置指定的系统服务在系统启动时自动启动。
- disable:禁用指定的系统服务,使其在系统启动时不自动启动。
- list:列出系统中所有可用的系统服务。
- 选项:用于指定
- 示例:
# 启动MySQL服务
service mysql start
# 重启Nginx服务
service nginx restart
# 查看SSH服务状态
service ssh status
# 设置Tomcat服务在系统启动时自动启动
service tomcat enable
systemctl- 管理系统服务(systemd系统)
- 格式:
systemctl [选项] 命令 [服务名]
- 常用选项:
选项类型 | 选项 | 说明 |
启动和停止服务 | start <服务名> | 启动指定的服务 |
stop <服务名> | 停止指定的服务 | |
重启和重载服务 | restart <服务名> | 重启指定的服务 |
reload <服务名> | 重新加载指定的服务配置,不会停止服务 | |
启用和禁用服务 | enable <服务名> | 设置服务为开机启动 |
disable <服务名> | 设置服务为不开机启动 | |
查看服务状态 | status <服务名> | 查看指定服务的状态 |
is-active <服务名> | 检查指定服务是否处于激活状态(运行中) | |
is-enabled <服务名> | 检查指定服务是否已设置为开机启动 | |
is-failed <服务名> | 检查指定服务是否失败 | |
显示所有服务列表 | list-units | 显示所有正在运行的单元(服务、套接字、设备等) |
list-unit-files | 显示所有可用的单元文件(服务配置文件) | |
查看日志 |
| 显示的日志包含systemd日志 |
journalctl -u <服务名> | 显示指定服务的日志 |
- 示例:
# 启动mysql
systemctl start mysql
# 重启mysql
systemctl restart mysql
# 设置mysql为开机启动
systemctl enable mysql
# 检查mysql是否处于激活状态:
systemctl is-active mysql
shutdown - 关机或重启系统
reboot - 重启系统
网络管理命令
ifconfig - 显示和配置网络接口的信息。
- 格式:
ifconfig [选项]
- 常用选项:
-a
:显示所有网络接口的信息,包括未激活的接口。<interface>
:指定显示某个特定网络接口的信息。up
:激活一个网络接口。down
:禁用一个网络接口。
- 示例:
ping - 测试与另一台主机的连通性
- 格式:
ping [选项] hostname/IP
- 示例:
telnet - 测试远程主机的IP和端口是否能正常访问
- 格式:
telnet [选项] IP地址 [端口]
- 常用选项:
-l <username>
:指定登录用户名。-b <source>
:指定本地地址。-d
:启用调试模式。-E
:在ECHO字符时不去掉换行符。-k
:启用密钥盘。-n <tracefile>
:将所有收到和发送的字节写入跟踪文件。-r
:使用指定的协议行方式。-t <time>
:设置连接的超时时间。
- 示例:
# 连接到远程主机的默认Telnet端口
telnet baidu.com
# 连接到远程主机的指定端口:
telnet example.com 8080
# 指定登录用户名连接到远程主机:
telnet -l username example.com
# 启用调试模式连接到远程主机:
telnet -d example.com
# 指定本地地址连接到远程主机:
telnet -b local_address example.com
netstat - 显示网络连接、路由表和网络接口统计信息
- 格式:
netstat [选项]
- 常用选项:
-a
:显示所有的连接和监听端口。-t
:显示TCP协议的连接。-u
:显示UDP协议的连接。-l
:显示监听状态的连接。-n
:显示IP地址和端口号(不进行反向解析)。-p
:显示连接对应的进程ID和进程名称。-r
:显示路由表。-s
:显示网络统计信息。-c
:连续显示网络状态信息,每隔一段时间刷新一次。
- 示例:
traceroute- 跟踪数据包从源到目的地的路径
- 格式:
traceroute [选项] IP地址/域名
- 常用选项:
-h
:设置跟踪数据包的最大跳数。-n
:以IP地址形式显示跃点,而不进行域名解析。-q
:设置发送到每个跃点的数据包数量。-w
:设置超时时间,单位为秒。-m
:设置最大跃点数。-I
:使用ICMP协议进行跟踪。-T
:使用TCP协议进行跟踪。
- 示例:
上面示例中,显示了从本地主机到目标主机(192.168.243.102)经过的1个路由器或中间节点的信息,包括它们的IP地址(192.168.243.102)、主机名(linux102)、以及数据包往返时间RTT(0.161 ms 0.132 ms 0.097 ms)。
curl - 模拟客户端发送http请求。
- 格式:
curl [选项] [url]
- 常用选项:
-X, --request <command>
:指定HTTP请求方法,如GET、POST、PUT等。-d, --data <data>
:发送POST请求的数据。-H, --header <header>
:添加HTTP请求头。-i, --include
:显示HTTP响应头信息。-o, --output <file>
:将响应保存到文件中。-O, --remote-name
:将响应保存到本地文件,文件名由服务器决定。-L, --location
:自动跟随重定向。-k, --insecure
:忽略SSL证书验证。-v, --verbose
:显示详细的调试信息。-u <username>:<password>
:用于指定用户名密码,进行HTTP基本认证。
- 示例:
# 发送GET请求并显示响应
curl http://example.com
# 发起POST请求并响应
curl -X POST -d "param1=value1¶m2=value2" http://example.com
# 发送带有自定义请求头的请求
curl -H "Content-Type: application/json" http://example.com
# 下载文件并保存到本地
curl -O http://example.com/file.txt
#发送带有用户名和密码的HTTP Basic认证请求
curl -u username:password http://example.com
curl命令常用于下载文件、测试API等。
wget - 用于从网络上下载文件
- 格式:
wget [选项] [url]
- 常用选项:
-O, --output-document=FILE
:将下载的文件保存为指定的文件名。-q, --quiet
:静默模式,不显示任何输出。-P, --directory-prefix=PREFIX
:将下载的文件保存到指定的目录。-c, --continue
:继续下载未完成的文件。-r, --recursive
:递归下载指定URL及其所有链接的文件。-np, --no-parent
:不下载父目录链接的文件。-nH, --no-host-directories
:不创建主机目录。-N, --timestamping
:仅在远程文件新于本地文件或文件不存在时才下载。-l, --limit-rate=RATE
:限制下载速率。-i, --input-file=FILE
:从文件中读取URL列表进行下载。
- 示例:
# 下载单个文件并保存为指定文件名
wget -O myfile.txt http://example.com/file.txt
# 下载文件到指定目录
wget -P /path/to/directory http://example.com/file.txt
# 继续下载未完成的文件
wget -c http://example.com/file.txt
# 从文件中读取URL列表进行下载
wget -i urls.txt
ssh - 用于远程管理和操作计算机
- 格式:
ssh [选项] [user@]hostname [命令]
- 常用选项:
-l username
:指定登录的用户名。-p port
:指定SSH服务器的端口,默认为22。-i identity_file
:指定身份验证文件,用于私钥认证。-N
:仅建立连接,不执行远程命令。-q
:静默模式,不显示连接过程中的警告信息。-v
:详细模式,显示更多的调试信息。-X
:启用X11转发,可以在远程主机上显示图形界面。-C
:启用压缩传输。
- 示例:
# 以用户名和密码登录到远程主机
ssh username@hostname
# 以指定端口号登录到远程主机
ssh -p 2222 username@hostname
# 在远程主机上执行命令
ssh username@hostname "ls -l /"
# 使用私钥文件进行身份验证登录
ssh -i ~/.ssh/id_rsa username@hostname
scp - 用于本地与远程系统间进行文件传输
- 格式:
scp [options] [来源地址] [目的地址]
- 常用选项:
-r
:递归复制整个目录。-P port
:指定端口号。-p
:保留原文件的修改时间、权限等信息。-q
:静默模式,不显示进度信息。-C
:开启压缩传输。-v
:显示详细的调试信息。
- 示例:
# 从本地系统拷贝文件到远程系统
scp file.txt user@remote_host:/path/to/destination/
# 从远程系统拷贝文件到本地系统
scp user@remote_host:/path/to/file.txt /local/path/to/destination/
# 从本地系统拷贝目录到远程系统
scp -r directory user@remote_host:/path/to/destination/
# 从远程系统拷贝目录到本地系统
scp -r user@remote_host:/path/to/directory /local/path/to/destination/
rsync - 用于不同系统之间同步文件和目录
- 格式:
rsync [options] 来源地址 目的地址
- 常用选项:
-a, --archive
:归档模式,保留文件的所有属性,递归同步子目录。-v, --verbose
:详细模式,显示传输过程中的详细信息。-r, --recursive
:递归模式,同步子目录。-u, --update
:更新模式,仅同步源目录中新增或修改的文件。-z, --compress
:压缩传输,减少网络带宽占用。-h, --human-readable
:以人类可读的格式显示输出。-e, --rsh=COMMAND
:指定远程shell命令,如SSH。--delete
:删除目标目录中源目录没有的文件。--exclude=PATTERN
:排除匹配的文件或目录。--progress
:显示传输进度。
- 示例:
# 本地目录同步到远程主机
rsync -avz /path/to/source user@remote_host:/path/to/destination
# 远程主机同步到本地目录
rsync -avz user@remote_host:/path/to/source /path/to/destination
# 仅同步新增或修改的文件
rsync -avzu /path/to/source user@remote_host:/path/to/destination
# 删除目标目录中源目录没有的文件
rsync -avz --delete /path/to/source user@remote_host:/path/to/destination
# 排除指定的文件或目录
rsync -avz --exclude="*.log" /path/to/source user@remote_host:/path/to/destination
扩展:比较下scp命令跟rsync命令的区别:
两者的相同点:
功能:两者都可以用于在本地计算机和远程计算机之间进行文件传输。
安全性:两者都通过SSH(Secure Shell)进行加密传输,保证了数据的安全性。
支持性:两者都广泛支持在Unix/Linux系统上使用,并且可以跨平台进行文件传输。
两者的不同点:
传输方式:
rsync
是一种增量传输工具,它可以只传输源文件和目标文件之间的差异部分,从而节省带宽和时间。scp
是一种简单的拷贝命令,它会传输整个文件,无论文件是否有变化。性能:
- 由于
rsync
采用增量传输的方式,通常情况下比scp
传输速度更快,尤其是在需要多次传输相同文件的情况下。scp
每次传输都需要传输整个文件,因此在大文件或网络带宽有限的情况下可能性能较差。复制目录:
rsync
可以很容易地复制整个目录及其内容,而scp
通常需要使用-r
选项来递归复制整个目录。灵活性:
rsync
提供了丰富的选项和参数,可以满足不同的需求,如同步文件、备份文件、忽略特定文件等。scp
的功能相对较简单,只能进行简单的文件传输。
压缩和解压命令
tar - 创建或解压tar归档文件
- 格式:
tar [选项] [归档文件] [文件/目录]
- 常用选项:
-c
:创建一个新的归档文件。-x
:从归档文件中解压文件。-f
:指定归档文件的名称。-v
:显示详细的处理过程。-z
:通过gzip进行压缩或解压缩。-j
:通过bzip2进行压缩或解压缩。-C
:指定解压文件的目标目录。
- 示例:
# 创建一个归档文件
tar -cvf archive.tar file1 file2 directory
# 创建一个gzip压缩的归档文件
tar -czvf archive.tar.gz directory
# 解压一个归档文件
tar -xvf archive.tar
# 解压到指定目录
tar -xzvf archive.tar.gz -C /path/to/directory
gzip - 使用gzip进行压缩或解压缩。
- 格式:
gzip [选项] [文件名]
- 常用选项:
-c, --stdout
:将压缩后的文件输出到标准输出,而不修改原始文件。-d, --decompress
:解压缩文件。-f, --force
:强制压缩或解压缩文件,即使存在同名文件也进行操作。-r, --recursive
:递归处理目录下的所有文件及子目录。-t, --test
:测试压缩文件的完整性。-v, --verbose
:显示压缩或解压缩的详细信息。-9
:指定压缩级别,数字越大,压缩比越高,但耗费的时间也越长。
- 示例:
# 压缩文件
gzip file.txt
# 压缩多个文件
gzip file1.txt file2.txt
# 将压缩后的文件输出到标准输出:
gzip -c file.txt > compressed.gz
# 解压缩文件
gzip -d compressed.gz
# 递归压缩目录下的所有文件
gzip -r directory/
gunzip - 解压gzip压缩文件
- 格式:
gunzip [选项] [压缩文件名]
- 示例:
# 解压缩一个文件
gunzip file.txt.gz
# 解压缩多个文件
gunzip file1.gz file2.gz
zip - 创建ZIP文件
- 格式:
zip [选项] [压缩文件名] [要压缩的文件/目录]
- 常用选项:
-r
:递归压缩目录及其子目录下的所有文件。-q
:静默模式,不显示压缩过程中的信息。-9
:使用最高压缩级别进行压缩,压缩率最高,但速度最慢。-o
:覆盖已存在的压缩文件,如果压缩文件已经存在,则会覆盖掉原有的压缩文件。-u
:更新压缩文件,只添加新文件或已修改文件到压缩文件中。-d
:删除压缩文件中的指定文件。
- 示例:
# 将文件或目录压缩成一个压缩文件
zip -r compressed_files.zip directory
# 将多个文件或目录压缩成一个压缩文件
zip compressed_files.zip file1 file2 directory
# 使用最高压缩级别进行压缩
zip -9 compressed_files.zip directory
unzip - 解压zip文件
- 格式:
unzip [选项] 文件名.zip
- 常用选项:
-d <目标目录>
:指定解压缩后的文件存放的目标目录。-q
:安静模式,不显示任何解压缩过程中的信息。-o
:不提示,直接覆盖已存在的文件。-j
:仅解压缩文件,不解压缩文件夹。-l
:列出ZIP文件中的内容列表,但不解压缩文件。-v
:详细模式,显示解压缩过程中的详细信息。
- 示例:
# 解压缩文件到当前目录
unzip example.zip
# 解压缩文件到指定目录
unzip -d /opt example.zip
# 解压缩并覆盖已存在的文件
unzip -o example.zip
bzip2 - 使用bzip2进行压缩或解压缩
- 格式:
bzip2 [选项] 文件名
- 常用选项:
d
:解压缩文件。-k
:保留原始文件,不删除原始文件。-f
:强制压缩,即使文件已经存在。-z
:压缩文件。-v
:显示压缩或解压缩的详细信息。-t
:测试压缩文件的完整性。-q
:不显示压缩或解压缩的进度信息。
- 示例:
# 压缩文件
bzip2 file.txt
# 解压缩文件
bzip2 -d file.txt.bz2
xz - 使用xz进行压缩或解压缩
- 格式:
xz [选项] [文件名]
- 常用选项:
-z, --compress
:压缩文件(默认行为)。-d, --decompress
:解压缩文件。-k, --keep
:保留原始文件。-c, --stdout
:将压缩或解压缩的结果输出到标准输出,而不是写入文件。-t, --test
:测试压缩文件的完整性。-f, --force
:强制覆盖已存在的目标文件。-v, --verbose
:显示详细的压缩和解压缩过程信息。-q, --quiet
:静默模式,减少输出信息。-k, --keep
:保留原始文件。-9, --best
:使用最高的压缩级别(默认为6)。-1, --fast
:使用最快的压缩级别。
- 示例:
# 压缩文件
xz file.txt
# 解压缩文件
xz -d file.txt.xz
# 将压缩的结果输出到标准输出
xz -c file.txt > file.txt.xz
软件包管理
apt-get:Debian/Ubuntu系统下的包管理工具
- 格式:
apt-get [选项] [软件包名]
- 常用选项:
upgrade
:升级软件包。remove
:卸载软件包。update
:更新已安装的软件包。install
:安装软件包。-s
:模拟执行操作,不会真正执行命令,用于预览操作效果。-f
:修复损坏的依赖关系。-q
:安静模式,减少输出信息。-y
:自动回答yes,不需要用户确认操作。
- 示例:
# 安装软件包
sudo apt-get install vim
# 移除软件包
sudo apt-get remove vim
# 更新软件包列表
sudo apt-get update vim
# 安装软件包并自动回答yes
sudo apt-get -y install vim
yum:CentOS/RHEL系统下的包管理工具
- 格式:
yum [选项] [软件包名]
- 常用选项:
-y, --assumeyes
:在执行操作时自动回答“yes”。-q, --quiet
:静默模式,只输出错误和警告信息。-v, --verbose
:详细模式,输出更多的执行信息。-h, --help
:显示帮助信息。install
:安装软件包。update
:更新已安装的软件包。remove
:卸载软件包。search
:搜索软件包。info
:显示软件包的详细信息。
- 示例:
# 安装软件包
yum install nginx
# 更新已安装的软件包
yum update
# 卸载软件包
yum remove nginx
# 显示软件包的详细信息
yum info nginx
Linux系统有很多其他功能强大的命令可供使用,具体使用方法和参数可以通过命令后跟--help
或者man
命令查看帮助文档。