相关疑难解决方法(0)

“终端”、“外壳”、“tty”和“控制台”之间的确切区别是什么?

我认为这些术语在松散使用时几乎指的是同一件事:

  • 终端
  • 贝壳
  • 打字机
  • 安慰

这些术语中的每一个究竟指的是什么?

shell terminal tty terminology console

1433
推荐指数
10
解决办法
42万
查看次数

交互式 shell、登录 shell、非登录 shell 及其用例之间有什么区别?

可能的重复:
登录 Shell 和非登录 Shell 之间的区别?

我一直在查看 /etc/profile。bash.bashrc 以查看它们是如何运行的,并注意一些是由非登录 shell 执行的,一些与交互式 shell 一起工作等。

这种类型的外壳有什么区别,即交互式和非交互式、登录和非登录等?

这个问题可能非常基本,但似乎我首先需要问什么是 shell。什么是 shell,它的相关性是什么,你如何使用它,以及它为什么存在?

更新:为了更好地理解问题的意图,除了定义之外,我还需要了解一种外壳或另一种外壳的用例。帮助理解的是用例,而不仅仅是字典定义。

shell bashrc

95
推荐指数
2
解决办法
7万
查看次数

如果进程继承了父级的环境,为什么还需要导出?

在这里读到,export在 shell中的目的是使变量可用于从 shell 启动的子进程。

但是,我也看到了这里,并在这里的“进程从它们的父(这开始它们的进程)继承他们的环境。”

如果是这种情况,我们为什么需要export?我错过了什么?

默认情况下,shell 变量不是环境的一部分吗?有什么不同?

shell process environment-variables

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

真实终端连接的大型计算机是什么样子的?

我正在研究计算机的历史,以更好地理解为什么 Linux 终端以它们的方式工作。我读过在 1970 年代中期到 1980 年代中期,大多数人使用真实终端(而不是终端模拟器)与大型计算机进行通信,这是真实终端的一个示例:

在此处输入图片说明

但是我无法找到有关真正终端连接到的这些大型计算机的信息。任何人都可以提供这种大型计算机的名称/图片吗?

terminal history

35
推荐指数
4
解决办法
6767
查看次数

在 bash shell 脚本中运行和获取源之间的区别?

要么我在这里问的是非常非正统的/非常规的/冒险的,要么我的 Google-fu 技能不符合要求...

bashshell 脚本中,是否有任何简单的方法可以判断它是由另一个 shell 脚本获取的,还是由它自己运行的?换句话说,是否可以区分以下两种行为?

# from another shell script
source myScript.sh

# from command prompt, or another shell script
./myScript.sh
Run Code Online (Sandbox Code Playgroud)

我正在考虑做的是创建一个类似于实用程序的 shell 脚本,其中包含bash可以在获取时可用的函数。但是,当这个脚本自己运行时,我也喜欢它根据定义的函数执行某些操作。这个shell脚本是否有某种环境变量可以选择,例如

some_function() {
    # ...
}
if [ -z "$IS_SOURCED" ]; then
    some_function;
fi
Run Code Online (Sandbox Code Playgroud)

最好,我正在寻找一种不需要调用者脚本设置任何标志变量的解决方案。

编辑:我知道采购和运行脚本之间的区别,我想在这里找出是否可以分辨正在使用的脚本的区别(两种方式)。

bash shell-script

24
推荐指数
3
解决办法
6292
查看次数

bash中设置位置参数的方法

来自https://www.gnu.org/software/bash/manual/bashref.html#The-Set-Builtin

set [--abefhkmnptuvxBCEHPT] [-o option-name] [argument …]
set [+abefhkmnptuvxBCEHPT] [+o option-name] [argument …]
Run Code Online (Sandbox Code Playgroud)

...

--如果此选项后面没有参数,则位置参数未设置。否则,位置参数将设置为参数,即使其中一些参数以“-”开头。

-表示选项结束,将所有剩余参数分配给位置参数。-x 和 -v 选项已关闭。如果没有参数,位置参数保持不变。

使用“+”而不是“-”会导致这些选项被关闭。这些选项也可以在调用 shell 时使用。当前的选项集可以在 $- 中找到。

剩余的 N 个参数是位置参数,并按顺序分配给 $1, $2, ... $N。特殊参数 # 设置为 N。

好像有3种方式来设置位置参数:

set -- argument
set - argument
set argument
Run Code Online (Sandbox Code Playgroud)

它们的区别是什么?

谢谢。

bash

8
推荐指数
2
解决办法
1万
查看次数