linux删除10分钟之前的命令

worktile 其他 3

回复

共3条回复 我来回复
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在Linux系统中,我们可以通过命令行工具来删除10分钟之前的命令。下面是一个简单的步骤:

    1. 首先,我们需要打开终端窗口。在大多数Linux发行版中,你可以通过搜索终端或者按下Ctrl+Alt+T快捷键来打开终端。

    2. 接下来,我们可以使用历史命令来查看最近执行的命令列表。要查看完整的命令历史记录,可以使用以下命令:

    “`
    history
    “`

    这将显示最近执行过的命令列表,每个命令都有一个对应的编号。

    3. 确定需要删除的命令的编号。你可以根据时间戳来判断命令的执行时间。要查看命令执行的时间戳,可以使用以下命令:

    “`
    history | grep ‘命令的关键字’
    “`

    将上面命令中的“命令的关键字”替换为你要删除的命令的关键词。

    4. 接下来,使用以下命令来删除特定编号的命令:

    “`
    history -d 编号
    “`

    将上面命令中的“编号”替换为你要删除的命令的编号。

    5. 重复步骤3和步骤4,直到删除你想要删除的所有命令。

    6. 最后,可以再次使用`history`命令来确认已删除的命令是否不再显示在命令历史记录中。

    请注意,删除命令历史记录只能够移除命令的显示,而不能够从系统完全删除已执行的命令。

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在Linux中删除10分钟之前的命令,可以使用以下几种方法:

    1. 使用`history`命令结合`grep`和`sed`命令:
    “`
    history | grep -vE “(^|\s)history($|\s)” | grep -vE “(^|\s)\d+\s+sudo\s+” | grep -vE “(^|\s)\d+\s+su\s+” | grep -vE “(^|\s)\d+\s+ssh\s+” | sed -e ‘s/^\s*[0-9]\+\s*//’ | sed -e ‘s/\s\s*/ /g’ | grep -E “^.{1,50}$” | while read CMD; do history -d “$(history | grep “$CMD” | tail -n1 | awk ‘{print $1}’)” ; done
    “`
    这条命令的作用是从历史记录中查找命令并删除它们。请注意,这个方法只适用于删除当前用户的命令历史记录。

    2. 使用`history`命令结合`cut`命令和`rm`命令:
    首先,输入以下命令将您的历史记录保存到一个文件中:
    “`
    history > history.txt
    “`
    然后,使用`cut`命令提取出10分钟之前的命令行,并使用`rm`命令删除它们:
    “`
    cut -d ” ” -f 3- history.txt | sed ‘/^$/d’ | awk -v lim=$(date -d ’10 min ago’ “+%s”) ‘{
    cmd=”date -d \””$1 FS $2″\” +%s”;
    cmd |getline timestamp;
    close(cmd);
    if (timestamp > lim) {
    print $0;
    system($0);
    }
    }’
    “`
    这个方法将历史记录保存到一个文件中,然后使用`cut`命令提取出命令行,`sed`命令删除空行,`awk`命令比较时间戳并删除10分钟之前的命令。

    3. 使用`cat`命令结合`grep`命令和`sed`命令:
    首先,输入以下命令将您的历史记录保存到一个文件中:
    “`
    history > history.txt
    “`
    然后,使用`cat`命令将文件中的命令行提取出来,并使用`grep`命令删除10分钟之前的命令行,并使用`rm`命令将它们删除:
    “`
    cat history.txt | grep -v “$(date -d ’10 min ago’ ‘+%H:%M’)” | sed -e ‘s/^ *[0-9]* *//’ | sed ‘/^\s*$/d’ | while read -r cmd; do history -d “$(history | grep -w “$cmd” | awk ‘{print $1}’)” ; done
    “`
    这个方法将历史记录保存到一个文件中,然后使用`cat`命令提取出命令行,`grep`命令删除10分钟之前的命令行,`sed`命令删除空行,最后使用`history`命令删除命令。

    4. 使用`sed`命令结合`date`命令和`rm`命令:
    “`
    sed -i “/^.*$(date -d ’10 min ago’ ‘%H:%M’).*$/d” ~/.bash_history && rm ~/.bash_history~
    “`
    这个方法会直接修改`~/.bash_history`文件,删除10分钟之前的命令,并且删除临时文件`~/.bash_history~`。

    5. 如果你使用的是Zsh作为你的shell,可以使用以下命令删除10分钟之前的命令:
    “`
    fc -t $(date -d ’10 min ago’ ‘+%H:%M’):$(date ‘+%H:%M’) | awk ‘{print “history -d ” $1}’ | sh
    “`
    这个方法使用`fc`命令提取出10分钟之前到现在的命令,并使用`awk`命令输出删除命令,然后使用`sh`命令执行删除命令。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    1. 查看命令历史记录

    在Linux中,您可以使用history命令查看最近使用的命令历史记录。执行以下命令:

    “`
    history
    “`

    这将显示包含所有已执行命令的列表,每个命令前面都有一个对应的编号。

    2. 删除特定命令

    要删除特定的命令,您可以使用以下命令:

    “`
    history -d
    “`

    请将替换为要删除的命令的编号。

    3. 查找并删除特定时间之前的命令

    要查找并删除特定时间之前的命令,您需要使用一些附加的命令和技巧。下面是一个完整的解决方案:

    步骤 1: 确定当前时间

    首先,您需要获取当前时间。您可以使用date命令来获取当前时间。执行以下命令:

    “`
    date
    “`

    这将显示当前日期和时间的详细信息,包括年份、月份、日份、小时、分钟和秒。

    步骤 2: 将当前时间转换为特定格式

    为了能够将当前时间与命令历史记录中的时间进行比较,您需要将当前时间转换为特定格式。您可以使用date命令的“+%s”选项来获取从1970年1月1日以来的秒数。执行以下命令:

    “`
    date +%s
    “`

    这将显示当前时间的秒数。

    步骤 3: 查找要删除的命令编号

    现在,您可以使用历史命令和一些字符串处理命令来查找特定时间之前的命令。执行以下命令:

    “`
    history | awk -v currentTime=$(date +%s) ‘{if ($2 < (currentTime - (10*60))) print $1}'```这个命令包含了使用awk命令执行的几个步骤。首先,它将当前时间保存到一个变量中。然后,它遍历命令历史记录,并将满足特定条件的命令的编号打印出来。这个特定条件是根据当前时间和10分钟前的秒数进行比较。步骤 4: 删除特定时间之前的命令最后,您可以使用for循环和history -d命令来删除特定时间之前的命令。执行以下命令:```for command in $(history | awk -v currentTime=$(date +%s) '{if ($2 < (currentTime - (10*60))) print $1}'); do history -d $command; done```这个命令使用for循环遍历在步骤3中找到的命令编号列表,并在每次迭代中使用history -d命令删除相应的命令。注意:请确保在执行删除操作之前,先确认命令编号列表是否正确,并且仅包含您希望删除的命令。删除操作是不可逆的,所以请谨慎操作。以上就是在Linux中删除10分钟之前的命令的操作流程和方法。希望对您有所帮助!

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部