Linux centos stream 9 history

很多命令的介绍,大多数是讲命令的语法、命令有多少选项、可用什么参数、常用案例是什么。真正讲命令执行的底层逻辑的很少。

本文不再介绍常规知识点,仅就history命令执行的底层逻辑与root用户如何查看普通用户的历史命令介绍一下。

首先,我们要了解的是:程序(进程)运行在内存中;配置文件、存盘文件保存在外存(磁盘)中;当进程需要外部文件时,要加载文件到内存中,然后显示、修改、使用。而加载文件实质是复制文件数据到内存中(更专业的术语是映射)。

一、底层逻辑

1.基础

全面理解history命令,需要掌握几个重要概念。

缓存——从广义上讲,缓存存在于电脑的许多配件上,比如CPU有一级、二级甚至三级缓存。缓存技术的应用,可以提升硬件的数据读取和处理速度。硬盘的缓存主要起三种作用:一是预读取;二是对写入动作进行缓存;第三个作用就是临时存储最近访问过的数据。

本文称后续的用于保存历史命令的缓存区称为历史缓存

内存——计算机内存是计算机的重要部件,它用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。内存是外存与CPU进行沟通的桥梁,计算机中所有程序的运行都在内存中进行。

history保存文件——默认情况下,命令历史被储存在.bash_history文件中。可以通过环境变量来改变为其他位置。本文称保存历史命令的文件为历史文件

history配置文件——能影响history功能的配置文件有多个,主要有/etc/profile、~/.bashrc和~/.bash_profile。

history的默认的,只会输出命令的序号以及命令。这时我们就需要对history进行一些配置,让它报告(显示)命令执行的更多信息。

history环境变量——和history相关的环境变量有很多,我们仅列出部分,供讨论。

HISTSIZE;HISTFILE;HISTFILESIZE;HISTTIMEFORMAT;ISTIGNORE;HISTCONTROL

2.执行逻辑

命令执行的信息按时间保存在shell程序的历史缓存中;

启动一个终端会话时,占用一定大小的内存,在其中还同时创建了一段缓存区(历史缓存——及时记录会话中执行过的命令)。

一个会话对应一个历史缓存,多个会话的历史缓存相互独立。

当启动一个会话时,历史缓存会自动加载历史文件内容。

<think>好的,用户想了解Linux中的快捷运维命令。首先,我需要回忆一下常见的运维命令,特别是那些高效且常用的。可能包括系统监控、日志查看、进程管理、网络诊断、软件包管理等类别。 根据用户提供的引用内容,引用[1]提到了SELinux的模式查看命令getenforce,引用[2]说明了man命令的使用方法,引用[3]提到了k8s组件和一些容器管理命令。这些都属于运维的一部分,但用户可能想要更全面的列表。 接下来,我应该整理不同类别的命令,并确保每个命令都有简短说明和示例。比如,系统状态监控可以用top、htop、vmstat等;进程管理用ps、kill、pkill;网络方面有netstat、ss、curl等。此外,用户提到“快捷”,可能还需要一些组合命令或一行脚本,比如用管道结合grep过滤进程,或者使用watch定期执行命令。 还需要考虑用户对命令的熟悉程度,是否需要解释参数,比如ps aux中的各个选项,或者netstat -tulpn的含义。同时,结合引用中的例子,比如man命令查看帮助,可以推荐用户使用man来获取更多信息,这也符合引用[2]的内容。 另外,用户可能对容器化运维感兴趣,比如k8s相关命令,如kubectl,但引用[3]提到的是Deployment和Pod管理,这部分是否需要包含?可能简要提及,但用户问题主要是Linux命令,所以可能以基础命令为主,容器相关作为补充。 最后,生成相关问题时要围绕用户可能进一步的需求,比如性能分析、日志分析技巧、自动化工具等,确保问题相关且有引导性。</think>### Linux常用快捷运维命令汇总 Linux系统提供大量高效运维命令,以下是分类整理的常用快捷命令(带参数说明和示例): #### 一、系统状态监控 1. **实时资源监控** - `top`:动态显示进程资源占用(CPU/MEM排序按`P`/`M`) - `htop`:增强版`top`(支持颜色和鼠标操作) ```bash htop -d 5 # 每5秒刷新 ``` 2. **内存与CPU分析** ```bash free -h # 人性化显示内存(GB/MB单位) vmstat 2 # 每2秒输出CPU/内存/IO状态 mpstat -P ALL # 显示所有CPU核心利用率 ``` #### 二、进程管理 1. **快速定位进程** ```bash ps aux | grep nginx # 筛选nginx进程 pgrep -f "python app.py" # 精确匹配进程名 ``` 2. **进程控制** ```bash kill -9 $(pgrep java) # 强制终止所有Java进程 pkill -U username # 结束某用户全部进程 ``` #### 三、网络诊断 1. **连接与端口检测** ```bash netstat -tulpn | grep :80 # 查看80端口占用程序[^2] ss -altnp # 更高效的socket统计(替代netstat) lsof -i :22 # 查看SSH端口连接详情 ``` 2. **网络测试工具** ```bash curl -I http://example.com # 仅显示HTTP头 mtr 8.8.8.8 # 实时路由追踪(结合ping+traceroute) tcping -p 3306 db-server # 检测特定TCP端口延迟 ``` #### 四、日志分析技巧 1. **实时日志追踪** ```bash tail -f /var/log/nginx/access.log | grep "404" # 实时过滤404错误 journalctl -u docker.service --since "10m ago" # 查看docker最近10分钟日志 ``` 2. **快速统计** ```bash awk &#39;{print $1}&#39; access.log | sort | uniq -c | sort -nr # 统计访问量TOP IP grep "ERROR" app.log | cut -d&#39; &#39; -f4- | sort | uniq -c # 错误类型分类统计 ``` #### 五、软件包管理(以CentOS为例) ```bash yum history # 查看安装历史记录 rpm -qf /usr/sbin/nginx # 查询文件所属包 repoquery -l nginx # 显示包内文件(无需安装包) ``` #### 六、容器化运维(结合引用[3]) ```bash docker stats --no-stream # 一次性显示容器资源使用 kubectl get pods -o wide --sort-by=&#39;.status.containerStatuses[0].restartCount&#39; # 按重启次数排序Pods ``` #### 七、组合命令实例 1. **批量操作** ```bash parallel -j 4 "ssh {} hostname" < server_list.txt # 并行登录4台服务器执行命令 find /var/log -name "*.log" -mtime +7 -exec rm {} \; # 删除7天前日志 ``` 2. **快速排障** ```bash dmesg | grep -i "error" # 检查内核错误 smartctl -a /dev/sda | grep -i "reallocated_sector_count" # 硬盘坏道检测 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_36142959

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值