0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

总结Linux系统上的命令使用详细情况

如意 来源:Linux中国 作者:Sandra Henry-stocker 2020-08-16 09:16 次阅读

使用合适的命令,你可以快速了解 Linux 系统上使用的命令以及执行的频率。

汇总 Linux 系统上使用的命令只需一串相对简单的命令以及几条管道将它们绑定在一起。当你的历史记录缓冲区保留了最近的 1,000 或 2,000 条命令时,总结你的命令活动可能会变得很乏味。这篇文章提供了一种方便的方法来汇总命令的使用情况,并高亮显示最常用的命令。

首先,请记住,典型的命令历史记录可能看起来像这样。请注意,命令是显示在命令序列号之后,并紧跟其参数

91 sudo apt-get install ccrypt

^

+-- command

请注意,history 命令遵循 HISTSIZE 的设置,这会决定保留多少条命令。可能是 500、1,000 或更多。如果你不喜欢它的设置,那么可以在 .bashrc 或其他启动文件中添加或更改 HISTSIZE 设置。

$ echo $HISTSIZE

1000

$ history | wc -l

1000

$ grep HISTSIZE ~/.bashrc

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)

HISTSIZE=1000

记下大量命令的主要好处之一是,它可以让你轻松地重新运行过去使用的命令,而不必重新输入或记住它们。它还能让你轻松地查看你在一个任务中已经做了多少工作。单独使用 history 命令时,你会看到类似下面这样,最早的在最前面:

$ history

7 vi tasks

8 alias

9 echo $HISTTIMEFORMAT

10 history

11 date …

查看最新使用命令需要查看记录的命令的尾部:

$ history | tail -4

1007 echo $HISTSIZE

1008 history | wc -l

1009 history

1010 history | tail -4

另外,你可以使用 tail 命令查看 .bash_history 文件的尾部,但是 history 命令显示的数字可以让你输入如 !1010 这样的数字重新运行命令,这点通常更有用。

要提供已使用命令的汇总(例如 vi 和 echo),你可以首先使用 awk 将命令与 history 中保存的其他信息分隔开来:

$ history | awk ‘{print $2}’

vi

alias

echo

history

date

如果你将历史记录中的命令列表传递给 sort 命令以按字母顺序对命令进行分组,那么会得到以下内容:

$ history | awk ‘{print $2}’ | sort

7z

7z

alias

apropos

cdcd

接下来,将 sort 命令的输出传递给 uniq -c ,这将计算每个命令使用了多少次:

$ history | awk ‘{print $2}’ | sort | uniq -c

2 7z

1 alias

2 apropos

38 cd

21 chmod

最后,添加第二个 sort 命令按倒序对命令组计数进行排序,这将先列出最常用的命令:

$ history | awk ‘{print $2}’ | sort | uniq -c | sort -nr

178 ls

95 vi

63 cd

53 sudo

41 more

这样可以让你了解使用最多的命令,但不会包括任何你可能故意从历史记录文件中删除的命令,例如:

HISTIGNORE=“pwd:clear:man:history”

当修改了历史记录格式时

对于默认的历史记录格式,history 命令输出中的第一个字段将是每个命令的序号,第二个字段是使用的命令。因此,上面所有 awk 命令都设置成显示 $2。

$ alias cmds=‘history | awk ’\‘’{print $2}‘\’‘ | sort | uniq -c | sort -nr’

如果你像下面那样将日期和时间添加了到 history 命令中,那么你还必须修改所设置的别名:

$ echo $HISTTIMEFORMAT

%d/%m/%y %T

这个日期/时间信息有时会很有帮助,但是这意味着你必须在选择 history 命令的第 4 个字段而不是第 2 个字段来汇总命令,因为你的历史记录条目将如下所示:

91 05/07/20 16:37:39 sudo apt-get install ccrypt

^

+-- command

因此,在将 $2 变为 $4 之后,用于检查 history 命令的别名将改为这样:

$ alias cmds=‘history | awk ’\‘’{print $4}‘\’‘ | sort | uniq -c | sort -nr’

可将别名保存在 .bashrc 或其他启动文件中,请确保在 $ 符号前面插入反斜杠,以便 bash 不会尝试解释 $4。

alias cmds=‘history | awk ’\‘’{print \$2}‘\’‘ | uniq -c | sort -nr’

alias cmds=‘history | awk ’\‘’{print \$4}‘\’‘ | uniq -c | sort -nr’

请注意,日期和时间信息与命令本身保存在历史记录文件的不同行中。因此,添加此信息后,bash 历史记录文件的行数将增加一倍,尽管在 history 命令输出时不会:

