【技术积累】Linux中的命令行【理论篇】【六】

as命令

命令介绍

在Linux中,as命令是一个汇编器,用于将汇编语言源代码转换为可执行的目标文件。它是GNU Binutils软件包的一部分,提供了一系列用于处理二进制文件的工具。

命令说明

as命令的基本语法如下:

as [选项] <源文件> -o <目标文件>

其中,<源文件>是汇编语言源代码文件的路径,<目标文件>是生成的目标文件的路径。

as命令的一些常用选项包括:

- -o <目标文件>:指定生成的目标文件的路径。
- -g:生成调试信息,用于调试目标文件。
- -f <格式>:指定生成的目标文件的格式,常用的格式有elf、aout等。
- -m <架构>:指定目标文件的架构,常用的架构有i386、x86_64等。
- -I <目录>:指定包含头文件的目录。
- -l <库名>:链接指定的库文件。

as命令支持多种汇编语法,包括AT&T语法和Intel语法。默认情况下,as命令使用AT&T语法,但可以通过在源文件中添加.intel_syntax指令来切换到Intel语法。

as命令将汇编语言源代码转换为目标文件的过程包括以下几个步骤:

1. 词法分析:将源代码分解为词法单元,如指令、操作数、标签等。
2. 语法分析:根据语法规则将词法单元组合成语法树。
3. 语义分析:检查语法树的语义正确性,如操作数的类型是否匹配等。
4. 代码生成:将语法树转换为机器码,并生成目标文件。

as命令生成的目标文件可以被链接器(如ld命令)用于生成可执行文件或共享库。同时,as命令还可以生成汇编语言的列表文件,用于调试和分析汇编代码。

总之,as命令是Linux中的一个汇编器,用于将汇编语言源代码转换为可执行的目标文件。它提供了丰富的选项和功能,可以用于生成不同格式和架构的目标文件,并支持多种汇编语法。

at命令

命令介绍

在Linux中,at命令是一个用于在指定时间执行一次性任务的工具。它允许用户在未来的某个时间点执行命令,而不需要用户实时等待或保持终端会话打开。

at命令的基本语法如下:

at [-m] [-f <文件>] <时间>

其中,<时间>是指定任务执行时间的参数,可以是绝对时间(如"HH:MM")或相对时间(如"now + 1 hour")。-m选项用于指定任务执行完成后,将结果通过邮件发送给当前用户。-f <文件>选项用于指定包含要执行的命令的文件。

命令说明

at命令的使用步骤如下:

1. 输入at命令进入at命令的交互模式。
2. 输入要执行的命令,可以是单个命令或包含多个命令的脚本文件。
3. 指定任务执行的时间,可以是绝对时间或相对时间。
4. 按Ctrl+D结束输入,提交任务。

at命令将任务添加到系统的任务队列中,并在指定的时间点执行。任务执行时,at命令会将任务的输出结果发送给当前用户,如果使用了-m选项,则会通过邮件发送。

at命令还提供了其他一些选项和功能,如:

- -l:列出当前用户的所有待执行任务。
- -d <任务编号>:删除指定的任务。
- -c <任务编号>:显示指定任务的详细信息。

需要注意的是,at命令的使用需要有相应的权限。默认情况下,只有具有root权限的用户才能使用at命令。其他用户需要通过配置文件(如/etc/at.allow和/etc/at.deny)来授权或禁止使用at命令。

总之,at命令是Linux中一个用于在指定时间执行一次性任务的工具。它允许用户在未来的某个时间点执行命令,提供了灵活的时间指定方式和任务管理功能。通过at命令,用户可以方便地安排任务的执行,而无需实时等待或保持终端会话打开。

atop命令

命令介绍

在Linux中,atop命令是一个性能监控工具,用于实时监视系统的资源使用情况和进程活动。它提供了丰富的信息和统计数据,帮助用户了解系统的性能状况,并进行故障排查和性能优化。

命令说明

atop命令的基本语法如下:

atop [选项] [时间间隔] [次数]

其中,[选项]是一些可选的命令行选项,用于指定atop的行为。[时间间隔]是指定监控数据刷新的时间间隔,默认为10秒。[次数]是指定刷新数据的次数,默认为无限次。

atop命令的使用步骤如下:

1. 输入atop命令启动atop监控。
2. 在atop的交互界面中,可以使用不同的快捷键来查看不同的监控数据和统计信息。
3. 按Ctrl+C退出atop监控。

atop命令提供了丰富的监控数据和统计信息,包括:

- CPU使用情况:显示每个CPU核心的使用率、上下文切换次数、中断次数等。
- 内存使用情况:显示物理内存和交换空间的使用情况、缓存和缓冲区的大小等。
- 磁盘活动:显示每个磁盘的读写速率、I/O请求队列长度等。
- 网络活动:显示每个网络接口的传输速率、错误次数、丢包次数等。
- 进程活动:显示每个进程的CPU使用率、内存使用量、I/O活动等。

atop命令还支持一些命令行选项,用于指定监控的内容和显示方式,如:

