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

Bash/Shell:如何在不删除被调用者历史函数的情况下添加到历史中

在Bash/Shell中,可以通过以下步骤在不删除被调用者历史函数的情况下将函数添加到历史中:

  1. 打开终端并进入Bash/Shell环境。
  2. 使用文本编辑器(如vi、nano等)创建一个新的脚本文件,例如myscript.sh
  3. 在脚本文件中定义你的函数,例如:
代码语言:txt
复制
my_function() {
    # 函数的具体实现代码
    echo "Hello, World!"
}
  1. 保存并关闭脚本文件。
  2. 使用source命令或.命令来加载脚本文件,例如:
代码语言:txt
复制
source myscript.sh

代码语言:txt
复制
. myscript.sh
  1. 现在,你可以直接调用my_function函数,例如:
代码语言:txt
复制
my_function
  1. 调用函数后,你可以使用上下箭头键来浏览历史命令。当你浏览到函数调用时,按下回车键即可执行该函数。

这样,你就可以在不删除被调用者历史函数的情况下将函数添加到Bash/Shell的历史中。

注意:以上步骤仅适用于将函数添加到当前会话的历史中。如果你希望在每次启动Bash/Shell时都能够使用该函数,可以将脚本文件添加到你的Shell配置文件(如.bashrc.bash_profile)中。

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

相关·内容

Linux基础命令行使用技巧

zsh示例可编程补全:接下来定义的函数与变量跟 bash 示例相似 words 相当于 bash 中的 COMP_WORDS CURRENT 与 bash 中的 COMP_CWORD 类似 COMPREPLY...在Linux中的Shell终端里我们也可以将前面的命令进行复用,下面我们将先从设置历史变量以及如何查看、搜索、以及前后移动历史说起; 设置历史记录 描述:无论是 bash 还是 zsh,都能够将我们已经执行过的命令存储到一个文件中...比如:在HISTSIZE 设为 1000 的情况下,而 HISTFILESIZE 却为 500。 因为:历史命令数大于文件的行数,所以有部分历史命令不能保存到历史文件中。...查看历史命令 描述:Shell 本身提供了 history 这个内置命令来让我们随时查看所记录的历史命令; bash查看历史命令 #示例1.数字后面带 * 号的行则说明已经被修改过 ~$ history...shell中.允许以#开头的词以及同一行中其他的字符被忽略.缺省为打开 lastpipe off lithist off #如果打开,且cmdhist选项也打开,多行命令讲用嵌入的换行符保存到历史中

6K20

Linux基础命令行使用技巧

zsh示例可编程补全:接下来定义的函数与变量跟 bash 示例相似 words 相当于 bash 中的 COMP_WORDS CURRENT 与 bash 中的 COMP_CWORD 类似 COMPREPLY...在Linux中的Shell终端里我们也可以将前面的命令进行复用,下面我们将先从设置历史变量以及如何查看、搜索、以及前后移动历史说起; 设置历史记录 描述:无论是 bash 还是 zsh,都能够将我们已经执行过的命令存储到一个文件中...比如:在HISTSIZE 设为 1000 的情况下,而 HISTFILESIZE 却为 500。 因为:历史命令数大于文件的行数,所以有部分历史命令不能保存到历史文件中。...查看历史命令 描述:Shell 本身提供了 history 这个内置命令来让我们随时查看所记录的历史命令; bash查看历史命令 #示例1.数字后面带 * 号的行则说明已经被修改过 ~$ history...shell中.允许以#开头的词以及同一行中其他的字符被忽略.缺省为打开 lastpipe off lithist off #如果打开,且cmdhist选项也打开,多行命令讲用嵌入的换行符保存到历史中

