在网络隔离 OpenBSD 全新安装的默认终端上执行 SHA256d 哈希(双 SHA256)的好方法是什么?
这就是我正在做的:
echo test > testfile
cat testfile | openssl dgst -binary | openssl dgst
它给了我一个以0xe0b6
只是想知道是否有更简洁/更好的方法?
在网络隔离 OpenBSD 全新安装的默认终端上执行 SHA256d 哈希(双 SHA256)的好方法是什么?
这就是我正在做的:
echo test > testfile
cat testfile | openssl dgst -binary | openssl dgst
它给了我一个以0xe0b6
只是想知道是否有更简洁/更好的方法?
我正在尝试在具有 1TB 驱动器的 amd64 arch 上安装 OpenBSD7.4。
该机器将运行 X windows 系统,需要足够的空间来存储文件。
我在提示符下选择了“整个磁盘 GPT”(尽管我不确定 MBR 是否是更好的选择)。
创建自动分配的布局:
a
通过创建12个分区l
。
总结:
partition size (M) fstype mount point(I think)
a: 1024 4.2BSD /
b: 4129 swap
c: 915715 unused
d: 4096 4.2BSD /tmp
e: 11842 4.2BSD /var
f: 30720 4.2BSD /usr
g: 1024 4.2BSD /usr/X11R6
h: 20480 4.2BSD /usr/local
i: 260 MSDOS
j: 3072 4.2BSD /usr/src
k: 6144 4.2BSD /usr/obj
l: 307200 4.2BSD /home
c
约为 915GB,并标记为未使用。我想调整布局以利用它。
从手册页中我可以看到以下定义:
分区/挂载点 | 来自hier的总结 |
---|---|
/ |
根 |
/tmp |
系统重新启动之间不保留的临时文件。 |
/var |
多用途日志、临时文件、瞬态文件和假脱机文件。 |
/usr |
包含大多数用户实用程序和应用程序 |
/usr/X11R6 |
X11 窗口系统所需的文件。 |
/usr/local |
本地可执行文件、库等 |
/usr/src |
BSD 和/或本地源文件。 |
/usr/obj |
通过构建 /usr/src 树生成的体系结构特定目标树。 |
/usr/home |
用户主目录的默认位置。 |
然而,我正在努力解释这一点,并提出以下问题(当前最佳猜测答案以斜体字显示):
1. 为什么自动布局会特别选择以上挂载点? 根据历史使用和估计改进通用分配。
2. 为什么会有未使用的分区? 自动磁盘分配器的一个工件,它设置分区大小的最大限制 - 剩余部分不被使用。
3. 将它们全部放在一个分区上是一个好主意吗? 不知道!
4. 对于一般用途的 PC(带有 X windows)来说,什么可能是一个好的分配实践 - 我应该在哪里重新分配分区c
?
我想我应该将未使用的文件重新分配c
给l
/ /usr/home
,因为我可能会在用户空间中保存大量文件。
*也许我错过了一个明显的手册页。这是我所看到的:
https://www.openbsd.org/faq/faq4.html#Partitioning
说我有这个:
str="@test/string"
echo $str
@test/string
echo ${str#@}
test/string
按预期工作,但是
echo ${str//\//-}
ksh: ${str//\//-}: bad substitution
失败。(预期@test-string)
替换/替换这样的字符的正确方法是什么?
echo $KSH_VERSION
KSH version @(#)PD KSH v5.2.14 99/07/13.2
我希望创建一个 *BSD 兼容的 C 函数,如下所示:
int
fs_ext__swap (const char *from, const char *to) {
int res = renameatx_np(AT_FDCWD, from, AT_FDCWD, to, RENAME_SWAP);
return res == -1 ? uv_translate_sys_error(errno) : res;
}
目前我收到构建错误 ( 'renameatx_np' is invalid in C99 [-Wimplicit-function-declaration]
),因为据我所知,该renameatx_np
功能是 MacOS 独有的。*BSD 是否有等效版本(我使用的是 OpenBSD 7.3 atm)?
RENAME_SWAP
如果我删除标志并将函数更改为renameat
(编辑:我试过这个,它构建和编译正常但在上游测试期间导致 ENOENT 错误),我会冒什么风险?
我的计划是使用linkat和unlinkat函数来模拟renameatx_np的功能。
我还能如何处理这个问题?
我正在尝试编写一个函数,该函数使用传入的名称写入数组。给定以下 bash 函数:
function writeToArray {
local name="$1"
echo "$name"
declare -a "$name"
${name[0]}="does this work?"
}
像这样运行:
writeToArray $("test")
我收到两个错误:
bash: declare: `': not a valid identifier
=does this work?: command not found
我期待能够做到这一点:
writeToArray $("test")
for item in "${test[@]}"; do
echo "item"
echo "$item"
done
这应该打印:
item
does this work?
我怎样才能正确配置它来写入数组(test
在示例中命名,这样这个命名的数组test
在函数外是可读的)?