www.日本精品,久久中文视频,中文字幕第一页在线播放,香蕉视频免费网站,老湿机一区午夜精品免费福利,91久久综合精品国产丝袜长腿,欧美日韩视频精品一区二区

linux命令歷史

發(fā)布時間:2017-02-06 來源: 歷史回眸 點擊:

linux命令歷史篇一:Linux基礎(chǔ)教程 linux下學(xué)習(xí)history命令的用法實例

Linux基礎(chǔ)教程 linux下學(xué)習(xí)history命令的用法實例

1.使用 HISTTIMEFORMAT 顯示時間戳

當(dāng)你從命令行執(zhí)行 history 命令后,通常只會顯示已執(zhí)行命令的序號和命令本身。如果你想要查看命令歷史的時間戳,那么可以執(zhí)行:

復(fù)制代碼代碼如下:

# export HISTTIMEFORMAT='%F %T '

# history | more

1 2008-08-05 19:02:39 service network restart

2 2008-08-05 19:02:39 exit

3 2008-08-05 19:02:39 id

4 2008-08-05 19:02:39 cat /etc/redhat-release

注意:這個功能只能用在當(dāng) HISTTIMEFORMAT 這個環(huán)境變量被設(shè)置之后,之后的那些新執(zhí)行的 bash 命令才會被打上正確的時間戳。在此之前的所有命令,都將會顯示成設(shè)置HISTTIMEFORMAT 變量的時間。

2.使用 Ctrl+R 搜索歷史

Ctrl+R 是我經(jīng)常使用的一個快捷鍵。此快捷鍵讓你對命令歷史進行搜索,對于想要重復(fù)執(zhí)行某個命令的時候非常有用。當(dāng)找到命令后,通常再按回車鍵就可以執(zhí)行該命令。如果想對找到的命令進行調(diào)整后再執(zhí)行,則可以按一下左或右方向鍵。

復(fù)制代碼代碼如下:

# [Press Ctrl+R from the command prompt, which will display the reverse-i-search prompt](reverse-i-search)`red‘: cat /etc/redhat-release

[Note: Press enter when you see your command, which will execute the command from the history]# cat /etc/redhat-release

Fedora release 9 (Sulphur)

3.快速重復(fù)執(zhí)行上一條命令

有 4 種方法可以重復(fù)執(zhí)行上一條命令:

使用上方向鍵,并回車執(zhí)行。

按 !! 并回車執(zhí)行。

輸入 !-1 并回車執(zhí)行。

按 Ctrl+P 并回車執(zhí)行。

4.從命令歷史中執(zhí)行一個指定的命令

在下面的例子中,如果你想重復(fù)執(zhí)行第 4 條命令,那么可以執(zhí)行 !4:

復(fù)制代碼代碼如下:

# history | more

1 service network restart

2 exit

3 id

4 cat /etc/redhat-release

# !4

cat /etc/redhat-release

Fedora release 9 (Sulphur)

5.通過指定關(guān)鍵字來執(zhí)行以前的命令

在下面的例子,輸入 !ps 并回車,將執(zhí)行以 ps 打頭的命令:

復(fù)制代碼代碼如下:

# !ps

ps aux | grep yp

root 16947 0.0 0.1 36516 1264 ? Sl 13:10 0:00 ypbind

root 17503 0.0 0.0 4124 740 pts/0 S+ 19:19 0:00 grep yp

6.使用 HISTSIZE 控制歷史命令記錄的總行數(shù)

將下面兩行內(nèi)容追加到 .bash_profile 文件并重新登錄 bash shell,命令歷史的記錄數(shù)將變成 450 條:

復(fù)制代碼代碼如下:

# vi ~/.bash_profile

HISTSIZE=450

HISTFILESIZE=450

7.使用 HISTFILE 更改歷史文件名稱

默認情況下,命令歷史存儲在 ~/.bash_history 文件中。添加下列內(nèi)容到 .bash_profile 文件并重新登錄 bash shell,將使用 .commandline_warrior 來存儲命令歷史:

復(fù)制代碼代碼如下:

# vi ~/.bash_profile

HISTFILE=/root/.commandline_warrior

8.使用 HISTCONTROL 從命令歷史中剔除連續(xù)重復(fù)的條目

在下面的例子中,pwd 命令被連續(xù)執(zhí)行了三次。執(zhí)行 history 后你會看到三條重復(fù)的條目。要剔除這些重復(fù)的條目,你可以將 HISTCONTROL 設(shè)置為 ignoredups:

