小编Joh*_*ing的帖子

“此系统不支持 EFI 变量”

我正在尝试将 Arch linux 安装到新的(非常糟糕的)HP Pavillion 15 笔记本电脑上。

这是一台基于 UEFI 的机器。经过几次摆动后,我已经走得很远了。传统模式在系统设置中被禁用,我已经通过 EFI 引导到我刻录的 Arch DVD,并通过 Arch初学者指南和更高级的安装指南进行到我安装 grub 的地步。

chrooted 时,我执行:

grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=arch_grub --recheck --debug
Run Code Online (Sandbox Code Playgroud)

这会发出大量输出,包括:

此系统不支持 EFI 变量

我第一次到这一步时,我继续安装,不知道这是否是一个实际问题。原来是这样,因为当我重新启动机器时,找不到可启动的媒体,机器拒绝启动。那时我可以进入 UEFI 设置菜单并选择要启动的 EFI 文件,然后 Arch Linux 就会启动。

但我现在要回去重新安装,试图解决上述问题。

如何让 GRUB 正确安装?

uefi

34
推荐指数
5
解决办法
14万
查看次数

临时更改时间

我需要测试仅在一天中的特定时间发生的软件方面。与其等待一整天(并在凌晨 2:00 到达这里),我想更改时间。

但我宁愿不永久改变它。

我知道我可以使用 更改时间date,然后再改回来,但是有更好的方法吗?

有问题的操作系统是在 VM 中运行的 RHEL6。

linux rhel time

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

为 tcpdump 捕获创建多播加入

我想编写一个 linux shell 脚本来捕获特定的多播流量。具体来说,我想创建一个 pcap 文件,其中包含一个特定多播组/端口的所有流量。

这是我用来查看流量的命令行:

tcpdump -nnXs 0 -i eth1 udp port 22001 and dst 233.54.12.234
Run Code Online (Sandbox Code Playgroud)

只要我已经建立了对该组的多播订阅,这就可以正常工作。例如,如果我在另一个控制台中运行它:

mdump 233.54.12.234 22001 10.13.252.51
Run Code Online (Sandbox Code Playgroud)

tcpdump会看到数据包。如果mdump没有运行,tcpdump则什么也看不到。

在开始捕获之前,是否有标准的 linux-y 方法来建立这些多播连接?我可以mdump用来建立这些连接,但这似乎很浪费,因为mdump将处理组上的所有数据,但我只是打算将其丢弃。

请注意,由于我的特定环境,我不鼓励将界面置于混杂模式。事实上,它可能被禁止。

linux shell-script multicast tcpdump

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

grep 仅匹配模式的子目录

我有一个由数千个子目录组成的目录树,但我经常只需要 grep 那些目录的一小部分。我怎样才能grep只有那些匹配模式的子目录?

例如,假设我有这些我想要 grep 的子目录:

...
...
...
/foo
/fooLib
/fooHandler
/fooGizmo
...
...
...
Run Code Online (Sandbox Code Playgroud)

...上述条目代表的成千上万的其他目录,我的希望到grep英寸

假设我正在寻找 的所有实例bar,如果我这样做:

grep -n --recursive bar *
Run Code Online (Sandbox Code Playgroud)

我会找到我要找的东西,但在所有目录中。如何仅在与模式匹配的子目录中进行搜索foo*

grep

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

grep 查找 "Foo" 的实例,其中 "Bar" 未出现在 10 行内

假设我想在整个树中搜索出现“Foo”的所有 CPP 文件。我可能会这样做:

find . -name "*.cpp" | xargs grep "Foo"
Run Code Online (Sandbox Code Playgroud)

现在假设我想列出只有那些情况下,其他一些字符串,说“酒吧”并没有在3线前一个结果的发生。

所以给定两个文件:

a.cpp

1 Foo
2 qwerty
3 qwerty
Run Code Online (Sandbox Code Playgroud)

b.cpp

1 Foo
2 Bar
3 qwerty
Run Code Online (Sandbox Code Playgroud)

