【嵌入式开发 Linux 常用命令系列 5 -- history 与 “!“ 巧妙配合】

news2024/11/19 10:52:48

文章目录

    • history 命令介绍
      • history 命令与 “!”
      • 运行先前执行的命令
      • 先前命令的参数传递给新命令
      • 两个或多个参数的处理
      • 设置 history 命令显示行数以及时间

上篇文章:嵌入式开发 Linux 常用命令系列 4 – git 常用配置及常用命令

history 命令介绍

history是一个Linux命令,用于显示用户最近运行过的命令。它保存了你在终端中执行过的所有命令的列表,使你可以轻松地查看和复制这些命令。

history命令的常用选项包括:

-c : 清除历史记录
-d OFFSET : 删除历史记录中的某一条
-a : 将缓冲区的历史记录追加到历史记录文件中
-n : 从历史记录文件中读取尚未读取的历史记录
-r : 读取历史记录文件并将结果附加到当前历史记录中
-w : 将当前历史记录写入历史记录文件并覆盖文件内容
-s : 将参数作为单独的历史记录项添加到历史记录列表的末尾

使用history命令可以帮助你找到之前运行过的命令,尤其是一些复杂或者长的命令,使用这个命令可以避免重复输入,提高工作效率。

history 命令与 “!”

在 Linux 中, history 命令与 ! 可以配合使用来执行历史记录中的命令。

! 用于引用历史记录中的命令。它后面可以是数字或字符串。

如果 ! 后面是数字,那么将会执行与这个数字对应的历史记录中的命令。例如,如果你输入 !100,那么将会执行历史记录中的第 100 条命令。

如果 ! 后面是字符串,那么将会执行最近一次以这个字符串开始的命令。例如,如果你输入 !ls,那么将会执行最近一次输入的以 ls 开始的命令。

还有一个特殊的用法,就是 !!,它指的是执行上一条命令,这在你需要以管理员权限运行上一条命令但忘记加 sudo 时非常有用,只需要输入 sudo !! 即可。

这种方式可以极大地增加命令行的效率,特别是对于那些很长或者复杂的命令。

首先,通过运行’history’命令找到命令的编号:
在这里插入图片描述
上图中显示了命令的执行时间及日期,如果要想执行 2036行的命令,只需要执行 !2036 即可:
在这里插入图片描述

运行先前执行的命令

可以通过命令的运行顺序来运行先前运行过的命令,最后运行的命令将表示为-1,倒数第二个为-2,倒数第七个为-7,依此类推。
你可以使用!-n,其中n是你要引用的命令的倒数编号。

$ history
$ !-1
$ !-5
$ !-15

在这里插入图片描述

先前命令的参数传递给新命令

我需要列出目录’/home/ldemo’中的内容,所以我执行了以下命令。


$ ls /home/demo

然后我意识到我应该执行 ls -l 来查看哪个文件在那里可执行。所以我应该重新输入整个命令吗?不需要,我只需要将上个命令的参数传递给这个新命令,如下所示:


$ ls -l !$

两个或多个参数的处理

第一个参数为 !^ ,而其余的参数可以通过 ![命令名称]:[参数编号] 来使用。

设置 history 命令显示行数以及时间

编辑 ~/.bashrc文件,加入如下三行:

HISTFILESIZE=2000
HISTSIZE=2000
HISTTIMEFORMAT="%Y%m%d-%H%M%S: "  

或者

HISTTIMEFORMAT="%Y%m%d %T "

或者

HISTTIMEFORMAT="%F %T "

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/755922.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

虚拟内存、内存分页、分段、段页式内存管理

虚拟内存 为什么有虚拟内存? CPU是直接操作内存的物理地址。在这种情况下,如果两个程序占用的内存有重叠,要想同时运行两个程序是不可能的。 为啥它会内存有重叠啊?我不理解。难道不是这块内存被这个程序使用之后另外的程序就无…

Java内部类(InnerClass)

