【技术积累】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任务,以便进行管理和调整。
【技术积累】Linux中的命令行【理论篇】【六】的更多相关文章
- linux 中解析命令行参数(getopt_long用法)
linux 中解析命令行参数(getopt_long用法) http://www.educity.cn/linux/518242.html 详细解析命令行的getopt_long()函数 http:/ ...
- 如何在Linux中使用命令行卸载软件
您可以使用“dpkg”命令来查看您的计算机,按“Ctrl + Alt + T”的所有已安装包的列表,打开一个终端窗口. 在提示符下键入以下命令,然后按Enter键.dpkg -- list 要卸载程序 ...
- Linux中重定向命令行
http://www.ahlinux.com/start/base/3170.html
- (转)linux中nmcli命令的使用及网络配置
原文:https://blog.51cto.com/groot/1847482 http://www.178linux.com/44076----CentOS7中nmcli网络管理及使用详解 http ...
- 【转载】在LoadRunner向远程Linux/Unix执行命令行并收集性能数据
前面介绍过在LoadRunner的Java协议实现“使用SSH连接Linux”,当然连接之后的故事由你主导. 今天要讲的,是一个非Java版本.是对“在LoadRunner中执行命令行程序之:pope ...
- Linux中监控命令top命令使用方法详解
收集了两篇关于介绍Linux中监控命令top命令的详细使用方法的文章.总的来说,top命令主要用来查看Linux系统的各个进程和系统资源占用情况,在监控Linux系统性能方面top显得非常有用,下面就 ...
- Linux中date命令的各种实用方法--转载
在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,自己也曾经为时间的各种表示方法和如何修改时间而困惑,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的 ...
- 13 Basic Cat Command Examples in Linux(转) Linux中cat命令的13中基本用法
Cat (串联) 命令是Linux/Unix开源系统中比较常用的一个命令.我们可以通过Cat命令创建一个或多个文件,查看文件内容,串联文件并将内容输出到终端设备或新的文件当中,这篇文章我们将会以实例的 ...
- mysql命令行的导入导出sql,txt,excel(都在linux或windows命令行操作)(转自筑梦悠然)
原文链接https://blog.csdn.net/wuhuagu_wuhuaguo/article/details/73805962 Mysql导入导出sql,txt,excel 首先我们通过命令行 ...
- 【转载】Linux系统下命令行连接蓝牙设备 查看查找 蓝牙
Linux系统下命令行连接蓝牙设备 2018年11月26日 10:47:27 Zz笑对一切 阅读数:741 1.打开系统蓝牙 sudo service bluetooth start 1 进入bl ...
随机推荐
- #PowerBi 1分钟学会,在excel中,调用powerbi数据模型(Analyze in Excel插件)
在工作中,我们常常使用excel来进行临时的数据处理服务,如果我们在powerbi中,已经有了完整的数据模型. 那么我们都可以通过直接调用powerbi数据模型,来进行快速的数据分析,完成任务. 今天 ...
- 2020-08-21:网络IO模型有哪些?
福哥答案2020-08-21: 福哥口诀法:阻非复信异(阻塞.非阻塞.多路复用.信号驱动.异步) [知乎答案](https://www.zhihu.com/question/416128059)操作系 ...
- 2022-02-28:k8s安装adminer,yaml如何写?
2022-02-28:k8s安装adminer,yaml如何写? 答案2022-02-28: yaml如下: apiVersion: apps/v1 kind: Deployment metadata ...
- 2021-08-19:超级洗衣机。假设有 n 台超级洗衣机放在同一排上。开始的时候,每台洗衣机内可能有一定量的衣服,也可能是空的。在每一步操作中,你可以选择任意 m (1 ≤ m ≤ n) 台洗衣机,
2021-08-19:超级洗衣机.假设有 n 台超级洗衣机放在同一排上.开始的时候,每台洗衣机内可能有一定量的衣服,也可能是空的.在每一步操作中,你可以选择任意 m (1 ≤ m ≤ n) 台洗衣机, ...
- 在开发过程中使用git rebase还是git merge,优缺点分别是什么?
前言 在开发过程中,git rebase 和 git merge 都是常见的代码版本管理工具.它们都能够将分支合并到主分支,并且都有各自的优缺点. git merge git merge 是一种将两个 ...
- 【Java】水果超市管理系统
前言 说是个系统,看着像实训的产物,但实际上这是Java课程最后一个关于jdbc的大实验,yes,挺大的. 过程 看着视频里的一堆一堆的文件,逻辑混乱的讲解,我决定 我自己写这个系统 说干就干: 分析 ...
- 解决element-ui下拉框数据过多,导致页面卡顿问题与本地分页功能实现
效果 前情提要: 最近使用element-ui开发的一个页面,在打开的时候占用cpu非常高,有时候都能达到90%↑.在调试时发现其中一个下拉框的接口返回2k↑的数据.本着有问题问百度的精神,看到主要的 ...
- 如何洞察 C# 程序的 GDI 句柄泄露
一:背景 1. 讲故事 前段时间有位朋友找到我,说他的程序界面操作起来很慢并且卡顿等一些不正常现象,从任务管理器看了下 GDI句柄 已经到 1w 了,一时也找不出什么代码中哪里有问题,让我帮忙看下,其 ...
- Swift4 入门到精通(第二章基本数据类型与量值)
第二章 量值和基本数据类型 Swift 支持的基本数据类型, 整型,浮点型,布尔型,元组,可选类型. 学习的目标: 常量与变量的意义.声明.命名规范.类型 数据进制与计算机存储原理 整型数据.浮点型数 ...
- Elasticsearch 6.x 配置search-guard 插件
前言 es之前版本一直无用户验证功能,不过官方有提供一x-pack,但是问题是付费.在es的6.3.2版本中,已经集成了x-pack,虽然es团队已经对x-pack开源,但是在该版本中如果需要使用 ...