【Linux】常用系统工作命令

常用系统工作命令

1.echo

echo 命令的作用是向用户显示一行文本。它可以用于各种情况,比如在脚本中输出提示信息、打印变量值、生成日志文件等等。

  • 输出字符串。
bash 复制代码
echo "Hello, World"
  • 输出变量的值。只需要将变量名放在引号内即可。
bash 复制代码
name="Tom"
echo "My name is $name"
  • 使用重定向操作符 > 将输出重定向到文件中。
bash 复制代码
echo "Hello, World" > output.txt

2.date

date 命令是一个在命令行中使用的用于显示和设置系统时间的工具。它可以显示当前的日期和时间,也可以根据指定的格式来输出日期和时间信息。

  • 查看当前系统的时间。
bash 复制代码
date
  • 显示当前日期和时间的指定格式。
bash 复制代码
date +"%Y-%m-%d %H:%M:%S"

3.timedatectl

‌timedatectl‌ 用于查询和修改系统时间、日期和时区设置。

  • ‌查询当前时间、日期和时区。
bash 复制代码
timedatectl status

4.wget

wget 是一个可以从网络上下载文件的免费实用程序,它的工作原理是从 Internet 上获取数据,并将其保存到本地文件中或显示在你的终端上。

  • 下载指定 URL 的文件,并保存为指定的文件名。
bash 复制代码
wget http://example.com/file.zip -O myfile.zip

5.ps

ps 命令用来查看系统上的进程信息。要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而 ps 命令就是最基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。总之大部分信息都是可以通过执行该命令得到的。

  • - a:显示所有进程(包括其他用户的进程)。
  • - u:用户以及其他详细信息。
  • - x:显示没有控制终端的进程。

Linux 系统中时刻运行着许多进程,如果能够合理地管理它们,则可以优化系统的性能。在 Linux 系统中有 5 种常见的进程状态,其各自含义如下所示。

  • R运行):进程正在运行或在运行队列中等待。
  • S中断):进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该状态。
  • D不可中断):进程不响应系统异步信号,即便用ki 命令也不能将其中断。
  • Z僵死):进程已经终止,但进程描述符依然存在,直到父进程调用wait40系统函数后将进程释放。
  • T停止):进程收到停止信号后停止运行。

除了上面 5 种常见的进程状态,还有可能是 高优先级<)、低优先级N)、被锁进内存L)、包含 子进程s)以及 多线程l)这 5 种补充形式。

bash 复制代码
ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
进程的所有者 进程ID号 运算器占用率 内存占用率 虚拟内存使用量(单位KB) 占用的固定内存量(单位KB) 所在终端 进程状态 被启动的时间 实际使用CPU的时间 命令名称与参数

6.pstree

pstree 命令是一个在 Unix-like 系统中用于以树状图的形式显示当前运行的进程的命令。‌这种展示方式比简单的列表(如 ps 命令)更加直观,有助于用户快速理解进程的层次结构和父子关系。在诊断系统问题时,pstree 可以帮助确定哪些进程是问题的根源,通过查看受影响的进程及其父进程,可以追踪问题的来源,并采取适当的措施进行修复。‌

bash 复制代码
pstree

7.top

top 命令用于动态地监视进程活动及系统负载等信息。

bash 复制代码
top
  • 第 1 行:系统时间、运行时间、登录终端数、系统负载。
    • top:名称。
    • 00:10:12:系统当前时间。
    • up 121 days, 20:48:系统以及运行的时间,和 uptime 命令相等。
    • 1 user:当前有 1 个用户在线。
    • load average: 0.07, 0.06, 0.05:系统一定时间内的平均负载,分别是 1 分钟、5 分钟、15 分钟。

