新聞中心
Linux Shell的提速技巧
本文整理自 My 5 Favorite Linux Shell Tricks for SPEEEEEED (and efficiency) 。這里列出的小技巧可以讓你在使用shell的時(shí)候更加高效~
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、重慶小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了嵐山免費(fèi)建站歡迎大家使用!
設(shè)想這樣一個(gè)場(chǎng)景:你輸入了 apt-get update ,然后發(fā)現(xiàn)需要 sudo 權(quán)限才能運(yùn)行。除了通常的按下向上箭頭,然后移動(dòng)到行首添加 sudo 再運(yùn)行,你可以輸入
按下回車后,shell會(huì)生成 sudo apt-get update ,也就是說, !! 被替換為上一條命令的內(nèi)容。
翻譯過來(lái)可以理解為截?cái)嗝睿⑶抑匦抡迟N截?cái)鄡?nèi)容。這個(gè)操作類似于emacs中的快捷鍵。我們可以使用 ctrl + K 來(lái)截?cái)喙鈽?biāo)后方的命令內(nèi)容,然后用 ctrl + Y 來(lái)重新粘貼截?cái)嗟膬?nèi)容。
例如:
注意 ctrl + Y 可以多次粘貼。
而如果想要截?cái)喙鈽?biāo)之前的內(nèi)容,可以用 ctrl + U 。(事實(shí)上很多emacs的快捷鍵都可以直接在shell環(huán)境下使用)
在開發(fā)和調(diào)試過程中,我們常常會(huì)使用 tail -f 命令來(lái)追蹤日志的輸出。這種方式有一個(gè)問題,即我們無(wú)法回溯更早的日志內(nèi)容。因此我推薦之后都使用 less +F 命令來(lái)追蹤日志內(nèi)容。這個(gè)命令同樣是從文件的尾部開始輸出,然后在文件內(nèi)容更新時(shí)輸出更新內(nèi)容。在使用這個(gè)命令時(shí),可以按下 ctrl + C 組合鍵,然后用上下箭頭就可以遍歷整個(gè)文件了。之后按下 shift + F 來(lái)回到尾部追蹤的模式。
ctrl + x + e (按住ctrl,然后先按下x,再按下e),就可以彈出一個(gè)編輯器來(lái)編輯你當(dāng)前的命令。
設(shè)想如下的情形:
我們要對(duì)一個(gè)host進(jìn)行多次操作,而每次我們都要重新輸入一遍這個(gè)host的!這在調(diào)試和維護(hù)過程中是非常繁瑣的。 alt + . 就為我們提供了一個(gè)非常便捷的功能!按下這個(gè)命令可以粘貼上一條命令的參數(shù)。
怎樣快速啟動(dòng)Linux系統(tǒng)?
Linux需要重新啟動(dòng)是少有的??墒且坏┬枰琇inux啟動(dòng)常常是緩慢的。幸好有一些加速的辦法。其中一些方法不太難。咱們瞧一瞧吧。
#1: 撤消多余的服務(wù)
根據(jù)機(jī)器的用途,很多服務(wù)是不需要的。要是Linux只用作桌面,就不需要sendmail、httpd和另外許多服務(wù)。如果你的服務(wù)器只是Web服務(wù)器,也可以關(guān)掉許多服務(wù)。為此,可轉(zhuǎn)到管理菜單,檢查服務(wù)項(xiàng)目。只需撤消所有不想啟動(dòng)的服務(wù)選項(xiàng)。
#2: 撤消多余的內(nèi)核模塊
假如你的桌面連接到以太網(wǎng),就不需要裝載無(wú)線內(nèi)核模塊。這是較為困難的任務(wù),可能需要重新編譯內(nèi)核,而編譯內(nèi)核不是可以輕松擔(dān)當(dāng)?shù)墓ぷ?。為此,你大概需要?nèi)核源代碼。接著,按照編譯內(nèi)核的標(biāo)準(zhǔn)步驟進(jìn)行。不同在于你要搜查系統(tǒng),撤除所有不需要的模塊。
查明系統(tǒng)中當(dāng)前安裝和運(yùn)行的內(nèi)核模塊的最好方法是安裝Bootchart。它不僅會(huì)給你一個(gè)適宜的模塊清單,而且還會(huì)說明系統(tǒng)啟動(dòng)過程中發(fā)生的事情。還可以發(fā)出命令:chkconfig –list | grep 3:on,弄清楚正在運(yùn)行什么服務(wù)。一旦知道裝載了什么不需要的模塊,就可以在內(nèi)核重新編譯期間將其移除。只要這樣處理,編譯的內(nèi)核就完全適合你的體系結(jié)構(gòu)。
#3: 使用輕型窗口管理器代替GNOME或KDE
我插入小腳印窗口管理器的原因是——它們大幅度減少圖形(界面)啟動(dòng)時(shí)間。代替不得不額外等待啟動(dòng)GNOME或KDE的30到60秒,為什么不等待用于啟動(dòng)Enlightenment或者XFCE的2到10秒呢?它們不僅節(jié)省啟動(dòng)時(shí)間,還會(huì)節(jié)省內(nèi)存并解救處理臃腫軟體(bloatware)這種令人頭痛的事。
#4: 使用基于文本的登錄而不是圖形登錄
我的大多數(shù)Linux機(jī)器啟動(dòng)run level 3而非run level 5。這個(gè)運(yùn)行級(jí)別將停在文本登錄模式,我就在這個(gè)地方登錄并發(fā)出startx命令,開始選擇桌面。圖形登錄模式做兩件事:增加裝入時(shí)間并引起頭痛的問題即試圖從拙劣的X windows掙脫出來(lái)。
#5: 使用輕型發(fā)行版
不要裝載重型的Fedora,為什么不試一下Gentoo、Arch或Puppy Linux呢?這些較小的發(fā)行版的啟動(dòng)時(shí)間比更加臃腫的Fedora(甚至Ubuntu)要快很多。在較大的發(fā)行版中,OpenSuSE聲稱啟動(dòng)最快,但我還沒有親自試驗(yàn)。在最新的Fedora和Ubuntu之間,Ubuntu擊敗Fedora的啟動(dòng)時(shí)間(而且是即開即用)。
#6: 使用Open BIOS
要是你相當(dāng)聰明能干,準(zhǔn)備升級(jí)PC固件,可以考慮遷移到開源BIOS。一個(gè)附加說明,使用開放固件允許Linux啟動(dòng)時(shí)真正初始化硬件(而不依賴BIOS)。最重要的是,許多開放BIOS可以設(shè)置滿足機(jī)器的特殊需要。如果不走開放BIOS之路,至少也可以設(shè)置BIOS不尋找不存在的軟盤驅(qū)動(dòng)器,即直接啟動(dòng)第一個(gè)硬盤驅(qū)動(dòng)器(首先不是CD驅(qū)動(dòng)器)。
#7: 回避DHCP
如果你工作在地址租約不是問題的家庭網(wǎng)絡(luò)(或者小型企業(yè)網(wǎng)絡(luò))上,那么,機(jī)器就用靜態(tài)IP地址。這將使機(jī)器不必出外訪問DHCP服務(wù)器來(lái)獲得IP地址。如果采取這種途徑,就要確保配置文件/etc/resolve.conf也表達(dá)你的DNS服務(wù)器地址。
#8: 熱插拔可免就免
熱插拔是指允許把新設(shè)備插上電源并立即使用的系統(tǒng)。如果你知道你的服務(wù)器不需要這種系統(tǒng),就刪除它。這將減少啟動(dòng)時(shí)間。在許多系統(tǒng)上,熱插拔消耗大量啟動(dòng)時(shí)間。排除熱插拔將發(fā)生的變化取決于你所用的發(fā)行版。注意:就絕大部分而言,udev已經(jīng)取代熱插拔。但如果你還在運(yùn)行老一點(diǎn)的發(fā)行版,這樣做還是適合的。
#9: 要是真的大膽無(wú)畏,可嘗試一下initng
initng系統(tǒng)充當(dāng)sysvinit系統(tǒng)的替換物,并承諾徹底減少類UNIX操作系統(tǒng)的啟動(dòng)時(shí)間。如果你愿意了解運(yùn)行中的initng系統(tǒng),可以試一試Pingwinek LiveCD。
#10: 利用Debian具有的代碼
要是正在使用Debian,就有一行可用來(lái)將你的啟動(dòng)腳本轉(zhuǎn)換成并行運(yùn)行的簡(jiǎn)單代碼。如果檢查一下/etc/init.d/rc腳本,就會(huì)看到:大約在24行有CONCURRENCY=none。把這一行改為CONCURRENCY=shell,你有可能目睹啟動(dòng)時(shí)間的減少。
linux下 命令行執(zhí)行matlab速度很慢
首先介紹一下我自己使用的有效方法,一般matlab啟動(dòng)初始化很慢主要的原因是在找注冊(cè)文件,一般是由于安裝了MAC類的軟件引起的,所以我按照下文提供的方法“在【目標(biāo)】中,鍵入如下內(nèi)容”$MATLAB\bin\win32\MATLAB.exe” -c “Full Path to the MATLAB license file including file name””,我在快捷方式里面目標(biāo)路徑中鍵入:"C:\Program Files\MATLAB\R2009b\bin\win32\MATLAB.exe" -c "C:\Program Files\MATLAB\R2009b\bin\win32\lic_standalone.dat",即解決了這個(gè)問題,感謝網(wǎng)友無(wú)私的分享精神。注意上面路徑中l(wèi)ic_standalone.dat是自己的許可文件,換換就可以了!
Matlab隨著版本的升級(jí)體積越來(lái)越大,帶來(lái)的問題就是啟動(dòng)速度也越來(lái)越慢,下面就我注意到的幾個(gè)影響MATLAB啟動(dòng)速度的問題集中和大家分析下解決辦法。
一、preferences方面原因
問題產(chǎn)生原因:
大家都知道,preferences參數(shù)很多,如果首選參數(shù)設(shè)置的不得當(dāng),或者文件太大,Matlab啟動(dòng)的時(shí)候加載preferences設(shè)置就需要較長(zhǎng)時(shí)間
問題解決方法:
以管理員權(quán)限登錄,以保證自己有查看隱藏文件的權(quán)限。
windows
(1)退出Matlab,一定要確保Matlab不再運(yùn)行
(2)進(jìn)入c:\Documents and Settings\ your username\Application Data\MathWorks\MATLAB\ 復(fù)制代碼真實(shí)該路徑可以在Matlab中鍵入prefdir得到
(3)將上述路徑中,以Matlab版本號(hào)為文件名(比如R2009a)的文件夾,重命名為R2009a_old(其實(shí)這一步是在備份preferences文件)
(4)重啟Matlab,此時(shí)predir下會(huì)重新創(chuàng)建一個(gè)R2009a文件夾,里面包含了所有的preferences設(shè)置,只是屬性值都是默認(rèn)的,當(dāng)然以前對(duì)Matlab的設(shè)置全部沒有了
(5)如果覺得不滿意,那么將新生成的R2009a刪除,將R2009a_old重新改為R2009a就可以恢復(fù)以前的設(shè)置了。
Linux, Unix, or Mac
1) Quit MATLAB. Ensure that MATLAB is no longer running.
2) Rename the “.matlab/” directory in the users home directory, to “.matlab_old/”.
3) Restart MATLAB.
二、License方面原因
問題產(chǎn)生原因:
每次Matlab啟動(dòng)的時(shí)候會(huì)自動(dòng)搜索Matlab的License文件,而計(jì)算機(jī)系統(tǒng)變量LM_LICENSE_FILE,則是用來(lái)告訴所有的應(yīng)用程序從哪里找到對(duì)應(yīng)的License文件
另外系統(tǒng)變量LM_LICENSE_FILE也可能導(dǎo)致初始化很慢,但是該變量只對(duì)Matlab負(fù)責(zé),LM_LICENSE_FILE是對(duì)所有的程序負(fù)責(zé)
但是假如你的Matlab使用的是網(wǎng)絡(luò)版的License,你計(jì)算機(jī)沒有聯(lián)網(wǎng)就會(huì)導(dǎo)致無(wú)法找到network license
解決方法:
方法一
windows
(1)右擊【我的電腦】選擇【屬性】
(2)在【高級(jí)】選項(xiàng)卡中,點(diǎn)擊【環(huán)境變量】
(3)在下面的【系統(tǒng)變量】找到【LM_LICENSE_FILE】,如果沒有,點(diǎn)擊【新建】創(chuàng)建一個(gè)變量名為L(zhǎng)M_LICENSE_FILE的變量
(4)將LM_LICENSE_FILE的屬性值設(shè)置為Maltab的License文件的絕對(duì)路徑
(5)重啟Matlab
Unix,Linux,or Mac
Check to see if there is an environment variable set. Where this is located depends on the shell you are using. Look in your home folder. This file may be called: .cshrc (c-shell), .profile (bash), or .bashrc (bash)
You can also create an environment variable for that shell session from the command line using export or setenv (depending on your shell), but the above file needs to be edited for a permanent change.
For example:export MLM_LICENSE_FILE /usr/bin/matlab/license.dat
如果你只有一個(gè)License,那么你可以當(dāng)Matlab啟動(dòng)的時(shí)候,在Maltab快捷方式或者命令行中指定License路徑
windows
(1)右擊Matlab快捷方式,選擇【屬性】
(2)在【目標(biāo)】中,鍵入如下內(nèi)容”$MATLAB\bin\win32\MATLAB.exe” -c “Full Path to the MATLAB license file including file name”
復(fù)制代碼其中$MATLAB是Matlab安裝根目錄,可以在Matlab中鍵入matlabroot得到,Path to the MATLAB license file是License文件的絕對(duì)路徑
(3)重啟Matlab
Unix,Linux,or Mac
Use a -c switch to point directly at the license file when launching.
If the MATLAB installer has created symbolic links, runmatlab -c Full Path to the MATLAB license file including file name
If symbolic links were not created, run from $MATLAB/bin/./matlab -c Full Path to the MATLAB license file including file name
Where $MATLAB is the root MATLAB directory and Path to the MATLAB license file is the absolute path to your license file, likely in your $MATLAB/licenses directory.
文章名稱:linux加速命令執(zhí)行 加速指令執(zhí)行的方法
標(biāo)題網(wǎng)址:http://www.dlmjj.cn/article/hihiip.html