linux历史命令

发布时间:2017-02-07 来源: 历史回眸 点击:

linux历史命令篇一:Linux基础教程 教你隐藏Linux的命令行历史

Linux基础教程教你隐藏Linux的命令行历史

如果你是 Linux 命令行的用户,有的时候你可能不希望某些命令记录在你的命令行历史中。原因可能很多,例如,你在公司担任某个职位,你有一些不希望被其它人滥用的特权。亦或者有些特别重要的命令,你不希望在你浏览历史列表时误执行。

然而,有方法可以控制哪些命令进入历史列表,哪些不进入吗?或者换句话说,我们在 Linux 终端中可以开启像浏览器一样的无痕模式吗?答案是肯定的,而且根据你想要的具体目标,有很多实现方法。在这篇文章中,将和大家讨论一些行之有效的方法。

注意:文中出现的所有命令都在 Ubuntu 下测试过。

不同的可行方法

前面两种方法已经在之前一篇文章中描述了。如果你已经了解,这部分可以略过。然而,如果你不了解,建议仔细阅读。

1. 在命令前插入空格

是的,没看错。在命令前面插入空格,这条命令会被 shell 忽略,也就意味着它不会出现在历史记录中。但是这种方法有个前提,只有在你的环境变量 HISTCONTROL 设置为 "ignorespace" 或者 "ignoreboth" 才会起作用。在大多数情况下,这个是默认值。

所以,像下面的命令(LCTT 译注:这里[space]表示输入一个空格):

[space]echo "this is a top secret"

如果你之前执行过如下设置环境变量的命令,那么上述命令不会出现在历史记录中。

export HISTCONTROL = ignorespace

下面的截图是这种方式的一个例子。

第四个 "echo" 命令因为前面有空格,它没有被记录到历史中。

2. 禁用当前会话的所有历史记录

如果你想禁用某个会话所有历史,你可以在开始命令行工作前简单地清除环境变量 HISTSIZE 的值即可。执行下面的命令来清除其值:

export HISTSIZE=0

HISTSIZE 表示对于 bash 会话其历史列表中可以保存命令的个数(行数)。默认情况,它设置了一个非零值,例如在我的电脑上,它的值为 1000。

所以上面所提到的命令将其值设置为 0,结果就是直到你关闭终端,没有东西会存储在历史

记录中。记住同样你也不能通过按向上的箭头按键或运行 history 命令来看到之前执行的命令。

3. 工作结束后清除整个历史

这可以看作是前一部分所提方案的另外一种实现。唯一的区别是在你完成所有工作之后执行这个命令。下面是刚说到的命令:

history -cw

刚才已经提到,这个和 HISTSIZE 方法有相同效果。

4. 只针对你的工作关闭历史记录

虽然前面描述的方法(2 和 3)可以实现目的,它们可以清除整个历史,在很多情况下,有些可能不是我们所期望的。有时候你可能想保存直到你开始命令行工作之间的历史记录。对于这样的需求,你开始在工作前执行下述命令:

[space]set +o history

备注:[space] 表示空格。并且由于空格的缘故,该命令本身也不会被记录。

上面的命令会临时禁用历史功能,这意味着在这命令之后你执行的所有操作都不会记录到历史中,然而这个命令之前的所有东西都会原样记录在历史列表中。

要重新开启历史功能,执行下面的命令:

[Space]set -o history

它将环境恢复原状,也就是你完成了你的工作,执行上述命令之后的命令都会出现在历史中。

5. 从历史记录中删除指定的命令

现在假设历史记录中已经包含了一些你不希望记录的命令。这种情况下我们怎么办?很简单。直接动手删除它们。通过下面的命令来删除:

history | grep "part of command you want to remove"

上面的命令会输出历史记录中匹配的命令,每一条前面会有个数字。

一旦你找到你想删除的命令,执行下面的命令,从历史记录中删除那个指定的项:

history -d [num]

第二个‘echo’命令被成功的删除了。

同样的,你可以使用向上的箭头一直往回翻看历史记录。当你发现你感兴趣的命令出现在终端上时,按下“Ctrl + U”清除整行,也会从历史记录中删除它。

总结

有多种不同的方法可以操作 Linux 命令行历史来满足你的需求。然而请记住,从历史中隐藏或者删除命令通常不是一个好习惯,尽管本质上这并没有错。但是你必须知道你在做什么,以及可能产生的后果。

linux历史命令篇二:Linux培训教程 linux查询历史记录命令history的用法介绍

