小编gar*_*Red的帖子

在 Shell 算术评估中使用未经处理的数据的安全影响

在对最近问题评论中,Stéphane Chazelas 提到双括号算术存在安全隐患,例如:

x=$((1-$x))
Run Code Online (Sandbox Code Playgroud)

在大多数贝壳上。

我的谷歌技能似乎生疏了,我找不到任何东西。双括号算术的安全含义是什么?

shell security arithmetic

29
推荐指数
1
解决办法
1188
查看次数

UUID 用于 NIC 的目的是什么?

在 Fedora/RHEL/CentOS 上,/etc/sysconfig/network-scripts/ifcfg-x文件中有一行定义UUID

UUID=30fcd648-ad1e-4428-as6f-951e8e4d16df
Run Code Online (Sandbox Code Playgroud)

NIC 本身就有 MAC 地址,那么当已经有一个标识号 (MAC) 并且与文件系统 UUID 不同,它们不能存储在设备本身上时,将 UUID 指向 NIC 的目的是什么?

networking fedora rhel networkmanager uuid

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

i3 和 vmware:如何检测分辨率变化并将当前分辨率设置为新的分辨率变化?

我正在使用 vmware 运行 arch linux。我已经设置了 i3-gaps 并且在使用柠檬条时一切都设置正确,但是,我唯一的问题是柠檬条设置为当前分辨率。当我调整 VMware 大小时,分辨率会发生变化,并且该栏不再正确显示。调整 vmware 窗口大小时刷新分辨率的最佳方法是什么?

我使用的是最新的 VMware fusion 8.1。目前,我正在使用柠檬条,它通过使用 xrandr -q 并使用 awk 来获取当前分辨率的宽度来查找当前分辨率。

xrandr i3

7
推荐指数
1
解决办法
1502
查看次数

我试图找到一种更好/更简单的方法来计算文件或 shell 变量中的字母字符

我有一个包含以下文本的文件:

we are going to write something 1 2 3
Run Code Online (Sandbox Code Playgroud)

wc 告诉我我有 1 行 9 个单词和 38 个字符。

我只想计算 26 个字母(a-z没有数字或空格等)。

这是我目前的解决方案:

grep -o [[:alpha:]] filename | wc -l
Run Code Online (Sandbox Code Playgroud)

我真的很想知道在命令行是否有“更好”的方法来做到这一点。

command-line shell grep

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

为什么curl(而不是wget)与software.download.prss.microsoft.com 存在信任问题?

以下 URL 重定向到 microsoft.com 子域:https://tb.rg-adguard.net/dl.php?go=3dd1ce66 \n即https://software.download.prss.microsoft.com/db/Win10_20H2_v2_EnglishInternational_x64.iso?t=...(...是随机令牌)

\n

我可以通过运行以下命令获得最终的重定向 URL:

\n
curl -LsI -o /dev/null -w %{url_effective} "https://tb.rg-adguard.net/dl.php?go=7e583fea\n
Run Code Online (Sandbox Code Playgroud)\n

但无论我跑wget https://tb.rg-adguard.net/dl.php?go=3dd1ce66还是wget https://software.download.prss.microsoft.com/db/Win10_20H2_v2_EnglishInternational_x64.iso?t=...................

\n

我总是遇到使用 Firefox 下载文件时未遇到的证书错误。

\n
wget https://software.download.prss.microsoft.com/db/Win10_20H2_v2_EnglishInternational_x64.iso\\?t\\=...................\n--2022-04-12 14:57:29--  https://software.download.prss.microsoft.com/db/Win10_20H2_v2_EnglishInternational_x64.iso?t=..........................\nResolving software.download.prss.microsoft.com (software.download.prss.microsoft.com)... 152.199.21.175, 2606:2800:233:1cb7:261b:1f9c:2074:3c\nConnecting to software.download.prss.microsoft.com (software.download.prss.microsoft.com)|152.199.21.175|:443... connected.\nERROR: The certificate of \xe2\x80\x98software.download.prss.microsoft.com\xe2\x80\x99 is not trusted.\n
Run Code Online (Sandbox Code Playgroud)\n

为什么不同应用程序(Firefox 与 wget)的行为不一致。是否确实有理由不信任该证书(如果是的话,为什么 Firefox 没有捕获该证书)或者 wget 出了问题?

\n

我正在使用 Fedora 35 x64、Wget 1.21.2 和 Firefox 98.0。

\n

wget ssl curl certificates

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

不能在没有 -ff 的情况下初始化卷组的物理卷

Can't initialize physical volume "/dev/sda3" of volume group "stark" without -ff
Run Code Online (Sandbox Code Playgroud)

我创建的物理体积pvcreate,然后vgcreatelvcreate成功。后来,我以相反的顺序删除lvdeletevgdeletepvdelete。现在我得到这个错误,当我想创建pvcreate作出新的分区后。

如果您能告诉我如何解决此错误,我将不胜感激?

lvm

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

带有选项 -n 和 '$=' 的 sed 命令

我想使用sed命令打印文件中的行数。我有以下一行,请任何人详细解释。

sed -n '$=' myfile.txt
Run Code Online (Sandbox Code Playgroud)

sed

3
推荐指数
1
解决办法
1343
查看次数

迭代编辑单个文件

我有一个带有如下语句的文件:

myName_tx_1 VARCHAR(255)
myName_in_1 VARCHAR(255)
myName_tx_2 VARCHAR(255)
myName_in_2 VARCHAR(255)
myName_tx_3 VARCHAR(255)
myName_in_3 VARCHAR(255)
myAddress_tx_1 VARCHAR(255)
myAddress_in_2 VARCHAR(255)
etc
Run Code Online (Sandbox Code Playgroud)

我想将其更改为:

myName_tx_1 VARCHAR(255)
myName_in_1 VARCHAR(1)
myName_tx_2 VARCHAR(255)
myName_in_2 VARCHAR(1)
myName_tx_3 VARCHAR(255)
myName_in_3 VARCHAR(1)
myAddress_tx_1 VARCHAR(255)
myAddress_in_2 VARCHAR(1)
etc
Run Code Online (Sandbox Code Playgroud)

无论如何,问题的进一步限定是我只想更改属性名称以 'in$' 结尾的条目,其中 $ 是一个数字(例如 myName_in_3 VARCHAR(255))。

碰巧的是,'_in'(指标属性)是成对出现的,所以做 n~2(或 FNR%2==0)是很聪明的,但我想知道识别 '_in$ VARCHAR( 255)' 作为变化的模式。

我将如何使用易于理解的代码来做到这一点?文件不大,所以性能不是主要问题....只是想避免大量手动 vi 编辑。

text-processing

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

如何计算bash中有多少个ip?

有人知道如何在bash中计算多少个ip吗?

例如: 命令:

root@ubuntu:~$ dig www.google.com A +short | grep -oE "\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b"
Run Code Online (Sandbox Code Playgroud)

例如我得到

114.114.114.114
114.114.115.115
8.8.8.8
etc...
Run Code Online (Sandbox Code Playgroud)

我想运行一个特定的命令来获取:

N IPs found in DNS
Run Code Online (Sandbox Code Playgroud)

(N 是在返回中找到的 IP 数)

我还想将这些 IP 划分为不同的变量:

$a="114.114.114.114"
$b="115.115.115.115"
$c="8.8.8.8"
$N="x.x.x.x"
Run Code Online (Sandbox Code Playgroud)

有没有人知道怎么做?

bash ip variable

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