标签: bash

Alt+Shift+{ 是什么?

如果您在一个包含大量文件的目录中,请在 CentOS 和 Ubuntu 上对此进行测试

$ ls
day1.tar.gz  day2.tar.gz  day3.tar.gz  day4.tar.gz  day5.tar.gz  day6.tar.gz  day7.tar.gz  day8.tar.gz day9.tar.gz day10.tar.gz
Run Code Online (Sandbox Code Playgroud)

你点击Alt+Shift+{它会 awk-complete 每个文件名

<Alt+Shift+{>
Run Code Online (Sandbox Code Playgroud)

完成为:

 day{1{0.tar.gz,.tar.gz},2.tar.gz,3.tar.gz,4.tar.gz,5.tar.gz,6.tar.gz,7.tar.gz,8.tar.gz,9.tar.gz}
Run Code Online (Sandbox Code Playgroud)

day1<Alt+Shift+{>
Run Code Online (Sandbox Code Playgroud)

完成为:

day1{0.tar.gz,.tar.gz}
Run Code Online (Sandbox Code Playgroud)

问题:这是什么?这个叫什么?它在哪里有用?我该如何配置它?我可以对以子字符串结尾而不是以一个开头的文件执行此操作吗?

linux keyboard-shortcuts bash autocomplete

10
推荐指数
1
解决办法
604
查看次数

不使用终端打开隐藏的配置文件

我对我.profile的终端应用程序进行了一些更改。我可以启动终端,但我不再收到提示。我无法显示隐藏文件以删除.profile.bashrc文件。

如何在不使用终端的情况下显示隐藏文件?

bash .bash-profile macos

10
推荐指数
1
解决办法
7501
查看次数

如何从命令行获取 Dropbox 文件的 URL?

我想知道是否可以从命令行获取要在我的 Dropbox 文件夹中共享的文件的 URL。我会避免每次都打开网络浏览器。

linux bash dropbox command-line

10
推荐指数
2
解决办法
7631
查看次数

如何让与 Homebrew 一起安装的 Fish shell 和 NVM 一起工作?

我正在尝试尽可能多地使用 Homebrew 管理我的 OSX 包。我已经使用 Homebrew 安装了 Fish Shell 和 NVM,但无法让 Fish 识别我的 NVM 安装。使用 Bash 运行时,NVM 命令运行良好,可能是因为当您使用 Homebrew 安装 NVM 时,它让我在我的 .bashrc 文件中添加了一些额外的行。

使用 Homebrew 安装 NVM 后,它说:

Add NVM's working directory to your $HOME path (if it doesn't exist):

mkdir ~/.nvm

Add the following to $HOME/.bashrc, $HOME/.zshrc, or your shell's
equivalent configuration file:

export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh
Run Code Online (Sandbox Code Playgroud)

此外,Homebrew 安装脚本似乎已将此行添加到我的 ~/.profile

source /usr/local/opt/nvm/nvm.sh
Run Code Online (Sandbox Code Playgroud)

我希望可以对 Fish 使用相同的技术来访问 NVM 安装,但我似乎无法让它工作。

我发现了这种技术:https : //github.com/passcod/nvm-fish-wrapper 但我宁愿不必包装 NVM。

任何人都可以帮忙吗?

bash homebrew fish node.js macos

10
推荐指数
2
解决办法
7461
查看次数

为什么我的脚本在控制台输出中省略了前导空格?

我有以下脚本:

#!/bin/bash
function consoleWriteLine() {
  echo $* >&2
}

consoleWriteLine "    indented by 4 spaces"
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我得到以下输出:

$ ./test.sh
indented by 4 spaces
Run Code Online (Sandbox Code Playgroud)

我的4个空间去哪儿了?我如何让他们回来?

bash

10
推荐指数
1
解决办法
643
查看次数

libtool 已安装但未在 /usr/bin 中找到

我必须编译一个程序(不是我自己制作的),并且在他的中autogen.sh有一个搜索libtool的脚本命令

LIBTOOL=$(which libtool)

但命令找不到命令。我看到libtool的路径/usr/share/libtool,而不是/usr/bin/libtool

我找到libtoolize/usr/bin/,但我没有改变任何路径。

我想知道libtoollibtoolize之间是否有区别。

linux bash

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

为什么 SSH 不调用 .bash_profile?

我的理解是它.bash_profile总是通过 SSH 登录来调用。

但是,除非执行以下操作,否则我看不到启用的各种设置:

ssh $host "source ~/.bash_profile ; echo $PATH "

.:/mnt/spark-1.4.1/bin:/mnt/spark-1.4.1/sbin:/mnt/scala-2.11.2/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
Run Code Online (Sandbox Code Playgroud)

当我简单地这样做时:

ssh $host "echo $PATH "
Run Code Online (Sandbox Code Playgroud)

PATH 信息只是默认的

 /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
Run Code Online (Sandbox Code Playgroud)

用户是 root,默认 shell 是 bash。

$ ll /bin/sh
lrwxrwxrwx 1 root root 4 Aug  6 19:54 /bin/sh -> bash
Run Code Online (Sandbox Code Playgroud)

更新root 的 shellbash

grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
Run Code Online (Sandbox Code Playgroud)

ssh bash

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

在 bash 终端中复制、粘贴和编辑多行命令

带有大量参数的命令有时会使用斜线转义换行符,以使其更易于在 Web 上阅读。这是一个愚蠢的例子

echo -n \
"hello" \
"world"
Run Code Online (Sandbox Code Playgroud)

我不知道如何“正确”粘贴和编辑这个

粘贴到你得到的 bash 中

$ echo -n \
> "hello" \
> "world"
Run Code Online (Sandbox Code Playgroud)

现在,如果我在 OSX 上使用后退箭头键导航,我只能使用 编辑该行> "world",而不是前两行。通常我必须粘贴到临时文件中来修复命令。

有没有更好的方法来执行这个允许编辑任何行的粘贴?bash使这项工作以更好的方式工作的设置?

terminal bash command-line

10
推荐指数
1
解决办法
7317
查看次数

是否可以检查 -e 是否在 bash 脚本中设置?

如果 shell 函数需要特定的 -e/+e 设置才能工作,是否可以在本地设置该设置,然后在退出该函数之前将其恢复到以前的设置?

myfunction()
{
   # Query here if -e is set and remember in a variable?
   # Or push the settings to then pop at the end of the function?
   set +e
   dosomething
   doanotherthing
   # Restore -e/+e as appropriate, don't just do unconditional   set -e
}
Run Code Online (Sandbox Code Playgroud)

bash shell-script

10
推荐指数
2
解决办法
2705
查看次数

无法使用 Git Bash rsync 到另一个卷

我在 Windows 机器上使用 git bash:在 2016-02-23 上构建的适用于 Windows 的 Git 2.7.2 版(32 位版本),可从https://git-scm.com 获得

在 bash 中,我可以将目录复制/c//e/(USB 拇指驱动器)。但是,当我尝试使用rsync. 我尝试添加cygdrive到目录名称,但这没有用。还尝试添加-e(只是为了看看会发生什么)也不起作用。

我提到复制命令有效,因为奇怪的是我可以以一种方式看到驱动器,但不能以另一种方式看到它。

复制成功:

在此处输入图片说明

不成功rsync

在此处输入图片说明

其他背景和研究:

错误 255

在某些时候,我相信我得到了完全相同的错误 (255),这让我看到了这篇文章。但是,这里的解决方案与cygwingit bash相关,而不是 git bash。 /sf/ask/1187838361/

流浪者和 rsync

关于 的力学有很多很好的讨论rsync,尤其是从mitchellh. 但是,我不确定他们引用的哪些组件存在于我的安装中,或者不确定如何判断。我在这个网站上问了一个关于这个问题的单独问题。来源:https : //github.com/mitchellh/vagrant/issues/3236

列出模拟 Linux 环境中的驱动器

来源:http : //mingw-users.1079350.n2.nabble.com/Windows-c-drive-td6555321.html 当我这样做时,cat /etc/fstab我得到以下信息:

$ cat /etc/fstab
# For a description of the file …
Run Code Online (Sandbox Code Playgroud)

windows bash rsync mingw

10
推荐指数
1
解决办法
4629
查看次数