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

相关推荐
0110编程之路8 分钟前
ubuntu 安装proxychains
linux·运维·ubuntu
嚯——哈哈21 分钟前
高防服务器HOT:网络安全的无形盾牌,护航业务稳定
服务器·安全·web安全
IT-民工211101 小时前
使用Ansible/SaltStack编写自动化运维脚本
运维·ansible·saltstack
喵叔哟2 小时前
深入探讨异步 API 的设计与实现
服务器
Linux运维老纪3 小时前
linux系统运维面试题(二)(Linux System Operations Interview Questions II)
linux·服务器·面试·云计算·运维开发·devops
基极向上的三极管3 小时前
【Linux学习】【Ubuntu入门】2-3 make工具和makefile引入
linux·ubuntu
omage3 小时前
如何在ubuntu上调试core dump
linux·运维·服务器
FinelyYang3 小时前
docker+容器+redis+minio+java jar,实现开机自启动
运维·docker·容器