ZSH使用技巧

1. ‘cd’命令的自动补全
1
cd <TAB>

当你在Bash中按下键,你会看到当前目录的文件列表。

2. ‘ls’命令自动补全
1
ls <TAB>
3. 聪明的历史记录

以输入命令的一部分并按下键。它会找到历史记录中最后一条以’ls’开头的指令。如果需要,我们可以继续点击向上键循环查找。

4. 命令历史共享

在Bash中,每一个shell都有自己的历史。Zsh与所有现行的shell共享命令历史。这意味着你不必记住你在哪里输入过命令。

5. 环境变量展开

在Zsh中,你可以按下键来展开这些值。

1
$JAVA_HOME <TAB>
6. 进程关闭命令的自动补全

通常,我会在用ps命令查看进程值后使用kill命令,或者如果明确可以使用pkill,Zsh给了你另外一个选择。

1
kill -9 <TAB>
7. 那个选项是什么?

为了弄明白一条命令如何工作,通常你会尝试执行它,或者不带参数,带-help参数或者查看帮助页面。Zsh给了你另外一个选择。

输入选项的开始,然后点击

1
ls -<TAB>

上述操作会列举出有内联说明的选项名称。你也可以选择使用键盘导航。

这不只限于ls命令。同样适用于大量像netstat,git和chmod这样的令人困惑的命令。

8. Git的改善

每个人都有自己最喜欢的git命令的别名。oh-my-zsh也有大量的别名。

1
2
3
4
g=git
gc=git commit -v
ga=git add
...
9. 当进入git控制的目录时,它还能改善给你的提示。

比如:

  • 小的闪电符号是在提示当前目录下有未提交的更改。

  • 开头的绿色箭头。这表明上一条命令被正确执行。如果命令失败,那么在下一条指令被正确执行前该提示符会变成红色。

10. 文件名生成

在Bash中,我经常使用find命令和xargs一起进行查找,使用它们完成任务。Zsh内建的globbing支持涵盖了大部分的应用场景。

假设我们需要验收项目,只需要找出今天发生变更的文件。

1
ls (*m0)

我们可以给ls命令的搜索部分添加限制参数来筛选出我们想要的。

11. 使用**递归的搜索。
1
ls **/test

使用修饰符来递归查找超过20mb的文件。

1
ls -lh **/*(Lm+20)
12. 有用的别名

和git的别名一样,oh-my-zsh也有很多有用的常用别名。

1
2
3
4
..=cd ..
-=cd -
...=cd ../../
...