【linux核心命令】
- 互联网
- 2025-08-21 22:51:02

【linux核心命令】 一级目录1. 使用 `gzip` 压缩为 `.gz` 格式知识点代码示例解压操作 2. 使用 `bzip2` 压缩为 `.bz2` 格式知识点代码示例解压操作 3. 使用 `xz` 压缩为 `.xz` 格式知识点代码示例解压操作 4. 使用 `zip` 压缩为 `.zip` 格式知识点代码示例解压操作 5. 使用 `tar` 结合压缩工具创建归档压缩包知识点代码示例解压操作 1. `.tar`(仅归档)相关知识点代码示例及运行结果 2. `.tar.gz`相关知识点代码示例及运行结果 3. `.tar.bz2`相关知识点代码示例及运行结果 4. `.zip`相关知识点代码示例及运行结果 5. `.tar.xz`相关知识点代码示例及运行结果1. 文件和目录的三种基本权限2. 三种权限对象3. 权限表示方法4. 常用权限管理命令 代码示例1. `chmod` 命令数字表示法符号表示法 2. `chown` 命令3. `chgrp` 命令 1. `useradd`(创建用户)知识点代码示例 2. `passwd`(设置或修改用户密码)知识点代码示例 3. `userdel`(删除用户)知识点代码示例 4. `usermod`(修改用户属性)知识点代码示例 5. `groupadd`(创建用户组)知识点代码示例 6. `groupdel`(删除用户组)知识点代码示例 7. `groups`(查看用户所属组)知识点代码示例 8. `id`(查看用户的身份信息)知识点代码示例 1. `ps` - 查看进程信息知识点代码示例 2. `top` - 动态监控进程知识点代码示例 3. `pstree` - 以树状结构显示进程知识点代码示例 4. `kill` - 终止进程知识点代码示例 5. `killall` - 根据进程名终止进程知识点代码示例 6. `nice` 和 `renice` - 调整进程优先级知识点代码示例 7. `jobs`、`bg` 和 `fg` - 作业控制知识点代码示例 一级目录 1. 使用 gzip 压缩为 .gz 格式 知识点
gzip 是一种广泛使用的压缩工具,它能对单个文件进行压缩,压缩后的文件会添加 .gz 扩展名,原文件会被覆盖。gzip 压缩速度较快,适合日常对文件进行简单压缩。
代码示例假设你有一个名为 example.c 的 C 文件,要将其压缩为 .gz 格式,可以执行以下命令:
gzip example.c执行该命令后,example.c 文件会被压缩成 example.c.gz,原 example.c 文件将不存在。
解压操作若要解压该文件,可以使用 gunzip 命令:
gunzip example.c.gz执行后,example.c.gz 文件会被解压为 example.c。
2. 使用 bzip2 压缩为 .bz2 格式 知识点bzip2 提供比 gzip 更高的压缩比,但压缩和解压速度相对较慢。它同样是对单个文件进行压缩,压缩后的文件会添加 .bz2 扩展名,原文件会被覆盖。
代码示例对 example.c 文件进行 bzip2 压缩:
bzip2 example.c执行此命令后,会生成 example.c.bz2 文件,原 example.c 文件消失。
解压操作使用 bunzip2 命令进行解压:
bunzip2 example.c.bz2解压后,会恢复出 example.c 文件。
3. 使用 xz 压缩为 .xz 格式 知识点xz 是一种高效的压缩工具,能实现非常高的压缩比,但压缩和解压过程通常需要更多的时间和系统资源。压缩后的文件会添加 .xz 扩展名,原文件会被覆盖。
代码示例对 example.c 文件使用 xz 进行压缩:
xz example.c执行后,会得到 example.c.xz 文件,原 example.c 文件被移除。
解压操作使用以下命令进行解压:
xz -d example.c.xz解压完成后,example.c 文件会被恢复。
4. 使用 zip 压缩为 .zip 格式 知识点zip 是一种跨平台的压缩工具,可以对单个或多个文件、目录进行压缩,压缩后的文件以 .zip 为扩展名,原文件不会被覆盖。它常用于在不同操作系统之间交换文件。
代码示例如果只压缩单个 example.c 文件:
zip example.zip example.c若要压缩多个 C 文件,比如 example1.c 和 example2.c:
zip examples.zip example1.c example2.c 解压操作使用 unzip 命令解压 .zip 文件:
unzip example.zip或者对于包含多个文件的 examples.zip:
unzip examples.zip 5. 使用 tar 结合压缩工具创建归档压缩包 知识点tar 本身是一个归档工具,可将多个文件或目录合并成一个文件,再结合 gzip、bzip2 或 xz 等压缩工具可以创建不同格式的归档压缩包,如 .tar.gz、.tar.bz2、.tar.xz 等。这种方式适合对多个相关文件或目录进行打包压缩。
代码示例 创建 .tar.gz 压缩包: tar -czf example.tar.gz example.c这里 -c 表示创建归档文件,-z 表示使用 gzip 进行压缩,-f 用于指定归档文件的名称。
创建 .tar.bz2 压缩包: tar -cjf example.tar.bz2 example.c其中 -j 表示使用 bzip2 进行压缩。
创建 .tar.xz 压缩包: tar -cJf example.tar.xz example.c-J 表示使用 xz 进行压缩。
解压操作 解压 .tar.gz 文件: tar -xzf example.tar.gz-x 表示从归档文件中提取文件。
解压 .tar.bz2 文件: tar -xjf example.tar.bz2 解压 .tar.xz 文件: tar -xJf example.tar.xz 1. .tar(仅归档) 相关知识点tar 是 Linux 中常用的归档工具,它可以将多个文件或目录合并成一个文件,但不进行压缩。
代码示例及运行结果 归档: # 将目录 dir 中的所有文件归档成 a.tar shaseng@ubuntu:~$ tar cf a.tar dir/*运行结果:当前目录下生成 a.tar 文件,该文件包含 dir 目录中的所有文件和子目录的信息。
查看归档内容: # 查看归档文件 a.tar shaseng@ubuntu:~$ tar tf a.tar运行结果:终端会列出 a.tar 中包含的所有文件和目录的名称。
释放归档: # 释放归档文件 a.tar shaseng@ubuntu:~$ tar xf a.tar运行结果:a.tar 中的文件和目录会被释放到当前目录。
指定路径释放: # 将文件释放到 /tmp shaseng@ubuntu:~$ tar -xf a.tar -C /tmp运行结果:a.tar 中的文件和目录会被释放到 /tmp 目录下。
2. .tar.gz 相关知识点先使用 tar 进行归档,再使用 gzip 进行压缩,具有较好的压缩比和较快的处理速度,是一种常用的压缩格式。
代码示例及运行结果 归档并压缩: # 将目录 dir 中的所有文件归档并压缩为 gz 格式 shaseng@ubuntu:~$ tar czf a.tar.gz dir/*运行结果:当前目录下生成 a.tar.gz 文件,它是 dir 目录内容经过归档和压缩后的文件。
查看压缩内容: # 查看压缩文件 a.tar.gz shaseng@ubuntu:~$ tar tf a.tar.gz运行结果:终端会列出 a.tar.gz 中包含的所有文件和目录的名称。
解压: # 解压压缩文件 a.tar.gz shaseng@ubuntu:~$ tar xzf a.tar.gz运行结果:a.tar.gz 中的文件和目录会被解压到当前目录。
指定路径解压: # 将文件解压到 /tmp shaseng@ubuntu:~$ tar -xzf a.tar.gz -C /tmp运行结果:a.tar.gz 中的文件和目录会被解压到 /tmp 目录下。
3. .tar.bz2 相关知识点先使用 tar 归档,再使用 bzip2 压缩,压缩比通常比 .tar.gz 更高,但压缩和解压速度相对较慢。
代码示例及运行结果 归档并压缩: # 将目录 dir 中的所有文件归档并压缩为 bz2 格式 shaseng@ubuntu:~$ tar cjf a.tar.bz2 dir/*运行结果:当前目录下生成 a.tar.bz2 文件,它是 dir 目录内容经过归档和 bzip2 压缩后的文件。
查看压缩内容: # 查看压缩文件 a.tar.bz2 shaseng@ubuntu:~$ tar tf a.tar.bz2运行结果:终端会列出 a.tar.bz2 中包含的所有文件和目录的名称。
解压: # 解压压缩文件 a.tar.bz2 shaseng@ubuntu:~$ tar xjf a.tar.bz2运行结果:a.tar.bz2 中的文件和目录会被解压到当前目录。
指定路径解压: # 将文件解压到 /tmp shaseng@ubuntu:~$ tar -xjf a.tar.bz2 -C /tmp运行结果:a.tar.bz2 中的文件和目录会被解压到 /tmp 目录下。
4. .zip 相关知识点一种跨平台的压缩格式,在 Windows、Linux 和 macOS 等系统中都广泛支持,可使用 zip 命令进行压缩,unzip 命令进行解压。
代码示例及运行结果 压缩: # 将目录 dir 中的所有文件压缩为 zip 格式 shaseng@ubuntu:~$ zip -r a.zip dir/*运行结果:当前目录下生成 a.zip 文件,它包含 dir 目录中的所有文件和子目录。
查看压缩内容: # 查看压缩文件 a.zip shaseng@ubuntu:~$ unzip -l a.zip运行结果:终端会列出 a.zip 中包含的所有文件和目录的名称、大小等信息。
解压: # 解压压缩文件 a.zip shaseng@ubuntu:~$ unzip a.zip运行结果:a.zip 中的文件和目录会被解压到当前目录。
指定路径解压: # 将文件解压到 /tmp shaseng@ubuntu:~$ unzip a.zip -d /tmp运行结果:a.zip 中的文件和目录会被解压到 /tmp 目录下。
5. .tar.xz 相关知识点先使用 tar 归档,再使用 xz 算法压缩,能实现很高的压缩比,但压缩和解压过程相对较慢,消耗资源较多。
代码示例及运行结果 归档并压缩: # 将目录 dir 中的所有文件归档并压缩为 xz 格式 shaseng@ubuntu:~$ tar cJf a.tar.xz dir/*运行结果:当前目录下生成 a.tar.xz 文件,它是 dir 目录内容经过归档和 xz 压缩后的文件。
查看压缩内容: # 查看压缩文件 a.tar.xz shaseng@ubuntu:~$ tar tf a.tar.xz运行结果:终端会列出 a.tar.xz 中包含的所有文件和目录的名称。
解压: # 解压压缩文件 a.tar.xz shaseng@ubuntu:~$ tar xJf a.tar.xz运行结果:a.tar.xz 中的文件和目录会被解压到当前目录。
指定路径解压: # 将文件解压到 /tmp shaseng@ubuntu:~$ tar -xJf a.tar.xz -C /tmp运行结果:a.tar.xz 中的文件和目录会被解压到 /tmp 目录下。
1. 文件和目录的三种基本权限 读取(r):对于文件,允许查看文件内容;对于目录,允许列出目录中的文件和子目录。写入(w):对于文件,允许修改文件内容;对于目录,允许在目录中创建、删除或重命名文件和子目录。执行(x):对于文件,允许将其作为程序执行;对于目录,允许进入该目录。 2. 三种权限对象 所有者(u):文件或目录的创建者。所属组(g):与文件或目录相关联的用户组。其他用户(o):既不是所有者也不属于所属组的其他用户。 3. 权限表示方法 数字表示法: r 对应数字 4w 对应数字 2x 对应数字 1无权限对应数字 0例如,权限 rwx 用数字表示为 7(4 + 2 + 1),rw- 表示为 6(4 + 2 + 0)。 符号表示法: + 表示添加权限- 表示移除权限= 表示设置权限 4. 常用权限管理命令 chmod:用于修改文件或目录的权限。chown:用于修改文件或目录的所有者和所属组。chgrp:用于修改文件或目录的所属组。 代码示例 1. chmod 命令 数字表示法 # 创建一个测试文件 touch test_file.txt # 查看文件初始权限 ls -l test_file.txt # 将文件所有者权限设置为 rwx,所属组权限设置为 rw-,其他用户权限设置为 r-- chmod 764 test_file.txt # 再次查看文件权限 ls -l test_file.txt解释:初始时,test_file.txt 有其默认权限。执行 chmod 764 test_file.txt 后,所有者拥有读、写、执行权限(7 = 4 + 2 + 1),所属组拥有读、写权限(6 = 4 + 2 + 0),其他用户拥有读权限(4 = 4 + 0 + 0)。
符号表示法 # 为所属组添加执行权限 chmod g+x test_file.txt # 查看文件权限 ls -l test_file.txt # 移除其他用户的写入权限 chmod o-w test_file.txt # 查看文件权限 ls -l test_file.txt解释:chmod g+x test_file.txt 为所属组添加了执行权限;chmod o-w test_file.txt 移除了其他用户的写入权限。
2. chown 命令 # 创建一个新文件 touch new_file.txt # 查看文件的所有者和所属组 ls -l new_file.txt # 将文件的所有者改为 user2,所属组改为 group2(假设 user2 和 group2 存在) sudo chown user2:group2 new_file.txt # 再次查看文件的所有者和所属组 ls -l new_file.txt解释:chown 命令可以同时修改文件的所有者和所属组。使用 sudo 是因为修改文件所有者和所属组通常需要管理员权限。
3. chgrp 命令 # 创建一个测试目录 mkdir test_dir # 查看目录的所属组 ls -ld test_dir # 将目录的所属组改为 group3(假设 group3 存在) sudo chgrp group3 test_dir # 再次查看目录的所属组 ls -ld test_dir解释:chgrp 命令专门用于修改文件或目录的所属组。同样,使用 sudo 是为了获取足够的权限。
1. useradd(创建用户) 知识点 功能:用于在系统中创建新用户账户。新用户创建后会在 /etc/passwd、/etc/shadow、/etc/group 和 /etc/gshadow 等文件中添加相应的记录。常用选项: -d:指定用户的主目录。-m:如果主目录不存在,则自动创建。-s:指定用户的登录 shell。-g:指定用户的初始用户组。-G:指定用户要加入的附加用户组。 代码示例 # 创建一个名为 newuser 的用户,指定主目录为 /home/newuser,并自动创建该目录 sudo useradd -m -d /home/newuser newuser运行该命令后,系统会创建 newuser 用户,并在 /home 目录下创建 newuser 主目录,同时在相关用户信息文件中添加记录。
2. passwd(设置或修改用户密码) 知识点 功能:用于设置或修改用户的密码。普通用户可以使用该命令修改自己的密码,而 root 用户可以修改任意用户的密码。注意事项:root 用户修改密码时无需输入原密码,普通用户修改密码时需要输入原密码进行验证。 代码示例 # root 用户为 newuser 设置密码 sudo passwd newuser执行该命令后,系统会提示输入新密码和确认新密码,输入完成后新密码即生效。
3. userdel(删除用户) 知识点 功能:用于从系统中删除用户账户。删除用户时,可以选择是否同时删除用户的主目录和邮件池。常用选项: -r:删除用户的同时,删除其主目录和邮件池。 代码示例 # 删除 newuser 用户,并同时删除其主目录和邮件池 sudo userdel -r newuser运行此命令后,newuser 用户的账户信息会从相关文件中删除,其主目录和邮件池也会被一并删除。
4. usermod(修改用户属性) 知识点 功能:用于修改已存在用户的属性,如用户的主目录、登录 shell、用户组等。常用选项: -d:修改用户的主目录。-m:如果指定了新的主目录,将原主目录内容移动到新的主目录。-s:修改用户的登录 shell。-g:修改用户的初始用户组。-G:修改用户要加入的附加用户组。 代码示例 # 将用户 newuser 的登录 shell 修改为 /bin/bash sudo usermod -s /bin/bash newuser执行该命令后,newuser 用户下次登录时将使用 /bin/bash 作为登录 shell。
5. groupadd(创建用户组) 知识点 功能:用于在系统中创建新的用户组。新用户组会在 /etc/group 和 /etc/gshadow 文件中添加相应的记录。 代码示例 # 创建一个名为 newgroup 的用户组 sudo groupadd newgroup运行该命令后,系统会创建 newgroup 用户组,并在相关用户组信息文件中添加记录。
6. groupdel(删除用户组) 知识点 功能:用于从系统中删除用户组。注意,不能删除仍有用户属于该组的用户组。 代码示例 # 删除 newgroup 用户组 sudo groupdel newgroup如果 newgroup 用户组中没有用户,执行该命令后该用户组会被删除。
7. groups(查看用户所属组) 知识点 功能:用于显示指定用户所属的所有用户组。如果不指定用户,则显示当前用户所属的用户组。 代码示例 # 查看 newuser 用户所属的用户组 groups newuser执行该命令后,会在终端输出 newuser 用户所属的所有用户组名称。
8. id(查看用户的身份信息) 知识点 功能:用于显示用户的身份信息,包括用户 ID(UID)、用户所属的主用户组 ID(GID)以及用户所属的所有附加用户组 ID。 代码示例 # 查看 newuser 用户的身份信息 id newuser运行该命令后,会输出 newuser 用户的 UID、GID 以及附加用户组等信息,示例输出可能如下:
uid=1001(newuser) gid=1001(newuser) groups=1001(newuser) 1. ps - 查看进程信息 知识点 ps 命令用于报告当前系统的进程状态,它可以显示当前运行的进程的相关信息,如进程 ID(PID)、用户、CPU 使用率、内存使用率等。常用选项: -e:显示所有进程。-f:显示完整格式的进程信息。-aux:显示所有用户的进程信息,a 表示显示与终端相关的所有进程,u 表示以用户为中心显示详细信息,x 表示显示无控制终端的进程。 代码示例 # 显示当前用户的所有进程信息 ps -f # 显示系统中所有进程的完整信息 ps -ef # 以用户为中心显示所有进程信息 ps -aux 2. top - 动态监控进程 知识点 top 命令提供了实时的系统进程监控,它会动态更新显示系统中各个进程的资源使用情况,包括 CPU 使用率、内存使用率等。交互命令: q:退出 top 界面。M:按内存使用率排序。P:按 CPU 使用率排序。 代码示例 # 启动 top 命令监控进程 top 3. pstree - 以树状结构显示进程 知识点 pstree 命令可以将系统中的进程以树状结构展示,清晰地显示进程之间的父子关系。常用选项: -p:显示每个进程的 PID。-u:显示每个进程的所属用户。 代码示例 # 以树状结构显示进程 pstree # 显示进程的 PID pstree -p # 显示进程的所属用户和 PID pstree -pu 4. kill - 终止进程 知识点 kill 命令用于向指定的进程发送信号,默认发送的是终止信号(SIGTERM,信号编号为 15),让进程正常终止。如果进程无法正常终止,可以发送强制终止信号(SIGKILL,信号编号为 9)。信号编号:可以使用 kill -l 命令查看所有可用的信号编号和名称。 代码示例 # 查看进程信息,获取要终止的进程的 PID ps -ef | grep "example_process" # 向指定 PID 的进程发送终止信号 kill <PID> # 如果进程无法正常终止,发送强制终止信号 kill -9 <PID> 5. killall - 根据进程名终止进程 知识点 killall 命令可以根据进程名终止所有匹配的进程,而不需要手动查找每个进程的 PID。常用选项: -9:发送强制终止信号。 代码示例 # 终止名为 "example_process" 的所有进程 killall example_process # 强制终止名为 "example_process" 的所有进程 killall -9 example_process 6. nice 和 renice - 调整进程优先级 知识点 nice 命令用于在启动进程时指定进程的优先级,优先级范围是 -20(最高优先级)到 19(最低优先级),默认优先级为 0。renice 命令用于调整已经运行的进程的优先级。 代码示例 # 以较低优先级启动进程 nice -n 10 ./example_program # 查看进程信息,获取要调整优先级的进程的 PID ps -ef | grep "example_process" # 将指定 PID 的进程优先级调整为 -5 renice -5 <PID> 7. jobs、bg 和 fg - 作业控制 知识点 jobs 命令用于显示当前终端会话中后台运行的作业列表。bg 命令用于将暂停的作业放到后台继续运行。fg 命令用于将后台运行的作业放到前台运行。 代码示例 # 在后台启动一个进程 ./example_program & # 显示当前终端会话中的作业列表 jobs # 将暂停的作业放到后台继续运行 bg %1 # 将后台运行的作业放到前台运行 fg %1【linux核心命令】由讯客互联互联网栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“【linux核心命令】”
上一篇
图论之BFS