File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -209,23 +209,21 @@ done
209209
210210## 别名
211211
212- ` alias ` 命令用来为一个命令指定别名。
212+ ` alias ` 命令用来为一个命令指定别名,这样更便于记忆。下面是 ` alias ` 的格式 。
213213
214214``` bash
215215alias NAME=DEFINITION
216216```
217217
218- 上面命令中,` Name ` 是别名的名称,` DEFINITION ` 是别名对应的原始命令。
218+ 上面命令中,` Name ` 是别名的名称,` DEFINITION ` 是别名对应的原始命令。注意,等号两侧不能有空格,否则会报错。
219219
220- 下面的例子是指定 ` ls -ltr ` 命令的别名为 ` lt ` 。
220+ 最常见的就是为 ` grep ` 命令起一个 ` search ` 的别名 。
221221
222222``` bash
223- $ alias lt= ' ls -ltr '
223+ alias search=grep
224224```
225225
226- 指定别名以后,就可以像使用其他命令一样使用别名。一般来说,都会把常用的别名写在` ~/.bashrc ` 的末尾。
227-
228- 下面是通过别名定义` today ` 命令的写法。
226+ ` alias ` 也可以用来为长命令指定一个更短的别名。下面是通过别名定义` today ` 命令的写法。
229227
230228``` bash
231229$ alias today=' date +"%A, %B %-d, %Y"'
@@ -241,6 +239,8 @@ $ alias rm='rm -i'
241239
242240上面命令指定` rm ` 命令是` rm -i ` ,每次删除文件之前,都会让用户确认。
243241
242+ 指定别名以后,就可以像使用其他命令一样使用别名。一般来说,都会把常用的别名写在` ~/.bashrc ` 的末尾。另外,只能为命令定义别名,为其他部分(比如很长的路径)定义别名是无效的。
243+
244244直接调用` alias ` 命令,可以显示所有别名。
245245
246246``` bash
Original file line number Diff line number Diff line change @@ -280,7 +280,7 @@ $ set -o vi
280280$ set -o emacs
281281```
282282
283- ## 总结
283+ ## set 命令总结
284284
285285` set ` 命令的上面这四个参数,一般都放在一起使用。
286286
@@ -301,6 +301,34 @@ set -o pipefail
301301$ bash -euxo pipefail script.sh
302302```
303303
304+ ## shopt 命令
305+
306+ ` shopt ` 命令用来调整 Shell 的参数,跟` set ` 命令的作用很类似。主要原因是` set ` 是从 Ksh 继承的,属于 POSIX 规范的一部分,而` shopt ` 是 Bash 特有的。
307+
308+ 接输入` shopt ` 可以查看所有参数,以及它们各自打开和关闭的状态。
309+
310+ ``` bash
311+ $ shopt
312+ ```
313+
314+ ` -s ` 用来打开某个参数。
315+
316+ ``` bash
317+ $ shopt -s optionNameHere
318+ ```
319+
320+ ` -u ` 用来关闭某个参数。
321+
322+ ``` bash
323+ $ shopt -u optionNameHere
324+ ```
325+
326+ 举例来说,` histappend ` 这个参数表示退出当前 Shell 时,将操作历史追加到历史文件中。这个参数默认是打开的,如果使用下面的命令将其关闭,那么当前 Shell 的操作历史将替换掉整个历史文件。
327+
328+ ``` bash
329+ $ shopt -u histappend
330+ ```
331+
304332## 参考链接
305333
306334- [ The Set Builtin] ( https://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html )
You can’t perform that action at this time.
0 commit comments