使用alias讓命令行更便捷


在linux命令行上調試程序,經常是這樣子做:

$ ps x | grep sceneserver
 8934 pts/9    S+     0:00 grep sceneserver
26908 ?        Ssl    8:34 ./sceneserver/sceneserver -d
$ gdb attach 26908

首先通過ps命令找出進程id,然后用gdb attach上去,但這里涉及到了輸入兩個命令,還有一個進程ID,特別是輸入進程ID的時候,需要對着屏幕敲,或者復制下來。不管怎么樣,都顯得過於繁瑣。

自然而然想把敲進程ID這一個步驟省略掉,於是想把兩個命令合並到一起:

$ gdb attach `ps x | grep -v grep | grep sceneserver | awk '{print $1}'`
或者
$ gdb attach $(ps x | grep -v grep | grep sceneserver | awk '{print $1}')

``和$()內的命令輸出,可以當做一個參數參與到前一個命令之中。這里面"grep -v grep"是為了在進程輸出之中去掉grep進程的id。因為gdb attach只能接受一個進程id作為參數。在這里面xargs行不通,gdb會自動退出,原因暫時未知。

通過上面的過程, 我們節省了一個輸入進程ID的過程,但是還是需要輸入很長一段命令,甚至比之前的命令更長,這個時候我們就可以通過alias命令,將這個長命令映射到一個別名。

$ vim ~/.bashrc 

在.bashrc文件中新增這一行:

alias gs='gdb attach $(ps x | grep -v "grep" | grep "sceneserver" | awk '\''{print $1}'\'')'

然后保存退出,通過 source ~/.bashrc 命令應用此設置,或者重新連接終端,此時在命令行輸入gs之后再回車,即可實現上述長命令可以達到的功能。

長期工作在命令行之上,善用alias,可以節省大量時間。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM