logo
2
10
WeChat Login

请教如何漫游bash的操作命令历史记录#21

Resolved
created 2025-08-12
Edit

目的:想要漫游bash的操作历史,这样多种环境实现统一的体验,也能当使用想对长的命令时可以上下翻找减少键盘
问题:在endstage中,配置history -w 写入命令操作历史,然后cp .bash_history到~/.cnb目录来实现漫游,但是history是bash内置命令,cnb调用endstage使用的是sh -s -c ${script},会报错

修改环境变量

export HISTFILE="/workspace/.bash_history"
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"

可以新打包一个镜像,把这2条放/root/.bashrc里面

Creator

手工触发的话,那和关机前执行history -w 新开之后执行history -r是一样的,其次这个变量会被覆盖的

8f88335e-30f1-4406-a555-15e917efd449.png
assigned self
added labels
有效问题
Developer

这样配置。
1, 通过 ENV 来设置开发环境的 HISTFILE 变量。
2,利用 cnb 开发环境的文件漫游功能来达到重启后文件依然持久化的目的。 https://docs.cnb.cool/zh/workspaces/file-keeper.html#fei-gong-zuo-qu-wen-jian-man-you

$:
  vscode:
    - docker:
        image: docker.cnb.cool/looc/default-dev-env:latest
      services:
        - vscode
        - docker
      env:
        HISTFILE: "/root/.cnb/.bash_history"
      stages:
        - name: 创建漫游目录
          script: |
            mkdir -p /root/.cnb
Creator

好像有点偏了😭
我的问题不是如何漫游bash_history,而是漫游bash_history文件的时候,发现在endstage部分需要执行history -w 去讲缓存写入文件,但是因为这个是bash本身的命令,目前cnb使用sh -s -c无法调用,
这个问题也小,我是想借此机会请教到这一类问题:如果遇到需要与bash shell或者其他指定环境执行的脚本之类的,如何在cnb里面配置

好像有点偏了😭
我的问题不是如何漫游bash_history,而是漫游bash_history文件的时候,发现在endstage部分需要执行history -w 去讲缓存写入文件,但是因为这个是bash本身的命令,目前cnb使用sh -s -c无法调用,
这个问题也小,我是想借此机会请教到这一类问题:如果遇到需要与bash shell或者其他指定环境执行的脚本之类的,如何在cnb里面配置

@yiqiu(sai) 不知道,所以我打包了镜像

assigned self
Developer

这样配置。
1, 通过 ENV 来设置开发环境的 HISTFILE 变量。
2,利用 cnb 开发环境的文件漫游功能来达到重启后文件依然持久化的目的。 https://docs.cnb.cool/zh/workspaces/file-keeper.html#fei-gong-zuo-qu-wen-jian-man-you

$:
  vscode:
    - docker:
        image: docker.cnb.cool/looc/default-dev-env:latest
      services:
        - vscode
        - docker
      env:
        HISTFILE: "/root/.cnb/.bash_history"
      stages:
        - name: 创建漫游目录
          script: |
            mkdir -p /root/.cnb
added labels
擂主团已回答
withdrew a comment.
added labels
优质问题

请问您根组织是哪一个

Creator

请问您根组织是哪一个

@songjiao(阿水) yiqiu

Resolved ISSUE
Assignee
(段超)
(李小飞)
Label
优质问题
擂主团已回答
有效问题
Priority
None yet
Time period
-
Property
Add custom properties to record and label key information
Participant