linux系统常见及常用命令(超详细:系统篇)-CSDN博客
linux系统常见及常用的命令操作(包管理、文件和目录操作)-CSDN博客
linux系统常见及常用的命令操作(文件查看和编辑、用户、组合权限管理)-CSDN博客
目录
?一、进程管理:
1. ps:显示当前进程的快照(一般与grep搭配使用)
2. top:实时显示系统中各个进程的资源占用情况
3. htop:增强的top版本
4. service与systemctl:管理系统服务:启动、停止、重启服务
(1)service 命令:(目前linux系统也可以正常使用)
(2)systemctl 命令:
(3)两者的区别:
5. pstree:以树状图显示进程
6. kill:终止指定进程
7. pkill:根据名称杀死进程
8. killall:杀死所有指定名字的进程
注意事项:
9. vmstat:报告虚拟内存统计信息
常用选项:
注意事项:
二、网络和通信:
1. ping:检查网络连接
常用选项:
?2. ifconfig 或 ip:配置或显示网络接口参数
(1)ifconfig 命令:
(2)ip 命令:
(3)两者区别:
3.nmcli:可以用来查看和配置网络(这个用起来还不错)
常用的 nmcli 命令及选项:
????????1. nmcli connection :用于管理网络连接
????????2. nmcli device:用于管理网络设备:
????????3.?nmcli networking:用于管理网络功能:
????????4.?nmcli general:用于显示 NetworkManager 的总体状态信息:
4. netstat:显示网络连接、路由表、接口统计等
5. ss:显示和分析网络套接字的命令
常用选项:
6. route:手工产生、修改和查看路由表(建议使用 nmcli 命令设置网络)
常用选项:
8. wget 或 curl:下载文件或网页内容
(1)wget 命令:
(2)curl 命令:
9. ssh:安全的远程登录到另一台计算机
10. nslookup:查询一台机器的IP和其对应的域名
????????用于显示当前系统中的进程信息。它提供了有关进程的详细信息,包括进程的状态、资源使用情况以及其他关键信息。 命令非常重要,因为它允许你查看系统上正在运行的进程,从而帮助你进行系统监控、故障排除和性能调优;
- 格式: ps ?[选项]
- 常见选项:
- -e:或 -A:显示系统中所有的进程
- -a:显示所有终端的进程,但不包括会话领导进程
- -u:以用户为基础显示进程
- -x:显示所有进程,包括那些没有控制终端的进程(通常是后台进程)
- -f:显示完整格式的输出,提供更多的进程信息
- -l:显示长格式的输出,提供更详细的信息
- -o:自定义输出格式,允许你选择显示的字段
- -p:显示指定进程 ID 的信息
- 常见选项:
????????用于实时显示系统中各进程的资源使用情况,它是监控系统性能的重要工具。 提供了关于 CPU、内存使用情况以及进程状态的动态更新信息
- 界面布局:分两个部分
- 系统概况(Summary Area):显示系统的整体状态,包括 CPU、内存、交换区使用情况等。
- 进程列表(Task Area):列出系统中正在运行的进程及其资源使用情况。
- 常用选项:
- 进入 top 界面后,使用的 按键操作:
- P:按 CPU 使用率排序。
- M:按内存使用量排序。
- T:按时间排序。
- k:杀死进程。输入进程 ID 后,系统会提示你确认是否要终止该进程。
- q:退出 top 命令。
-
高级命令选项
???????? 是一个互动式的系统监控工具,比 更加友好和直观。它以图形化方式显示系统的资源使用情况,并允许用户通过键盘进行交互。
- 界面布局:
- 系统概况(Header Area):
- CPU 使用情况:图形化显示每个 CPU 核心的使用情况
- 内存使用情况:显示物理内存和交换区的使用情况
- 负载平均值:显示系统的负载平均值(1分钟、5分钟、15分钟)
- 进程列表(Process List):
- 显示当前运行的进程及其详细信息
- 系统概况(Header Area):
和? <? 是用于管理 Linux 系统服务的命令行工具,但它们适用于不同的系统和服务管理工具;
(1)service 命令:(目前linux系统也可以正常使用)
???????? 命令是旧版的服务管理工具,主要用于 SysVinit 和兼容 SysVinit 的系统(例如:较旧的Debian和Ubuntu版本)。它提供了一个简化的接口来启动、停止、重启和检查服务状态。
- 常用命令操作:
(2)systemctl 命令:
???????? 命令是用于控制和管理 systemd 系统和服务管理器的工具。 是现代 Linux 发行版中常见的初始化系统,提供了更复杂的服务管理和依赖处理功能。
- 常用命令操作:
(3)两者的区别:
- 随着系统的更新迭代,命令也进行了更新,我只测试过centos7,redhat8是可以继续使用service命令的;
- 功能和复杂性:
- :提供了基本的服务管理功能,适用于简单的服务管理任务。
- :提供了更高级的功能,包括服务的依赖管理、并行启动、并且能够管理多个单元类型(如服务、挂载点、设备等)。
命令选项和功能:
- ?提供了更多的功能,例如管理系统挂载点、查看服务的日志()以及更详细的服务状态信息。
兼容性:
- ?通常与??命令的功能兼容,但在使用??时需要注意系统是否支持?。
????????用于显示进程树的命令行工具,它以树形结构显示 Linux 系统中运行的进程及其关系。这使得用户能够直观地看到进程之间的父子关系,帮助分析和理解系统中各个进程的组织结构。
常用选项:
- :使用 ASCII 字符而不是 UTF-8 字符来绘制树形结构。这对于某些终端或字符集支持不佳的环境很有用。
- :显示进程的命令行参数。
- :高亮显示当前终端中的进程(即??自身进程)。
- :按 PID 排序,而不是按进程名称。
- :显示进程 ID。
- :显示进程树的根(即系统启动时的 init 进程)。
- :显示每个进程的用户。
- :显示??的版本信息。
进程树的结构:
- pstree 显示的树形结构中:
- 每个进程 都以一个节点表示。
- 父进程 在树的上层,子进程 在下层。
- 进程之间的连接用垂直和水平线条表示。
- 进程名通常显示在节点上,PID 可以通过 -p 选项显示。
进程树的实际用途:
- 系统监控和调试:了解进程的层次结构和依赖关系,有助于诊断问题。
- 资源管理:查看哪些进程是父进程,以及它们如何分布在系统中。
- 权限和安全分析:识别和检查进程的运行用户,了解不同用户运行的进程。
提示:这里有一个知识点:
在操作系统中,父进程的终止会对子进程产生一定影响。分别情况如下:(在此不过多解释,但进程是很重要的,比如学docker和kubernetes时会用到)
(1)进程的孤儿进程;
(2)孤儿进程的处理;
(3)子进程的终止;
(4)信号处理;
(5)僵尸进程;
- 孤儿进程:父进程终止后,子进程会被??进程收养,继续运行或终止。
- 僵尸进程:如果父进程没有处理子进程的退出状态,子进程会变成僵尸进程,但最终会由??进程清理。
命令是在 Unix 和 Linux 系统中用于发送信号给进程的命令。它不仅仅用于终止进程,还可以用于发送其他各种信号来控制进程的行为;
- 常见命令操作:
注意事项:
- 权限问题:发送信号到进程时,你需要有足够的权限。通常,只有进程的所有者或超级用户可以终止该进程。
- 信号处理:进程可以捕捉和处理某些信号(如?),从而进行适当的清理工作。?是一个例外,它会立即终止进程,不允许任何处理。
- 信号的忽略:进程可以选择忽略某些信号(例如,某些重要的信号可能会被忽略以防止意外终止)。
是 命令的一个增强版,它能够通过进程名称来操作进程,而不是单独指定进程 ID。
- 常用选项:
- :显示每个匹配到的进程的 PID。
- :匹配进程的完整命令行,而不仅仅是进程名称。
- :忽略模式的大小写。
- :仅操作最新启动的进程。
- :仅操作最早启动的进程。
- :仅匹配属于指定用户的进程。
- ?或?:指定要发送的信号类型,可以是信号名称或信号编号。默认信号为?。
- 常用命令操作:
????????主要功能是通过进程名称而不是进程ID来终止一个或多个进程;
- 主要选项和功能:
- -s, --signal SIGNAL:指定要发送的信号,SIGNAL 可以是信号名称(如 SIGTERM)或信号编号(如 15)。如果没有指定,killall 默认发送 SIGTERM 信号
- : 只终止由指定用户拥有的进程。你需要用用户名或用户ID(UID)替代
- : 显示详细信息,列出正在终止的进程。
- : 在终止每个进程之前提示用户确认。这是一个安全功能,可以防止误终止重要进程。
- : 通过正则表达式匹配进程名称。这允许更灵活的进程选择。
- : 精确匹配进程名称,只终止完全匹配的进程名,忽略部分匹配。
- : 列出所有信号名称。这对于确认可用信号很有用。
- : 列出信号名称及其编号,这可以帮助你找到信号的正确编号。
- 常用命令操作:
注意事项:
- 使用??时要小心,因为它会终止所有匹配名称的进程,可能会影响到不希望终止的进程。
- ?命令的行为可能会因操作系统的不同而有所不同。例如,在某些系统上,?可能只会终止用户自己拥有的进程。
(虚拟内存统计)是一个在类 Unix 操作系统中用于报告系统内存、交换、IO、系统活动和 CPU 使用情况的命令。可以帮助系统管理员监控系统的性能和诊断潜在的问题;
常用选项:
- :显示所有内存统计信息,包括活动和非活动内存。
- :以汇总格式显示系统内存的统计信息。
- :显示块设备的统计信息(如磁盘I/O)。
- :显示内存分配信息,包括 slab 分配。
- :显示时间戳。
- 常用命令操作:
注意事项:
- ?的输出是基于系统的快照,因此要理解其输出结果,需要对系统行为有一定了解。
- 输出的字段和解释可能会因操作系统和版本的不同而有所不同。
????????用于测试网络连通性,检查目标主机是否可以访问以及网络延迟。它通过向目标主机发送 ICMP 回显请求(Echo Request)并接收 ICMP 回显应答(Echo Reply)来实现这一点。
常用选项:
- :指定发送的请求次数。例如,?发送 4 个请求。
- :设置发送请求的间隔时间(秒)。默认是每秒一次。
- :设置请求的生存时间(TTL,Time To Live),用于控制数据包的跳数。
- :设置发送数据包的大小(字节数)。
- :设置超时时间(秒),等待每个响应的最长时间。
- :以简洁模式显示输出,仅显示总结信息。
- 常用命令操作:
和 命令都是用来管理和配置网络接口的工具,但它们在功能和使用上有些区别。
(1)ifconfig 命令:
????????(interface configuration)是一个传统的命令行工具,用于配置和显示网络接口的状态。它在许多 Unix 和类 Unix 系统上都可用,包括 Linux 和 macOS。
常用选项:
- :显示所有网络接口的信息。
- :显示指定接口的信息,例如?。
- :启用指定接口。
- :禁用指定接口。
- :为指定接口配置 IP 地址和子网掩码。
- :设置接口的 MAC 地址。
- 常用命令操作:
(2)ip 命令:
???????? 命令是 Linux 上用于管理网络配置的现代工具,功能更强大且更灵活。它属于 套件,是 的现代替代品。
常用选项和命令:
:管理和显示网络接口。
- :显示所有接口的信息。
- :启用接口。
- :禁用接口.
:管理和显示 IP 地址。
- :显示所有接口的 IP 地址。
- :为接口添加 IP 地址。
- :从接口删除 IP 地址.
:管理和显示路由表。
- :显示路由表。
- :添加路由。
- :删除路由。
- 常用命令操作:
(3)两者区别:
功能范围:
- :主要用于网络接口的配置和显示,功能较为基础。
- :功能更全面,不仅支持网络接口配置,还包括 IP 地址、路由、链路等的管理。
现代性:
- :相对较旧,在现代 Linux 系统中逐渐被??命令取代。
- :现代的网络配置工具,功能强大且灵活,支持更多高级特性。
输出格式:
- :输出格式较为简单。
- :输出格式详细且可以通过不同的命令组合获得更多信息。
工具套件:
- :属于??套件。
- :属于??套件。
总体而言, 命令提供了更为全面和灵活的网络管理功能,是现代 Linux 系统中推荐使用的工具。
???????? 是一个命令行工具,用于与 NetworkManager 进行交互,管理网络连接。NetworkManager 是 Linux 上一个强大的网络管理工具,它简化了网络连接的配置和管理。 命令可以用来查看和配置网络接口、网络连接、无线网络、VPN 等。
( 可作为单独学的一条命令,涉及到网卡命名规则 )
-
常用的 nmcli 命令及选项:
????????1. nmcli connection :用于管理网络连接
????????2. nmcli device:用于管理网络设备:
????????3.?
????????4.?:用于显示 NetworkManager 的总体状态信息:
???????? 是一个网络实用工具,用于显示网络连接、路由表、接口统计信息等。它可以帮助你了解系统的网络状态和诊断网络问题。
netstat?是一个功能丰富的网络诊断工具,通过不同的选项可以显示网络连接、接口状态、路由表等信息。它在排查网络问题、查看系统网络状态时非常有用。不过需要注意的是,`netstat` 在某些系统上已被 `ss` 和 `ip` 命令所取代,后者提供了更强大的功能和更详细的输出。
- 常用选项和参数:
- -a:显示所有连接和监听端口
- -t:显示 TCP 连接
- :显示 UDP 连接
- :仅显示监听中的端口
- :显示哪个进程正在使用该端口
- :以数字形式显示地址和端口号,而不是域名和服务名
- :显示路由表
- :显示网络接口统计信息
- :显示网络统计信息,包括各种协议的统计数据
- :显示扩展的网络接口信息
- :每隔一段时间重复显示网络状态
- 常用命令操作:
(Socket Statictics)是用于显示和分析网络套接字的命令,通常用于替代 。它提供了更详细和高效的网络连接信息。
常用选项:
- :显示 TCP 连接。
- :显示 UDP 连接。
- :显示正在监听的套接字。
- :显示相关的进程信息。
- :以数字格式显示地址和端口号,而不是解析成域名。
- :显示所有套接字(包括监听和非监听)。
- :显示统计信息(包括各种套接字的总数)。
- :显示路由信息。
- 常用命令操作:(可与grep联合使用)
????????用于显示和修改系统的网络路由表,它主要用于管理数据包在网络中的传输路径;
常用选项:
- :以数字形式显示路由表,不解析域名。
- :显示详细信息。
- :显示路由表。
- 常用命令使用:
(1)wget 命令:
功能: 用于从网络上下载文件,支持 HTTP、HTTPS 和 FTP 协议
常用选项:
- :指定输出文件名。例如,。
- :递归下载整个网站。
- :仅下载比本地文件更新的文件。
- :限制下载速度,例如?。
(2)curl 命令:
功能: 用于与服务器交换数据,支持多种协议(包括 HTTP、HTTPS、FTP、SFTP 等)。
常用选项:
- :指定输出文件名。例如,。
- :仅获取 HTTP 响应头信息。
- :跟随重定向。
- :使用基本认证。
- :限制下载速度,例如?。
????????(Secure Shell)用于安全地远程登录到另一台计算机。它提供加密的通信,以防止中间人攻击和数据泄露。
- 常用命令操作:
提示:还有 scp 命令 是(基于ssh)从本地复制文件到远程主机或从远程主机复制文件到本地;后面会详细讲到
???????? 是一个用于查询 DNS 记录的网络工具,可以帮助用户获取域名的 IP 地址或其他 DNS 信息
- 常用命令操作:
??推荐一个持久更新的安全面试网站(看个人需求):面试鸭 - 程序员求职面试刷题神器,高频编程题目免费刷