Bash 是我们经常与之打交道的 Shell 程序,本文针对其使用技巧进行了搜罗。相信在你看过这些内容之后,定会在 Bash 的世界里游刃有余。
- 从历史中执行命令 有时候,我们需要在 Bash 中重复执行先前的命令。你当然可以使用上方向键来查看之前曾经运行过的命令。但这里有一种更好的方式:你可以按 Ctrl + r 组合键进入历史搜索模式,一旦找到需要重复执行的命令,按回车键即可。
- 重复命令参数 先来看一个例子:
mkdir /path/to/exampledir cd !$
本例中,第一行命令将创建一个目录,而第二行的命令则转到刚创建的目录。这里,“!$”的作用就是重复前一个命令的参数。事实上,不仅是命令的参数可以重复,命令的选项同样可以。另外,Esc + . 快捷键可以切换这些命令参数或选项。
- 用于编辑的快捷键
- Ctrl + a:将光标定位到命令的开头
- Ctrl + e:与上一个快捷键相反,将光标定位到命令的结尾
- Ctrl + u:剪切光标之前的内容
- Ctrl + k:与上一个快捷键相反,剪切光标之后的内容
- Ctrl + y:粘贴以上两个快捷键所剪切的内容
- Ctrl + t:交换光标之前两个字符的顺序
- Ctrl + w:删除光标左边的参数(选项)或内容
- Ctrl + l:清屏
- 处理作业 首先,使用 Ctrl + z 快捷键可以让正在执行的命令挂起。如果要让该进程在后台执行,那么可以执行 bg 命令。而 fg 命令则可以让该进程重新回到前台来。使用 jobs 命令能够查看到哪些进程在后台执行。 你也可以在 fg 或 bg 命令中使用作业 id,如:
fg %3
又如: bg %7
- 使用置换
- 命令置换 先看例子:
du -h -a -c $(find . -name *.conf 2>&-)
注意 $() 中的部分,这将告诉 Bash 运行 find 命令,然后把返回的结果作为 du 的参数。
- 进程置换 仍然先看例子:
diff <(ps axo comm) <(ssh user@host ps axo comm)
该命令将比较本地系统和远程系统中正在运行的进程。请注意 <() 中的部分。
- 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
这里的数字代表:
上面的命令中,“grep init”不仅搜索“ps aux”的标准输出,而且搜索 sterr 输出。
The best tips & tricks for bash, explained [Linux Tutorials Blog]
(Thanks to Rechosen!)
分享到:
相关推荐
Bash 使用文档 bash 是一种广泛使用的 shellcript 语言,主要应用于 Linux 操作系统中。下面是 bash 的一些重要知识点: 一、什么是 shell shell 是 Linux 系统中,用户和内核之间的交互程序。它翻译用户输入的...
Gitxmind GIt bash 使用 xmindGitxmind GIt bash 使用 xmindGitxmind GIt bash 使用 xmindGitxmind GIt bash 使用 xmindGitxmind GIt bash 使用 xmindGitxmind GIt bash 使用 xmind
当Bash使用未声明变量时使脚本退出 未初始化的变量可能导致脚本行为不可预测。为了避免这种情况,可以在脚本开头设置`nounset`选项。这样,如果脚本尝试使用未声明的变量,将会触发一个错误并使脚本退出。 ```...
Git Bash使用详细
Bash函数是可以重复使用的命令块,用户可以定义自己的函数,然后在脚本中调用这些函数。函数可以接受参数,可以返回值。 7. Bash流程控制 Bash提供了多种流程控制方法,包括: * 条件语句:if、elif、else等 * ...
Bash Script 是 UNIX/Linux 中非常重要的软件之一,几乎所有的 Linux 和大部分的 UNIX 都可以使用 Bash。Shell 作为系统与用户之间的交互接口,几乎是你在 UNIX 工作平台上最亲密的朋友,因此,学好 shell 是学习 ...
总的来说,掌握Bash高级编程技巧不仅能够让你在日常的Linux使用中得心应手,还能为你的IT职业生涯开启新的可能性,特别是在系统管理、持续集成、自动化测试等领域。因此,无论你是初学者还是经验丰富的开发者,深入...
通过以上步骤,你可以在AIX 6.1系统上成功安装并使用bash 4.2版本。记住,更新shell后,系统管理员应确保所有脚本和程序都能与新版本兼容,因为不同版本的Bash可能有不同的语法和行为。此外,定期更新和维护软件包是...
"bash 官方手册/Bash Reference Manual" bash 官方手册是 GNU 项目的一部分,由 Chet Ramey 和 Brian Fox 编写,提供了 Bash shell 的详细参考手册。该手册涵盖了 Bash shell 的所有方面,包括基本语法、shell ...
使用像EditPlus这样的编辑器,结合定制的Bash语法高亮和自动补全功能,可以极大地提升Bash脚本开发的生产力。 安装和使用这些配置文件非常简单。只需将`bash.acp`和`bash.stx`文件复制到EditPlus的安装目录下的...
**Linux Bash风格指南:规范、最佳实践与实用技巧** 在Linux世界中,Bash shell脚本是日常自动化任务和系统管理的重要工具。了解并遵循良好的Bash编程风格,不仅可以提高脚本的可读性和可维护性,还能避免潜在错误...
Bash使用 命令补齐相关 常用的快捷键 编程相关 变量 参 数 函数 操作符 条件测试和流程控制 算术运算 输入和输出重定向 信号与自陷 作业控制 注意与建议 代码sample 配置文件 bash...
综上所述,bash v203的Windows本地实现为Windows用户提供了一种在本地环境中直接使用Unix/Linux命令行工具的方式,结合UnxUtils,可以极大地增强Windows系统的命令行功能,尤其对于开发者和系统管理员而言,这是一个...
此外,检查当前系统的Bash版本,可以使用`bash --version`命令。 ### 二、下载与解压 1. 首先,从可靠来源下载Bash 4.4的源代码包,这里提供的是`bash-4.4.tar.gz`。可以使用`wget`命令下载,例如: ``` wget ...
编写高效、可维护的Bash脚本需要遵循一定的最佳实践,如注释、错误处理、适当使用变量和函数,以及避免命令替换和引用陷阱。 通过深入阅读《高级Bash Shell手册》并实践其中的示例,用户可以掌握Bash的高级特性和...
通过深入浅出的解析和丰富的示例,本书旨在帮助新手快速掌握Bash命令行工具的使用技巧,从而提升他们在Linux环境下的工作效率。无论是对于初学者还是有一定经验的用户来说,这本手册都将是一份宝贵的资源。
通过实践书中的每个脚本,你将逐渐掌握bash的语法和技巧,从而能够编写出自己的实用脚本来解决实际问题。 此外,bash脚本的编写也对提高英语水平有所帮助,因为大多数开源文档和技术资料都是英文的。在实践中学习...
在Linux系统中,Bash(Bourne-Again SHell)是一种广泛使用的命令行解释器,它提供了丰富的功能,包括文件、算术和字符串的测试与比较。掌握Bash的测试和比较操作对于提高Linux使用效率和编写shell脚本至关重要。在...
执行Bash脚本,可以使用`bash hello`或`sh hello`命令。若要使脚本可直接运行,需使用`chmod`命令赋予执行权限,如`chmod u+x hello`,然后通过`./hello`运行。 3. **变量与运算** Bash中的变量定义无需预声明,...