linux的歷史
發(fā)布時間:2017-02-05 來源: 歷史回眸 點擊:
linux的歷史篇一:LINUX下HISTORY(歷史)命令用法詳解
如果你經(jīng)常使用 Linux 命令行,那么使用 history(歷史)命令可以有效地提升你的效率。本文將通過實例的方式向你介紹 history 命令的15個用法。
1. 使用 HISTTIMEFORMAT 顯示時間戳
當(dāng)你從命令行執(zhí)行 history 命令后,通常只會顯示已執(zhí)行命令的序號和命令本身。如果你想要查看命令歷史的時間戳,那么可以執(zhí)行:
# 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
2. 使用 Ctrl+R 搜索歷史
Ctrl+R 是我經(jīng)常使用的一個快捷鍵。此快捷鍵讓你對命令歷史進(jìn)行搜索,對于想要重復(fù)執(zhí)行某個命令的時候非常有用。當(dāng)找到命令后,通常再按回車鍵就可以執(zhí)行該命令。如果想對找到的命令進(jìn)行調(diào)整后再執(zhí)行,則可以按一下左或右方向鍵。
# [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í)行上一條命令:
1. 使用上方向鍵,并回車執(zhí)行。
2. 按 !! 并回車執(zhí)行。
3. 輸入 !-1 并回車執(zhí)行。
4. 按 Ctrl+P 并回車執(zhí)行。
4. 從命令歷史中執(zhí)行一個指定的命令
在下面的例子中,如果你想重復(fù)執(zhí)行第 4 條命令,那么可以執(zhí)行 !4:
# 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 打頭的命令:
# !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 條:
# vi ~/.bash_profile
HISTSIZE=450
HISTFILESIZE=450
7. 使用 HISTFILE 更改歷史文件名稱
默認(rèn)情況下,命令歷史存儲在 ~/.bash_history 文件中。
下載該文件可以去root目錄下,用sz命令
#sz .bash_history
添加下列內(nèi)容到 .bash_profile 文件并重新登錄 bash shell,將使用 .commandline_warrior 來存儲命令歷史:
# vi ~/.bash_profile
HISTFILE=/root/.commandline_warrior
8. 使用 HISTCONTROL 從命令歷史中剔除連續(xù)重復(fù)的條目
在下面的例子中,pwd 命令被連續(xù)執(zhí)行了三次。執(zhí)行 history 后你會看到三條重復(fù)的條目。要剔除這些重復(fù)的條目,你可以將 HISTCONTROL 設(shè)置為 ignoredups:
# 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:
# export HISTCONTROL=erasedups
# pwd
# service httpd stop
# history | tail -3
38 pwd
39 service httpd stop
40 history | tail -3
# ls -ltr
# service httpd 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,并在不想被記住的命令前面輸入一個空格:
# export HISTCONTROL=ignorespace # ls -ltr # pwd # service httpd 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í)行:
# history -c
12. 命令替換
在下面的例子里,!!:$ 將為當(dāng)前的命令獲得上一條命令的參數(shù):
# ls anaconda-ks.cfg
anaconda-ks.cfg
# vi !!:$
vi anaconda-ks.cfg
下例中,!^ 從上一條命令獲得第一項參數(shù):
# cp anaconda-ks.cfg anaconda-ks.cfg.bak
anaconda-ks.cfg
# vi -5 !^
vi anaconda-ks.cfg
13. 為特定的命令替換指定的參數(shù)
在下面的例子,!cp:2 從命令歷史中搜索以 cp 開頭的命令,并獲取它的第二項參數(shù): # cp ~/longname.txt /really/a/very/long/path/long-filename.txt
# ls -l !cp:2
ls -l /really/a/very/long/path/long-filename.txt
下例里,!cp:$ 獲取 cp 命令的最后一項參數(shù):
# ls -l !cp:$
ls -l /really/a/very/long/path/long-filename.txt
14. 使用 HISTSIZE 禁用 history
如果你想禁用 history,可以將 HISTSIZE 設(shè)置為 0:
# export HISTSIZE=0
# history
# [Note that history did not display anything]
15. 使用 HISTIGNORE 忽略歷史中的特定命令
下面的例子,將忽略 pwd、ls、ls -ltr 等命令: # export HISTIGNORE=pwd:ls:ls -ltr:
# pwd
# ls
# ls -ltr
# service httpd stop
# history | tail -3
79 export HISTIGNORE=pwd:ls:ls -ltr:
80 service httpd stop
81 history
[Note that history did not record pwd, ls and ls -ltr]
linux的歷史篇二:Linux中history歷史命令使用方法詳解
Linux中history歷史命令使用方法詳解
當(dāng)你在玩Linux的時候,如果你經(jīng)常使用命令行來控制你的Linux系統(tǒng),那么有效地使用命令歷史機(jī)制將會使效率獲得極大提升。事實上,一旦你掌握了我在下面給出的15個有關(guān)Linux history歷史命令的例子,你就會發(fā)現(xiàn)使用history歷史命令行將更有樂趣。 當(dāng)你在玩Linux的時候,如果你經(jīng)常使用命令行來控制你的Linux系統(tǒng),那么有效地使用命令歷史機(jī)制將會使效率獲得極大提升。事實上,一旦你掌握了我在下面給出的15個有關(guān)Linux history歷史命令的例子,你就會發(fā)現(xiàn)使用history歷史命令行將更有樂趣。
1、使用HISTTIMEFORMAT在歷史中顯示TIMESTAMP
通常情況下,當(dāng)你在命令行中鍵入history時,終端中將顯示你剛輸入的命令及其編號。如果出于審查命令的目的,和命令一起顯示時間戳將會很有幫助,如下所示。 # 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
[注:你也可以設(shè)置alias語句來查看最近的歷史命令]
alias h1='history 10'
alias h2='history 20'
alias h3='history 30'
2、用Ctrl + R搜索歷史命令
我非常確信這應(yīng)該是你最常使用的history特性,當(dāng)你執(zhí)行了一串相當(dāng)長的命令之后,你只要用關(guān)鍵字搜索一下歷史命令然后重新執(zhí)行這條命令而不需要將整條命令再輸一遍。方法是:按下Ctrl +R然后輸入關(guān)鍵字。 在以下示例中,我搜索“red”,則顯示以前的命令中含有”red”的命令“cat/etc/redhat-release”。
[注:在命令行提示符下按下Ctrl+R,終端將顯示如下提示―reverse-i-search‖]
(reverse-i-search)`red`: cat/etc/redhat-release
[注:當(dāng)看到你要的命令后按回車鍵,就可以重新執(zhí)行這條命令了]
#cat /etc/redhat-release
Fedora release 9 (Sulphur)
而有的時候你需要在執(zhí)行一條歷史命令之前編輯它.比如,你可以像下面那樣搜索“httpd”,終端顯示歷史命令“service httpd stop”,選擇它把“stop”改為“start”然后執(zhí)行它
[注: 在命令提示符下按 Ctrl+R , 將會顯示提示符‖reverse-i-search‖]
(reverse-i-search)`httpd`: service httpdstop
[注: 看到你想要的命令后按下左鍵或者右鍵,就可以在執(zhí)行這條命令之前編輯它了] # service httpd start
3、四種不同的方法快速執(zhí)行之前的命令
有時出于某些原因你需要執(zhí)行之前的命令,下面的四種方法可以用來重復(fù)最后執(zhí)行的命令:
1.用向上鍵(up arrow )查看上條命令,按回車執(zhí)行。
2.在命令行中輸入!!并按回車。
3.在命令行中輸入!-1并按回車。
4.按Ctrl+P顯示上條命令,按回車執(zhí)行。
4、執(zhí)行歷史命令中的特定命令
在下面的例子中,如果你想再次執(zhí)行第四條命令,執(zhí)行!4即可
#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、執(zhí)行以特定字開頭的歷史命令
輸入!和你要重新執(zhí)行的命令的前幾個字母。在下面的例子中,輸入!ps,回車,執(zhí)行歷史命令中以“ps”開頭的“psaux | grep yp”
#!ps
psaux | grep yp
root 16947 0.0 0.0 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ù)
把下面的兩行添加到.bash_profile然后重新登錄bash(譯者注:用source .bash_profile即可)查看有什么變化,在這個例子中,bash命令歷史記錄中只能儲存450條命令。
#vi ~/.bash_profile
HISTSIZE=450
HISTFLESIZE=450
7、使用HISTFILE改變歷史文件名
默認(rèn)情況下,命令歷史被儲存在.bash_history文件中,把下面的一行添加到.bash_profile文件中,重新登錄shell,則.commandline_warrior文件將取代.bash_history文件用來儲存歷史命令。你可以使用這個命令來追蹤不同終端中執(zhí)行的命令,屆時只需要將不同終端中所執(zhí)行的命令保存在不同的歷史文件中即可。
#vi ~/.bash_profile
HISTFILE=/root/.commandline_warrior
8、使用HISTCONTROL來消除命令歷史中的連續(xù)重復(fù)條目
在下面的例子中pwd被輸入了三次,當(dāng)你使用history的時候,你會看到這三條命令連續(xù)出現(xiàn)。設(shè)置HISTCONTROL為ignoredups,來消除重復(fù)命令:
#pwd
# pwd
# pwd
# history | tail -4
44 pwd
45 pwd
46 pwd
47 history | tail -4
[注: 上面pwd被執(zhí)行了三次之后,歷史中有三條pwd命令]
# export HISTCONTROL=ignoredups
# pwd
# pwd
# pwd
# history | tail -3
56 export HISTCONTROL=ignoredups
57 pwd 58 history | tail -4
[注:即使上面pwd被執(zhí)行了三次,歷史中也只有一條pwd命令]
9、使用HISTCONTROL在整個歷史中去除重復(fù)命令
上面的ignoredups去除連續(xù)重復(fù)的命令,百家樂要消除整個命令歷史中的重復(fù)命令,把HISTCONTROL設(shè)置成erasedups
#export HISTCONTROL=erasedups
# pwd
# service httpd stop
#history | tail -3
38 pwd
39 service httpd stop
40 history | tail -3
# ls -ltr
# service httpd stop
# history | tail -6
35 export HISTCONTROL=erasedups
36 pwd
37 history | tail -3
38 ls –ltr
39 service httpd stop
40 history | tail -6
[注: 之前在pwd后面的servicehttpd stop命令被除去了]
10、使用HISTCONTROL強制history忽略某條特定命令
在執(zhí)行一條命令時,你可以將HISTCONTROL設(shè)置為ignorespace并在該命令前加上一個空格來指示history忽略這條命令?梢灶A(yù)見的是,很多初級系統(tǒng)管理員將為他們能從history中成功隱藏某條命令而振奮。
了解ignorespace的工作方式是很好。不過,實踐中最好不要從history中去掩蓋任何命令。
#export HISTCONTROL=ignorespace
# ls –ltr
# pwd
# service httpd stop
[注: 在service的前面加上一個空格,以便在命令歷史中忽略它]
# history | tail -3
67 ls –ltr
68 pwd
69 history | tail -3
11、使用c選項清除所有的歷史命令
有時候你或許想要清除之前的歷史命令。而你又想讓history繼續(xù)工作:
#history –c
12、替換命令歷史中的內(nèi)容
當(dāng)你搜索歷史命令時,你可能希望執(zhí)行一個與剛剛查找到的歷史命令具有相同的參數(shù)的命令。 在本例中,vi之后的"!!:$" 可以將前一個命令的參數(shù)做為當(dāng)前命令的參數(shù)。
linux的歷史篇三:LINUX發(fā)展過程中的的歷史事件
LINUX發(fā)展過程中的歷史事件
1991年10月5日,Linus Torvalds在新聞組comp.os.minix發(fā)布了大約有一萬行代碼的Linux v0.01版本。
到了1992年,大約有1000人在使用Linux,值得一提的是,他們基本上都屬于真正意義上的hacker。
1993年,大約有100余名程序員參與了Linux內(nèi)核代碼編寫/修改工作,其中核心組由5人組成,此時Linux 0.99的代碼有大約有十萬行,用戶大約有10萬左右。
1994年3月,Linux1.0發(fā)布,代碼量17萬行,當(dāng)時是按照完全自由免費的協(xié)議發(fā)布,隨后正式采用GPL協(xié)議。至此, Linux的代碼開發(fā)進(jìn)入良性循環(huán)。很多系統(tǒng)管理員開始在自己的操作系統(tǒng)環(huán)境中嘗試linux,并將修改的代碼提交給核心小組。由于擁有了豐富的操作系統(tǒng) 平臺,因而 Linux的代碼中也充實了對不同硬件系統(tǒng)的支持,大大的提高了跨平臺移植性。
1995年,此時的Linux 可在Intel、Digital 以及Sun SPARC處理器上運行了,用戶量也超過了50萬,相關(guān)介紹Linux的Linux Journal雜志也發(fā)行了超過10萬冊之多。
1996年6月,Linux 2.0內(nèi)核發(fā)布,此內(nèi)核有大約40萬行代碼,并可以支持多個處理器。此時的Linux 已經(jīng)進(jìn)入了實用階段,全球大約有350萬人使用。
1997年夏,大片《泰坦尼克號》在制作特效中使用的160臺Alpha圖形工作站中,有105臺采用了Linux操作系統(tǒng)。
1998年是Linux迅猛發(fā)展的一年。1月,小紅帽高級研發(fā)實驗室成立,同年RedHat 5.0獲得了InfoWorld的操作系統(tǒng)獎項。4月Mozilla 代碼發(fā)布,成為linux圖形界面上的王牌瀏覽器。Redhat 宣布商業(yè)支持計劃,網(wǎng)絡(luò)了多名優(yōu)秀技術(shù)人員開始商業(yè)運作。王牌搜索引擎"Google"現(xiàn)身,采用的也是Linux服務(wù)器。值得一提的是, Oracle 和Informix 兩家數(shù)據(jù)庫廠商明確表示不支持Linux,這個決定給予了Mysql數(shù)據(jù)庫充分的發(fā)展機(jī)會。同年10月,Intel和Netscape宣布小額投資紅帽軟 件,這被業(yè)界視作Linux獲得商業(yè)認(rèn)同的信號。同月,微軟在法國發(fā)布了反Linux公開信,這表明微軟公司開始將Linux視作了一個對手來對待。十二 月,IBM發(fā)布了適用于Linux的文件系統(tǒng)AFS 3.5以及Jikes Java 編輯器
和Secure Mailer及DB2測試版,IBM的此番行為,可以看作是與Linux羞答答地第一次親密接觸。迫于Windows和Linux的壓力,Sun逐漸開放 了Java協(xié)議,并且在UltraSparc上支持Linux操作系統(tǒng)。1998年可說是Linux與商業(yè)接觸的一年。
1999年,IBM宣布與Redhat公司建立伙伴關(guān)系,以確保Redhat在IBM機(jī)器上正確運行。三月,第一屆 LinuxWorld 大會的召開,象征Linux時代的來臨。IBM、Compaq和Novell宣布投資Redhat公司,以前一直對Linux持否定態(tài)度的Oracle公 司也宣布投資。五月,SGI公司宣布向Linux移植其先進(jìn)的XFS文件系統(tǒng)。對于服務(wù)器來說,高效可靠的文件系統(tǒng)是不可或缺的,SGI的慷慨移植再一次 幫助了Linux確立在服務(wù)器市場的專業(yè)性。7月IBM啟動對Linux的支持服務(wù)和發(fā)布了Linux DB2,從此結(jié)束了Linux得不到支持服務(wù)的歷史,這可以視作Linux真正成為服務(wù)器操作系統(tǒng)一員的重要里程碑。
2000年初始,Sun公司在Linux的壓力下宣布Solaris8降低售價。事實上Linux對Sun造成的沖擊遠(yuǎn)比對 Windows來得更大。 2月Red Hat發(fā)布了嵌入式Linux的開發(fā)環(huán)境,Linux在嵌入式行業(yè)的潛力逐漸被發(fā)掘出來。在4月,拓林思公司宣布了推出中國首家Linux工程師認(rèn)證考 試,從此使Linux操作系統(tǒng)管理員的水準(zhǔn)可以得到權(quán)威機(jī)構(gòu)的資格認(rèn)證(轉(zhuǎn) 載 于:smilezhuce.com 蒲 公英文 摘:linux的歷史),此舉大大增加了國內(nèi)Linux愛好者學(xué)習(xí)的熱情。伴隨著國際上的Linux熱潮, 國內(nèi)的聯(lián)想和聯(lián)邦推出了"幸福Linux家用版",同年7月中科院與新華科技合作發(fā)展紅旗Linux, 此舉讓更多的國內(nèi)個人用戶認(rèn)識到了存在著Linux這個操作系統(tǒng)。11月,Intel 與 Xteam合作,推出基于Linux的網(wǎng)絡(luò)專用服務(wù)器,此舉結(jié)束了在Linux單向順應(yīng)硬件商硬件開發(fā)驅(qū)動的歷史。
2001月新年依使就爆出新聞,Oracle宣布在OTN上的所有會員都可免費索取Oracle 9i的Linux版本,從幾年前的"絕不涉足Linux系統(tǒng)"到如今的主動獻(xiàn)媚,足以體現(xiàn)Linux的發(fā)展迅猛。IBM則決定投入10億美元擴(kuò)大 Linux系統(tǒng)的運用,此舉猶如一針強心劑,令華爾街的投資者們聞風(fēng)而動。到了5月這個初夏的時節(jié),微軟公開反對"GPL"引起了一場大規(guī)模的論戰(zhàn)。8月 紅色代碼爆發(fā),引得許多站點紛紛從windows操作系統(tǒng)轉(zhuǎn)向linux操作系統(tǒng),雖然是一次被動的轉(zhuǎn)變,不過也算是一次應(yīng)用普及吧。12月Red Hat 為IBM s/390大型計算機(jī)提供了Linux解決方案,從此結(jié)束了AIX孤單獨行無人伴的歷史。
2002年是Linux企業(yè)化的一年。2月,微軟公司迫于各洲政府的壓力,宣布擴(kuò)大公開代碼行動,這可是Linux開源帶來的深刻影響的結(jié)果。3月,內(nèi)核開發(fā)者宣布新的Linux系統(tǒng)支持64位的計算機(jī)。
2003年1月,NEC宣布將在其手機(jī)中使用Linux操作系統(tǒng),代表著Linux成功進(jìn)軍手機(jī)領(lǐng)域。5月之中SCO表示就 Linux使用的涉嫌未授權(quán)代碼等問題對IBM
進(jìn)行起訴,此時人們才留意到,原本由SCO壟斷的銀行/金融領(lǐng)域,份額已經(jīng)被Linux搶占了不少,也難怪 SCO如此氣急敗壞了。9 月中科紅旗發(fā)布Red Flag Server4版本,性能改進(jìn)良多。11月IBM注資Novell以2.1億收購SuSE,同期Redhat計劃停止免費的Linux,頓時業(yè)內(nèi)罵聲四 起。Linux在商業(yè)化的路上漸行漸遠(yuǎn)。
2004年的第1月,本著"天下事分久必合,合久必分"之天理,SuSE嫁到了Novell,SCO繼續(xù)頂著罵名四處強行"化緣 ", Asianux, MandrakeSoft也在五年中首次宣布季度贏利。3月SGI宣布成功實現(xiàn)了Linux操作系統(tǒng)支持256個Itanium 2處理器。4月里美國斯坦福大學(xué)Linux大型機(jī)系統(tǒng)被黑客攻陷,再次證明了沒有絕對安全的OS。六月的統(tǒng)計報告顯示在世界500強超級計算機(jī)系統(tǒng)中,使 用Linux操作系統(tǒng)的已經(jīng)占到了280席,搶占了原本屬于各種Unix的份額。9月HP開始網(wǎng)羅Linux內(nèi)核代碼人員,以影響新版本的內(nèi)核朝對HP有 利的方式發(fā)展,而IBM則準(zhǔn)備推出OpenPower服務(wù)器,僅運行Linux系統(tǒng)。
相關(guān)熱詞搜索:歷史 linux linux歷史 linux查看歷史命令
熱點文章閱讀