Linux培训教程 linux查询历史记录命令history的用法介绍

、什么是history

在bash功能中,它能记忆使用过的命令,这个功能最大的好处就是可以查询曾经做过的举动!从而可以知道你的运行步骤,那么就可以追踪你曾下达过的命令,以作为除错的工具!

二、History的保存

那么命令记录在哪里呢?在家目录内的 .bash_history 里! 不过,需要留意的是,~/.bash_history 记录的是前一次登陆以前所运行过的命令,而至于这一次登陆所运行的命令都被缓存在内存中,当你成功的注销系统后,该命令记忆才会记录到 .bash_history 当中!

三、调用历史命令

接下来学习history历史命令的用法。

复制代码代码如下:

history [n]

[root@jb51 Desktop]#history [-c]

[root@jb51 Desktop]#history [-raw] histfiles

选项与参数:

n :数字,意思是要列出最近的 n 条命令行表的意思!

-c :将目前的 shell 中的所有 history 内容全部消除

-a :将目前新增的 history 命令新增入 histfiles 中,若没有加 histfiles ,

则默认写入 ~/.bash_history

-r :将 histfiles 的内容读到目前这个 shell 的 history 记忆中;

-w :将目前的 history 记忆内容写入 histfiles 中!

例1,列出目前内存内的所有 history 历史记录

复制代码代码如下:

[root@jb51 Desktop]#history

# 前面省略

1017 man bash

1018 ll

1019 history

1020 history

列出的信息当中,共分两栏,第一栏为该命令在这个 shell 当中的代码, 另一个则是命令本身的内容!至于会显示多少条命令记录,则与 HISTSIZE 有关!

例2,列出目前最近的 3 条数据

复制代码代码如下:

[root@jb51 Desktop]#history 3

1019 history

1020 history

1021 history 3

例3,立刻将目前的数据写入 histfile 当中

复制代码代码如下:

[root@jb51 Desktop]#history -w

# 在默认的情况下,会将历史纪录写入 ~/.bash_history 当中!

[root@jb51 Desktop]#echo $HISTSIZE

1000

四、历史使用的窍门

1、!的使用

⑴!!重复前一个命令

⑵!字符 重复前一个以“字符”开头的命令

⑶!num 按照history命令输出中的序号来重复对应命令

⑷!?abc 重复前一个包含abc的命令

⑸!-n 重复n个命令之前的那个命令

2、按键组合

⑴使用up和down键来上下浏览之前执行的命令

⑵键入ctr+r来在命令历史中搜索命令

复制代码代码如下:

[root@jb51 Desktop]#

(reverse-i-search)`':

(reverse-i-search)`h': cat /etc/shadow

按回车键执行该命令

⑶要重新调用前一个命令中的参数

Esc + .(点击Esc键,然后点击.键)

注意:

History保存在每个用户自己的历史记录中,位于用户的家目录中。

用户登录后,执行命令存放在内存中,只有登录后才能看到。

五、如何保证每次推出登录时情况history

在需要的用户主目录下,编辑~/.bash.logout添加一句history -c保存退出就可以了。

linux历史命令篇三:Linux Shell简介——自动补齐/命令行的历史记录/编辑命令行/可用的 Shell 快捷方式

Unix (及后继者 Linux)在命令行下面诞生,因此,Unix 中的命令行有许多非常实用的功能。

一、自动补齐;

如何用'cd'(改变目录,change directory)最快地从您当前所在的 home 目录跳到'/usr/src/redhat/'呢?

cd /u<TAB>sr<TAB>r<TAB>

这称为'命令行自动补齐'(automatic command line completion),这在平常应用中是不可缺少的。让我们仔细看看这个例子:

cd /u<TAB>

扩展成了 cd /usr/ ,很简单吧。下面的

cd /u<TAB>sr<TAB>

扩展为 cd /usr/src/ 。如果您只敲了cd /us,'/usr'下匹配的('cd /u*/s*')三个子目录将列出供您选择:'/usr/sbin'、'/usr/share'和'/usr/src'。

因此, 键可以很方便地用于根据前几个字母,来查找匹配的文件或子目录。比如,ls

/usr/bin/zip 将列出所有'/usr/bin'下面,以字符串'zip'开头的文件或子目录。当然,完成这类任务还有更厉害的命令,但这个方法确实很管用。

另外,碰到长文件名时就显得特别方便。假设您要安装一个名为

'boomshakalakwhizbang-4.6.4.5-i586.rpm'的 RPM 包,您输入 rpm -i boom ,如果目录下没有其他文件能够匹配,那 shell 就会自动帮忙补齐。