文章目录 概述1 什么是内部类2 为什么要声明内部类呢3 内部类的分类 成员内部类1 概述2 创建成员内部类对象 局部内部类1 非匿名局部内部类 匿名内部类 概述 1 什么是内部类 将一个类A定义在另一个类B里面,里面的那个类A就称为内部类(InnerClass&#…

React中使用Redux

1.为什么要使用redux redux是一个专门用于状态管理的一个库,和vue中的vuex功能类似。其中核心点就是状态的管理。虽然我们无论在vue还是在react中我们组件间的通行都可以使用消息总线或者父子组件间的消息传递来进行操作。但是如果我们需要A组件的状态在其他十个或者…

Python开发项目基于卷积神经网络的车牌识别仿真软件

博主介绍:擅长Java、微信小程序、Python、Android等,专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟 Java项目精品实战案例…

MongoDB初体验-安装使用教程2023.7

前言:博主第一次接触MongoDB,看了一圈网上现有的教程,不是缺少细节就是有问题没交代清楚,特整理了一下自己安装运行的过程,从下载安装到开机自启,全程细节齐全、图文并茂、简单易懂。 目录 1. 从官网下载2…

1-4 架构师所需要具备的技术栈与能力

架构师所需要具备的技术栈与能力 全局图解 全局图解

JavaWeb(4)——HTML、CSS、JS 快速入门

一、JavaScript 数组 数组筛选&#xff08;查找&#xff0c;将原来数组中的某些数据去除&#xff09; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content&quo…

2023年中国传媒大学程序设计大赛(同步赛)F.舞台矩形

一个简单的线段树维护最值&#xff0c;容易犯错的地方在于y相等的时候不应该省略 这个地方调了一会发现自己傻了 #include<bits/stdc.h> #define ls u<<1 #define rs u<<1|1 using namespace std; const int N 1e510; typedef long long ll; const ll INF …

DAPP(七)——React与智能合约的架构整合

合并一下react和智能合约&#xff0c;创建react脚手架 create-react-app myapp 将合约中对应的文件 复制到 react脚手架的根目录中 结果如下&#xff1a; 下载合约所要的依赖&#xff1a; npm i openzeppelin-solidity 可以在脚手架终端执行truffle的命令语句&#xff0c;t…

maven配置java outofmemory选项

在maven之中选择Add VM options&#xff0c;这样命令就多出来一个关于VM options配置的属性&#xff0c;此时就可以输入对于VM的设置

SpringMVC 中的数据绑定如何使用 @ModelAttribute 注解

SpringMVC 中的数据绑定如何使用 ModelAttribute 注解 引言 SpringMVC 是一个基于 Spring 框架的 Web 框架&#xff0c;它提供了一种简单、灵活的方式来开发 Web 应用程序。在开发 Web 应用程序时&#xff0c;我们需要将用户提交的数据绑定到我们的 Java 对象上。SpringMVC 提…

Orleans 微软基于 Actor 的分布式框架

一、Actor模型工作原理 Actor模型是一种并发编程模型&#xff0c;它基于消息传递实现&#xff0c;是一种轻量级的并发模型。在Actor模型中&#xff0c;每个Actor都是一个独立的执行单元&#xff0c;它可以接收和发送消息&#xff0c;并且可以执行一些本地操作&#xff0c;但是不…

【Java进阶之路】ArrayList源码分析

概述 ArrayList 是 java 集合框架中比较常用的数据结构了。继承自 AbstractList&#xff0c;实现了 List 接口。底层基于数组实现容量大小动态变化。允许 null 的存在。同时还实现了 RandomAccess、Cloneable、Serializable 接口&#xff0c;所以ArrayList 是支持快速访问、复…

no main manifest attribute, in schoolspringboot-0.0.1-SNAPSHOT.jar

no main manifest attribute, in schoolspringboot-0.0.1-SNAPSHOT.jar 部署springboot项目jar包报错。解决方案&#xff1a; pom文件添加 <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot…

web前端项目使用electron打包成跨平台桌面端程序(Windows)

文章目录 Electron是什么&#xff1f;快速入门基本使用要求从github下载一个开源项目执行启动脚本运行项目安装electron依赖包编写electron入口文件&#xff0c;在package.json中配置入口文件路径和electron执行脚本启动electron脚本&#xff0c;运行electron应用 应用打包Wind…

linux原生串口开发

1.在linux环境下封装串口相关代码 &#xff08;1&#xff09;vi uartTool.c #include <stdio.h> #include <stdlib.h> #include <stdint.h> #include <stdarg.h> #include <string.h> #include <termios.h> #include <unistd.h> #…

thinkphp 上传图片

public function upload_img(){// 读取图片资源// 存储路径$path "uploads/avatar";$file request()->file(background_img);// 存储图片$info $file->rule(uniqid)->move($path);// 存储成功if ($info) {//获取到上传图片的路径名称$name_img $path . …

计算机组成原理课程设计 报告

在我的博客查看&#xff1a;https://chenhaotian.top/study/computer-composition-principles-course-design/ 计算机组成原理课程设计 报告 一、目的和要求 深入了解计算机各种指令的执行过程&#xff0c;以及控制器的组成&#xff0c;指令系统微程序设计的具体知识&#xf…

plsql如何将表导出excel,同时表头是中文字段名

1、导出表中所有的字段名和对应注释&#xff0c;导出ecxel。 SELECT t.column_name,t.comments FROM user_col_comments t WHERE TABLE_NAMEHT_ORDER_INFO; 2、根据导出的excel自动生成查询的SQL。 3、根据SQL进行导出。

【菜鸟の笔记_利用Excel自动总结表格数据_自动链接word文本】

自动更新总结表格数据 1. 撰写原因2. 解决的问题3. Excel自动总结表格数据内容&#xff08;一段话&#xff09;。3.1问题引出3.2解决方式 4.Excel数据、总结内容&#xff0c;自动链接更新Word文本 1. 撰写原因 【GPT的答案】利用Excel自动总结表格数据有以下好处&#xff1a; …