在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,可以节省大量时间。

使用alias让命令行更便捷的更多相关文章

  1. Android 开发命令行完全攻略

    作为命令行的爱好者,我想写这个主题已经有好一段时间了.除了显得很酷之外,命令行的使用能够提高我们的开发效率,因为相比通过鼠标点击一系列的菜单选项,使用键盘输入几个字符并点击 TAB 健显然会快很多. ...

  2. Firebug中命令行栏(Commandlinie)的使用介绍和总结

    Commandlinie是Firebug中总有用的一个特性.如果你有Microsoft Visual Studio的使用经验,你就会知道“Immediate Window” 和“Watch Windo ...

  3. 使用命令行操作vmware esxi -- powershell

    之前提到过用linux命令行的方法操作vmware,这节我们来使用powershell的方式来操作.在操作之前需要下载安装一款命令行工具PowerCLI,本节只列出一些常用命令. 个人认为powerc ...

  4. 微软开放技术发布针对 Mac 和 Linux 的更新版 Azure Node.JS SDK 和命令行工具

    发布于 2013-12-04 作者 Eduard Koller 这次为我们使用Linux 的朋友带来了更多关于部署云上虚拟机的消息.今天,微软开放技术有限公司 (MS Open Tech),想与大家分 ...

  5. 历史命令~/.bash_history,查看所有别名alias,命令执行顺序,命令行常用快捷键,输入输出重定向,wc统计字节单词行数

    历史命令大小:/etc/profile中字段HISTSIZE=1000 历史命令保存文件:~/.bash_history history -c 清空历史命令 history -w 把历史命令写入~/. ...

  6. 命令行下更好显示 postgresql 的查询结果

    之前在用 mysql 的时候发现,当列数特别多的时候,在 linux 命令行下,显示不太友好, 然后可以通过将 sql 末尾的 “:” 改为 “\G” 来处理,详情看 命令行下更好显示 mysql 查 ...

  7. 命令行下更好显示 mysql 查询结果

    在 linux命令行中,直接进行 mysql查询时,有时查询的结果字段较多,显示的效果就很不友好: 但 mysql支持以另一种方式来显示结果,如下: 普通是 SQL 是以分号 ; 结束的,如果改为 \ ...

  8. Linux基础之基本命令cat less more sort uniq alias 命令行 bash简单描述(三)

    获取Linux当前最新的内核版本号经常关注www.kernel.org 目录管理:ls cd pwd mkdir rmdir tree 文件管理:touch stat file rm cp mv na ...

  9. 如何让 Windows 上的命令行工具更好用

    侯爵老师视频详解:如何让 Windows 上的命令行工具更好用 很多 Windows 用户在打开这个小黑窗时,都会情不自禁的感慨,「实在是太丑了--」 实际上如果你用的是 Windows 8 或 Wi ...

随机推荐

  1. PostgreSQL恢复误操作

    根据德歌的博客自己实践一下: 找到要恢复的前一个事物ID,然后回滚到那个时候: 使用pg_xlogdump分析XLOG -bash-4.1$ pg_xlogdump 00000002000000000 ...

  2. velocity与map

    1. 遍历map map<String, Object> mapData = new HashMap<String, Object>(); mapData.put(" ...

  3. VS 2010 转到COFF期间失败。

    可能的原因是framework 版本不匹配,我卸载4.5,装4.0后就解决了

  4. UltraEdit编码设置

    1.查看ue文件编码 一直苦于无法判断文件的编码类型,现在发现一个方法,就是用强大的UltraEdit-32软件: UltraEdit-32的状态栏可以显示文件的编码类型,详细情况如下: ANSCI- ...

  5. (五)java进制

    进制 整数的表示 十进制:   0-9,  满10进1 八进制:   0-7,  满8进1,以0开头 每三位表示一位,三位数中最大的是111,111是7,7是八进制中最大的基数 十六进制:0-15,满 ...

  6. 关于this指向问题的总结【转自秘密花园】

    this 的工作原理 JavaScript 有一套完全不同于其它语言的对 this 的处理机制. 在五种不同的情况下 ,this 指向的各不相同. 第一种:全局范围内 this; 当在全部范围内使用  ...

  7. Navicat for MySQL导入.sql文件

    首先,打开Navicat for MySQL,打开需要使用的连接,新建一个数据库名等按自己的需求填写. 打开创建的数据库,在空白处右键,选择运行SQL文件,然后找到.SQL文件所在地址即可. MySQ ...

  8. WPF导学目录

    很早就知道WPF这个东西,做项目中没用到,也就没去整理学习.作为winForm的升级版,未来windows桌面应用程序的趋势,有些公司招聘需求中也会提到熟悉WPF,于是就整理学习了一下WPF. 主要参 ...

  9. bootstrap table 兼容ie8 -- refreshOptions

    今天项目使用 bootstrap table 在ie8下发现 方法 refreshOptions 报错. 经过调试监控发现错误如下: 153 行 代码 Object.getOwnPropertyNam ...

  10. implicit declaration of function 'init_MUTEX'

    'init_MUTEX' 在新版本系统上已被淘汰 改用sema_init(sem, 1);