復(fù)制代碼代碼如下:

# pwd

# pwd

# pwd

# history | tail -4

44 pwd

45 pwd

46 pwd [Note that there are three pwd commands in history, after executing pwd 3 times as shown above]

47 history | tail -4

# export HISTCONTROL=ignoredups

# pwd

# pwd

# pwd

# history | tail -3

56 export HISTCONTROL=ignoredups

57 pwd [Note that there is only one pwd command in the history, even after executing pwd 3 times as shown above]

58 history | tail -4

9.使用 HISTCONTROL 清除整個命令歷史中的重復(fù)條目

上例中的 ignoredups 只能剔除連續(xù)的重復(fù)條目。要清除整個命令歷史中的重復(fù)條目,可以將 HISTCONTROL 設(shè)置成 erasedups:

復(fù)制代碼代碼如下:

# export HISTCONTROL=erasedups

# pwd

# servicehttpd stop

# history | tail -3

38 pwd

39 service httpd stop

40 history | tail -3

# ls -ltr

# servicehttpd stop

# history | tail -6

35 export HISTCONTROL=erasedups

36 pwd

37 history | tail -3

38 ls -ltr

39 service httpd stop

[Note that the previous service httpd stop after pwd got erased]

40 history | tail -6

10.使用 HISTCONTROL 強制 history 不記住特定的命令

將 HISTCONTROL 設(shè)置為 ignorespace,并在不想被記住的命令前面輸入一個空格:

復(fù)制代碼代碼如下:

# export HISTCONTROL=ignorespace

# ls -ltr

# pwd

# servicehttpd stop [Note that there is a space at the beginning of service, to ignore this command from history]

# history | tail -3

67 ls -ltr

68 pwd

69 history | tail -3

11.使用 -c 選項清除所有的命令歷史

如果你想清除所有的命令歷史,可以執(zhí)行:

復(fù)制代碼代碼如下:

# history -c

12.命令替換

linux命令歷史篇二:Linux基礎(chǔ)教程 教你隱藏Linux的命令行歷史

Linux基礎(chǔ)教程教你隱藏Linux的命令行歷史

如果你是 Linux 命令行的用戶,有的時候你可能不希望某些命令記錄在你的命令行歷史中。原因可能很多,例如,你在公司擔(dān)任某個職位,你有一些不希望被其它人濫用的特權(quán)。亦或者有些特別重要的命令,你不希望在你瀏覽歷史列表時誤執(zhí)行。

然而,有方法可以控制哪些命令進入歷史列表,哪些不進入嗎?或者換句話說,我們在 Linux 終端中可以開啟像瀏覽器一樣的無痕模式嗎?答案是肯定的,而且根據(jù)你想要的具體目標(biāo),有很多實現(xiàn)方法。在這篇文章中,將和大家討論一些行之有效的方法。

注意:文中出現(xiàn)的所有命令都在 Ubuntu 下測試過。

不同的可行方法

前面兩種方法已經(jīng)在之前一篇文章中描述了。如果你已經(jīng)了解,這部分可以略過。然而,如果你不了解,建議仔細閱讀。

1. 在命令前插入空格

是的,沒看錯。在命令前面插入空格,這條命令會被 shell 忽略,也就意味著它不會出現(xiàn)在歷史記錄中。但是這種方法有個前提,只有在你的環(huán)境變量 HISTCONTROL 設(shè)置為 "ignorespace" 或者 "ignoreboth" 才會起作用。在大多數(shù)情況下,這個是默認值。

所以,像下面的命令(LCTT 譯注:這里[space]表示輸入一個空格):

[space]echo "this is a top secret"

如果你之前執(zhí)行過如下設(shè)置環(huán)境變量的命令,那么上述命令不會出現(xiàn)在歷史記錄中。

export HISTCONTROL = ignorespace

下面的截圖是這種方式的一個例子。

第四個 "echo" 命令因為前面有空格,它沒有被記錄到歷史中。

2. 禁用當(dāng)前會話的所有歷史記錄

如果你想禁用某個會話所有歷史,你可以在開始命令行工作前簡單地清除環(huán)境變量 HISTSIZE 的值即可。執(zhí)行下面的命令來清除其值:

export HISTSIZE=0

HISTSIZE 表示對于 bash 會話其歷史列表中可以保存命令的個數(shù)(行數(shù))。默認情況,它設(shè)置了一個非零值,例如在我的電腦上,它的值為 1000。

