我想知道必须向PATH环境变量添加新路径的位置。我知道这可以通过编辑来完成.bashrc(例如),但不清楚如何做到这一点。
这边走:
export PATH=~/opt/bin:$PATH
Run Code Online (Sandbox Code Playgroud)
或这个?
export PATH=$PATH:~/opt/bin
Run Code Online (Sandbox Code Playgroud) 在终端中,我可以输入Ctrl+R来搜索之前在 BASH 中输入的匹配命令。例如,如果我输入Ctrl+ Rthen grep,它会列出我的最后一个grep命令,我可以按回车键来使用它。不过,这只给出了一个建议。有什么办法可以循环浏览其他以前键入的匹配命令吗?
我一直有不止一个终端打开。从两个到十个,做各种各样的点点滴滴。现在假设我重新启动并打开另一组终端。有些人记得某些事情,有些人忘记了。
我想要一段历史:
ls在一个终端,切换到另一个已经运行的终端,然后按下,ls显示)我能做些什么让 bash 更像那样工作?
我一直在看其他人写的一些脚本(特别是 Red Hat),他们的很多变量都是使用以下符号分配的
VARIABLE1="${VARIABLE1:-some_val}"
或一些扩展其他变量
VARIABLE2="${VARIABLE2:-`echo $VARIABLE1`}"
使用这种表示法而不是直接声明值有什么意义(例如, VARIABLE1=some_val)有什么意义?
这种表示法是否有好处或可以防止可能出现的错误?
是否:-有特定的含义在这方面?
我想显示脚本的完成时间。
我目前做的是——
#!/bin/bash
date ## echo the date at start
# the script contents
date ## echo the date at end
Run Code Online (Sandbox Code Playgroud)
这只是显示脚本开始和结束的时间。是否可以显示像处理器时间/ io 时间等细粒度的输出?
在 Bash 脚本中将主机名解析为 IP 地址的最简洁方法是什么?我正在使用Arch Linux。
我怎样才能在 bash 中做这样的事情?
if "`command` returns any error";
then
echo "Returned an error"
else
echo "Proceed..."
fi
Run Code Online (Sandbox Code Playgroud) 我对这些运算符在 bash 中使用时有何不同(括号、双括号、括号和双括号)感到有些困惑。
[[ , [ , ( , ((
Run Code Online (Sandbox Code Playgroud)
我见过人们在这样的 if 语句中使用它们:
if [[condition]]
if [condition]
if ((condition))
if (condition)
Run Code Online (Sandbox Code Playgroud) 我用了将近 10 年的 Linux 才问出这个问题。这都是反复试验和随机深夜上网。
但是人们不应该为此需要10年。如果我刚开始使用 Linux,我想知道:何时使用别名、何时编写脚本以及何时编写函数?
就别名而言,我将别名用于不带参数的非常简单的操作。
alias houston='cd /home/username/.scripts/'
Run Code Online (Sandbox Code Playgroud)
这似乎很明显。但有些人这样做:
alias command="bash bashscriptname"
Run Code Online (Sandbox Code Playgroud)
(并将其添加到.bashrc文件中)
这样做有充分的理由吗?我真的很努力,但我真的想不出任何我想要这样做的情况。因此,如果存在会产生影响的边缘情况,请在下面回答。
因为那是我将一些东西放入我的 PATH 和chmod +x它的地方,这是经过多年 Linux 反复试验后出现的另一件事。
这让我进入下一个话题。例如,我.scripts/通过在我的.bashrc( PATH=$PATH:/home/username/.scripts/) 中添加一行,在主目录中添加了一个隐藏文件夹 ( ) 到我的 PATH ,因此那里的任何可执行文件都会自动自动完成。
如果我需要的话。
不过,我真的不需要那个,不是吗?我只会将它用于不是 shell 的语言,比如 Python。
如果是 shell,我可以在里面写一个函数.bashrc:
funcname () {
somecommand -someARGS "$@"
}
Run Code Online (Sandbox Code Playgroud)
正如我所说,我通过反复试验发现了很多。只有当我的电脑没电了,我才真正看到了功能之美,我不得不在周围人不使用它们的时候使用它们。
我没有将整个脚本目录从计算机移动到计算机,而是将其他人的 .bashrc 替换为我自己的,因为他们甚至从未进行过任何修改。
但我错过了什么吗?
那么,关于何时使用别名、何时编写脚本以及何时编写函数,您会告诉 Linux 初学者什么?
如果这不明显,我假设回答这个问题的人会使用所有三个选项。如果你只使用别名,或者只使用脚本,或者只使用函数——或者如果你只使用别名和脚本或别名和函数或脚本和函数——这个问题并不是真正针对你的。
我有一个文件夹,里面有一些目录和一些文件(有些是隐藏的,以点开头)。
for d in *; do
echo $d
done
Run Code Online (Sandbox Code Playgroud)
将遍历所有文件和目录,但我只想遍历目录。我怎么做?