我想构建一个简单的搜索,其中找到 a.cpp 中的“Foo”,但没有找到 b.cpp 中的“Foo”。

有没有办法以相当简单的方式实现这一目标?

grep

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

切割键值对

我正在寻找一种从文本中剪切键值对(其中键是唯一且指定的)的简单方法,就像如何cut用于剪切 CSV 文件中的指定列一样。我正在寻找的键并不总是在行中的相同相对位置——也就是说,使用cut后跟sed不会解决问题,因为我正在寻找的键并不总是在同一个,分隔列中.

有问题的文本确实是 CSV,但碰巧这些值是键/值对,以=.

例如,我可能会用以下三行来解析一个文件:

Foo=1, Bar=2, Baz=3
Bar=4, Foo=2, Baz=3
Bar=42, Baz=42, Foo=3
Run Code Online (Sandbox Code Playgroud)

我想剪切此文本以生成特定键的键/值对。如果我正在寻找Foo,那么我想要的输出将是:

Foo=1
Foo=2
Foo=3
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想要一个命令行工具,它具有与 类似的语法cut,并且可以从标准输入和文件中读取。

有这样的工具吗?

scripting text-processing

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

将标准输入发送到控制台和压缩文件

我正在运行一个生成文本输出的专有程序。有点像记录器。

logger
Run Code Online (Sandbox Code Playgroud)

我想在终端上查看此输出以观察服务器呼吸,并将其发送到文本文件。所以通常我会这样做:

logger | tee /tmp/log.txt
Run Code Online (Sandbox Code Playgroud)

但是这些日志文件可能会变得足够大,以至于我的 VM 磁盘空间不堪重负。我不想将文本发送到未压缩的文本文件,而是希望它立即被压缩。所以我可能会这样做:

logger
Run Code Online (Sandbox Code Playgroud)

在一个终端和

logger | gzip > /tmp/log.gz
Run Code Online (Sandbox Code Playgroud)

在另一个终端。但这感觉不太*。

有没有一种方法可以在一个命令中完成此操作,类似于使用tee? 这是我要做的,这显然行不通,但也许你会明白:

logger | tee gzip > /tmp/log.txt
Run Code Online (Sandbox Code Playgroud)

linux shell terminal

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

cat 文件到多播

我有一个test.txt表示捕获的网络数据的文本文件 ( )。实际的协议是基于文本的,行尾为 NULL,所以这不是问题。

我需要通过我的服务器,通过多播端口运行这个测试捕获的数据。TTL 可以为零——我将在同一个盒子上运行它的两边。

有没有办法将cat文件本质上传输到多播端口?

我已经有一些工具可以用来处理 pcap 文件和其他格式,但我更喜欢使用快速和内置的东西,而不是破解打开该代码以使其读取文本文件。

这将在 RHEL6.2 服务器上运行。命令行,ssh 会话。

command-line rhel multicast cat

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

由于我的错误,yum 文件冲突。我该如何解决?

我做了一件蠢事。我只是将scp我的rpmforge repo 文件从另一台(工作)机器编辑到我的开发箱,然后运行yum update. 这产生了:

root@dev07 /etc/yum.repos.d # yum update
Loaded plugins: refresh-packagekit, security
rpmforge                                                                                                                                                                                         | 1.9 kB     00:00     
rpmforge/primary_db                                                                                                                                                                              | 2.7 MB     00:01     
Setting up Update Process
Resolving Dependencies
--> Running transaction check
---> Package htop.x86_64 0:1.0.1-2.el6 will be updated
---> Package htop.x86_64 0:1.0.3-1.el6.rf will be an update
---> Package libewf.x86_64 0:20100226-1.el6 will be updated
---> Package libewf.x86_64 0:20100226-1.el6.rf will be an update
---> Package perl-Compress-Raw-Bzip2.x86_64 0:2.021-136.el6 will be updated
---> Package perl-Compress-Raw-Bzip2.x86_64 0:2.052-1.el6.rf …
Run Code Online (Sandbox Code Playgroud)

yum rhel

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