使用alias让命令行更便捷
2024-09-21 06:36:15
在linux命令行上调试程序,经常是这样子做:
$ ps x | grep sceneserver
pts/ S+ : grep sceneserver
? Ssl : ./sceneserver/sceneserver -d
$ gdb attach
首先通过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 $}'\'')'
然后保存退出,通过 source ~/.bashrc 命令应用此设置,或者重新连接终端,此时在命令行输入gs之后再回车,即可实现上述长命令可以达到的功能。
长期工作在命令行之上,善用alias,可以节省大量时间。
最新文章
- leach-matlab
- salt 批量部署与配置
- 【数值方法,水题】UVa 10341 - Solve It
- [POLITICS] S Korea lawmakers vote to impeach leader
- Java基础知识强化之集合框架笔记51:Map集合之Map集合的功能概述与测试
- xmu1125 越野车大赛(三分)
- Android 系统稳定性 - ANR(一)
- CodeForces 735D Taxes
- SQL查询多条不重复记录值简要解析【转载】
- 简单认识一下什么是vue-router
- UML之对象图
- 笔记《JavaScript 权威指南》(第6版) 分条知识点概要1—词法结构
- 4698: Sdoi2008 Sandy的卡片
- 9.26 H5日记
- windows下,怎么轻易拷贝一个文件的完整路径?
- C#代码连接Oracle数据库一段时间以后[connection lost contact]的问题
- 微信小程序 - 3d轮播图组件(基础)
- 【转载】ArcBall二维控制三维旋转
- django入门-初窥门径-part1
- python 三级菜单 的另1种实现方法