常用快捷键
编辑命令
-
使用 Ctrl-R 而不是上下光标键来查找历史命令。
-
使用 Ctrl-W 来删除最后一个单词
-
使用 Ctrl-U 来删除一行
-
Ctrl + a :移到命令行首
-
Ctrl + e :移到命令行尾
-
Command + K:清空当前 session
-
Alt + f :按单词前移(右向) - 并不行(macOS下用Esc + F)
-
Alt + b :按单词后移(左向) - 并不行(macOS下用Esc + B)
-
Ctrl + u :从光标处删除至命令行首 - macOS下OK
-
Ctrl + k :从光标处删除至命令行尾 - macOS下OK
-
Ctrl + w :从光标处删除至字首 - macOS下OK
-
Alt + d :从光标处删除至字尾
在macOS下使用iTerm2,可以使用
- Option ⌥ + ← 和 Option ⌥ + → 来按 word 移动
- 使用Option ⌥ + ⌫ 来向左按 word 删除
(from https://apple.stackexchange.com/questions/154292/iterm-going-one-word-backwards-and-forwards)。
请man bash后查找Readline Key Bindings一节来看看bash的默认热键。
常用命令
- 回到上一次的工作目录: cd – (回到home是 cd ~)
临时执行命令
在bash 脚本中,subshells (写在圆括号里的) 是一个很方便的方式来组合一些命令。一个常用的例子是临时地到另一个目录中,例如:
# do something in current dir
(cd /some/other/dir; other-command)
# continue in original dir
变量
在 bash 中,注意那里有很多的变量展开。如:检查一个变量是否存在: ${name:?error message}
。如果一个bash的脚本需要一个参数,也许就是这样一个表达式 input_file=${1:?usage: $0 input_file}
。一个计算表达式: i=$(( (i + 1) % 5 ))
。
生成序列
一个序列: {1..10}
截断字符串
截断一个字符串: ${var%suffix}
和 ${var#prefix}
。 示例: if var=foo.pdf, then echo ${var%.pdf}.txt prints “foo.txt”
.
以root的身份执行上一条命令 -sudo !!
以root的身份执行上一条命令 。
场景举例:比如Ubuntu里用apt-get
安装软件包的时候是需要root身份的,我们经常会忘记在apt-get
前加sudo
。每次不得不加上sudo
再重新键入这行命令,这时可以很方便的用sudo !!
完事。
在shell下,有时候你会输入很长的命令,你可以使用!xxx来重复最近的一次命令,比如,你以前输入过,vi /where/the/file/is, 下次你可以使用 !vi 重得上次最近一次的vi命令。
python -m SimpleHTTPServer
一句话实现一个HTTP服务,把当前目录设为HTTP服务目录,可以通过http://localhost:8000
访问 这也许是这个星球上最简单的HTTP服务器的实现了。
Better Command
ccat - cat
bat 增强了 cat
命令 。如果你想要有语法高亮的 cat
,可以试试 ccat 命令。
$ wget https://github.com/jingweno/ccat/releases/download/v1.1.0/linux-amd64-1.1.0.tar.gz
$ tar xfz linux-amd64-1.1.0.tar.gz
$ cp linux-amd64-1.1.0/ccat /usr/local/bin/
htop 是 top 的一个加强版。然而,还有很多的各式各样的top,比如:用于看IO负载的 iotop,网络负载的 iftop, 以及把这些top都集成在一起的 atop。
tldr - man
man
命令是好读文档的命令,但是man的文档有时候太长了,所以,你可以试试 tldr 命令,把文档上的一些示例整出来给你看。
$ npm install -g tldr
https://github.com/tldr-pages/tldr
$ ln -s /usr/local/bin/tldr /usr/local/bin/man2
hstr - 搜索以前打过的命令
如果你想搜索以前打过的命令,不要再用 Ctrl +R 了,你可以使用加强版的 hstr 。
HSTR (HiSToRy) is a command line utility that brings improved bash
/zsh
command completion from the history. It aims to make completion easier and more efficient than Ctrl-r.
# install on macOS
$ brew install hstr
Configure HSTR just by running:
# bash
hstr --show-configuration >> ~/.bashrc
# zsh
hstr --show-configuration >> ~/.zshrc
https://github.com/dvorka/hstr
ag - 比grep、ack更快的递归搜索文件内容
mycli - mysql客户端,支持语法高亮和命令补全,效果类似ipython,可以替代mysql命令
glances - 更强大的 htop / top 代替者
axel - 多线程下载工具(Replace curl, wget)
axel -n 20 http://centos.ustc.edu.cn/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1511.iso
cloc - 代码统计工具,能够统计代码的空行数、注释行、编程语言
$ cloc .
296 text files.
296 unique files.
7 files ignored.
github.com/AlDanial/cloc v 1.90 T=1.60 s (180.8 files/s, 250149.3 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
Go 265 18945 5653 363660
Protocol Buffers 9 1599 1349 8618
XML 4 0 0 893
JSON 4 13 0 320
YAML 3 11 11 61
make 1 13 7 35
SQL 1 5 0 15
Markdown 1 5 0 14
Bourne Shell 2 2 0 11
-------------------------------------------------------------------------------
SUM: 290 20593 7020 373627
Reference
- https://coolshell.cn/articles/8883.html
- https://coolshell.cn/articles/19219.html
- https://github.com/zsh-users/zsh-autosuggestions#key-bindings
- https://coolshell.cn/articles/8883.html
- https://coolshell.cn/articles/8619.html
- https://mp.weixin.qq.com/s/PkIUB3zTYpTXKcrgZg4f-A