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
    +关注

    关注

    88

    文章

    11628

    浏览量

    217965
  • 命令
    +关注

    关注

    5

    文章

    746

    浏览量

    23444
  • 虚拟机
    +关注

    关注

    1

    文章

    968

    浏览量

    30177
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    飞凌嵌入式ElfBoard-Linux系统基础入门-其它shell命令

    :elf@ubuntu:~$ man lssu/sudo用户切换命令sudo:暂时切换到超级用户以执行超级用户权限su:切换到某某用户who命令:who功能:显示关于当前在本地系统
    发表于 10-11 08:42

    测试工程师都在用的Linux命令清单(建议收藏)

    作为一名工程师,熟练掌握Linux命令是基本功中的基本功。无论是日常工作中的系统维护,还是面试时的技术考核,Linux命令都是绕不开的核心技
    的头像 发表于 08-08 10:06 503次阅读
    测试工程师都在用的<b class='flag-5'>Linux</b><b class='flag-5'>命令</b>清单(建议收藏)

    Linux系统安装技巧与分区策略

    还记得第一次装Linux系统时的忐忑吗?面对fdisk命令行界面,不知道该如何下手。经历过无数次系统重装、数据丢失的痛苦后,我总结出了这套"
    的头像 发表于 08-06 17:51 808次阅读

    Linux基础命令which详解

    Linux系统中,which命令用于查找并显示指定命令的可执行文件路径。这对于系统管理员和开发人员来说是一个非常有用的工具,可以帮助定位
    的头像 发表于 07-29 17:58 591次阅读

    linux系统awk特殊字符命令详解

    Linux系统中,awk 是一种非常强大的文本处理工具,能够对文本数据进行分析、格式化和筛选。利用其内置的特殊字符和操作符,用户可以实现复杂的数据处理任务。以下对一些常见的awk特殊字符和操作符
    的头像 发表于 07-28 16:38 421次阅读

    一文掌握Linux命令

    作为一名运维工程师,熟练掌握Linux命令是基本功中的基本功。无论是日常工作中的系统维护,还是面试时的技术考核,Linux命令都是绕不开的核
    的头像 发表于 07-22 15:23 441次阅读

    Linux系统管理的核心概念

    在前一篇文章中,我们深入探讨了Linux中的文件操作命令,如cp、mv、rm,以及文本处理命令grep、wc和管道符。本文将继续深入Linux系统
    的头像 发表于 05-15 17:05 492次阅读

    Linux常用命令大全

    Linux常用命令是指在Linux操作系统中广泛使用的命令工具,这些命令工具可以完成各种不同的任
    的头像 发表于 05-03 18:08 1612次阅读

    Linux常用命令总结

    学习了一段时间的linux之后,开始着手基本命令的学习,这里主要记录一些学习过程中重要的知识点供以后查阅。
    的头像 发表于 03-03 10:40 806次阅读
    <b class='flag-5'>Linux</b>常用<b class='flag-5'>命令</b>行<b class='flag-5'>总结</b>

    Linux系统中最重要的三个命令

    Linux三剑客是Linux系统中最重要的三个命令,它们以其强大的功能和广泛的应用场景而闻名。这三个工具的组合使用几乎可以完美应对Shell中的数据分析场景,因此被统称为
    的头像 发表于 03-03 10:37 797次阅读

    Linux ip命令常用操作

    Linux ip命令常用操作 在Linux系统中,ip命令是用于管理网络接口和路由的强大工具。相比于旧的 ifconfig
    的头像 发表于 02-19 10:23 1072次阅读

    Linux文件管理命令详解

    cat命令描述:该命令用于连接文件并打印到标准输出设备
    的头像 发表于 02-17 10:34 888次阅读
    <b class='flag-5'>Linux</b>文件管理<b class='flag-5'>命令</b>详解

    Linux实时查看日志的四种命令详解

    如何在Linux中实时查看日志文件的内容?那么有很多实用程序可以帮助用户在文件更改或不断更新时输出文件的内容。在Linux中实时显示文件内容的常用命令是tail命令(有效地管理文件)。
    的头像 发表于 01-13 10:45 3979次阅读
    <b class='flag-5'>Linux</b>实时查看日志的四种<b class='flag-5'>命令</b>详解

    嵌入式开发必备-RK3562演示Linux常用系统查询命令

    本文介绍Linux系统查看硬件配置及常用调试命令,方便开发者快速了解开发板硬件信息及进行相关调试
    的头像 发表于 01-06 14:13 766次阅读
    嵌入式开发必备-RK3562演示<b class='flag-5'>Linux</b>常用<b class='flag-5'>系统</b>查询<b class='flag-5'>命令</b>

    嵌入式开发必备-RK3562演示Linux常用系统查询命令)触觉智能出品

    实用干货!嵌入式开发学习必备-RK3562演示Linux常用系统查询命令)关注触觉智能持续为大家带来更多嵌入式开发内容
    的头像 发表于 12-31 10:51 117次阅读
    嵌入式开发必备-RK3562演示<b class='flag-5'>Linux</b>常用<b class='flag-5'>系统</b>查询<b class='flag-5'>命令</b>(<b class='flag-5'>上</b>)触觉智能出品