首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

linux 列出使用过的命令

在Linux系统中,列出使用过的命令可以通过查看历史命令记录来实现。以下是一些常用的方法:

基础概念

Linux系统会记录用户在终端中输入的命令历史,以便用户可以查看和重复使用之前执行过的命令。

相关优势

  1. 提高效率:通过查看历史命令,用户可以快速找到并重新执行之前用过的命令,而不需要重新输入。
  2. 便于调试:在排查问题时,可以回顾之前的操作步骤。

类型与应用场景

  • 交互式终端:在日常的shell会话中,用户经常需要查看和使用历史命令。
  • 脚本编写:在编写自动化脚本时,了解历史命令有助于构建更复杂的任务流程。

查看历史命令的方法

使用 history 命令

history 命令是最直接的方式来查看所有使用过的命令。

代码语言:txt
复制
history

这将列出当前用户的所有历史命令,每条命令前都有一个编号。

使用上下箭头键

在终端中,你可以使用上下箭头键来浏览之前输入过的命令。按上箭头键会逐条显示之前的命令,按下箭头键则会返回到更近期的命令。

查看特定数量的历史命令

如果你只想查看最近的几条命令,可以使用 history 命令配合 tail 来实现。

代码语言:txt
复制
history | tail -n 10

这将显示最近的10条命令。

遇到的问题及解决方法

历史命令丢失

如果你发现历史命令突然不见了,可能是以下几个原因:

  • 会话结束:如果你关闭了终端而没有保存会话,历史命令可能会丢失。
  • 配置问题:检查你的 .bashrc.bash_profile 文件中是否有设置 HISTSIZEHISTFILESIZE,这两个变量控制着历史命令的数量。

解决方法:

  • 确保在退出终端前使用 exit 而不是直接关闭窗口。
  • 在配置文件中适当增大 HISTSIZEHISTFILESIZE 的值。
代码语言:txt
复制
export HISTSIZE=1000
export HISTFILESIZE=2000

然后重新加载配置文件或重新登录。

命令被清除

有时候,可能由于误操作或其他原因,历史命令被意外清除了。

解决方法:

  • 如果你记得部分命令,可以尝试通过搜索引擎查找相关命令。
  • 如果是误删除,可以尝试恢复被删除的文件(如果有备份的话)。

示例代码

以下是一个简单的脚本示例,用于自动记录和查看特定时间段内的命令历史:

代码语言:txt
复制
#!/bin/bash

# 记录当前时间戳
timestamp=$(date +%Y%m%d%H%M%S)

# 将当前历史命令追加到一个文件中
history > ~/.bash_history_$timestamp

# 查看最近10条命令
history | tail -n 10

将此脚本保存为 record_history.sh 并赋予执行权限,之后可以通过运行这个脚本来记录和查看历史命令。

通过以上方法,你可以有效地管理和利用Linux中的命令历史。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Linux中的lsmod命令列出内核模块

lsmod是一个命令行程序,用于显示有关已加载的Linux内核模块的信息。 内核模块 内核是操作系统的核心组件。 它管理系统的资源,并且是计算机硬件和软件之间的桥梁。...Linux内核具有模块化设计。 内核模块通常称为驱动程序是一段扩展内核功能的代码。 模块要么编译为可加载模块,要么内置在内核中。...要找到正在运行的内核的版本,请使用uname -r命令。 lsmod命令 lsmod是一个简单的命令,不接受任何选项或参数。...该命令的作用是读取/proc/modules并以格式化的列表显示文件内容。...在命令行中运行lsmod以了解当前正在加载哪些内核模块: lsmod 该命令在新的一行上输出每个已加载内核模块的信息: Module Size Used by cmac