🚀 主要关注 load average 这个值,所谓系统负载就是:在一段时间内,CPU 正在处理以及等待 CPU 处理的进程数之和。系统在同一时间运行的进程数和系统 CPU 核数相关,一般来说 Load Average 的数值别超过这台机器的总核数,就没什么问题。

  • 第 2 行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。
    • Tasks:任务,也就是进程。
    • 109 total:当前总共有 109 个任务,也就是 109 个进程。
    • 1 running:1 个进程正在运行。
    • 108 sleeping:108 个进程正在休眠。
    • 0 stopped:0 个停止的进程。
    • 0 zombie:1 个僵尸进程。
  • 第 3 行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源上百分比、空闲的资源百分比等。其中数据均为 CPU 数据并以百分比格式显示。
    • %Cpu(s):CPU 使用率。
    • 0.8 us:用户空间占用 CPU 时间的百分比(大部分进程都运行在用户态,通常都是希望用户空间 CPU 越高越好)。
    • 0.5 sy:内核空间占用 CPU 时间的百分比(Linux 内核态占用的 CPU 时间,系统 CPU 占用越高,表明系统某部分存在瓶颈。通常这个值越低越好)。
    • 0.0 ni:占用 CPU 时间的百分比(ninice 的缩写,进程用户态的优先级,如果调整过优先级,那么展示的就是调整过 nice 值的进程消耗掉的 CPU 时间,如果系统中没有进程被调整过 nice 值,那么 ni 就显示为 0)。
    • 98.0 id:空闲 CPU 占用率,等待进程运行。
    • 0.7 wa:等待输入输出的 CPU 时间百分比(CPU 的处理速度是很快的,磁盘 IO 操作是非常慢的。wa 表示 CPU 在等待 IO 操作完成所花费的时间。系统不应该花费大量的时间来等待 IO 操作,否则就说明 IO 存在瓶颈)。
    • 0.0 hi:CPU 硬中断时间百分比(硬中断是硬盘、网卡等硬件设备发送给 CPU 的中断消息 )。
    • 0.0 si:CPU 软中断时间百分比(软中断是由程序发出的中断 )。
    • 0.0 st:被强制等待(involuntary wait)虚拟 CPU 的时间,此时 Hypervisor 在为另一个虚拟处理器服务。
  • 第 4 行:物理内存总量、内存空闲量、内存使用量、作为内核缓存的内存量。
    • MiB Mem:内存。
    • 3880176 total:物理内存总量。
    • 999176 free:空闲内存量。
    • 1042160 used:已使用的内存量。
    • 1838840 buff/cache:用作内核缓存的内存量。
  • 第 5 行:虚拟内存总量、虚拟内存空闲量、虚拟内存使用量、已被提前加载的内存量。
    • MiB Swap:交换空间(虚拟内存,当内存不足的时候,把一部分硬盘空间虚拟为内存使用)。
    • 0 total:交换区总量。
    • 0 free:空闲交换区总量。
    • 0 used:使用的交换区总量。
    • 2539192 avail Mem:可用于启动一个新应用的内存(物理内存),和 free 不同,它计算的是可回收的 page cachememory slab

🚀 第四行和第五行输出信息,等同于使用 free -m 命令。

8.nice

‌nice 命令‌用于以指定的进程调度优先级启动其他程序。通过调整程序的优先级,可以影响程序在系统中的调度顺序。nice 命令的优先级范围从 -20(最高优先级)到 19(最低优先级)。默认情况下,nice 命令的优先级调整值为 10。‌

  • ls 命令的优先级调整为 10
bash 复制代码
nice -n 10 ls

9.pidof

pidof 是 Linux 系统中用来查找正在运行进程的进程号(pid)的工具,功能类似 pgrepps

  • 查询本机上 sshd 服务程序的 PID。
bash 复制代码
pidof sshd

10.kill

kill 命令用于终止某个指定 PID 值的服务进程。

11.killall

killall 命令用于终止某个指定名称的服务所对应的全部进程。

通常来讲,复杂软件的服务程序会有多个进程协同为用户提供服务,如果用 kill 命令逐个去结束这些进程会比较麻烦,此时可以使用 killall 命今来批结束某个服务程序带有的全部进程。

相关推荐
Wnq100724 小时前
智能巡检机器人在化工企业的应用研究
运维·计算机视觉·机器人·智能硬件·deepseek
tf的测试笔记6 小时前
测试团队UI自动化实施方案
运维·自动化
TDD_06287 小时前
【运维】Centos硬盘满导致开机时处于加载状态无法开机解决办法
linux·运维·经验分享·centos
x66ccff7 小时前
vLLM 启动 GGUF 模型踩坑记:从报错到 100% GPU 占用的原因解析
linux
头孢头孢7 小时前
k8s常用总结
运维·后端·k8s
遇码7 小时前
单机快速部署开源、免费的分布式任务调度系统——DolphinScheduler
大数据·运维·分布式·开源·定时任务·dolphin·scheduler
William.csj7 小时前
Linux——开发板显示器显示不出来,vscode远程登录不进去,内存满了的解决办法
linux·vscode
爱编程的王小美7 小时前
Docker基础详解
运维·docker·容器
KeithTsui8 小时前
GCC RISCV 后端 -- 控制流(Control Flow)的一些理解
linux·c语言·开发语言·c++·算法
森叶8 小时前
linux如何与windows进行共享文件夹开发,不用来回用git进行拉来拉去,这个对于swoole开发者来说特别重要
linux·git·swoole