标签: shell

为什么 Bash 无处不在(在大多数 Linux 发行版中)?

在我尝试过的每个 Linux 发行版中,默认情况下都使用 Bash,而不是像Z shell (zsh)这样的替代品。这有技术或历史原因吗?

linux bash shell

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

如何 cd 到名称中包含空格的目录?

我在 Mac Os X 上的桌面中有一个名为“Reader 0.5”的目录。何时访问终端中的目录,我使用以下代码:

cd /Users/niho/Desktop/Reader 0.5
Run Code Online (Sandbox Code Playgroud)

但它抛出:

无此文件或目录

错误。

我怎样才能 cd 到那个目录?

谢谢。

bash shell macos

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

我可以使用管道输出作为 shell 脚本参数吗?

假设我有一个 bash shell 脚本Myscript.sh,它需要一个参数作为输入。

但我希望被调用的文本文件的内容text.txt作为该参数。

我试过这个,但它不起作用:

cat text.txt | ./Myscript.sh
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

linux bash shell arguments pipe

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

在 zsh 命令中使用通配符

使用诸如rsyncscpwith 之类的命令ZSH遇到了麻烦。而不是给我所有匹配文件的(正常)行为,它不会运行并返回:

?  ~  rsync -azP user@server:~/* ~/
zsh: no matches found: user@server:~/*
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?

我的 .zshrc

ZSH=$HOME/.oh-my-zsh
ZSH_THEME="robbyrussell"
plugins=(git brew)
source $ZSH/oh-my-zsh.sh
export PATH=$PATH:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/local/sbin
Run Code Online (Sandbox Code Playgroud)

terminal zsh shell oh-my-zsh macos

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

查找 bash 函数的定义

我在一个有很多遗留 shell 脚本魔法的环境中工作。在命令行中大量使用的一件事是 bash 函数,这些函数来自某个文件中包含的某个文件,这些文件包含在某个文件中……包含在我的 .bash_profile 中。有没有办法在不通过 5 个级别的包含跟踪它们的情况下获得这些函数的定义甚至更好的定义位置?

bash shell

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

你如何在 emacs shell 中运行前面的命令?

我在 Ubuntu 上处于终端模式,我正在运行 emacs 并打开 2 个缓冲区,一个是 ruby​​ 文件,另一个是 shell(通过键入 Mx shell 打开),当我切换到 shell 缓冲区时,我想要运行我之前运行的相同命令。我通常只会在终端窗口中点击向上箭头,但在 emacs 中,它只是将光标放在一行上。

有谁知道从 emacs shell 中运行上一个 shell 命令的击键?

shell emacs ubuntu

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

为什么附加到日志文件是 2>&1 而不是 2>>&1

我将 STDOUT 和 STDERR 重定向到一个文件,并且一直在增长,所以我总是使用“附加”重定向;这是>>

我的命令是 command >> logfile 2>&1

它有效。

但是 STDERR 重定向有一个>,我用它来“创建”文件,擦除前一个文件,如command > outlog 2> errlog

为什么在这种情况下它不删除日志文件?

bash shell redirection stderr append

46
推荐指数
2
解决办法
5885
查看次数

如何快速更改 Bash 命令中的第一个单词?

我想用 Bash 稍微改进我的工作流程,我意识到我经常想对不同的可执行文件执行相同的命令。

一些例子:

Git(我想快速更改第二个词):

git diff     foo/bar.c
git checkout foo/bar.c
Run Code Online (Sandbox Code Playgroud)

Cat/rm(只需更改第一个单词):

cat foo/is/a/very/long/path/to/bar.c
rm  foo/is/a/very/long/path/to/bar.c
Run Code Online (Sandbox Code Playgroud)

我知道我可以点击Ctrl+ athenDel删除第一个单词,但我想知道是否有更快的方法来做到这一点。

linux bash shell command-line

45
推荐指数
7
解决办法
5138
查看次数

应用程序“SomeApp.app”无法打开

问题:在 OS X Yosemite (10.10.x) 中下载应用程序后,尝试打开应用程序(从命令行或双击应用程序)会产生一个对话框,提示“应用程序“SomeApp.app”无法打开被打开。”

应用程序“LinCastor.app”无法打开 - 对话框

请注意,这不同于“SomeApp 无法打开,因为它不是从 Mac App Store 下载的”或“SomeApp 无法打开,因为它来自身份不明的开发者”消息,这是Gatekeeper设置的结果。

shell osx-yosemite macos

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

没有外壳的操作系统是什么样的?

像 bash 或 command.com(直到 Windows ME)或 CMD.EXE(在更高版本中)这样的 shell 提供了一个接口(除其他外)接受来自用户的命令。在运行 shell 之前,操作系统是什么样的?在开发第一个 shell 之前,系统是如何使用的(例如 1970 年代早期的 UNIX)?如果计算机甚至不能接受命令(没有命令行),用户如何与之交互?这个最基本的界面是什么?我可以在终端模拟器中运行这个接口还是没有办法在 shell 后面运行?

operating-systems shell history

44
推荐指数
4
解决办法
4468
查看次数