Bash技巧和窍门

在大多数现代Linux发行版中,bash(Bourne Again Shell)是默认的shell。bash内置了许多功能和选项,可帮助您提高命令行效率。Bash技巧和窍门有很多,这里只列举常见的用法,提高生产效率。

快捷键绑定

鼠标的发明提高了用户效率,但仅在图形用户界面中有效。在终端上,键盘快捷键为王。Bash有许多键盘快捷键(按键绑定),可用于轻松高效地在终端上移动。如果您习惯于使用这些绑定,您会注意到您的生产率飞速增长。

要列出所有键绑定,请使用带有-P选项的bind命令。

$ bind -P
"\C-g": abort
"\C-x\C-g": abort
"\e\C-g": abort
"\C-j": accept-line
"\C-m": accept-line
# alias-expand-line (not bound)
# arrow-key-prefix (not bound)
# backward-byte (not bound)
"\C-b": backward-char
"\eOD": backward-char
"\e[D": backward-char
"\C-h": backward-delete-char
"\C-?": backward-delete-char
"\C-x\C-?": backward-kill-line
"\e\C-h": backward-kill-word
"\e\C-?": backward-kill-word

移动光标

CTRL + A =将光标移至行的开头
CTRL + E =将光标移至行的末尾
ALT + F =向前移动一个单词
ALT + B =向后移动一个单词

文字编辑

CTRL + L =清除屏幕(不会清除当前命令)
ALT + U =光标后大写字母
ALT + L = 光标后小写字母

进程控制

CTRL + C =中断当前正在运行的进程
CTRL + S =停止输出到屏幕
CTRL + Q =恢复输出到屏幕
CTRL + Z =暂停当前进程,使用“ fg”返回到当前进程。

历史命令

Bash会保留您输入的每个命令的运行记录。此bash历史记录可让您重复或重用旧的命令或参数

重复上一条命令

如果要重复上一个命令,只需使用!!代号。

bash-3.2$ ls
a.out
bash-3.2$ !!
ls
a.out

重复以特定字符串开头的最后一个命令

您可以使用!来向后搜索搜索历史记录,并执行使用指定字符串运行的最后一条命令。

bash-3.2$ echo "data"
data
bash-3.2$ !ec
echo "data"
data
bash-3.2$ 

重用最后一个命令的参数

您可以使用!$或!!:1指示符从最后一个命令中检索自变量。

bash-3.2$ ls a.php
a.php
bash-3.2$ cat !$
cat a.php
<?php
$a = 10;
?>
bash-3.2$ 

使用命令别名

使用alias命令可以定义命令快捷方式。这些快捷方式可以指向带有您喜欢的参数的单个命令,也可以指向一长串命令。

alias ll="ls -al"

指令替换

通过命令替换,您可以在另一个命令内部使用命令的输出.

$ today=$(date +%m-%d-%Y)
$ echo $today

快捷导航文件系统

返回主目录

cd ~

返回上一个目录

cd -
Linux IO,标准流和重定向
Shell Awk简介
Tags:,