cd /usrl

将扩展成 cd /usr/src/linux ,并等待继续。'/usr/src'中有两个匹配的目录:'/usr/src/linux-[...]'、北大青鸟中关村软件园

地址:北京市海淀区上地信息路甲28号科实大厦B座3层(B305)

'/usr/src/linux'。如何告诉 shell 您想要后面的那个呢?只要跟一个斜线(/ ,slash),就可以选择后面的那个了。

假如您不确定是'/usr/src/linux/Documentation'还是'/usr/src/linux/documentation'。而您知道,Linux 是区分大小写的。如果已经仔细读过前面部分的话,您想到可以用: cd /usrl/d

扩展成了'/usr/src/linux/drivers/',因此应该是'Documentation'(大写的'D')。

这种补齐对命令也有效:

[tom@belbo tom]$ gre<TAB>

grecord grefer grep

[tom@belbo tom]$ gre

在这里 shell 将列出所有以字符串'gre'开头的已知命令。

二、命令行的历史记录

通过按向上方向键,您可以向后遍历近来在该控制台下输入的命令。用向下方向键可以向前遍历。与 SHIFT 键连用的话,您还可以遍历以往在该控制台中的输出。您也可以编辑旧的命令,然后再运行。

按 后,shell 就进入"reverse-i(ncremental)-search"(向后增量搜索)模式。现在输入您要找的命令的首字母:

(reverse-i-search)`':. 敲入 'i'可能会变成:

(reverse-i-search)`i': isdnctrl hangup ippp0

如果您再按 键,上面的命令将再次执行。而如果您按了向右、向左方向键或 ,上面的命令将回到普通的命令行,这样您就可以进行适当编辑。

北大青鸟中关村软件园

地址:北京市海淀区上地信息路甲28号科实大厦B座3层(B305)

编辑命令行

通过光标和功能键(Home、End 等键),您可以浏览并编辑命令行,如果您需要,还可以用键盘的快捷方式来完成一般的编辑:

l <CTRL k>:删除从光标到行尾的部分

l <CTRL u>:删除从光标到行首的部分

l <ALT d>:删除从光标到当前单词结尾的部分

l <CTRL w>:删除从光标到当前单词开头的部分

l <CTRL a>:将光标移到行首

l <CTRL e>:将光标移到行尾

l <ALT a>:将光标移到当前单词头部

l <ALT e>:将光标移到当前单词尾部

l <CTRL y>:插入最近删除的单词

l <!$>:重复前一个命令最后的参数。

例如:您用命令 mkdir peter/pan/documents/tinkerbell 新建了一个目录,现在您向用命令'cd'进入该目录,您可以用 cd !$,shell 将把前一个命令'mkdir'的参数添加到现在的'cd'后面。 当您更深入了解Linux后,将看到这些快捷方式在其他应用程序下输入时,

linux历史命令

有时也有效,比如,在浏览器中的输入框中。

三、可用的 Shell 快捷方式

Red Hat Linux 带有不少快捷方式,其中一部分是 bash 原来就有的,而还有一些则是为您预先设置的(在后面您将看到如何设置)。

由于 home 目录是每位用户的活动中心,许多 Unix 对此有特殊的快捷方式。

'~'就是您的 home 目录的简写形式。我们假设您在其他目录,想把一个名为'sometext'的文件复制到您 home 目录下的 'docs'子目录中。除了输入:

cp sometext /home/myusername/docs

北大青鸟中关村软件园

地址:北京市海淀区上地信息路甲28号科实大厦B座3层(B305)

您还可以用简写:

cp sometext ~/docs

理论上,这也可以应用在命令'cd'上。无论当前路径在哪里,cd ~ 将回到您的 home 目录。其实还可以简化,只要键入 cd ,就可以返回 home 目录了。

Red Hat Linux 为您提供了一些预先设置的快捷方式(称为'别名',aliases),比如:

l ll :将执行'ls -l -k'(以长格式列出目录内容,包括一些文件属性,并以 KB 而不是 byte 为单位显示文件大小)

l ls :将执行'ls -F --color=auto'(列出目录内容,加上文件类型标识,并使用颜色)

北大青鸟中关村软件园

地址:北京市海淀区上地信息路甲28号科实大厦B座3层(B305)

相关热词搜索:命令 历史 linux linux历史命令记录 linux查看历史命令

版权所有 蒲公英文摘 www.zhaoqt.net