大大提高你的工作效率的Linux 技巧
一些簡單卻有效的linux技巧分享,可以大大提高你的工作效率。
命令編輯及光標移動
這里有很多快捷鍵可以幫我們修正自己的命令。接下來使用光標二字代替光標的位置。
刪除從開頭到光標處的命令文本
ctrl + u,例如:
$ cd?/proc/tty;ls?-al光標如果此時使用ctrl + u快捷鍵,那么該條命令都會被清除,而不需要長按backspace鍵。
刪除從光標到結尾處的命令文本
ctrl+k,例如:
$ cd?/proc/tty光標;ls?-al如果此時使用ctrl + k快捷鍵,那么從光標開始處到結尾的命令文本將會被刪除。
還有其他的操作,不再舉例,例如:
ctrl + a:光標移動到命令開頭
ctrl + e:光標移動到命令結尾
alt ?f:光標向前移動一個單詞
alt ?b:光標向前移動一個單詞
ctrl w:刪除一個詞(以空格隔開的字符串)
實時查看日志
$?tail?-f?filename.logtail -f 加文件名,可以實時顯示日志文件內容。當然,使用less命令查看文件內容,并且使用shift+f鍵,也可達到類似的效果。
磁盤或內存情況查看
怎么知道當前磁盤是否滿了呢?
[root@izbp18c46ib9ngjzh8z2ipz wwwlogs]# df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 40G 5.8G 32G 16% / devtmpfs 456M 0 456M 0% /dev tmpfs 466M 0 466M 0% /dev/shm tmpfs 466M 53M 413M 12% /run tmpfs 466M 0 466M 0% /sys/fs/cgroup tmpfs 94M 0 94M 0% /run/user/0使用df命令可以快速查看各掛載路徑磁盤占用情況。
當前目錄各個子目錄占用空間大小
如果你已經知道www目錄占用空間較大了,你想知道www目錄下各個目錄占用情況:
[root@izbp18c46ib9ngjzh8z2ipz www]# du -h --max-depth=1 /www 12M /www/wwwlogs 242M /www/wwwroot 25M /www/backup 904M /www/server 15M /www/Recycle_bin 2.2G /www這里指定了目錄深度,否則的話,它會遞歸統計子目錄占用空間大小,可自行嘗試。
當前內存使用情況
[root@izbp18c46ib9ngjzh8z2ipz www]# free -htotal used free shared buff/cache available Mem: 931M 558M 70M 52M 301M 135M Swap: 1.0G 272M 752M通過free的結果,很容易看到當前總共內存多少,剩余可用內存多少等等。
使用-h參數
不知道你是否注意到,我們在前面幾個命令中,都使用了-h參數,它的作用是使得結果以人類可讀的方式呈現,所以我們看到它呈現的單位是G,M等,如果不使用-h參數,可以自己嘗試一下會是什么樣的結果呈現。
根據名稱查找進程id
想快速直接查找進程id,可以使用:
[root@izbp18c46ib9ngjzh8z2ipz www]# pgrep nginx 17534 23794 23795 23796或者:
[root@izbp18c46ib9ngjzh8z2ipz www]# pidof nginx 23796 23795 23794 17534其中,nginx是進程名稱。
根據名稱殺死進程
一般我們可以使用kill -9 pid方式殺死一個進程,但是這樣就需要先找到這個進程的進程id,實際上我們也可以直接根據名稱殺死進程,例如:
$?killall?nginx或者:
$ pkill?nginx查看進程運行時間
可以使用下面的命令查看進程已運行時間:
$?ps?-p?24525?-o?lstart,etime?STARTED?????ELAPSED Sat?Mar?23?20:52:08?2019???????02:45其中24525是你要查看進程的進程id。
快速目錄切換
cd - 回到上一個目錄
cd ?回到用戶家目錄
多條命令執行
我們知道使用分號隔開可以執行多條命令,例如:
$?cd?/temp/log/;rm?-rf?*但是如果當前目錄是/目錄,并且/temp/log目錄不存在,那么就會發生激動人心的一幕:
bash:?cd:?/temp/log:?No?such?file?or?directory (突然陷入沉默)因為;可以執行多條命令,但是不會因為前一條命令失敗,而導致后面的不會執行,因此,cd執行失敗后,仍然會繼續執行rm -rf *,由于處于/目錄下,結果可想而知。
所以你還以為這種事故是對rf -rf *的力量一無所知的情況下產生的嗎?
如果解決呢?很簡單,使用&&,例如:
$?cd?/temp/log/&&rm?-rf?*這樣就會確保前一條命令執行成功,才會執行后面一條。
查看壓縮日志文件
有時候日志文件是壓縮的,那么能不能偷懶一下,不解壓查看呢?當然可以啦。
?
例如:
$?zcat?test.gz test?log或者:
$?zless?test.gz test?log清空文件內容
比如有一個大文件,你想快速刪除,或者不想刪除,但是想清空內容:
>filename將日志同時記錄文件并打印到控制臺
在執行shell腳本,常常會將日志重定向,但是這樣的話,控制臺就沒有打印了,如何使得既能記錄日志文件,又能將日志輸出到控制臺呢?
$?./test.sh?|tee?test.log終止并恢復進程執行
我們使用ctrl+z 暫停一個進程的執行,也可以使用fg恢復執行。例如我們使用
$?cat?filename當我們發現文件內容可能很多時,使用ctrl+z暫停程序,而如果又想要從剛才的地方繼續執行,則只需要使用fg命令即可恢復執行。或者使用bg使得進程繼續在后臺執行。
計算程序運行時間
我們可能會進程寫一些小程序,并且想要知道它的運行時間,實際上我們可以很好的利用time命令幫我們計算,例如:
$?time?./fibo?30 the?30?result?is?832040real????0m0.088s user????0m0.084s sys????0m0.004s它會顯示系統時間,用戶時間以及實際使用的總時間。
查看內存占用前10的進程
$ ps?-aux|sort?-k4nr?|head?-n?10快速查找你需要的命令
我們都知道man可以查看命令的幫助手冊,但是如果我們想要某個功能卻不知道使用哪個命令呢?別著急,還是可以使用man:
$?man?-k?"copy?files" cp?(1)???????????????-?copy?files?and?directories cpio?(1)?????????????-?copy?files?to?and?from?archives git-checkout-index?(1)?-?Copy?files?from?the?index?to?the?working?tree gvfs-copy?(1)????????-?Copy?files gvfs-move?(1)????????-?Copy?files install?(1)??????????-?copy?files?and?set?attributes使用-k參數,使得與copy files相關的幫助手冊都顯示出來了。
命令行下的復制粘貼
我們知道,在命令行下,復制不能再是ctrl + c了,因為它表示終止當前進程,而控制臺下的復制粘貼需要使用下面的快捷鍵:
ctrl + ?insert
shift + insert
搜索包含某個字符串的文件
例如,要在當前目錄下查找包含test字符串的文件:
$?grep?-rn?"test" test2.txt:1:test它便可以找到該字符串在哪個文件的第幾行。
屏幕凍結
程序運行時,終端可能輸出大量的日志,你想簡單查看一下,又不想記錄日志文件,此時可以使用ctrl+s鍵,凍結屏幕,使得日志不再繼續輸出,而如果想要恢復,可使用ctrl+q退出凍結。
無編輯器情況下編輯文本文件
如果在某些系統上連基本的vi編輯器都沒有,那么可以使用下面的方式進行編輯內容:
$?cat?>file.txt some?words (ctrl+d)編輯完成后,ctrl+d即可保存。
查看elf文件
查看elf文件頭信息
例如:
$?readelf?-h?filename我們在顯示結果中,可以看到運行的平臺,elf文件類型,大小端情況等。
查看庫中是否包含某個接口
$ nm?filename?|grep?interface總結
以上是生活随笔為你收集整理的大大提高你的工作效率的Linux 技巧的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决centos6.5出现-bash:
- 下一篇: linux 其他常用命令