所以上面所提到的命令將其值設(shè)置為 0,結(jié)果就是直到你關(guān)閉終端,沒有東西會存儲在歷史

記錄中。記住同樣你也不能通過按向上的箭頭按鍵或運行 history 命令來看到之前執(zhí)行的命令。

3. 工作結(jié)束后清除整個歷史

這可以看作是前一部分所提方案的另外一種實現(xiàn)。唯一的區(qū)別是在你完成所有工作之后執(zhí)行這個命令。下面是剛說到的命令:

history -cw

剛才已經(jīng)提到,這個和 HISTSIZE 方法有相同效果。

4. 只針對你的工作關(guān)閉歷史記錄

雖然前面描述的方法(2 和 3)可以實現(xiàn)目的,它們可以清除整個歷史,在很多情況下,有些可能不是我們所期望的。有時候你可能想保存直到你開始命令行工作之間的歷史記錄。對于這樣的需求,你開始在工作前執(zhí)行下述命令:

[space]set +o history

備注:[space] 表示空格。并且由于空格的緣故,該命令本身也不會被記錄。

上面的命令會臨時禁用歷史功能,這意味著在這命令之后你執(zhí)行的所有操作都不會記錄到歷史中,然而這個命令之前的所有東西都會原樣記錄在歷史列表中。

要重新開啟歷史功能,執(zhí)行下面的命令:

[Space]set -o history

它將環(huán)境恢復(fù)原狀,也就是你完成了你的工作,執(zhí)行上述命令之后的命令都會出現(xiàn)在歷史中。

5. 從歷史記錄中刪除指定的命令

現(xiàn)在假設(shè)歷史記錄中已經(jīng)包含了一些你不希望記錄的命令。這種情況下我們怎么辦?很簡單。直接動手刪除它們。通過下面的命令來刪除:

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

上面的命令會輸出歷史記錄中匹配的命令,每一條前面會有個數(shù)字。

一旦你找到你想刪除的命令,執(zhí)行下面的命令,從歷史記錄中刪除那個指定的項:

history -d [num]

第二個‘echo’命令被成功的刪除了。

同樣的,你可以使用向上的箭頭一直往回翻看歷史記錄。當(dāng)你發(fā)現(xiàn)你感興趣的命令出現(xiàn)在終端上時,按下“Ctrl + U”清除整行,也會從歷史記錄中刪除它。

總結(jié)

有多種不同的方法可以操作 Linux 命令行歷史來滿足你的需求。然而請記住,從歷史中隱藏或者刪除命令通常不是一個好習(xí)慣,盡管本質(zhì)上這并沒有錯。但是你必須知道你在做什么,以及可能產(chǎn)生的后果。

linux命令歷史篇三:強有力的Linux歷史命令

強有力的Linux歷史命令 你還記得幾個

忘記歷史的Linux用戶注定要輸入很多信息。這也讓強有力的歷史命令不僅在援引之前執(zhí)行命令時有用,在調(diào)用其它很少用到的命令時也有用。本文就介紹些強有力的Linux歷史命令,不知你還能記起幾個? AD:

"忘記歷史的Linux用戶注定要輸入很多信息!

這也讓強有力的歷史命令(包括Bash shell的歷史變體)不僅在援引之前執(zhí)行命令而不需重新輸入它們時有用,在調(diào)用其它很少用到的命令時也有用,這省去了必須重新使用它們的麻煩。該命令按時間順序列出了之前執(zhí)行命令的清單。

該命令的輸出示例如下: $ history

...

62 rm 092210.sql

63 mysqldump

64 mysqldump -u root -p dev_gamenomad_com > 092210.sql 65 more 092210.sql

66 rm 092210.sql

...

9991 mkdir chapter05

9992 cd chapter05

9993 dir

9994 npm install websocket-server

9995 node hello.js

9996 exit

9997 history

與每條命令相關(guān)的順序號服務(wù)于重要目的,允許用戶通過提供直接跟著感嘆號的順序號來重新執(zhí)行相關(guān)命令,如下: $ !10000

sudo /etc/init.d/apache2 start

* Starting web server apache2

但這并不是全部。Linux歷史命令能做到更多,本文后續(xù)部分也將提及。

掌控歷史擴展

敲擊向上箭頭鍵會顯示之前執(zhí)行的命令,敲擊Enter鍵會再次執(zhí)行該命令。但是還可以使用另一個可能更快的包括歷史擴展功能的選擇:

$ !!

