小编And*_*eKR的帖子

为子shell设置环境变量

我知道我可以使用这样的环境变量运行命令:

FOO=bar mycommand
Run Code Online (Sandbox Code Playgroud)

我知道我可以在这样的子 shell 中运行命令:

(firstcommand && secondcommand)
Run Code Online (Sandbox Code Playgroud)

但是我可以以某种方式将这两者结合起来吗?

FOO=bar (firstcommand && secondcommand)
Run Code Online (Sandbox Code Playgroud)

给出:

sh: syntax error: unexpected "("
Run Code Online (Sandbox Code Playgroud)

至少在busybox shell(灰烬)中。

编辑: Kusalananda 建议FOO=bar sh -c 'first && second'这确实是一个解决方案。但是,我也对替代答案感兴趣,因为我喜欢 subshel​​l 语法,因为它不需要摆弄转义引号。

environment-variables ash subshell

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

不推荐使用 setcap 吗?

我正在使用systemd单元文件以非 root 身份启动网络服务器。

listen tcp :80: bind: permission denied即使我已经跑了,我也得到了

setcap cap_net_bind_service=+ep
Run Code Online (Sandbox Code Playgroud)

在可执行文件上。

在互联网上的一个示例单元文件中,我发现

CapabilityBoundingSet=CAP_NET_BIND_SERVICE
AmbientCapabilities=CAP_NET_BIND_SERVICE
Run Code Online (Sandbox Code Playgroud)

在单元文件中使用。所以我尝试了一下,突然应用程序可以绑定端口 80。

这告诉我什么?setcap是否旧/已弃用/被忽略?一般只能通过systemd还是通过 Linux?

systemd setcap capabilities

10
推荐指数
1
解决办法
3140
查看次数

fsck 选项 -y 和 -p 之间有什么区别?

ext2/3/4 文件系统检查器有两个看起来非常相似的选项,-p以及-y.

两者似乎都执行了自动修复,但联机帮助页指出,-p遇到某些错误时可以退出,而-y没有提到这样的事情。这是唯一的区别吗?

ext4 ext2 ext3 fsck

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

`du - hb` 有什么作用?

随着du -bh我觉得我得到人类可读格式的外观尺寸:

# du -bh
295K    ./test
Run Code Online (Sandbox Code Playgroud)

但是,我希望从du -hb,但我得到其他东西:

# du -hb
301926  ./test
Run Code Online (Sandbox Code Playgroud)

我相信这与刚刚du -b给我的输出相同。

# du --version
du (GNU coreutils) 7.4
Run Code Online (Sandbox Code Playgroud)

command-line disk-usage coreutils

5
推荐指数
1
解决办法
1284
查看次数

`du -b` 显示的大小与 `ls` 不同

我有一个包含几百个文件的目录(真实文件,没有符号链接,没有子目录)。

当我ls -la在 Excel 中使用和总结大小时,我得到287190字节(?)。

当我使用du -bdu --apparent-size --block-size=1我得到422358字节(?)。

我以为这两个意思是一样的,为什么不同?

ls filesystems disk-usage

5
推荐指数
1
解决办法
2720
查看次数

使用数字模式清除 setuid 权限

在 Ubuntu Linux 上,我有一个设置了 setuid 位 ( drwsr-xr-x)的目录,我想取消设置它。

既不是chmod 755也不chmod 0755chmod 00755(我虽然可能第一个 0 被解释为只是“这是八进制”)清除 setuid 位。然而,chmod u-s做到了。

清除 setuid 位的正确数字模式是什么?

setuid permissions chmod

4
推荐指数
1
解决办法
1525
查看次数

如何写入正在运行的 docker 容器内的文件?

随着cat我可以从文件到stdout阅读。例如,我可以通过这种方式将文件从 docker 容器中导出:

docker exec my_container cat file > file_on_host
Run Code Online (Sandbox Code Playgroud)

当我想做相反的事情时,我需要一个从标准输入读取并保存到文件的命令。有这样的命令吗?

docker exec my_container ??? file < file_on_host
Run Code Online (Sandbox Code Playgroud)

io-redirection docker

2
推荐指数
2
解决办法
9549
查看次数