标签: bash

从命令行访问 Finder 的“打开方式”菜单(用于选项卡完成)

在 Mac OS X 上,我知道可以使用默认应用程序从命令行打开文件,open使用open -a <application name>. 因此,

open movie.avi
open -a VLC movie.avi
open movie.avi -a VLC
Run Code Online (Sandbox Code Playgroud)

所有的工作。我唯一的抱怨是当我打字时

open movie.avi -a <TAB>
Run Code Online (Sandbox Code Playgroud)

它完成了计算机上存在的所有应用程序 - 例如在 zsh 中我得到

zsh: do you wish to see all 793 possibilities (200 lines)? 
Run Code Online (Sandbox Code Playgroud)

— 虽然我希望它仅完成 Finder 的“打开方式”菜单会显示的少数应用程序。

那么有没有办法访问 Finder 知道的这个列表,并使我的 shell(zsh,但如果有帮助,我可以切换到 bash)知道该列表,这样选项卡完成将只显示那些应用程序?

bash zsh command-line tab-completion macos

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

我怎样才能获得 bash 完成?

有没有一种很好的方法可以在 bash 中打印(例如到 stdout)一个命令的所有可能完成的列表(如果我输入命令,然后按下 Tab 键,它会给我的那些)?

编辑:我想这不是很清楚,现在我又读了一遍。我知道如何手动完成。我想以编程方式进行。

bash

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

bash 通配符补全

是否可以使 bash 以与 zsh 相同的样式在选项卡完成时扩展通配符?

所以想象一下:

mkdir new
touch new/1.txt new/2.txt new/3.log
Run Code Online (Sandbox Code Playgroud)

现在,

ls new/*.txt<TAB>
Run Code Online (Sandbox Code Playgroud)

会扩展到

ls new/1.txt new/2.txt new/3.log
Run Code Online (Sandbox Code Playgroud)

BUTls new/不应扩展,而应列出潜在匹配项(无通配符)。

M-*接近但不完全在那里。如果您在 zsh 中尝试上述操作,您将看到所需的行为。

bash zsh command-line

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

~/.profile 在终端打开时没有被执行?[OS X 10.6.8]

不知何故,我的 bash 提示更改为“elementary:~ steven$”,我想将其改回默认提示。我首先将以下内容添加到 ~/.bashrc 然后添加到 ~/.profile:

export PS1="\s-\v\$ "
Run Code Online (Sandbox Code Playgroud)

当我打开终端时都不会被执行。如果我source在任一文件上运行该命令,它在该会话的其余部分都可以正常工作。

有什么我在这里俯瞰的吗?

编辑:这是伊恩建议的输出:

elementary:~ steven$ bash --login --verbose
# System-wide .profile for sh(1)

if [ -x /usr/libexec/path_helper ]; then
    eval `/usr/libexec/path_helper -s`
fi
/usr/libexec/path_helper -s
PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Library/Frameworks/Python.framework/Versions/3.2/bin:/usr/local/AVRMacPack/bin"; export PATH;

if [ "${BASH-no}" != "no" ]; then
    [ -r /etc/bashrc ] && . /etc/bashrc
fi
# System-wide .bashrc file for interactive bash(1) shells.
if [ -z "$PS1" ]; then
   return
fi

PS1='\h:\W \u\$ '
# Make bash check its window …
Run Code Online (Sandbox Code Playgroud)

bash prompt macos

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

如何在根文件夹的每个子目录中列出一个文件?

抱歉,如果这是微不足道的 - 但如何在我的根文件夹的每个子目录中只列出一个文件?Linux 终端或 MS DOS 语法无关紧要。我猜这将是一个带有一些参数的 ls 或 dir 命令,但我在手册中没有找到任何命令的任何内容。

linux bash shell command-line ms-dos

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

如何让 ssh 读取目标的“.bashrc”?

我有两台 Linux 计算机在工作,一台台式机和一台笔记本电脑,在 Arch Linux 下运行 Openssh。在我的标准登录下,​​我.bashrc在两台计算机上的主文件夹中都有一个自定义文件。

问题是:当我ssh进入桌面时,我看到了一个非常定制的 bash(意味着.bashrc文件已被读取)。当我ssh使用笔记本电脑时,会看到一个普通的灰色 bash,我必须手动运行exec bash(因此它会读取我的 custom .bashrc)。为什么?

我一定在其中一台计算机上配置了不同的东西,导致了差异,但我不知道是什么。在这两种情况下,我正在运行的 ssh 命令都很简单ssh username@host(带有干净的.ssh/config文件)。

注意:已经有一个问题询问如何使用您的.bashrcover ssh,我不是在问那个。我只想知道为什么其中一个主机在使用它,而另一个没有。

linux ssh bash arch-linux

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

在bash中将多行文本回显到文件中?

我怎么写:

$count = mysql_num_rows($result);
print "<h3>$count metal prices available</h3>";
Run Code Online (Sandbox Code Playgroud)

到一个文件,index.php?

我试过了:

echo "$count = mysql_num_rows($result);
print "<h3>$count metal prices available</h3>";" > index.php
Run Code Online (Sandbox Code Playgroud)

但我不明白如何转义输入中的双引号。

使用 echo 以外的东西会更好吗?如果可能,我宁愿不重写整个 PHP 脚本(它比示例中给出的 2 行还长!)。

bash shell command-line shell-script

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

删除所有包含模式的文件

假设我有一个包含文件和子目录的目录。一些文件在其内容中包含模式“^File:”。

有什么方法可以使用 grep 和 bash 命令来删除包含此模式的文件吗?注意我说的是文件的内容,而不是文件名。

bash regex

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

从 Crontab 打开终端

如何从 crontab 打开 gnome 终端窗口?

我试过这个:

    * * * * * /usr/bin/gnome-terminal 

    * * * * * source /home/user_name/.bashrc ; /usr/bin/gnome-terminal

    * * * * * source /home/user_name/.profile ; /usr/bin/gnome-terminal

    * * * * * source /home/user_name/.bashrc ; /home/user_name/bin/opengnometerminal.sh
Run Code Online (Sandbox Code Playgroud)

这些似乎都不起作用。

bash cron crontab

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

如何根据以前的所有者 ID chown 大组文件?

我在 OS X 中创建了一个新帐户并处理了我的旧帐户。

我有一堆文件现在拥有所有者 501,需要将所有权更改为我

[/usr/local]$ ll 
total 24
drwxrwxr-x  18 root  admin   612B Oct 20 11:01 ./
drwxr-xr-x@ 14 root  wheel   476B Oct 19 10:43 ../
-rw-r--r--   1 501   admin   116B Oct 19 10:01 .gitignore
drwxr-xr-x  13 501   admin   442B Oct 19 12:35 Cellar/
drwxr-xr-x   7 501   admin   238B Oct 19 12:17 Library/
-rw-r--r--   1 501   admin   679B Oct 19 10:01 README.md
drwxr-xr-x  42 501   admin   1.4K Oct 20 11:12 bin/
drwxr-xr-x   2 501   admin    68B Oct 20 …
Run Code Online (Sandbox Code Playgroud)

bash command-line recursive chown

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