标签: zsh

如何打开名称以“-”开头的文件?

我正在运行 Ubuntu,并想打开一个文件名以“-”(减号)开头的文件。当我尝试用 pico 或 vim 打开文件时,该命令认为“-”号是该命令的一个选项。

我尝试用引号 (') 将文件名括起来,但仍然出现相同的错误。

我尝试使用 bash 和 zsh,但仍然出现相同的错误。

ubuntu bash zsh

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

从 ZSH 自动完成中排除环境变量

快速示例:

~ $ wor<TAB>
~ $ WORDCHARS=                                                                                                                                                                                                             
WORDCHARS    WORKON_HOME  WORKON_HOME  workon 
Run Code Online (Sandbox Code Playgroud)

workon是所需的命令。有没有办法从 ZSH 中的自动完成中排除环境变量?

shell zsh environment-variables

7
推荐指数
1
解决办法
1009
查看次数

无法理解 Zsh 的 autopushd 的好处

我在 .zshrc

 setopt autopushd
Run Code Online (Sandbox Code Playgroud)

它使 cd 的行为类似于 pushd。这意味着我们根本没有堆栈。当我使用它时,我根本没有使用过堆栈,因为它从我身上删除了堆栈。

我不确定 autopushd 有什么好处。

autopushd 有什么好处?

zsh

6
推荐指数
1
解决办法
4019
查看次数

从 ZSH 历史文件中删除历史记录或行号

出于某种原因,我将这些奇数行号或某种历史记录号放入我的~/.zsh_history文件中,如下所示:

: 1266694881:0;rake db:migrate
Run Code Online (Sandbox Code Playgroud)

我宁愿不必求助于开始时的正则表达式,但我希望我的台词是这样的:

rake db:migrate
Run Code Online (Sandbox Code Playgroud)

有没有人对如何解决这个问题有任何建议?我找到了,setopt EXTENDED_HISTORY但似乎没什么用。

shell zsh

6
推荐指数
1
解决办法
6637
查看次数

ZSH 不采购 zprofile

我在 Ubuntu 16.04 上运行 zsh 5.1.1。似乎~/.zprofile不是来自登录或新终端。 ~/.zshrc然而来源。

我在跑步oh-my-zsh

关于为什么会这样或我如何解决它的任何想法?

zsh profile

6
推荐指数
1
解决办法
8184
查看次数

为 osX 本机命令寻找 zsh 完成文件

我一直在深入研究 /usr/bin 中的 osX 实际附带的内容,尤其是 /usr/libexec。

确实非常好,虽然命令语法有点……奇怪。

让我把好奇心引向让我想到这个的命令:

networksetup -printcommands
Run Code Online (Sandbox Code Playgroud)

我想不出一个命令可以更好地说明良好完成的必要性。

security -h 
Run Code Online (Sandbox Code Playgroud)

也许,但这些命令具有熟悉的易于阅读的格式。

我恳求社区,请指点我可以找到这样的东西的地方。我从来没有正确输入它们,为此我很想完成选项卡

任何人都知道我可以在哪里抓东西?我更愿意站在巨人的肩膀上,而不是试图让 zsh/bash 完成脚本从我的额头跳入世界,准备战斗,就像雅典娜一样。

说到 compctl,我不是宙斯。一点也不。

zsh mac-osx

5
推荐指数
1
解决办法
715
查看次数

命令“getent”

第1部分

应该getent是可执行文件吗?

在我的 zsh 设置中,我可以看到 getent 实际上被定义为一个函数

$ which getent   
getent () {
    if [[ $2 = <-> ]]
    then
        grep ":$2:[^:]*$" /etc/$1
    else
        grep "^$2:" /etc/$1
    fi
}
Run Code Online (Sandbox Code Playgroud)

如果我想从 bash shell 执行它,

bash -c  "getent passwd user"  
Run Code Online (Sandbox Code Playgroud)

我收到一个getent: command not found错误。

第2部分

在 Mac OSX 中,getent无论用户 ID 是否有效,都会失败。事实证明用户 ID 没有保存在/etc/passwd文件中。为什么会这样呢?还有什么替代方案呢?

bash zsh mac-osx passwd

5
推荐指数
1
解决办法
6801
查看次数

zsh 彩色文件目录

我的 VM 有一个主机,当它全新安装 Ubuntu 时,bash shell 具有彩色目录和文件。

我如何用 ZSH 复制这个,我已经自定义了我的 PS1,但我也想自定义目录的颜色......我该怎么做?

ubuntu shell zsh

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

zsh 自动完成不存在的文件夹

刚开始将 zsh 与 oh-my-zsh 一起使用,当使用cd.

假设我有一个文件夹:

my_folder/
    subfolder/
    another_subfolder/
    file.txt
Run Code Online (Sandbox Code Playgroud)

当我使用 bash 时,我可以输入:

$ cd p<tab>
Run Code Online (Sandbox Code Playgroud)

什么也不会发生,因为没有任何东西以my_folder开头p,但是如果我在 zsh 中做同样的事情,它会自动完成这个词proxy,我假设它是文件系统中其他地方的某个目录?

我不确定是否设置错误,或者这是否与我不理解的 zsh 中自动完成的工作方式有关。

编辑:

CTRL+Xh 的输出:

tags in context :completion::complete:cd::
    local-directories named-directories      (_alternative _cd (eval)) 
    users named-directories directory-stack  (_tilde _alternative _cd (eval)) 
    users                                    (_users _tilde _alternative _cd (eval))
Run Code Online (Sandbox Code Playgroud)

zsh

4
推荐指数
1
解决办法
726
查看次数

如何将历史记录中的最后一个 zsh 命令放入剪贴板?

我经常遇到这样的情况,我只是使用了一个命令,我需要将它复制/粘贴到不同的终端窗口/IM 或其他任何地方。

在 Mac 上,我可以使用该pbcopy命令在剪贴板中获取某些内容,但我不确定应该如何获取该命令。我提出的是

history | tail -n 1 | perl -ple 's/\d+\s+//' | pbcopy
Run Code Online (Sandbox Code Playgroud)

哪个有效,但它看起来并不像干净的解决方案。有没有更好的方法来获得最后一个命令?我正在使用zsh,但我想如果有解决方案bash也可以使用zsh

shell bash history zsh

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

标签 统计

zsh ×10

shell ×4

bash ×3

mac-osx ×2

ubuntu ×2

environment-variables ×1

history ×1

passwd ×1

profile ×1