如果你重復(fù)執(zhí)行同樣兩條或三條命令的不同排列組合,你還可以選擇通過識別其位移負指數(shù)來執(zhí)行出現(xiàn)在上一命令出現(xiàn)處的命令。例如,執(zhí)行之前命令的前一命令(回退兩條命令),運用以下序列:

$ !-2

執(zhí)行早期命令的另一方式是輸入緊跟著感嘆號的命令序列號的開頭。符合字符對象的第一條命令會執(zhí)行。舉例來說,假設(shè)最后三條命令如下: $ history

... 9876 build-book /home/wjgilmore/easy_php

9877 mkdir chapter05

9878 cd chapter05

9879 touch chapter05.md

你可以只通過運行以下命令來再次執(zhí)行構(gòu)書腳本:

$ !b

用兩步過程創(chuàng)建一個確認它的新目錄和導(dǎo)航和以運用歷史擴展縮短。在本例中,我創(chuàng)建了一個叫做

easy_bash的新目錄,位置在/home/wjgilmore/books。要確認該目錄,運用!$來獲得在前一命令中發(fā)現(xiàn)在最后“字符”:

$ mkdir /home/wjgilmore/books/easy_bash

$ cd !$

搜索命令歷史

雖然可以翻閱命令歷史(或使用grep命令),但在使用Ctrl+R開放選擇搜索它之后也可以調(diào)用該命令的片段,提示的命令行將如下所示:

(reverse-i-search)`':

開始輸入命令片段,命令行會實時更新反映出最符合的一條。輸入apa后會出現(xiàn)類似于這樣的命令: (reverse-i-search)`apa': sudo /etc/init.d/apache2 start

當(dāng)你看到想要的命令,敲擊Enter執(zhí)行它,或者敲擊向上箭頭鍵在重新執(zhí)行前修改它。

調(diào)整歷史行為

你可以做很多有趣的設(shè)置更改來控制命令歷史的行為方式。例如,Bash shell設(shè)置的默認歷史大小是500條記錄,這個限制很快就達到了,即使是很小的命令行相互作用。你可以通過設(shè)置在Bash配置文件(.bash

linux命令歷史

rc,位于主目錄中)上發(fā)現(xiàn)的HISTSIZE變量提高限制數(shù)。

HISTSIZE=10000

你在命名為HISTCONTROL的.bashrc中通常還會遇到另一個與歷史有關(guān)的變量。該變量幫助明確規(guī)定歷史文件中的存放內(nèi)容(位于.bash_history,也可見于主目錄中)。例如,你也許在檢查最新的日志文件附件時重復(fù)執(zhí)行了尾命令,就在運行tail的幾分鐘里。通過重復(fù)來集群歷史文件不太實際,通過設(shè)置它為ignoredups來讓HISTCONTROL變量忽視復(fù)制行。

HISTCONTROL=ignoredups

可疑效用的另一個HISTCONTROL設(shè)置是忽略空格。該HISTCONTROL設(shè)置的結(jié)果是所有前面有空格的執(zhí)行命令都從歷史文件中刪除。這對于不跟蹤每條命令似乎起了反作用,但是如果你除了ignoredups之外還想實現(xiàn)該功能,你可以將兩者設(shè)置成:

HISTCONTROL=ignoreboth

我最后要談及的一個功能是命令替換。假設(shè)你想基于一個虛擬主機配置文件模板快速配置一群虛擬主機。這些命令序列可能非常長,就像下面所示: $ cp vhost.template /etc/apache2/sites-available/dev.example.com

$ cp vhost.template /etc/apache2/sites-available/forum.example.com

$ cp vhost.template /etc/apache2/sites-available/staging.example.com

通常你執(zhí)行該一列命令的方法會是首先輸入和執(zhí)行,接著向上滾動、刪除尾行片段(dev.example.com),然后輸入下一片段(forum.example.com),然后重新執(zhí)行。另一種方法,你可以運用命令替換來快速地用一行字符串替換另一相關(guān)字符串,如下所示:

$ !!:s/dev/forum

該命令行在指向-點擊界面中已為用戶帶來了大量好處,讓任務(wù)執(zhí)行和操作系統(tǒng)導(dǎo)航可以快速且優(yōu)雅地完成。最大程度上地利用歷史命令只能增加這些功能,促進生產(chǎn)力會走得更遠。

相關(guān)熱詞搜索:命令 歷史 linux linux查看歷史命令 linux清除歷史命令

版權(quán)所有 蒲公英文摘 www.newchangjing.com