日期:2014-05-16  浏览次数:20602 次

Linux命令行下的一些小脚本和小技巧

一、一个用户快速目录切换的脚本:
相信很多人在工作中都需要在多个目录之间做切换,频繁地按cdtab键在多个目录之间做切换不光很费时间,最伤不起的是我们的手指,按多了那个 痛啊,这里就介绍一个可以给目录打上标签,然后快速进行多个目录进行切换的脚本,脚本的安装只需要以下三个步骤:

  1. git clone git://github.com/huyng/bashmarks.git
  2. make install
  3. 最后再在~/.bashrc里面加入~/.local/bin/bashmarks.sh就可以

说下脚本怎么使用吧,比如我现在在/home/khotyn/workspace/exodus2下面,现在我要为这个目录打上名字 为"exodus2"的标签,那么只需要用以下命令就可以了"s exodus2",然后,不管在任何一个目录下,你都可以用"g exodus2"回到上面的那个/home/khotyn/workspace/exodus2目录下,怎么样,很方便吧。更多的使用教程可以参考这个项 目的README页面:https://github.com/huyng/bashmarks/blob/master/README.md

二、一个调用默认程序打开命令的文件:
用过Mac OS X的同学可能知道,Mac的终端下有一个强大的命令叫做open,它可以调用文件关联的默认程序来打开文件,比如你想在终端下打开一个pdf,只需 要"open xxx.pdf"就可以调用默认的pdf查看器打开pdf,你要在终端下打开当前目录,只需要"open ."就可以用默认的文件浏览器打开当前目录。

那么Linux下有没有这个命令呢,答案是有的,Linux起同样作用的命令的名字叫做xdg-open,对于使用ubuntu的用户来说,应该 已经默认安装好了,如果没有安装好,可以用以下命令来安装"sudo apt-get install xdg-utils",当然,这个命令名字的名字实在太长,打起来太不方便,你可以做一个简单的aliasalias open="xdg-open"

三、一个将管道内容输出到系统剪切版的命令:
好吧,知道这个命令也是因为Mac终端下有一个叫做pbcopy的命令,可以直接将管道的内容输出到系统剪切板。

废话不多说了,Linux下对应的命令是xclip,可以通过sudo apt-get install xclip来 安装,安装以后试一下效果:‘echo "Hello, world" | xclip’,找一个地方ctrl+v看看?什么?"Hello, world"没有出来?这是因为"Hello, world"就被输出到X的剪切板里了,但是更多时候我们需要将内容输出到系统的剪切板,那么你可以这样做:echo "Hello, world" | xclip -selection clipboard 再去文本编辑器里面看看ctrl+v出来的是不是就是"Hello, world"了?当然,命令太长,同样可以做aliasalias pbcopy="xclip -selection clipboard"

四、一个用于快速合并分支的脚本
在项目中,我们往往需要频繁地合并分支,每一次都需要选择版本号,并且敲一大堆的命令,的确有点烦,于是我写了一个简单的shell脚本来方 便做分支合并,脚本内容如下:

#!/bin/sh
?
## A simple shell script used to merge braches of Subversion.
versions=`svn log $2 --stop-on-copy | grep '^r[0-9]*' | awk '{print $1}'`
head_version=`echo $versions | awk '{print $1}' | grep -o '[0-9]*$'`
tail_version=`echo $versions | awk '{print $NF}' | grep -o '[0-9]*$'`