标签: zsh

与 zsh 相比,bash 的独特之处

我已经成为 zsh 用户有一段时间了(在那个 tcsh 之前和那个 csh 之前)。我对它很满意,但想知道 zsh 中是否存在任何引人注目的 bash 功能。相反,是否有 bash 中不存在的 zsh 功能。我目前的感觉是 bash 更好:

  • 如果您已经熟悉它并且不想学习新的语法。
  • 默认情况下,它将存在于大多数 *nix 机器上,而 zsh 可能需要额外安装。

不想在这里开始一场宗教战争,这就是为什么我只是在寻找仅存在于一个外壳中的功能。

shell bash zsh

67
推荐指数
5
解决办法
2万
查看次数

有没有理由在 zsh 上使用 bash?

我很好奇为什么要运行 bash 而不是 zsh。我的意思是 zsh 与 bash 完全向后兼容。不要误会我的意思:我不喜欢 bash 或任何东西。我只是真的想知道使用它是否比 zsh 有任何优势。

那么有什么理由使用 bash 而不是 zsh 呢?

scripting shell bash zsh

35
推荐指数
6
解决办法
2万
查看次数

如何让 zsh 完成更像 bash 完成?

我最近从 bash 转换到 zsh(我正在使用“oh my zsh”),但有一件事让我烦恼:

当我点击 tab 键时,第一个自动完成会自动填写,您需要通过反复点击 tab 来循环完成。

这与 bash 不同,在 bash 中只显示完成列表。如果所有补全具有相同的前缀,则填写此前缀。您可以通过继续键入来选择您想要的。

我发现后者更可取,因为它比通过反复点击 Tab 来选择完成更快键入。

在这方面,有没有办法让 zsh 完成更像 bash?

zsh

21
推荐指数
2
解决办法
9352
查看次数

在命令行中复制一系列文件 (ZSH/BASH)

我有一个以连续数字作为后缀的文件列表。我只想复制这些文件的一部分。如何将范围指定为 cp 命令的一部分。

$ls
P1080272.JPG* P1080273.JPG* P1080274.JPG* P1080275.JPG* P1080276.JPG* P1080277.JPG*
P1080278.JPG* P1080279.JPG* P1080280.JPG* P1080281.JPG* P1080282.JPG* P1080283.JPG*
Run Code Online (Sandbox Code Playgroud)

我想将文件从 P1080275.JPG 复制到 P1080283.JPG,内容类似于:

$cp P10802[75-83].JPG ~/Images/.
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

linux bash copy zsh

14
推荐指数
2
解决办法
2万
查看次数

如何在 zsh 上编辑 ssh 的命令完成?

我想在 zsh 上设置命令完成以在键入后显示主机名

ssh [TAB]
Run Code Online (Sandbox Code Playgroud)

从我的 .ssh/config 文件中取出名称(最好是从 known_hosts 和 /etc/hosts 以及任何其他有意义的地方)并呈现一个列表。

它目前做了一些这样的事情,但是

  1. 它根本不使用 .ssh/config
  2. 它首先需要一个用户名,即使使用 .ssh/config 不需要输入用户名
  3. 它提供了多个列表(可能一个来自known_hosts,另一个来自/etc/hosts,但我还没有验证过)

所以我想在输入 ssh [TAB] 后在(最好是单个)列表中包含已知的用户名和已知的主机名

(我在 Google 之前来到这里是因为 1)它会导致答案被存储在这里,并且 2)它可能更有效。如果没有其他人回答,我会寻找答案。)

ssh shell command-line-interface zsh

13
推荐指数
1
解决办法
1万
查看次数

使用 rsync 移动文件夹时如何删除空的源目录?

rsync可以mv使用以下选项非常相似地将文件夹哄入移动文件夹中,并且优于传统文件夹:

rsync -axvvES --remove-source-files source_directory /destination/
Run Code Online (Sandbox Code Playgroud)

但是,我似乎还无法完成的一件事是删除原始目录。该--remove-source-files标志就是这样做的,删除源文件,但不删除源目录。我也希望有--remove-source-directories一面旗帜,但没有。

我该如何处理? 我想我可以rm -fr在移动后发出一个,但是我更愿意将整个过程保持在一个过程中,而不是引入潜在的错误。

shell bash rsync zsh

13
推荐指数
3
解决办法
1万
查看次数

用于存储键入的命令并清理行的键盘快捷键

您知道这种情况:您正在输入一条长命令(例如提交消息)的一半,并意识到您忘记执行一些无法添加的先决条件命令&&。通常,当我遇到这种情况时,我会选择我用鼠标键入的内容,将其复制到剪贴板,按 Ctrl-U 清除该行,运行我的先决条件命令并从剪贴板粘贴。但也许有更好的方法,最好不需要使用鼠标?我正在寻找 bash 和/或 zsh 的解决方案。

bash command-line-interface zsh

12
推荐指数
3
解决办法
1211
查看次数

如何更改 FreeBSD 中的默认 shell?

FreeBSD 中的默认 shell 是sh,我真的无法忍受:自动完成非常有限,rehash 命令会杀死我。感觉自己是个单臂单腿的人……

如何将 shell 全局更改为zshor bash- 对于 root 以及所有当前和未来用户?

freebsd shell bash zsh sh

11
推荐指数
1
解决办法
2万
查看次数

ls 给了我“非法选项”

我最近安装的zsh,现在每当我ls或者ls -l还是ls anything我得到“非法选项”。不知道从哪里开始寻找解决这个问题。

zsh ls

8
推荐指数
1
解决办法
5662
查看次数

chsh 不存在时如何设置默认shell

我有一个运行 Busybox 的 Synology DS412+ NAS 盒子,它的默认外壳为ash. 以前,ipkg install optware-devel运行并安装bash并将其设置为默认shell。Runningipkg install zsh已安装zsh但未将其设置为默认 shell。chsh不存在(Busybox 假设系统缩减并且只会ash使用),那么如何设置默认 shell?

我将非常感谢任何帮助或见解。

shell zsh synology

8
推荐指数
1
解决办法
1万
查看次数

标签 统计

zsh ×10

bash ×6

shell ×6

command-line-interface ×2

copy ×1

freebsd ×1

linux ×1

ls ×1

rsync ×1

scripting ×1

sh ×1

ssh ×1

synology ×1