4.2K20
  • 列出linux系统的本地锁使用lslk命令

    lslk命令的作用是可以列出本地inode上的文件锁的信息。 锁可以属于本地系统上的进程,也可以属于本地系统是NFS服务器的NFS客户端系统上的进程。...注意选定文件如果没有任何选项,lslk命令将列出与系统本地文件关联的所有锁。 指定选择选项后,将禁用所有锁的列表,并且将选择选项进行或运算。仅列出满足任何选择条件的锁。...指定-a选项时,将禁用所有锁的列表,并且将选择选项与在一起。仅列出符合所有选择条件的锁。...主机还是网络地址选择锁的列表 -v 列出版本信息 -k 以指定内核名称作为默认的内核名称列出文件路径 -p 按所属的进程标识(PID)号选择锁的列表 -S 为内核函数...@linux ~]# lslk 从主机linux上列出锁: [root@localhost ~]# lslk -i linux 列出进程1234和8888持有的锁: [root@linux ~]# lslk

    1.2K10

    使用lslk命令列出linux系统的本地锁

    lslk命令的作用是可以列出本地inode上的文件锁的信息。 锁可以属于本地系统上的进程,也可以属于本地系统是NFS服务器的NFS客户端系统上的进程。...注意选定文件如果没有任何选项,lslk命令将列出与系统本地文件关联的所有锁。 指定选择选项后,将禁用所有锁的列表,并且将选择选项进行或运算。仅列出满足任何选择条件的锁。...指定-a选项时,将禁用所有锁的列表,并且将选择选项与在一起。仅列出符合所有选择条件的锁。...主机还是网络地址选择锁的列表 -v 列出版本信息 -k 以指定内核名称作为默认的内核名称列出文件路径 -p 按所属的进程标识(PID)号选择锁的列表 -S 为内核函数...@linux ~]# lslk 从主机linux上列出锁: [root@localhost ~]# lslk -i linux 列出进程1234和8888持有的锁: [root@linux ~]# lslk

    1.1K50

    Python调用linux系统命令--使

    在python 中调用系统命令,如果使用subprocess.Popen() 模块,按照命令参数的的形式,可以分两种: 把命令当作字符串传给subprocess.Popen()  把命令保存到一个元组,...shell : 默认是False, 如果args 的形式是字符串,那么shell=True, 指定命令是用shell 执行的。...命令,列出当前目录的文件,命令的执行结果在标准输出stdout, 因为stdout 用PIPE 初始化了, 所以,在In [129] 行,用p.stdout.read() 将内容读出。    2....以序列的方式传入命令,shell=False:  ? 用序列的形式保存命令,就不需要指定shell=True 来运行指令了。...多条命令连通:      在linux 下,经常使用管道将多条命令连在一起,前一条指令的执行结果作为后一条指令的输入,使用Popen 也可以实现。 ? 首先,查看test.txt 文件的内容。

    5.1K20

    Linux 的命令 ls 只列出部分目录或是文件

    ls 默认从小到大顺序列出 当前目录下所有的文件和目录。 现在的问题是,我只想按照这样的顺序列出指定数目的目录或是文件,那样怎么实现呢?...比如 有image目录下有10个子目录 image1 image2….image10, 我直需要列出2个目录 image1 iamge2 总结: 1.只列出前N个目录: ls | head -n 2...列出所有image开头的目录; ls -d image* 补充: 只显示目录 命令1: ls -F | grep "/$" -F 文件类型(File type)。 在每一个列举项目之后添加一个符号。...这些符号包括: / 表明是一个目录; @ 表明是到其它文件的符号链接; * 表明是一个可执行文件 命令2: ls -al | grep "^d" ============================...该选项递归地列举所有目录(在当前目录之下)的内容。

    3.8K20

    Linux命令ls只列出部分目录或是文件

    ls 默认从小到大顺序列出 当前目录下所有的文件和目录。 现在的问题是,我只想按照这样的顺序列出指定数目的目录或是文件,那样怎么实现呢?...比如 有image目录下有10个子目录 image1 image2…image10, 我直需要列出2个目录 image1 iamge2 总结: 1、只列出前N个目录: ls | head -n 2、...只列出image1,image2目录 : ls -d image[1-2] 或 ls -d image1 iamge2 3、列出所有image开头的目录: ls -d image* 只显示目录 命令...1: ls -F | grep "/$" -F 文件类型(File type) 在每一个列举项目之后添加一个符号,这些符号包括: / 表明是一个目录; @ 表明是到其它文件的符号链接; * 表明是一个可执行文件...; 命令2: ls -al | grep "^d" 只显示文件 ls -al | grep "^-" -R 递归(recursive),该选项递归地列举所有目录(在当前目录之下)的内容。

    4.9K20

    7个命令教你如何在 Linux 上列出磁盘信息

    在 Linux 系统上,了解系统中的磁盘信息对于系统管理员和用户来说都是至关重要的。通过了解系统上的磁盘情况,可以有效管理存储空间、诊断问题并进行性能优化。...df 命令df 命令是一个常用的工具,用于显示文件系统的磁盘空间使用情况。它会列出已挂载文件系统的相关信息,包括文件系统的名称、挂载点、总大小、已使用空间、可用空间以及使用百分比等。...lsblk 命令lsblk 命令用于列出系统中的块设备信息,包括磁盘、分区和其关系。它提供了一个直观的视图,显示了系统中所有块设备的层次结构。.../dev/sdb1 2048 209715199 209713152 100G 83 Linux这个示例中,fdisk 命令显示了系统中所有磁盘的分区信息,包括分区的起始扇区、结束扇区、大小、...ls 命令虽然 ls 命令通常用于列出目录中的文件和子目录,但也可以用来查看一些特殊文件,比如设备文件。

    27600

    【linux命令讲解大全】076.pgrep命令:查找和列出符合条件的进程ID

    pgrep 根据用户给出的信息在当前运行进程中查找并列出符合条件的进程ID(PID) 补充说明 pgrep 命令以名称为依据从运行进程队列中查找进程,并显示查找到的进程ID。...每一个进程ID以一个十进制数表示,通过一个分割字符串和下一个ID分开,默认的分割字符串是一个新行。对于每个属性选项,用户可以在命令行上指定一个以逗号分割的可能值的集合。...语法 pgrep [options] 选项 -o:仅显示找到的最小(起始)进程号; -n:仅显示找到的最大(结束)进程号; -l:显示进程名称; -P:指定父进程号; -g:指定进程组...; -t:指定开启进程的终端; -u:指定进程的有效用户ID。...参数 :指定要查找的进程名称,同时也支持类似grep指令中的匹配模式。

    41610

    怎么通过命令的形式列出各个linux系统已经安装的软件包?

    怎么通过命令的形式列出各个linux系统已经安装的软件包?...使用过linux系统的运维应该都有在上面安装过软件包,有时候我们需要查询即将要安装的包有没有在这个系统上已经安装,如果不先查一下,或多或少会出现问题,比如版本不一致等等。...要列出Arch Linux 及其衍生产品中使用pacman显示所有已安装软件包,如下: $ pacman -Q [在 Arch Linux 中使用 Pacman 列出已安装的软件包] 如果要逐页查看输出...,请将输出通过管道传输到more命令 $ pacman -Q | more 仅列出显式安装的软件包和版本: $ pacman -Qe 要仅列出 Arch Linux 中已安装软件包的总数,请将pacman...要使用dpkg命令列出所有已安装的软件包的版本和详细信息,请运行: $ dpkg -l [使用 dpkg 命令获取已安装的软件包] 或者,使用dpkg-query命令列出所有已安装的 Debian 软件包

    8.9K31

    Linux下使Shell 命令脱离终端在后台运行

    转自:http://www.linuxidc.com/Linux/2011-05/35723.htm 你是否遇到过这样的情况:从终端软件登录远程的Linux主机,将一堆很大的文件压缩为一个.tar.gz...文件,连续压缩了半个小时还没有完成,这时,突然你断网了,你登录不上远程Linux主机了,那么前面的半个小时就会前功尽弃,你非常气愤…… 在Linux下,如果你要执行的shell命令耗时特别长,并且: 你的网络不稳定...方法如下: 输入命令: nohup 你的shell命令 & 回车,使终端回到shell命令行; 输入exit命令退出终端: exit 现在可以关闭你的终端软件了,等过足够的时间,让你的shell命令执行完了再上去看结果吧...其中,nohup命令可以让你的shell命令忽略SIGHUP信号,即可以使之脱离终端运行;“&”可以让你的命令在后台运行。...以脱离终端的方式在后台运行shell命令有这样几个好处:只要你执行过了命令,那么你的网络中断不会对你有任何影响,并且你就可以关闭终端软件了 nohup默认会将log输出到当前目录下的nohup.out文件中

    2.6K30

    11 个 Linux 终端命令,没用过的快去试试吧!!

    原文:http://linux.about.com/od/commands/tp/11-Linux-Terminal-Commands-That-Will-Rock-Your-World.htm 译文:...LCTT http://linux.cn/article-5438-1.html 编辑:昱良 通过今天这篇文章我将向大家展示一系列的命令、工具和技巧,我希望一开始就有人告诉我这些,而不是曾在我成长道路上绊住我...主页君强烈反对使用这个命令,因为如果万一上个命令存在一些笔误或者你搞错了哪条是上一条命令,那么有可能带来的后果是灾难性的!所以,千万不要执行这条命令!千万不要执行这条命令!千万不要执行这条命令!...‘在(at)’特定的时间运行Linux命令 ‘nohup’命令在你用SSH连接到服务器,并在上面保持执行SSH登出前任务的时候十分有用。...还有许多日期和时间的格式,都需要你好好翻一翻‘at’的man手册来找到更多的使用方式。 6.Man手册 Man手册会为你列出命令和参数的使用大纲,教你如何使用她们。Man手册看起来沉闷呆板。

    75640

    使用lsblk命令列出系统中的块设备

    中的lsblk 用于列出有关所有可用块设备的信息,但它不会列出有关RAM Disk的信息(其数据实际存储在RAM内存之中)。...,可以使用下面命令安装 [root@localhost ~]# yum -y install util-linux lsblk各个字段解释 默认情况下,lsblk命令将以树状格式列出所有块设备: [root...要查看这些内容,还可以使用以下命令: [root@localhost ~]# lsblk -a 列出设备权限和所有者 要列出设备所有者,组和权限,请使用-m选项: [root@localhost ~]#... lsblk -m image.png 列出指定设备 也可以列出指定的设备,只需在lsblk命令后面添加设备的位置和名称即可。...--output NAME,SIZE,TYPE,TRAN,STATE image.png 总结 Linux中的lsblk命令用于列出有关所有可用块设备的信息,但它不会列出有关RAM Disk的信息(

    1.1K00

    如何使用 Systemctl 列出 Linux 中的所有服务?

    在 Linux 系统中,Systemctl 是一个强大的工具,用于管理系统的服务和守护进程。它可以让用户轻松地启动、停止、重启以及管理各种系统服务。...本文将详细介绍如何使用 Systemctl 来列出 Linux 中的所有服务。什么是 Systemctl?Systemctl 是 systemd 系统和服务管理器的命令行工具。...systemd 是一种系统和服务管理器,用于在 Linux 系统上启动、停止和管理守护进程和服务。Systemctl 提供了一种简单而强大的方式来管理这些服务。如何列出所有服务?...要列出系统中的所有服务,可以使用 Systemctl 的 list-unit-files 命令。该命令将显示当前系统中所有可用的单元文件,包括服务、套接字、设备等。...输出将显示每个单元文件的状态以及启动条件。Systemctl 的高级服务管理操作上面,我们介绍了如何使用 Systemctl 列出 Linux 中的所有服务。

    24110

    linux下快速列出文件列表的方法

    理论上来说python的执行效率已经蛮高了,虽然可能达不到c或者c++的速度,但是相比java、C#来说已经够快了,所以就没有再考虑编程的方式,而是转向linux系统原生的方式。...ls 最先想到的就是ls命令,使用如下命令 ls –l –R(或-lR) src > list.txt 此命令能够列出src目录下的所有文件,但是效率还是不够高,而且结果包含了目录信息以及文件信息,不太整齐...tree tree命令本身用于列出文件系统的结构树,在设置一些参数的情况下也能够实现列出所有目录和文件的功能。...tree -afi -L 3 -o 2.txt --noreport src -a列出所有文件,-f列出完整路径(结果为绝对路径或者相对路径与find用法一致),-i不画tree的结构线, -L列出多少层目录...find find命令本身是查找文件的命令,但是如果使用得当,能够快速列出目录下文件,命令如下: find src > 1.txt 此命令速度足够快,基本能够满足需要了。

    3.4K50

    10个你可能不曾用过却很有用的 LINUX 命令

    点击上方蓝色“程序猿DD”,选择“设为星标” 回复“资源”获取独家整理的学习资料! 来源:coolshell.cn/articles/790.html 下面可能是你不曾用过后十个Linux的命令。...相当的有用。 1)pgrep pgrep名字前有个p,我们可以猜到这和进程相关,又是grep,当然这是进程相关的grep命令。不过,这个命令主要是用来列举进程ID的。...如: $ pgrep -u hchen 22441 22444 这个命令相当于: ps -ef | egrep '^hchen' | awk '{print $2}' 2)pstree 这个命令可以以树形的方式列出进程...平时,我们在命令行上使用竖线“|”把命令串起来是使用无命管道。而我们使用mkfifo则使用的是有名管道。...link>@@g' cocre.xml [hchen@RHELSVR5 ~]# xmlwf cocre.xml cocre.xml:13:23: mismatched tag 10)lsof 可以列出打开了的文件

    29810

    Linux下如何使cp命令不提示覆盖文件 原

    在Linux下,如果希望将文件file拷贝到目录dir下,可以执行:cp file dir 但如果dir下已经存在一个名为file的文件的时候,系统总是会提示是否覆盖file。...cp -f file dir 但好像结果并不像我们希望的那样,系统依然会有覆盖提示。为什么呢? 原因很简单,系统将cp命令alias为cp -i。...当我们执行cp命令的时候,系统往往执行的是cp -i,-i 选项表示有交互的提示信息, 所以执行cp -f的时候,系统实际执行的是cp -i -f,所以仍然会有覆盖提示。...可以执行alias命令查看下: alias cp='cp -i' alias l....也很简单: 1.在调用cp的时候加入绝对路径(可通过whereis cp命令得到),如 /bin/cp -f file dir 2.通过直接执行下面的语句调用系统原始的命令:  \cp -f file

    8.8K40

    我用过的设计模式(10)-- 命令模式

    @toc 命令模式 咱也没读过什么书,看网上的命令模式讲的那叫个花里胡哨,看来看去,我接收到的讯息如下: 命令请求者 命令调用者 命令储存 命令回撤 这是什么?这,我直接想到了消息队列好吧。...看一下命令模式的使用场景: 当系统需要将请求调用者与请求接收者解耦时,命令模式使得调用者和接收者不直接交互。 当系统需要随机请求命令或经常增加或删除命令时,命令模式比较方便实现这些功能。...系统需要执行一组操作时,命令模式可以定义宏命令来实现该功能。 当系统需要支持命令的撤销(Undo)操作和恢复(Redo)操作时,可以将命令对象存储起来,采用备忘录模式来实现。...再想想消息队列,如果消息队列不清楚的可以看这篇:消息队列:解耦、异步、削峰,现有MQ对比以及新手入门该如何选择MQ? 再好好想想,是不是吧。 到这儿。

    48600
    领券