Bash手册说:
Bash 尝试确定它何时在其标准输入连接到网络连接的情况下运行,如由远程 shell 守护程序(通常
rshd)或安全 shell 守护程序执行时sshd。如果 Bash 确定它正在以这种方式运行,它会读取并执行来自 的命令~/.bashrc(如果该文件存在且可读)。
这个 Bash 来源~/.bashrc:
ssh user@host :
Run Code Online (Sandbox Code Playgroud)
但是这个 Bash 来源~/.bash_profile:
ssh user@host
Run Code Online (Sandbox Code Playgroud)
根据规范,我没有看到这两个命令的区别。在这两种情况下,stdin 是否都连接到网络连接?
假设用户/bin/bash在/etc/passwd. 然后ssh user@host command使用 Bash 运行命令。但是,该 shell 既不是登录也不是交互式的,这意味着既不是~/.bash_profile也不~/.bashrc是来源。在这种情况下如何设置PATH环境变量以便可以找到并执行可执行文件?是否建议在实际命令前加上source ~/.bashrc?
eval通常不鼓励使用,因为它允许执行任意代码。但是,如果我们使用eval echo,那么看起来字符串的其余部分将成为 的参数,echo因此它应该是安全的。我在这方面正确吗?
sync是 Debian 自己创建的用户帐户之一。我想知道为什么 Debian 将其登录 shell 设置为/bin/sync而不是/bin/false. Debian 如何使用这个用户帐户?
我在客户端和服务器上都使用 Bash。通过 SSH 运行命令时:
ssh <host> 'declare' 给出一个 shell 变量列表。
ssh <host> 'mount' 给出挂载点列表。
但是,declare是 Bash 内置mount命令,而是外部命令。如果服务器上有一个内置的 shell 和一个同名的外部命令,SSH 如何知道要运行哪个?
连接到 SSH 服务器的正常方法是ssh username@ip_address. 但是用户可能只想在远程机器上运行程序。所以程序名称跟在正常参数之后,即ssh username@ip_address <program_name>. 例如,ssh username@ip_address ls。除了交互式程序(也接受用户输入以及提供输出),例如top. 输出是
未设置 TERM 环境变量。
这意味着 sshd 和 top 程序之间没有连接(伪)终端。解决方案是-t在整个命令现在变成的地方添加参数ssh -t username@ip_address top。
我的问题是为什么默认情况下 sshd 不能也使用伪终端与非交互式程序进行通信,因此不需要-t为交互式程序添加参数?
如何处理:
nc: Proxy error: "HTTP/1.1 407 Proxy Authentication Required"
Run Code Online (Sandbox Code Playgroud)
nc有-P代理用户名的选项,但密码是什么?
某些 Linux 系统调用(例如execve, openat)具有字符串类型参数。但是SCMP_CMPseccomp提供的比较函数好像是比较两个指针。那么如何使用 seccomp 将进程可以打开的文件限制到特定目录?有没有办法让用户提供一个通用的比较功能?
这是我在man X以下内容中找到的内容:
短语“显示器”通常用于指共享一组通用输入设备(键盘、鼠标、平板电脑等)的监视器集合。大多数工作站往往只有一个显示器。然而,更大的多用户系统通常有多个显示器,因此可以有多个人同时进行图形工作。为避免混淆,当启动该显示器的 X 服务器时,机器上的每个显示器都被分配一个显示器编号(从 0 开始)。显示编号必须始终在显示名称中给出。
我的问题是:如果我们想使用多个显示器,我们是否需要启动多个 X 服务器,或者所有这些显示器都可以由单个 X 服务器处理?是否可以在不同的显示器上共享键盘、鼠标和显示器?
编辑。这里的显示指的是X窗口系统定义的概念,而不是单个监视器。我知道有支持多头配置的 Xinerama 和 XRandR 技术。
设备块大小通常为 512 字节,而文件系统块大小通常为 4096 字节。他们为什么不同?为什么 512B 和 4KB 是设备和文件系统块大小的不错选择?什么块大小最适合缓存用户空间库中的磁盘读取?