小编Dop*_*oti的帖子

如何在 Linux 中使用 grep 命令过滤一行中的值?

我正在尝试从具有Avalon 固件Avalon读取温度:20170603

我正在使用命令:

cgminer-api -o 统计信息

它给我带来了很多我不需要的信息。

root@OpenWrt:/etc# cgminer-api -o stats
STATUS=S,When=1482343577,Code=70,Msg=CGMiner stats,Description=cgminer 4.10.0|STATS=0,ID=AV70,Elapsed=30789,Calls=0,Wait=0.000000,Max=0.000000,Min=99999999.000000,MM ID1=Ver[7411612-6cf14b0] DNA[01313edbc5efabe3] Elapsed[30792] MW[340560 340538 340538 340538] LW[1362174] MH[180 238 259 216] HW[893] DH[2.749%] Temp[30] TMax[77] Fan[5430] FanR[90%] Vi[1201 1201 1202 1202] Vo[4438 4406 4443 4438] GHSmm[8063.47] WU[108083.46] Freq[715.86] PG[15] Led[0] MW0[1170 1302 1206 1250 1197 1312 1331 1262 1300 1216 1230 1281 1265 1273 1327 1291 1232 1231 1267 1292 1286 1203] MW1[1312 1189 1237 1251 1212 1247 1264 1275 …
Run Code Online (Sandbox Code Playgroud)

grep logs text-processing

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

如何自动将条目添加到 .ssh/known_hosts?

我管理很多主机,每次我ssh第一次进入新批次时,告诉yes每个主机的安全 shell 客户端我接受主机密钥指纹以添加到~/.ssh/known_hosts. 如果我们认为我确信实际上没有泄露的主机密钥,那么有什么方法可以自动执行此操作吗?我不想禁用后续连接的密钥检查。

为了便于讨论,假设我在文本文件 .txt 中有所有主机的列表hostlist.txt

ssh fingerprint

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

如何在一组文件上迭代命令?

我有一个装满文件的文件夹,其.dot扩展名如下:

a.dot
b.dot
c.dot
Run Code Online (Sandbox Code Playgroud)

我想浏览此文件夹中的所有文件,并对它们运行如下命令:

dot -Tpdf a.dot -o a.pdf
dot -Tpdf b.dot -o b.pdf
dot -Tpdf c.dot -o c.pdf
Run Code Online (Sandbox Code Playgroud)

我猜我需要使用垂直条并执行如下命令:

ls *.dot | dot -Tpdf ... -o ....pdf
Run Code Online (Sandbox Code Playgroud)

但我不知道如何让管道只将每个文件放在中间部分。我应该使用xargs吗?此外,如何剥离扩展然后也将其放置在第二部分上。如果我至少可以指出正确的方向(使用哪个 shell 命令),它将帮助我在解决这个问题的过程中走得更远。

shell pipe wildcards control-flow

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

${var/a/b/\c} 是什么意思?

我对这个声明(构造?)有点困惑。我找不到任何足够的来源(我什至不知道如何称呼它)。这里发生了什么?

bash-4.3$ var="a/b"
bash-4.3$ f=${var/b/c/\d}                                                                                                                                                                                                             
bash-4.3$ echo $f                                                                                                                                                                                                                     
a/c/d
Run Code Online (Sandbox Code Playgroud)

或这个:

bash-4.3$ var="b/a"                                                                                                                                                                                                                   
bash-4.3$ f=${var/b/c/\d}                                                                                                                                                                                                             
bash-4.3$ echo $f                                                                                                                                                                                                                     
c/d/a 
Run Code Online (Sandbox Code Playgroud)

谢谢

bash string

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

文本操作:提取括号内的所有内容

我有一个文本文件,其中每一行的格式与此类似:

%#&#%#    [Dinero]    / Money / 
!#@%$@    [Dia]     / Day /
$%&$^#@ [Perro]   / Dog / 
Run Code Online (Sandbox Code Playgroud)

我正在寻找提取括号内的单词,即。Ola、Dinero、Perro 等,并将其全部逐行保存到新的文本文件中。本质上,我希望省略/删除/擦除所有单词、字母、特殊字符以及括号之外的任何其他内容,包括括号本身。

sed perl text-processing

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

在一个 glob 中使用多个通配符

在我的目录中,我有一个具有不同扩展名的文件列表,例如

file-abc-12.out
file-abc-12.csv
file-abc-12.txt
file-xyz-12.out
file-xyz-12.csv
file-xyz-12.txt
file-abc-04.out
file-abc-04.csv
file-abc-04.txt
file-xyz-04.out
file-xyz-04.csv
file-xyz-04.txt
Run Code Online (Sandbox Code Playgroud)

如果我只想列出包含 abc 并以 .out 结尾的文件,我该怎么做。我想执行lsfind使用两种模式匹配搜索*abc**out。我一次只知道如何搜索一个或另一个,我如何让它搜索具有这两个条件的文件名?

command-line bash wildcards

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

Linux 交换文件的创建和管理

我想增加我的交换大小以便能够有休眠选项。首先,我尝试添加一些交换文件。我跟着

https://bogdancornianu.com/change-swap-size-in-ubuntu/

并在我的终端中输入:

sudo dd if=/dev/zero of=swapfile bs=1G count=16
Run Code Online (Sandbox Code Playgroud)

我得到:

16+0 records in
16+0 records out
17179869184 bytes (17 GB, 16 GiB) copied, 206.949 s, 83.0 MB/s
Run Code Online (Sandbox Code Playgroud)

然后,我按照说明操作:

sudo mkswap /swapfile
Run Code Online (Sandbox Code Playgroud)

但我收到此错误:

mkswap: cannot open /swapfile: No such file or directory
Run Code Online (Sandbox Code Playgroud)

然后,我决定调整交换分区而不是交换文件的大小。所以我想删除它们。(我之前没有创建过,所以我假设我可以将它们全部删除?)我遵循了这个:

https://askubuntu.com/questions/904628/default-17-04-swap-file-location

我试过:

$ cat /proc/swaps
$ grep swap /etc/fstab
Run Code Online (Sandbox Code Playgroud)

但我从第一个中什么也没得到。第二个输出是:

              total        used        free      shared  buff/cache   
available
Mem:          11862        3498        1014         138        7349        
7907
Swap:             0           0           0
Run Code Online (Sandbox Code Playgroud)

我也试过(重启后):

swapon -s
Run Code Online (Sandbox Code Playgroud)

并得到

Filename                Type        Size    Used    Priority
/dev/sdb3                               partition …
Run Code Online (Sandbox Code Playgroud)

swap

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

如何在 Centos 上安装 tmux?

当我执行时yum install tmux,它给了我一个错误:

Setting up Install Process 
No package tmux available. 
Error: Nothing to do
Run Code Online (Sandbox Code Playgroud)

关于如何解决这个问题的任何想法?

yum tmux centos software-installation package-management

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

别名 `rm` 以创建 CLI“回收站”

当我们做

mv /root/file /root/folder/
Run Code Online (Sandbox Code Playgroud)

它移动/root/file/root/folder

我想做同样的事情,但我想颠倒如何mv看待论点的顺序

我想声明一个别名(不是函数),比如

alias rm="mv /root/folder"
Run Code Online (Sandbox Code Playgroud)

所以,当我会做

rm /root/file

它会将该特定文件移动到 /root/folder


为什么,我不想使用函数?

因为我无法命名函数,rm()因为关键字rm已经存在。

我希望能够使用关键字,rm因为它是我们所有人的常规习惯。

alias rm

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

echo 通配符通配符

我试图回显包含我需要“解压”的通配符的文本和变量的组合,但我遇到了以下行为:

如果我说:

FILENAME=somefile*.txt
echo "something:" $FILENAME
Run Code Online (Sandbox Code Playgroud)

我得到:

something: somefile003.txt
Run Code Online (Sandbox Code Playgroud)

这就是我想要的,但如果我说: 如果我说:

FILENAME=somefile*.txt
echo "something:"$FILENAME
Run Code Online (Sandbox Code Playgroud)

我得到:

something:somefile*.txt
Run Code Online (Sandbox Code Playgroud)

因此,如果引号和变量之间没有空格,它似乎不会使用通配符。有没有办法让它在不添加空格的情况下处理*?

shell-script echo wildcards

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

如何强制HTTP访问而不是HTTPS?

我想完成一些独特的事情,并使用 HTTP 而不是 HTTPS 来使用各种不同的网站,并且想知道是否有人对如何完成此壮举有任何想法。如今,互联网很难搜索,并且给出的结果类似于...使用 https 搜索!并且基本上无视我的要求。

我认为这很有趣,并且一直在寻找独特的方式来使用技术,为我们带来不同的好处。我认为 http 很有趣,因为我见过很多不同的网站进行奇怪的未经请求的连接,并且通常会进行许多偷偷摸摸的行为,因此通过 http,我们希望可以更详细地检查这些类型的连接,并更好地理解那些偷偷摸摸的行为随着时间的推移而演变。

任何人,我将继续研究这一思路,如果任何人在虚空中有一个想法输入,可能会有所帮助,那将是有帮助的。

谢谢

编辑:所以我正在挖掘并发现一些对我没有帮助的基本答案,例如使用 firefox 设置禁用 https 重定向。

browser.fixup.fallback-to-https false

(不改变现状)

/sf/ask/2137273001/

我认为我们的 dns 服务器,或者 Web 服务器本身会尝试强制我们所有人使用 https,所以也许唯一真正的解决方案是在本地主机上完全拒绝 https 协议本身,并且如果远程 Web 服务器拒绝通过 http 连接,我们可以安全地将它们视为不安全,并找到替代方案。

为了使这一策略取得成功,我们也可能需要独特的解决方案,而不是仅仅一种解决方案,因为技术将采用新的方法来不适当地对我们与远程 Web 服务器的交互施加限制。

因此,我正在继续解决这个问题并尝试不同的事情,以下是我如何使用 gufw 在本地主机上禁用 https(添加了一个简单的规则来拒绝传入/传出 https)[img] https://i.imgur.com/ LLdRltq.png [/img]

这是令人担忧的,因为我注意到我的浏览器会传入和传出未经请求的连接,并且无法知道是什么发起了这些交换,或者它们正在做什么。

在我自己的计算机上使用防火墙完全禁用 https 可防止 Firefox 访问许多网站.. 例如:unix.stackexchange.com 和 google。(他们尝试以无限循环加载)但是使用不同的网络浏览器 lynx,我可以立即使用 http 连接到 google。

[img] https://i.imgur.com/qsjpxET.png [/img]

linux networking protocols

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