admin管理员组文章数量:1586680
Linux常用命令指南 - set 命令 高效命令行终端技巧
set 命令 高效命令行终端技巧
- Linux常用命令指南 - set 命令 高效命令行终端技巧
- 前言
- 一、set 是什么?
- 二、set help 中文手册
- 三、 set 启用 vi 风格的行编辑界面
- 四、终端使用Bang(!)提高效率
- 五、终端进行历史命令搜索
- 总结
前言
程序员经常在终端上进行执行各种命令,提高终端下的工作效率是很有必要的。本文主要介绍在终端下使用set 启动vi编辑模式 来快速输入命令的技巧,同时也会涉及 Bang(!) 命令。
一、set 是什么?
set指令能设置所使用shell的执行方式,可依照不同的需求来做设置。
二、set help 中文手册
以下是 set --help 的输出:
$ set --help
set: set [-abefhkmnptuvxBCEHPT] [-o 选项名] [--] [-] [参数 ...]
设定或取消设定 shell 选项和位置参数的值。
改变 shell 属性和位置参数的值,或者显示 shell 变量的名称和值。
选项:
-a 标记修改的或者创建的变量为导出变量。
-b 在任务终止时立即进行通知。
-e 如果一个命令以非零状态退出,则立即退出。
-f 禁用文件名生成(通配符匹配)。
-h 查找命令时记住它们的位置。
-k 所有的赋值参数都会进入命令的环境,而不仅仅是命令名称
之前的参数。
-m 启用任务控制。
-n 读取命令但不执行。
-o 选项名
设定与 <选项名> 对应的变量:
allexport 与 -a 相同
braceexpand 与 -B 相同
emacs 使用 emacs 风格的行编辑界面
errexit 与 -e 相同
errtrace 与 -E 相同
functrace 与 -T 相同
hashall 与 -h 相同
histexpand 与 -H 相同
history 启用命令历史
ignoreeof shell 读取到 EOF 时不会退出
interactive-comments
允许交互式命令中出现注释
keyword 与 -k 相同
monitor 与 -m 相同
noclobber 与 -C 相同
noexec 与 -n 相同
noglob 与 -f 相同
nolog 目前可接受,但会被忽略
notify 与 -b 相同
nounset 与 -u 相同
onecmd 与 -t 相同
physical 与 -P 相同
pipefail 流水线的返回值是最后一个以非零状态退出的命令的退出
状态,或者如果没有命令以非零状态退出,则返回零。
posix 改变 bash 中默认操作和 Posix 标准不同的行为,
以符合标准
privileged 与 -p 相同
verbose 与 -v 相同
vi 使用 vi 风格的行编辑界面
xtrace 与 -x 相同
-p 只要真实用户 ID 和有效用户 ID 不匹配时就会被打开。
禁用对 $ENV 文件的处理以及 shell 函数的导入。关闭此选项
会导致有效 uid 和 gid 被设定为真实 uid 和 gid。
-t 读取并执行一个命令之后退出。
-u 替换时将未设定的变量视为错误。
-v 读取 shell 输入行时将其打印。
-x 执行命令时打印命令及其参数。
-B shell 会执行大括号展开。
-C 设定之后,禁止以重定向输出的方式覆盖普通文件。
-E 设定之后,ERR 陷阱会被 shell 函数继承。
-H 启用 ! 风格的历史替换。当 shell 是交互式的时候这个标志默认打开。
-P 设定之后,当执行会改变当前目录的命令,例如 cd 时,不解析符号链接。
-T 设定之后,DEBUG 和 RETURN 陷阱会被 shell 函数继承。
-- 将所有剩余的参数赋值给位置参数。
如果没有剩余的参数,则取消设定位置参数。
- 将所有剩余的参数赋值给位置参数。
关闭 -x 和 -v 选项。
使用 + 而不是 - 会关闭标志。标志也可以在 shell 被启动时使用。当前已设定的
标志可以在 $- 变量中找到。剩余的 n 个 <参数> 是位置参数,并且会被按顺序
赋值给 $1, $2, .. $n。如果没有给定 <参数>,则打印所有的 shell 变量。
退出状态:
返回成功,除非使用了无效的参数
三、 set 启用 vi 风格的行编辑界面
以下是默认的终端命令行移动,但是实际上使用起来速度很慢,有一定局限性。
// 1. Esc相关,通过此种方式可以不用每次更改alt,这样alt就可以操作菜单栏了
M + b // 先单击 Esc 键,然后再按 b 键,往回(左)移动一个单词
M + f // 往后(右)移动一个单词
M + d // 由光标位置开始,删除单词,直到该单词结束。
M + num + cmd // 这种格式可以重复多次cmd命令,如 M + 4 + ctrl + f 向右移动4个字符
M + Ctrl + ] + char // 向左搜索char字符, M + ctrl + ] + b 向左搜索b字符
// 2. Ctrl相关
Ctrl + u // 由光标所在位置开始,剪切左方所有的字符,直到该行开始。
Ctrl + k // 由光标所在位置开始,剪切右方所有的字符,直到该行结束。
Ctrl + y // 复制已剪贴的字符串
Ctrl + a // 移到行首
Ctrl + e // 移到行尾
Ctrl + b // 往回(左)移动一个字符
Ctrl + f // 往后(右)移动一个字符
Ctrl + ] + char // 向右搜索char字符, ctrl + ] + b 向右搜索b字符
为了提高光标移动速度,因此有了以下解决方案:
$ set -o vi on # 启用 vi 编辑模式,跳转和 vi 一致
四、终端使用Bang(!)提高效率
Bang(!)命令,可以减少键盘输入,大大提高程序员的工作效率。
$ !! # 上一条命令
$ !* # 使用上一条命令的所有参数
$ !$ # 使用上一条命令的最后一个参数
$ !:- # 使用上一条命令中除了最后一个参数的部分,在ps -ef | grep pid中使用很高效
$ ^foo^bar # 替换上一条命令中的一个部份,仅替换第一个
$ !!:gs/foo/bar # 替换上一条命令中的一个部份,替换所有
五、终端进行历史命令搜索
首先,命令行输入stty ixany 和 stty -ixon 开启 Ctrl+S 能够被bash吸收。
搜索命令时上翻: Ctrl+R
搜索命令时下翻: Ctrl+S
总结
以上就是今天要讲的内容,本文介绍了set 启动vi编辑模式 来快速输入命令的技巧,同时也会涉及 Bang(!) 命令。
版权声明:本文标题:Linux常用命令指南 - set命令 高效命令行终端技巧 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1727985976a1141037.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论