根据FHS
关于/dev
:
它包含了:
The following devices must exist under /dev.
/dev/null
All data written to this device is discarded. A read from this device will return an EOF condition.
/dev/zero
This device is a source of zeroed out data. All data written to this device is discarded. A read from this device will return as many bytes containing the value zero as was requested.
...
Run Code Online (Sandbox Code Playgroud)
观察两者都有:
All data written to this device is discarded …
Run Code Online (Sandbox Code Playgroud) 我读了很多关于命令使用的教程kill
,主要是3种方法
kill -15 <pid>
kill -SIGTERM <pid>
kill -TERM <pid>
Run Code Online (Sandbox Code Playgroud)
出于脚本目的以及 Macos 的可移植性,将不会使用代码编号。因为kill -l
macos 与 Linux 不同。因此,在这里输入播放信号名称。
问题
kill
正确或建议方法是什么?我是说:
为什么?这两种方法的存在只有一个原因,对吗?是否有强制理由使用一种方法而不是另一种方法?
环境
这种情况适用于 Ubuntu 桌面/服务器和 Fedora 工作站/服务器
在网上一些安装 OpenSSH 的教程中存在以下命令:
sudo apt install openssh-server
sudo apt install openssh-client
Run Code Online (Sandbox Code Playgroud)
例如,对于Ubuntu Desktop
是强制安装 Openssh 的服务器 - 对于 ,它不是必需的Ubuntu Server
,它已经安装了 - 此外,我从未在某些发行版中安装过 Openssh 的客户端,但我能够使用ssh
.
如何知道每个版本的版本?在ssh(1) - Linux 手册页中指出:
-V' Display the version number and exit.
Run Code Online (Sandbox Code Playgroud)
但不清楚是用于服务器还是客户端 - 在许多教程中都有相同的关于执行的指示ssh -V
,但它们没有明确指示是否用于服务器或客户端。
原因:
我想知道客户端版本,因为突然间我的笔记本电脑MacOS
无法再用于某些主机(它之后在主机中进行了从到 的ssh
升级),而对于另一台具有 Linux 的笔记本电脑(作为客户端),他们可以执行ssh 到相同的主机 - 在做了研究之后,似乎是由于客户端版本 - 因此我想知道 MacOS 和 Linux 的客户端版本。Ubuntu
20.04
22.04
有curl
可能做
curl http://somedomain.com/originalfilename.tar.gz -o newfilename.tar.gz
curl http://somedomain.com/originalfilename.tar.gz -o /other/path/newfilename.tar.gz
Run Code Online (Sandbox Code Playgroud)
因此,-o
可以重命名要下载的文件名,甚至定义其他路径目录来下载
现在,如果我想保留相同的文件名,则必须使用-O
curl http://somedomain.com/originalfilename.tar.gz -O
Run Code Online (Sandbox Code Playgroud)
因此下载了该originalfilename.tar.gz
文件。
现在
问题
-O
)并定义要下载的目录?就像是
curl http://somedomain.com/originalfilename.tar.gz -O <download to /some/path>
Run Code Online (Sandbox Code Playgroud)
因此对于 Shell 脚本来说,脚本可以在任何地方执行。我想originalfilename.tar.gz
明确下载该文件/some/path
我有点困惑 ssh 系统范围的known_hosts 文件的“正确”路径是什么。
说man ssh
的/etc/ssh/ssh_known_hosts
是SSH 主机密钥 - 什么、为什么、如何谈论/etc/ssh/known_hosts
。
两个地点都有效吗?这种差异是历史遗留物吗?它是特定分布的吗?应该使用哪个文件路径?
我知道这man <command>
是任何命令的手册页。
对于man groupdel
可能只看到两个选项:
-h --help
-R --root CHRROT_DIR
Run Code Online (Sandbox Code Playgroud)
到目前为止,乍一看,人们可以假设该命令仅支持 2 个选项,但是
通过groupdel -h
节目:
-h --help
-R --root CHRROT_DIR
-f --force
Run Code Online (Sandbox Code Playgroud)
那么——为什么-f
没有通过男人表现出来呢?不确定其他命令是否会发生这种行为 - 这种行为在 Linux 中是正常的还是预期的?顺便说一句,它适用于 Ubuntu 服务器 18:04
以下后期解决方案按预期工作:
因此 - 从他的回答来看:
function copyFiles() {
arr=("$@")
for i in "${arr[@]}";
do
echo "$i"
done
}
array=("one 1" "two 2" "three 3")
copyFiles "${array[@]}"
Run Code Online (Sandbox Code Playgroud)
写这篇文章的原因是如果发生以下情况怎么办:
copyFiles "${array[@]}" "Something More"
copyFiles "Something More" "${array[@]}"
Run Code Online (Sandbox Code Playgroud)
问题:我确实意识到发送的参数,当收到它们时,函数中的参数如何 - 它们实际上是合并的 - 所以$1
并且$2
不再按预期工作,“数组”参数与其他参数集成
我已经做了一项研究:
遗憾的typeset -n
是不起作用
并在:
无法按预期工作 - 在该答案中,有一条评论表明存在问题 - 带有演示测试/验证的链接 - 关于${#array[@]}
函数内的数组大小 ( ) 不同。
那么如何实现这个目标呢?
我想检查用户是否能够使用sudo
(但无需编写密码)用于 bash shell 脚本。我做了一些研究,发现:
对于没有通过 in 进行配置的用户sudoers
- 因此无法使用sudo
- 执行sudo -n <command>
始终在终端中打印sudo: a password is required
消息。如果用户可以使用sudo
--是否sudo
未在会话中执行或sudo
超时已过期--它会再次打印该sudo: a password is required
消息。
此外,使用正确的解决方案(但对于其他情况)
$(sudo -n uptime 2>&1 | grep "load" | wc -l)
Run Code Online (Sandbox Code Playgroud)
sudo
对于未经许可的用户始终返回 0。如果用户可以使用并且超时sudo
仍然sudo
有效- 则返回 1,否则返回 0
问题:因此,使用这种方法不可能真正通过命令知道用户是否可以使用- 该解决sudo
方案只能知道sudo …
根据本教程用于less
导航目的
表示:
g Go to the first line in the file.
p Go to the beginning of the file.
Run Code Online (Sandbox Code Playgroud)
我测试了两者,当然结果是相同的(当然使用G
到底部)并测试每一个。
但乍一看 ifg
和G
彼此相反,它们足以分别进入第一行(顶部)和最后一行(底部) - 那么为什么会有这个选项,p
如果它与 相同g
?
关于curl
隐藏进度表,我通过Stack Exchange分支找到了很多答案,其中提到了-s
和-S
/或只是-sS
在哪里
-s
隐藏进度条-S
仅显示错误消息,即使-s
使用时也是如此因此建议工作为-sS
在一些帖子中,提到了curl
该--no-progress-meter
选项的新添加,例如:
我读man
--no-progress-meter\n Option to switch off the progress meter output without muting or otherwise affecting warning and informational messages like --silent does.\n\n Note that this is the negated option name documented. You can thus use …
Run Code Online (Sandbox Code Playgroud)