Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1359101
  • 博文数量: 828
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5030
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-29 13:29
文章分类

全部博文(828)

文章存档

2011年(1)

2008年(827)

我的朋友

分类: LINUX

2008-08-29 13:39:53

 
Bash使用技巧大补贴

2007-03-28ToyPostedinTipsRSSTrackback

Bash是我们经常与之打交道的Shell程序,本文针对其使用技巧进行了搜罗。相信在你看过这些内容之后,定会在Bash的世界里游刃有余。

*从历史中执行命令

有时候,我们需要在Bash中重复执行先前的命令。你当然可以使用上方向键来查看之前曾经运行过的命令。但这里有一种更好的方式:你可以按Ctrl r组合键进入历史搜索模式,一旦找到需要重复执行的命令,按回车键即可。
*重复命令参数

先来看一个例子:

mkdir/path/to/exampledir
cd!$

本例中,第一行命令将创建一个目录,而第二行的命令则转到刚创建的目录。这里,“!$”的作用就是重复前一个命令的参数。事实上,不仅是命令的参数可以重复,命令的选项同样可以。另外,Esc .快捷键可以切换这些命令参数或选项。
*用于编辑的快捷键
oCtrl a:将光标定位到命令的开头
oCtrl e:与上一个快捷键相反,将光标定位到命令的结尾
oCtrl u:剪切光标之前的内容
oCtrl k:与上一个快捷键相反,剪切光标之后的内容
oCtrl y:粘贴以上两个快捷键所剪切的内容
oCtrl t:交换光标之前两个字符的顺序
oCtrl w:删除光标左边的参数(选项)或内容
oCtrl l:清屏
*处理作业

首先,使用Ctrl z快捷键可以让正在执行的命令挂起。如果要让该进程在后台执行,那么可以执行bg命令。而fg命令则可以让该进程重新回到前台来。使用jobs命令能够查看到哪些进程在后台执行。

你也可以在fg或bg命令中使用作业id,如:
fg%3

又如:
bg%7
*使用置换
o命令置换

先看例子:
du-h-a-c$(find.-name*.conf2>&-)

注意$()中的部分,这将告诉Bash运行find命令,然后把返回的结果作为du的参数。
o进程置换

仍然先看例子:
diff<(psaxocomm)<(sshuser@hostpsaxocomm)

该命令将比较本地系统和远程系统中正在运行的进程。请注意<()中的部分。
oxargs

看例:
find.-name*.conf-print0|xargs-0grep-l-Zmem_limit|xargs-0-icp{}{}.bak

该命令将备份当前目录中的所有.conf文件。
*使用管道

下面是一个简单的使用管道的例子:
psaux|grepinit

这里,“|”操作符将psaux的输出重定向给grepinit。

下面还有两个稍微复杂点的例子:
psaux|teefilename|grepinit

及:
psaux|tee-afilename|grepinit
*将标准输出保存为文件

你可以将命令的标准输出内容保存到一个文件中,举例如下:
psaux>filename

注意其中的“>”符号。

你也可以将这些输出内容追加到一个已存在的文件中:
psaux>>filename

你还可以分割一个较长的行:
command1|command2|...|commandN>tempfile1
cattempfile1|command1|command2|...|commandN>tempfile2
*标准流:重定向与组合

重定向流的例子:
psaux2>&1|grepinit

这里的数字代表:
o0:stdin
o1:stdout
o2:sterr

上面的命令中,“grepinit”不仅搜索“psaux”的标准输出,而且搜索sterr输出。

Bash 使用技巧Bash 使用技巧Bash 使用技巧Bash 使用技巧Bash 使用技巧Bash 使用技巧Bash 使用技巧Bash 使用技巧Bash 使用技巧Bash 使用技巧
阅读(472) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~