5.9K63
  • history命令使用方法详解

    history是一条非常实用的shell命令,可以显示出之前在shell中运行的命令,配合last显示之前登录的用户,就可以追溯是哪个用户执行了某些命令。...使用HISTTIMEFORMAT在历史中显示TIMESTAMP 默认情况下,history并不记录命令的执行时间,分析起来很困难。 ?...用HISTSIZE控制历史命令的总数 # 内存中的history条数,退出登陆之后会写到~/.bash_history文件里 export HISTSIZE=450 # 文件中存储的最大history条数...=0 使用HISTFILE改变历史文件名 默认情况下,命令历史被储存在.bash_history文件中,把下面的一行添加到.bash_profile文件中,重新登录shell,则新文件将取代.bash_history...注意在HISTIGNORE中添加“ls”,只忽略“ls”不忽略“ls –l”。一定要准确的写出要忽略的指令。 export HISTIGNORE=”pwd:ls:history”

    1.2K70

    渗透测试基础- - -linux权限维持应急

    目录 0x01 隐藏文件 0x02 隐藏文件时间戳 0x03 隐藏权限 0x04 隐藏历史操作命令 技巧一:只针对你的工作关闭历史记录 技巧二:从历史记录中删除指定的命令 0x05 进程隐藏 第一种方法...在shell中执行的命令,不希望被记录在命令行历史中,如何在linux中开启无痕操作模式呢?...技巧二:从历史记录中删除指定的命令 假设历史记录中已经包含了一些你不希望记录的命令。这种情况下我们怎么办?很简单。...从历史记录中删除那个指定的项: history -d [num] 这种技巧是关键记录删除,或者我们可以暴力点,比如前150行是用户的正常操作记录,150以后是攻击者操作记录。...我们可以只保留正常的操作,删除攻击痕迹的历史操作记录,这里,我们只保留前150行: sed -i '150,$d' .bash_history 0x05 进程隐藏 管理员无法通过相关命令工具查找到你运行的进程

    1.1K20

    Linux学习笔记(四)

    用户添加自己的命令到系统环境变量中只需要使用如下命令,将可执行文件目录添加到原有的系统环境变量PATH后面。...shell会按照下列顺序,运行第一个被找到的问题件,找到之后则忽略后面的 ~/.bash_profile ~/.bash_login ~/.profile 注意:这个列表中没有~/.bashrc文件,...这是因为该文件往往是在其它文件(如:.profile,也可能是.bash_profile)中被执行的。...HISTFILE 保存shell历史记录列表的文件名(默认是bash history) hISTFILESIZe 最多在历史文件中存多少行 HISTTIMEFORMAT 如果设置了且非空,就用作格式化字符串...,以显示bash历史中每条命令的时间戳 HISTIGNORE 由冒号分隔的模式列表,用来决定历史文件中哪些命令会被忽略 HISTSIZE 最多在历史文件中存多少条命令 HOSTFILE shell在补全主机名时读取的文件名称

    1.1K10

    【权限维持】Linux下的几种隐藏技术

    0x03 隐藏历史操作命令 在shell中执行的命令,不希望被记录在命令行历史中,如何在linux中开启无痕操作模式呢?...上面的命令会临时禁用历史功能,这意味着在这命令之后你执行的所有操作都不会记录到历史中,然而这个命令之前的所有东西都会原样记录在历史列表中。...技巧二:从历史记录中删除指定的命令 假设历史记录中已经包含了一些你不希望记录的命令。这种情况下我们怎么办?很简单。...通过下面的命令来删除: history | grep "keyword" 输出历史记录中匹配的命令,每一条前面会有个数字。从历史记录中删除那个指定的项: history -d [num] ?...我们可以只保留正常的操作,删除攻击痕迹的历史操作记录,这里,我们只保留前150行: sed -i '150,$d' .bash_history 0x04 端口复用 通过端口复用来达到隐藏端口的目的,在Linux

    3K20

    centos7 shell 清除最近30条shell历史记录

    不管用 history -c 在CentOS 7系统中,如果你想清除最近30条shell历史记录,而不是全部清空,bash shell并没有直接提供一个命令来删除特定数量的历史记录。...# 删除前30行 不过,请注意上述方法假设你的.bash_history文件是按照最新的命令在最下面排列的,这是大多数Linux系统中的默认设置。...还有一种临时解决方案是在当前会话中不影响历史文件的情况下不保存最近执行的命令到历史记录,但这并不能删除已经存储在.bash_history文件中的记录: export HISTSIZE=0 # 不保存新命令到历史记录...要清除CentOS 7系统中当前用户的bash shell的所有历史记录,可以按照以下步骤操作: 清除内存中的历史命令记录(当前会话): history -c 清除用户目录下保存的历史命令文件 .bash_history...: echo > ~/.bash_history 或者使用 truncate 命令清空文件内容: truncate -s 0 ~/.bash_history 这样就可以确保已登录用户的所有历史记录被清除

    18900

    Linux 下的 History 命令

    它的行为可能因为 shell 的不同而不同。我将将会介绍 Bash 中的内建history命令。 最简单的形式,当我们不带任何选项的输入history命令,它将会展示整个历史,同时显示行号。...检查 Bash 手册,获取更多信息。 保留历史列表 默认情况下,当启动一个新会话时,Bash 会从.bash_history文件中读取历史命令列表。...当使用了一个负数时,倒数第几个命令将会被删除。 上面的命令清除了保存在内存中的历史列表,但是没有从磁盘上.bash_history文件中移除。...当你要修改历史行为,在~/.bashrc或者其他任何用户登录需要加载的配置文件中. 默认情况下,Bash 只保留 500 行历史命令列表。这个HISTSIZE变量允许你修改这个值。...为了将这个值修改为 10000,你可以将下面的代码添加到.bashrc文件中: HISTSIZE=10000 HISTCONTROL接受一个冒号分隔的值来定义命令如何被保存的在历史列表中的: ignorespace

    2.9K20

    Linux下.bashrc文件探索~

    不知道为什么没有东西~ 在profile中添加环境变量 一般不建议在/etc/profile文件中添加环境变量,因为在这个文件中添加的设置会对所有用户起作用。....bashrc 当你登入shell时执行 请注意后两个的区别:’.bash_profile’只在会话开始时被读取一次,而’.bashrc’则每次打开新的终端时,都要被读取。...在大多数情况下,您不能用“PATH=/some /directory”,因为这将删除 PATH 中其他的所有目录,这样您在该终端运行程序时,就不得不给出完整路径。...为了将目录永久添加到 $PATH ,只要将”export”的那行添加到.bashrc或/etc/bashrc文件中。 ?...在 man bash 中的’PROMPTING’部分,对这些参数(parameter)有详细说明。您可以加入一些小玩意,如不同格式的当前时间,命令的历史记录号,甚至不同的颜色。

    12.6K20

    Linux操作系统 中的用户管理,也就是关于用户的相关的操作与理解

    例如,如果你是一名开发人员,可以在模板目录中添加一个包含了常用文件头注释和函数结构的C程序模板,这样就可以更快地创建一个新的C程序文件并进行编写。...`x`:这个字段通常用于存储加密后的密码。在这种情况下,密码被加密并存储在其他文件中,而不是 `/etc/passwd` 文件中。 3. `0`:这是用户 ID(UID),表示该用户的唯一标识符。...`/bin/bash`:这是用户的登录 shell,表示用户登录后默认使用的命令行解释器为 Bash(Bourne Again SHell)。...该密码记录中的密码信息被存储在系统的密码文件(通常是 `/etc/shadow`)中,以保护用户的安全。...-N:不创建同名的组 -p:加密后的新账户密码 -u:新账户的用户ID 例如,要创建一个名为"john"的新用户,可以执行以下命令: useradd john 默认情况下,这个新用户不属于任何组

    43310

    Linux 命令行小技巧-持续更新

    执行之前的命令 在 Linux 中锁定或隐藏文件或目录 在 Linux 中检查单词拼写 列出所有 Shell 内置命令 如何在不使用Cron的情况调度Linux下的任务 如何不使用clear命令清空终端的内容...---- 从历史记录中删除指定的命令 现在假设历史记录中已经包含了一些你不希望记录的命令。这种情况下我们怎么办?很简单。直接动手删除它们。...一旦你找到你想删除的命令,执行下面的命令,从历史记录中删除那个指定的项: history -d [num] ---- 其他 cat | bash #执行这条命令后可以直接在其之后执行其他命令,除了这条命令不会留下其他目录的历史...然而,这些文件并没有被真正的删除,它们仍被存储在那里并隐藏在你的硬盘中,其他用户仍然可以在 Linux 中恢复删除的文件并查看。...---- 列出所有 Shell 内置命令 shell 内置命令是一个命令或者函数,从内部调用并直接在 shell 里执行,而不是从硬盘加载外部的可执行程序来执行。

    91940

    LinuxShell命令history

    其中,FILE 用于指定保存历史命令列表的文件,默认是~/.bash_history 文件。若未指定任何选项参数,则默认显示保存的所有历史命令列表。...选项 选项参数 说明 NUM 显示最近的 NUM 个命令条目 -c 删除所有命令条目,清空历史命令列表 -d offset 从 offset 指定的区域删除历史命令记录 offset 取值格式为 N[-...M]:若未指定 -M 选项,则指定删除第 N 条历史记录;若指定 -M 选项,则指定删除区间 [N,M] 内的所有历史记录【注】N、M 均可以取负数,表示历史命令文件中倒数 N、M -a 将当前 Shell...会话的命令内存缓冲区强制追加到历史命令文件中 -n 从历史命令文件中读取所有未被当前 Shell 会话读取的行追加到当前 Shell 会话的历史命令内存缓冲区中 -r 读取历史命令文件并将所有内容附加到当前...Shell 会话的历史命令内存缓冲区中 -w 将当前 Shell 会话的历史命令内存缓冲区写入到历史命令文件中 -p 对每个一个 ARG 参数展开历史并显示结果,但不存储到内存缓冲区中 -s 将 ARG

    52420

    bash和shell的入门中

    histfile 当中 [root@study ~]# history -w # 在默认的情况下,会将历史纪录写入 ~/.bash_history 当中!...在 CentOS 7.x 默认的情况下, 底下这些数据会依序的被呼叫进来: /etc/profile.d/*.sh 其实这是个目录内的众多文件!...shell 的时候才会读取的配置文件,所以, 如 果你将自己的偏好设定写入上述的文件后,通常都是得注销再登入后,该设定才会生效。...~/.bash_history 还记得我们在历史命令提到过这个文件吧?预设的情况下, 我们的历史命令就记录在这里啊!而 这个文件能够记录几笔数据,则与 HISTFILESIZE 这个变数有关啊。...若启用后,在讯息被输出前,会先显示讯息的原始内容; -x :预设不启用。若启用后,在指令被执行前,会显示指令内容(前面有 ++ 符号) -h :预设启用。与历史命令有关; -H :预设启用。

    96220

    Linux Shell(二)——Shell的环境配置

    :将目前shell的命令写入指定文件中,若未指定文件则写入~/.bash_history中。...由于历史命令在账户注销时才会被写入文件,因此最后一个账号注销时才算当前账户注销;因此,历史文件中只会记录最后一个注销账户的命令。...5.3 bash的环境配置文件 /etc/profile:系统级的环境变量(login shell才会读) 该文件存放系统级环境变量,所有的用户都会拥有,一般不建议修改这个文件。...~/.bash_profile:用户个人的环境变量(login shell才会读) 当/etc/profile中的环境变量加载完毕后就会加载本文件,本文件中定义了当前用户的环境变量。...那么软件中的man文件就无法被系统找到,从而无法通过“man+命令”找到这个软件的命令帮助文档。

    12.1K50

    一万两千字长文,六大问题为你解读计算机

    】中为函数名称 -n:删除指定的变量。...           读取历史命令文件中的目录到历史命令缓冲区            将历史命令缓冲区写入命令文件           语法:BASH BUILTIN COMMANDS    ...这些文件通常比较强大,包含的程序量也很大,在系统加载时并不随系统一起被加载到内存中,而是在需要时才将其调用内存。外部命令的实体通常并不包含在shell中,但是其命令执行过程是由shell程序控制的。...Linux系统默认会将存放外部命令、程序的目录添加到用户的“搜索路径”中,当使用位于这些目录中的外部们能够令时,用户不需要指定具体的位置。...,比如cd(更改目录) 2)为了提高效率而存在的命令,比如test(检查文件和比较值) 2)Shell函数:功能健全的一系列程序代码,由Shell语言写成,它们可以像命令一样被引用

    1.2K100

    如何在 Linux 上安装友好的交互式 shell:Fish

    Fish 有着很多重要的功能,比如自动建议、语法高亮、可搜索的历史记录(像在 bash 中 CTRL+r)、智能搜索功能、极好的 VGA 颜色支持、基于 web 的设置方式、完善的手册页和许多开箱即用的功能...Fish 有着很多重要的功能,比如自动建议、语法高亮、可搜索的历史记录(像在 bash 中 )、智能搜索功能、极好的 VGA 颜色支持、基于 web 的设置方式、完善的手册页和许多开箱即用的功能。...无需更多其他配置,你也不需要安装任何额外的附加组件/插件! 在这篇教程中,我们讨论如何在 Linux 中安装和使用 fish shell。...在选择你想运行的命令后,只需按下右箭头键,然后按下 运行它。 无需 了!正如你已知道的,我们通过按 来反向搜索 Bash shell 中的历史命令。但在 fish shell 中是没有必要的。...请看下面当我在 Bash shell 和 fish shell 中输入相同的命令时截图的区别。 Bash: Fish: 正如你所看到的, 在 fish shell 中已经被高亮显示。

    1.7K70

    ⒉设置 Bash 选项

    histappend 当shell退出时,历史清单将添加到以HISTFILE变量的值命名的文件中,而不是覆盖文件 histreedit 如果readline正被使用,用户有机会重新编辑一个失败的历史替换...默认为打开 huponexit 如果设置,当一个交互式登录shell退出时,bash将发送一个SIGHUP(挂起信号)给所有的作业 interactive_comments 在一个交互式shell中,允许以...#开头的词以及同一行中其他的字符被忽略。...默认为打开 lithist 如果打开,且cmdhist选项也打开,多行命令将用嵌入的换行符保存到历史中,而无需在可能的地方用分号来分隔 login_shell mailwarn 如果设置,且bash用来检查邮件的文件自从上次检查后已经被访问...,将显示消息“The mail in mailfile has been read” no_empty_cmd_completion nocaseglob 如果设置,当执行文件名扩展时,bash在不区分大小写的方式下匹配文件名

    83640

    linux怎么查看系统环境变量路径,Linux系统中的环境变量该如何设置与查看

    HISTFILESIZE存储到文件中的命令历史记录的行数。默认为 ~/.bash_history 文件的行数。...当不带参数使用 set 命令时,它将打印出包括环境变量与 Shell 变量在内的所有变量以及 Shell 函数的列表。 unset — 该命令可以删除 Shell 变量以及环境变量。...我们也可以将环境变量还原为 Shell 变量,或者将其完全删除: MYVAR 变量被定义为环境变量,我们可以通过输入以下代码将其还原为 Shell 变量: $ export -n MYVAR 这样,MYVAR...如果要将新的环境变量加载到当前的 Shell 会话中,可以使用source命令: $ source ~/.bashrc 如果你想要设置环境变量,你就可以考虑将其添加到 /etc/profile 、/etc...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    20.9K20

    linux学习第二十三篇:shell介绍,命令历史,命令补全和别名,通配符,输入输出重定向

    : .bash_history 查看系统设置的环境变量,命令最大可以存多少条: echo $HISTSIZE 可以清空内存history命令历史,但不会清空配置文件.bash_history里的命令历史...不想别人删除破坏配置文件中的命令历史,想要永久保存,可以增加隐藏权限a权限(只能追加,不能删除): chattr +a ~/.bash_history 表示执行上一条指令: !!...这里的n是数字,表示执行命令历史中第n条指令,例如 !100 表示执行命令历史中第100个命令: !n 表示执行最后一次执行word命令的命令,例如!...txt 列出名称包含0-9中任意一个的一个字符的所有.txt文件: ls [0-9].txt //也可以是字母如,ls [0-9a-zA-Z].txt 列出名称包含1或2中任意一个的一个字符的所有...输入输出重定向 把1.txt的内容覆盖到2.txt内容中,2.txt的内容会被删除重写: cat 1.txt >2.txt 把1.txt的内容追加到2.txt内容中,2.txt原来的的内容保存,不会被删除重写

    1.1K90
    领券