Bash 是我们经常与之打交道的 Shell 程序,本文针对其使用技巧进行了搜罗。相信在你看过这些内容之后,定会在 Bash 的世界里游刃有余。
* 从历史中执行命令
有时候,我们需要在 Bash 中重复执行先前的命令。你当然可以使用上方向键来查看之前曾经运行过的命令。但这里有一种更好的方式:你可以按 Ctrl + r 组合键进入历史搜索模式,一旦找到需要重复执行的命令,按回车键即可。
* 重复命令参数
先来看一个例子:
mkdir /path/to/exampledir
cd !$
本例中,第一行命令将创建一个目录,而第二行的命令则转到刚创建的目录。这里,“!$”的作用就是重复前一个命令的参数。事实上,不仅是命令的参数可以重复,命令的选项同样可以。另外,Esc + . 快捷键可以切换这些命令参数或选项。
* 用于编辑的快捷键
o Ctrl + a:将光标定位到命令的开头
o Ctrl + e:与上一个快捷键相反,将光标定位到命令的结尾
o Ctrl + u:剪切光标之前的内容
o Ctrl + k:与上一个快捷键相反,剪切光标之后的内容
o Ctrl + y:粘贴以上两个快捷键所剪切的内容
o Ctrl + t:交换光标之前两个字符的顺序
o Ctrl + w:删除光标左边的参数(选项)或内容
o Ctrl + l:清屏
* 处理作业
首先,使用 Ctrl + z 快捷键可以让正在执行的命令挂起。如果要让该进程在后台执行,那么可以执行 bg 命令。而 fg 命令则可以让该进程重新回到前台来。使用 jobs 命令能够查看到哪些进程在后台执行。
你也可以在 fg 或 bg 命令中使用作业 id,如:
fg %3
又如:
bg %7
* 使用置换
o 命令置换
先看例子:
du -h -a -c $(find . -name *.conf 2>&-)
注意 $() 中的部分,这将告诉 Bash 运行 find 命令,然后把返回的结果作为 du 的参数。
o 进程置换
仍然先看例子:
diff <(ps axo comm) <(ssh user@host ps axo comm)
该命令将比较本地系统和远程系统中正在运行的进程。请注意 <() 中的部分。
o xargs
看例:
find . -name *.conf -print0 | xargs -0 grep -l -Z mem_limit | xargs -0 -i cp {} {}.bak
该命令将备份当前目录中的所有 .conf 文件。
* 使用管道
下面是一个简单的使用管道的例子:
ps aux | grep init
这里,“|”操作符将 ps aux 的输出重定向给 grep init。
下面还有两个稍微复杂点的例子:
ps aux | tee filename | grep init
及:
ps aux | tee -a filename | grep init
* 将标准输出保存为文件
你可以将命令的标准输出内容保存到一个文件中,举例如下:
ps aux > filename
注意其中的“>”符号。
你也可以将这些输出内容追加到一个已存在的文件中:
ps aux >> filename
你还可以分割一个较长的行:
command1 | command2 | ... | commandN > tempfile1
cat tempfile1 | command1 | command2 | ... | commandN > tempfile2
* 标准流:重定向与组合
重定向流的例子:
ps aux 2>&1 | grep init
这里的数字代表:
o 0:stdin
o 1:stdout
o 2:sterr
上面的命令中,“grep init”不仅搜索“ps aux”的标准输出,而且搜索 sterr 输出。
原文地址:
http://blog.chinaunix.net/u1/37411/showart_289914.html
分享到:
相关推荐
Bash使用
学习git和gitbash使用的一些详细操作,学习git和gitbash使用的一些详细操作
Gitxmind GIt bash 使用 xmindGitxmind GIt bash 使用 xmindGitxmind GIt bash 使用 xmindGitxmind GIt bash 使用 xmindGitxmind GIt bash 使用 xmindGitxmind GIt bash 使用 xmind
专业技术文档
Bash使用 命令补齐相关 常用的快捷键 编程相关 变量 参 数 函数 操作符 条件测试和流程控制 算术运算 输入和输出重定向 信号与自陷 作业控制 注意与建议 代码sample 配置文件 bash...
bash官方手册/Bash Reference Manual
BASH官方文档,BASH官方文档,BASH官方文档
Shell 脚本编程 是你在 Linux 下学习或练习编程的最简单的方式。尤其对 系统管理员要处理着自动化任务,且要开发新的简单的实用程序或工具等(这里只是仅...本文中,我们将分享 9 个写出高效可靠的 bash 脚本的实用技巧
这个技巧可以帮助您解密不同类型的文件、算术和字符串测试,这样您就能够知道什么时候使用 test、 [ ]、 [[ ]]、 (( )) 或 if-then-else 了。本文介绍了如何理解和使用 Bash shell的测试和比较操作。
RHCERHCE bash RHCE bash RHCE bash RHCE bash RHCE bash RHCE bash RHCE bash bash
bash 入门经典 不可不看哦 bash 入门经典 不可不看哦 bash 入门经典 不可不看哦
这本书介绍了bash大量的细节和广阔的范围,使用大量的例子详细地介绍了 Bash的语法,各种技巧,调试等等的技术,以循序渐进的学习方式,让你了解Bash的所有特性,在书中还有许多练习可以引导你思考,以得到更深入的...
Bash风格指南:规范、最佳实践和实用技巧
本书还介绍了shell编程,一种UNIX或Linux用户不可或缺的技巧,阐述了如何使用bash的编程特性完成各种功能。读者还将学习流程控制、信号处理以及命令行处理和I/O方面的内容以及如何调试bash程序。
Shell),几乎所有的Linux 和绝大部分的UNIX 都可以使用Bash。作为系统与用户之间的交互接口,shell 几乎是你在UNIX 工作平台上最亲密的朋友,因此,学好shell,是学习Linux/UNIX 的的开始,并且它 会始终伴随你的...
官方的bash手册 讲述bash脚本语法规范 和linux相关配置 很好的资料
linux 服务器GNU Bash小于版本4.3有操作系统命令注入漏洞,需要对bash升级,下载解压 #tar zxvf bash-4.4.tar.gz #cd bash-4.4 #./configure (如果centos7编译失败,请先安装#yum install gcc) #make #make ...
鉴于目前绝大部分服务器因为没有注册的yum或者因不通外网等问题导致无法使用yum update -y bash 命令进行漏洞修复,如采用RPM包升级修复漏洞又存在各服务器系统有的是32位有的是64位或者bash的版本不一样导致需要...
bash.bash_logout888
bash入门学习实例