- -r <文件>:从指定的文件中读取历史监控数据进行分析。
- -b:以批处理模式运行,将监控数据输出到文件中。
- -n <次数>:指定刷新数据的次数。
- -d <时间间隔>:指定监控数据刷新的时间间隔。

[非内部程序,需要安装]它以一定的频率记录系统的运行状态,所采集的数据包含系统资源(CPU、内存、磁盘和网络)使用情况和进程运行情况,并能以日志文件的方式保存在磁盘中,服务器出现问题后,我们可获取相应的atop日志文件进行分析。atop是一款开源软件,我们可以从这里获得其源码rpm安装包

ATOP列:该列显示了主机名、信息采样日期和时间点

PRC列:该列显示进程整体运行情况

  • sys、usr字段分别指示进程在内核态和用户态的运行时间
  • #proc字段指示进程总数
  • #zombie字段指示僵尸进程的数量
  • #exit字段指示atop采样周期期间退出的进程数量

CPU列:该列显示CPU整体(即多核CPU作为一个整体CPU资源)的使用情况,我们知道CPU可被用于执行进程、处理中断,也可处于空闲状态(空闲状态分两种,一种是活动进程等待磁盘IO导致CPU空闲,另一种是完全空闲)

  • sys、usr字段指示CPU被用于处理进程时,进程在内核态、用户态所占CPU的时间比例
  • irq字段指示CPU被用于处理中断的时间比例
  • idle字段指示CPU处在完全空闲状态的时间比例
  • wait字段指示CPU处在“进程等待磁盘IO导致CPU空闲”状态的时间比例

CPU列各个字段指示值相加结果为N00%,其中N为cpu核数。

cpu列:该列显示某一核cpu的使用情况,各字段含义可参照CPU列,各字段值相加结果为100%

CPL列:该列显示CPU负载情况

  • avg1、avg5和avg15字段:过去1分钟、5分钟和15分钟内运行队列中的平均进程数量
  • csw字段指示上下文交换次数
  • intr字段指示中断发生次数

MEM列:该列指示内存的使用情况

  • tot字段指示物理内存总量
  • free字段指示空闲内存的大小
  • cache字段指示用于页缓存的内存大小
  • buff字段指示用于文件缓存的内存大小
  • slab字段指示系统内核占用的内存大小

SWP列:该列指示交换空间的使用情况

  • tot字段指示交换区总量
  • free字段指示空闲交换空间大小

PAG列:该列指示虚拟内存分页情况

swin、swout字段:换入和换出内存页数

DSK列:该列指示磁盘使用情况,每一个磁盘设备对应一列,如果有sdb设备,那么增多一列DSK信息

  • sda字段:磁盘设备标识
  • busy字段:磁盘忙时比例
  • read、write字段:读、写请求数量

NET列:多列NET展示了网络状况,包括传输层(TCP和UDP)、IP层以及各活动的网口信息

  • XXXi 字段指示各层或活动网口收包数目
  • XXXo 字段指示各层或活动网口发包数目

每个时间点采样页面组合起来就形成了一个atop日志文件,我们可以使用"atop -r XXX"命令对日志文件进行查看。那以什么形式保存atop日志文件呢?

对于atop日志文件的保存方式,我们可以这样:

  • 每天保存一个atop日志文件,该日志文件记录当天信息
  • 日志文件以"atop_YYYYMMDD"的方式命名
  • 设定日志失效期限,自动删除一段时间前的日志文件

其实atop开发者已经提供了以上日志保存方式,相应的atop.daily脚本可以在源码目录下找到。在atop.daily脚本中,我们可以通过修改INTERVAL变量改变atop信息采样周期(默认为10分钟);通过修改以下命令中的数值改变日志保存天数(默认为28天):

(sleep 3; find $LOGPATH -name 'atop_*' -mtime +28 -exec rm {} \; )& 
 

最后,我们修改cron文件,每天凌晨执行atop.daily脚本:

0 0 * * * root /etc/cron.daily/atop.daily

 

总之,atop命令是Linux中一个强大的性能监控工具,用于实时监视系统的资源使用情况和进程活动。它提供了丰富的监控数据和统计信息,帮助用户了解系统的性能状况,并进行故障排查和性能优化。通过atop命令,用户可以方便地监控系统的各项指标,并及时发现和解决性能问题。

atq命令

命令介绍

在Linux中,atq命令用于列出当前系统中所有已经安排的at任务。at是一个用于在指定时间执行一次性任务的命令。atq命令可以显示已经安排的at任务的相关信息,包括任务编号、执行时间和任务所有者。

命令说明

atq命令的语法如下:

atq [-c] [-q 队列] [-v]

选项说明:
- -c:显示任务的命令行。
- -q 队列:指定要显示的队列。默认情况下,atq命令会显示所有队列中的任务。
- -v:显示详细的任务信息,包括任务编号、执行时间、任务所有者和任务命令。

使用atq命令可以方便地查看当前系统中已经安排的at任务,以便进行管理和调整。

热门相关:倾心之恋:总裁的妻子   大妆   今天也没变成玩偶呢   2对1性爱的滋味   让我的妻子怀孕