$ wc -l .bash_history

2000 .bash_history

$ history | wc -l

1000

总结

你可以随时决定要保留多少命令历史记录,哪些命令不值得记录,以使你的命令摘要最有用。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11285

    浏览量

    209267
  • 命令
    +关注

    关注

    5

    文章

    683

    浏览量

    22011
  • 虚拟机
    +关注

    关注

    1

    文章

    914

    浏览量

    28154
收藏 人收藏

    评论

    相关推荐

    盘点Linux系统中的常见命令

    作为运维同学怎能不知道Linux系统中的lsmod、lsof、lspci、lsscsi命令呢,今天就来盘一盘她及实例。
    的头像 发表于 12-03 09:48 211次阅读
    盘点<b class='flag-5'>Linux</b><b class='flag-5'>系统</b>中的常见<b class='flag-5'>命令</b>

    Linux系统中shell命令解析

    shell是Linux系统的用户界面,提供了用户与内核交互的一种接口,它接收用户输入的命令并到送到内核去执行,因此也被称为Linux命令
    的头像 发表于 11-05 15:40 211次阅读

    Linux实用命令大全

    Linux实用命令大全
    的头像 发表于 10-23 13:50 215次阅读
    <b class='flag-5'>Linux</b>实用<b class='flag-5'>命令</b>大全

    Linux lsof命令的基本用法

    linux 系统中,一切皆文件。通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以 lsof 命令不仅可以查看进程打开的文件、目录,还可以查看进程监听的端口等 socket 相关的信息。本文将介绍 lsof
    的头像 发表于 10-23 11:52 224次阅读
    <b class='flag-5'>Linux</b> lsof<b class='flag-5'>命令</b>的基本用法

    晶闸管导通的五种情况

    晶闸管作为一种重要的电力电子器件,其导通状态受多种因素影响。以下是晶闸管导通的五种详细情况,每种情况都结合了晶闸管的工作原理、结构特性及外部条件进行阐述。
    的头像 发表于 08-27 16:25 1802次阅读

    常用CentOS命令总结

    CentOS(Community ENTerprise Operating System)是基于Red Hat Enterprise Linux(RHEL)的自由和开源的企业级操作系统,旨在提供一个
    的头像 发表于 08-07 15:35 308次阅读

    util-linux修复WallEscape漏洞,影响Linux系统wall命令使用

    WallEscape 主要影响“wall”命令操作,Linux 系统中的常规下,该指令被用作向系统所有登录用户的终端发布消息。然而在处理命令
    的头像 发表于 03-29 14:35 964次阅读

    I.MX6ULL-飞凌 ElfBoard ELF1板卡- 4g问题排查

    \\\\r\\\\n\" > /dev/ttyUSB2//查询当前注册详细情况及信息
    发表于 03-15 09:21

    嵌入式学习-飞凌ElfBoard ELF 1板卡 - 4g问题排查

    \\\\r\\\\n\" > /dev/ttyUSB2//查询当前注册详细情况及信息
    发表于 03-15 09:15

    linux命令概述

    电子发烧友网站提供《linux命令概述.pdf》资料免费下载
    发表于 03-11 09:18 3次下载

    Linux如何通过命令行来更改日期和时间?

    Linux如何通过命令行来更改日期和时间? 在Linux,我们可以使用命令行工具来更改日期
    的头像 发表于 01-16 17:10 2804次阅读

    Linux怎么配置NTP时间同步呢?

    。下面是一个详细的关于如何在Linux配置NTP时间同步的指南。 第一步:安装NTP服务器软件 在开始配置NTP之前,我们首先需要确保系统中已经安装了NTP服务器软件。在大多数
    的头像 发表于 01-16 16:03 2936次阅读

    Linux基本命令总结

    都说Linux命令多,实际工作中我们又有多少命令会接触用到呢?本文跟大家分享Linux运维工作中常用的600个命令,可以说这些
    的头像 发表于 01-11 10:32 959次阅读

    常用Linux命令总结

    今天浩道跟大家分享一些平时运维工作中常用到的Linux命令,让你关键时候也可以在领导面前露一手!大家不要觉得命令使用简单,实际浩道接触的现场同事,
    的头像 发表于 12-26 09:49 429次阅读

    深入了解Linux中vi命令的使用

    深入了解Linux中vi命令的使用 VI是一款在Linux系统中使用的文本编辑器,它是一款功能强大、灵活性高的编辑器。VI编辑器具有非常高效的命令
    的头像 发表于 12-25 11:15 454次阅读