我正在尝试将 Arch linux 安装到新的(非常糟糕的)HP Pavillion 15 笔记本电脑上。
这是一台基于 UEFI 的机器。经过几次摆动后,我已经走得很远了。传统模式在系统设置中被禁用,我已经通过 EFI 引导到我刻录的 Arch DVD,并通过 Arch初学者指南和更高级的安装指南进行到我安装 grub 的地步。
在chroot
ed 时,我执行:
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 正确安装?
我需要测试仅在一天中的特定时间发生的软件方面。与其等待一整天(并在凌晨 2:00 到达这里),我想更改时间。
但我宁愿不永久改变它。
我知道我可以使用 更改时间date
,然后再改回来,但是有更好的方法吗?
有问题的操作系统是在 VM 中运行的 RHEL6。
我想编写一个 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
将处理组上的所有数据,但我只是打算将其丢弃。
请注意,由于我的特定环境,我不鼓励将界面置于混杂模式。事实上,它可能被禁止。
我有一个由数千个子目录组成的目录树,但我经常只需要 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*
?
假设我想在整个树中搜索出现“Foo”的所有 CPP 文件。我可能会这样做:
find . -name "*.cpp" | xargs grep "Foo"
Run Code Online (Sandbox Code Playgroud)
现在假设我想列出只有那些情况下,其他一些字符串,说“酒吧”并没有在3线前一个结果的发生。
所以给定两个文件:
1 Foo
2 qwerty
3 qwerty
Run Code Online (Sandbox Code Playgroud)
1 Foo
2 Bar
3 qwerty
Run Code Online (Sandbox Code Playgroud)
我想构建一个简单的搜索,其中找到 a.cpp 中的“Foo”,但没有找到 b.cpp 中的“Foo”。
有没有办法以相当简单的方式实现这一目标?
我正在寻找一种从文本中剪切键值对(其中键是唯一且指定的)的简单方法,就像如何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
,并且可以从标准输入和文件中读取。
有这样的工具吗?
我正在运行一个生成文本输出的专有程序。有点像记录器。
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) 我有一个test.txt
表示捕获的网络数据的文本文件 ( )。实际的协议是基于文本的,行尾为 NULL,所以这不是问题。
我需要通过我的服务器,通过多播端口运行这个测试捕获的数据。TTL 可以为零——我将在同一个盒子上运行它的两边。
有没有办法将cat
文件本质上传输到多播端口?
我已经有一些工具可以用来处理 pcap 文件和其他格式,但我更喜欢使用快速和内置的东西,而不是破解打开该代码以使其读取文本文件。
这将在 RHEL6.2 服务器上运行。命令行,ssh 会话。
我做了一件蠢事。我只是将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)