标签: bash

Bash shell tab 补全,不要展开~

Tab当我使用 shell (bash) 时,我经常使用密钥。

但我很恼火,~总是扩展到/home/"user". 我不认为它一直都是这样;有没有办法阻止这种行为?

一个例子:

  1. cj@zap:~$ ls ~/
  2. Tab
  3. cj@zap:~$ ls /home/cj/

我想继续拥有~/而不是结束/home/cj/

bash autocomplete

13
推荐指数
2
解决办法
2760
查看次数

自定义vim高亮

我现在正在编辑一些 xml 并且我一直在给自己留下一些评论。像这样

<!-- Question: bla bla -->
Run Code Online (Sandbox Code Playgroud)

我现在正在使用 vim 进行编辑,我希望 vim 现在突出显示问题,以便我可以轻松查看我的代码并找到我需要查看的所有位置。我知道我需要在 vimrc 中添加一些东西,但我认为我可能正在寻找错误的东西。

更新

我试着把它放在我的.vimrc但没有效果:

syn keyword JakeAnnotation      Question

hi JakeAnnotation gui=bold term=bold cterm=bold
Run Code Online (Sandbox Code Playgroud)

更新 2

实际上我可以看到我之前所做的有一些效果,因为当我这样做时:

:hi
Run Code Online (Sandbox Code Playgroud)

它向我展示了它突出显示的所有内容,其中一个条目是:

JakeAnnotation xxx term=bold cterm=bold ctermbg=6
Run Code Online (Sandbox Code Playgroud)

并且 xxx 格式正确

这让我感到遗憾,我只是没有正确定义问题。Question 是否需要单独在线?

更新 3

好的,对于用户 22303 的帖子,我有这个工作:

highlight MyQuestion cterm=bold term=bold ctermbg=blue ctermfg=black
match MyQuestion /Question/
Run Code Online (Sandbox Code Playgroud)

但是我怀疑每个文件只能有一个匹配项。因为当我这样做时:

highlight MyQuestion cterm=bold term=bold ctermbg=blue ctermfg=black
match MyQuestion /Question/
highlight MyRelook cterm=bold term=bold ctermbg=blue ctermfg=black
match MyRelook /Another …
Run Code Online (Sandbox Code Playgroud)

unix bash vim syntax-highlighting

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

如何在 Ubuntu 上忽略 bash 中的错误消息?

我正在尝试显示/etc/*conf(使用 command wc)中所有配置文件的行数、单词数和字符数。

如何修改命令(或命令行)以不查看错误消息?

bash redirection command-line ubuntu-9.10

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

如何在没有鼠标的情况下使用键盘在 BASH 终端中选择文本?

如何在没有鼠标的情况下使用键盘在 BASH 终端中选择文本?

我正在使用 Ubuntu 10.10

linux terminal bash ubuntu

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

grep中多个单词的“或”的正则表达式

[Computer]$ grep "foo|bar" filename
Run Code Online (Sandbox Code Playgroud)

我知道上面的命令应该返回文件名中存在“foo”或“bar”的每一行。手册页确认 | 作为正则表达式或符号,代码独立用于“foo”和“bar”。我错过了什么?

unix bash grep regex

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

`ssh &lt;host&gt;` 是登录 shell,而 `ssh &lt;host&gt; &lt;command&gt;` 不是?

我注意到,当我使用ssh <host> <command>语法直接在 SSH 主机上运行命令时,我看到的是输出,.bashrc但没有看到.bash_profile(或.profile)的输出。

例如,如果我将以下命令放在两个文件的顶部,

echo ${BASH_SOURCE[0]}
Run Code Online (Sandbox Code Playgroud)

和手动来源.bash_profile.bashrc依次来源),我会看到

$ . .bash_profile
.bash_profile
.bashrc
Run Code Online (Sandbox Code Playgroud)

这与我使用ssh <host>命令的形式通过 SSH 远程登录到这台计算机时看到的输出相同。(如果我.bash_profile暂时存放在其他地方,这两行都不会得到回应。)

但是,如果我直接在远程机器上以ssh <host> <command>形式执行命令ssh,则输出如下所示:

$ ssh <host> echo foo
/home/rlue/.bashrc
foo
Run Code Online (Sandbox Code Playgroud)

我的理解是,之间的区别.bash_profile,并.bashrc就在于前者是登录shell而后者则是互动的,非登录shell

我得出了以下结论:

  1. ssh <host>仅来源.bash_profile,而
  2. ssh <host> <command>仅来源.bashrc,这意味着
  3. 前者是登录shell,后者不是。

这些结论是否正确?为什么被ssh <host> <command>视为交互式、非登录 shell?SSH不是还在登录远程机器执行命令吗?

linux ssh bash bashrc .bash-profile

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

使 bash 尽可能靠近鱼

我喜欢鱼壳,并且只在 MacOS 中使用它,但我在其他任何地方都使用 bash,因为它是唯一安装的东西。感受到维护这两个 shell 的配置文件的痛苦后,我决定停止使用 fish,而是回退到 bash。为了让它尽可能轻松,我应该将哪些配置选项/插件/等与 bash 一起使用以使其尽可能接近fish?

我最怀念的事情:

  • 自动完成支持:fish 记住我所有的命令,完成部分(有时是巨大的)命令,似乎理解我使用的所有 cmd-line 应用程序并提供他们命令的完成等。对于每个命令,fish 以暗色显示命令它会自动完成,如果我要点击选项卡。
  • git 支持:fish 显示我是否在 github 存储库中,分支的名称,以及它是否已被修改或清晰使用我的 username@hostname 旁边的漂亮颜色,我也希望在 bash 上也有这个

bash fish

13
推荐指数
2
解决办法
5204
查看次数

在 Bash 中将文件中的 n 个字节写入另一个文件

您好,如何使用 Bash将n字节从一个文件写入新文件k

  • 例如,如果 n=60,k=1 并且文件大小=100,那么:第二个文件将由第一个字节到第 60 个字节组成,大小为 60 个字节
  • 例如,如果 n=40,k=61 和文件大小=100,那么:第二个文件将由第 61 个字节到第 100 个字节组成,大小为 40 个字节

可能我们正在处理二进制文件而不是 ASCII 文件,因此两半的连接应该与原始文件相同!

(有可能dd吗?)

linux file-management bash binary-files bash-scripting

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

为什么 shift insert 只能在插入模式下完全工作?

刚刚尝试使用 vim 将一些内容(在 CentOS 服务器上的 Git Bash 中)粘贴到文件中。
我刚刚打开文件并尝试使用shift+insert并且我注意到前半部分(大致)被切断了,但是如果我将 vim 设置为插入模式并点击shift+insert一切都会被完美地粘贴。
只是想知道这是为什么?

谢谢

bash vim

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

使用 ppk 文件进行 PuTTY SSH 密钥身份验证时出现“PuTTY 密钥格式太新”

我想使用 SSH 密钥连接到我的 Unix 服务器。为此,我已使用 PuTTYgen将我的id_rsa文件从./ssh目录转换为 ppk 文件,但在加载我的.ppk密钥后,我收到此警告:

PuTTY 密钥格式太新

在此处输入图片说明

如果我使用默认id_rsa文件,则会出现错误:

OpenSSH SSH-2 私钥(旧 PEM 格式)

无论哪种方式,我都被卡住了。谁能帮帮我吗?

ssh unix bash putty

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