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

关于linux中alias的应用

1.如题(系统是win os)

?

我在本地安装的是cygwin。。

?

但是由于频繁的登录linux服务器,其名字是是好长的一串、、、

这就导致了每次登录的时候都比较麻烦、

?

于是后来就想到用alias的办法,给它取个简单易用的名字:

?

比如

?

远程服务器是:

?

development.pvgl.test.com

?

连接的端口号是:9022

?

用户名:tomcat

密码: 无

?

一般的做法是:

?

ssh -p 9022 tomcat@development.pvgl.test.com

?

每次登录都需要输入上面的一大串,是那么的麻烦.

于是我可以如下用alias:

?

在cygwin安装目录下的/home/user /目录下:

user是当前登录用户名。

?

编辑 .bashrc如下:

?

alias devser='ssh -p 9022 tomcat@development.pvgl.test.com'

?

这样定义好了之后,每次登录是,直接连ssh都省了。

?

直接在登录窗口输入:

?

devser

?

即可.

?

2. 定义scp的别名(严格意义上来讲,不是定义别名):

?

比如我要将test目录下的test.txt 和test 目录拷贝到上面的服务器中的tmp目录下:

通过cgydrive进入test目录:

?

一般做法是:

?

scp -P 9022 test.txt tomcat@development.pvgl.test.com:/tmp

?

执行命令即可、、、

?

如果经常这么输入的话,是很繁琐的、、、

?

再者,可不可以像上面一样为scp定义一个类似的别名呢??

答案是否定的、、、

?

但是方法总归是有的、、、

?

我们可以用function来定义

?

同样进入 .bashrc 中编辑:

在# Some example functions 下添加如下一句:

?

#copy file to development server

function scpfdev(){ scp -P 9022 $1 tomcat@development.pvgl.test.com:$2; }

?

【$1】【$2】是两个变量。【$1】是代表要拷贝的源文件,【$2】是代表目标文件夹.

?

这时,我们可以在cygwin窗口中执行如下语句:

?

scpfdev test.txt /tmp/

?

即可。

?

同样,如果要拷贝目录,可以定义如下:

?

#copy file to development server

function scpddev(){ scp -r P 9022 $1 tomcat@development.pvgl.test.com:$2; }

?

注意:上面的function中多了个【r】参数.

?

这时,我们可以在cygwin窗口中执行如下语句:

?

scpddev test /tmp/

?

即可。

?

?

?

?