前段时间我错误地删除了我的主文件夹,因为我rm -rf *在错误的终端上运行了 a ,其工作目录是主文件夹!
我希望我有一个rm命令的别名,但事实并非如此。
现在,我打算制作一个脚本作为rm.
你有什么最佳实践建议吗?
谢谢。
我有一个编译问题,当我检查我的 lib/ 目录时,我从“ls”得到这个输出:

红/黑组合是什么意思?
我按照此处的建议检查了“dircolors -p”的输出(文件名以红色背景显示是什么意思),但我找不到答案。
此外,权限/用户/大小/时间戳位置的问号是什么意思?
谢谢你的帮助
我有这个无法正常工作的 shell 脚本。
输入:
Server_Name=1
if [ $Server_Name=1 ]; then
echo Server Name is 1
else
echo Server Name is not 1
fi
Run Code Online (Sandbox Code Playgroud)
输出:
Server Name is 1
Run Code Online (Sandbox Code Playgroud)
但是,如果我改变Server_Name=2,输出是:
Server Name is 1
Run Code Online (Sandbox Code Playgroud)
当我更改Server_Name为 时2,我希望它说:Server Name is 2。
我知道这是if [ $Server_Name=1 ];一部分。
我如何解决它?
我知道我可以在终端首选项中设置“Shells open with”,但我很好奇是否有任何系统范围的设置方式(类似于在某些 Unix 中更新 /etc/passwd )。
我想要一个 Linux 命令来查找在最后n几秒钟更改的文件。
是否有可以从命令行界面或 GUI 运行的 shell 脚本或其他工具?
我刚刚开始更深入地研究 shell 脚本,我总是把我的脚本放在一个文件中,标记它chmod +x然后完成/path/to/script.sh并让任何默认的解释器使用它,我认为它是 zsh,因为这就是我用于我的外壳。显然,它似乎只是/bin/sh默认情况下,即使我从 zsh 提示符执行脚本,因为我开始将特定于 zsh 的东西放入我的脚本中,除非我运行zsh /path/to/script.sh.
为了切入正题,以下是我的问题:
#!/path/to/shell开头没有 shebang 行 ( )时,哪个 shell 执行脚本?我假设/bin/sh但我无法确认。如果 zsh 不可用,是否可以编写一个尝试使用 zsh 并回退到 bash 的脚本?我试过放置两条shebang行,如下所示,但是bad interpreter: /bin/zsh: no such file or directory如果我在没有zsh的机器上尝试它只会出错。
#!/bin/zsh
#!/bin/bash
很多时候,我想要执行的脚本不在我当前的工作目录中,我真的不想离开它。
从另一个目录运行脚本(BASH、Perl 等)是一个好习惯吗?他们通常会找到正常运行所需的所有东西吗?
如果是这样,运行“远程”脚本的最佳方法是什么?是吗
. /path/to/script
Run Code Online (Sandbox Code Playgroud)
或者
sh /path/to/script
Run Code Online (Sandbox Code Playgroud)
以及sudo在这种情况下如何使用?例如,这不起作用:
sudo . /path/to/script
Run Code Online (Sandbox Code Playgroud) 我有一个 docker 容器,我想运行它并把它交给一些密码。一个带有感叹号!,另一个带有&符号&。所以我想运行这个:
docker run -i -t --rm \
-e "LDAP_FILTER=(&(objectCategory=person)(objectClass=user)" \
-e "LDAP_PASS=Secret!Password" \
user-prefix/container-name
Run Code Online (Sandbox Code Playgroud)
那行不通。&被替换为{LDAP_FILTER}并被!截断。我很确定我必须逃避这些。但是\!并\&没有成功。
当我第一次安装 Zsh(使用 Oh My Zsh)时,~/.zshrc默认情况下该文件具有以下注释行:
# If you come from bash you might have to change your $PATH.
# export PATH=$HOME/bin:/usr/local/bin:$PATH
Run Code Online (Sandbox Code Playgroud)
作者在这里想说什么?Bash 是 macOS 和 Linux 上的默认 shell,所以是的,我来自 Bash。他们是想说我应该取消对第二行的注释吗?或者他们是说我应该做一些我应该在互联网上寻找的其他设置?
欢迎任何精通的人解释$PATH当我第一次在装有 OS X 10.11 El Capitan 的 MacBook 上安装 Zsh 时我应该如何配置正确的方式。
$@作为 bash 脚本函数参数是什么意思?
例子:
function foo()
{
echo "$@" 1>&2;
}
Run Code Online (Sandbox Code Playgroud)