从这篇文章:
Sourcing 将执行当前 shell 中的命令,执行将创建一个新的 shell 并在那里执行命令。
他描述每个 shell 都有自己的 PID。我看不出 shell 和 process 之间有什么区别,至少在他的上下文中如何使用 shell 这个词没有区别。
在 中bash,假设我想链接目录中的一些但不是所有文件,例如,
ln -s /dir/file1 /dir/file2 ... /other/dir
Run Code Online (Sandbox Code Playgroud)
但是文件名的格式不遵循一些简单的规则,所以我们不能使用类似
ln -s /dir/file* /target/dir.
Run Code Online (Sandbox Code Playgroud)
无论如何不要重复/dir,例如:
/dir/{file1 file2 ...} = /dir/file1 /dir/file2 ...
Run Code Online (Sandbox Code Playgroud)
所以我们可以做这样的事情:
ln -s /dir/{file1 file2 ...} /target/dir
Run Code Online (Sandbox Code Playgroud) 我有一个运行 linux 的嵌入式系统。我需要安装一些软件,特别是uucp包含cu命令的包。这真的是我所需要的。
目前我所拥有的只是通过 COM 端口对系统的 root 访问。所以只有命令行。该系统可以访问互联网。
问题是我不是一个非常有经验的 linux 用户,我遇到了以下困难:
*.tar.gz使用下载包wget,我已经解压并执行了./configure,但是当我运行时make,我得到bash: make: command not found. 所以我假设缺少 binutils 或其他重要的东西,我将无法从源代码安装它。任何人都可以提出解决方法吗?我错过了什么?
编辑 1:输出compgen -c(根据 Matthew Williams 的要求)
if
then
else
elif
fi
case
esac
for
select
while
until
do
done
in
function
time
{
}
!
[[
]]
.
:
[
alias
bind
break
builtin
caller
cd …Run Code Online (Sandbox Code Playgroud) 我知道 bash 内部命令hash以及如何使用hash -d或hash -r忘记记住的位置。有没有办法在bash“缓存未命中”时指示自动执行此操作,即当记住的位置消失时 ( no such file or directory)bash会清除记住的位置并重试?
我正在使用我的外置硬盘来存储我的音乐,现在我已经在我的 PC 上安装了 Linux。
我想擦除desktop.ini硬盘上一千个嵌套文件夹中的所有文件,如何仅使用 bash 完成此操作?
我偶尔需要运行一个命令,例如:
mv "very-long-file-name.x" "very-long-file-name.y"
Run Code Online (Sandbox Code Playgroud)
我想在不重复两次很长的文件名的情况下实现这一点......
我知道如何通过将“非常长的文件名”一次传递给一个 bash 脚本,然后该脚本将使用 $1 来做到这一点......但是我怎么能在没有脚本的情况下做到这一点?
我在 Mac 10.9.1 上使用 bash。现在,我执行这两个命令以最终到达我想要访问的服务器
ssh me@intermediate
Run Code Online (Sandbox Code Playgroud)
然后一旦登录,我就执行
ssh me@destination
Run Code Online (Sandbox Code Playgroud)
如果不通过中间服务器,就不可能从我的机器上运行“ssh me@destination”。是否有可能以某种方式将这两个 ssh 命令组合成一行,以便我登录到我的目的地?
在 Windows 中,我按 F6 功能键来引入表示文件结束的CTRL+Z字符。
c:\> copy con filename
Run Code Online (Sandbox Code Playgroud)
将命令行输入复制到给定的文件名。最后,在按下文本后,我将输入F6引入CTRL+ Z(EOF) 字符的键。
1) 将命令行输入复制到给定文件的等效命令是什么?
2) 上面命令中什么键引入了文件结尾字符?
这有点像奶奶的问题,但是,我真的想不通。
如下: 我通过 ssh 登录到远程机器。在那里(例如!)我尝试适当地设置 LD_LIBRARY_PATH。这通常是完成的,export但在我从 ssh 获得的控制台上,export导致"Command not found". 我输入然后bash现在我可以使用导出。
另一方面,我不需要进入 bash 终端来执行 sh-scripts 和 makefiles,其中包含例如export命令,但可以直接从我通过 ssh 输入时得到的控制台执行。
如果有人能用几句话来解释我,我会很高兴!或者我怎样才能知道更多?
我正在编写一个 bash 脚本,我需要检查文件名的末尾是否有数字(在一个句点之后),如果有,请获取它,但我不知道如何在变量或字符串上使用正则表达式。
我能够echo在终端中使用管道将字符串导入 grep,如下所示:
echo "filename.txt.123" | egrep -o "\.[0-9]+$" | egrep -o "[0-9]+"
Run Code Online (Sandbox Code Playgroud)
但是我需要将它的输出分配给一个变量。我尝试这样做:
revNumber= echo "filename.txt.123" | egrep -o "\.[0-9]+$" | egrep -o "[0-9]+"
Run Code Online (Sandbox Code Playgroud)
但这不起作用。我也尝试了很多其他的东西,但没有任何效果。
在我的 bash 脚本中,我想对变量而不是字符串使用 grep,但这里的概念是相同的。
如何在字符串或变量上使用 grep,然后将结果保存到另一个变量中?