【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 命今来批结束某个服务程序带有的全部进程。

相关推荐
菜鸟康23 分钟前
Linux系统编程——理解系统内核中的信号捕获
linux·运维·服务器
张明奇-琦玉25 分钟前
Boost之log日志使用
linux·服务器·算法
云计算DevOps-韩老师39 分钟前
【网络云计算】2024第52周-每日【2024/12/26】小测-理论&实操-备份MySQL数据库并发送邮件-解析
linux·开发语言·网络·数据库·mysql·云计算·perl
IT 古月方源1 小时前
ensp ppp 协议的讲解配置
运维·网络·网络协议·tcp/ip·智能路由器
MaoSource1 小时前
Debian 12.0安装nginx
服务器·nginx·debian
ac.char1 小时前
Ubuntu系统下 npm install -g tauri 报错问题处理
linux·ubuntu·npm
Channing Lewis2 小时前
salesforce Portal User Visibility and Site User Visibility
运维·服务器·salesforce
无名3872 小时前
Debian12 安装配置 ODBC for GaussDB
linux·运维·gaussdb
小Mie不吃饭2 小时前
Linux | 零基础Ubuntu解压RaR等压缩包文件
linux·运维·ubuntu
drebander2 小时前
SQL 实战:日期与时间函数 – 统计数据的时间跨度与趋势
linux·数据库·sql