执行以下脚本:
#!/bin/sh
sed 's/(127\.0\.1\.1)\s/\1/' [some file]
Run Code Online (Sandbox Code Playgroud)
如果我尝试在sh( dashhere) 中运行它,它会因为需要转义的括号而失败。但是,我并不需要转义反斜线本身(八位位组之间,或\s或\1)。这里的规则是什么?当我需要使用{...}或 时[...]呢?有没有我做什么和不需要逃避的清单?
是否有一个简单的命令将磁盘的设备节点作为输入,并告诉我该磁盘的安装位置(以及是否安装)?是否可以自己获取挂载点,以便我可以将其传递给另一个命令?
我正在使用最少安装的 Debian Squeeze 实时系统(如果需要,我可以安装额外的软件包)。
我正在调整一个 Debian 实时系统(使用实时构建构建),我希望它从 syslinux 直接引导到系统中——没有菜单,没有超时。根据syslinux 文档,超时值为 0 表示禁用超时,即。如果没有用户干预,它根本不会启动,这与我想要的相反。
在我确实需要调整内核行的极少数情况下,能够按住一个键可能会很好,但这不是必需的。真的,我只想立即启动。我如何得到它?
当前的 syslinux 配置是这样的:
syslinux.cfg :
include menu.cfg
default vesamenu.c32
prompt 0
timeout 0
Run Code Online (Sandbox Code Playgroud)
菜单.cfg :
menu hshift 0
menu width 82
menu title Boot menu
include stdmenu.cfg
include live.cfg
include install.cfg
menu end
Run Code Online (Sandbox Code Playgroud)
标准菜单.cfg:
menu background splash.png
menu color title * #FFFFFFFF *
menu color border * #00000000 #00000000 none
menu color sel * #ffffffff #76a1d0ff *
menu color hotsel 1;7;37;40 #ffffffff #76a1d0ff *
menu color …Run Code Online (Sandbox Code Playgroud) 我在 USB 驱动器上有一个实时的 Debian Squeeze 系统,其中包含我用来对另一个驱动器进行映像的脚本。此脚本用于udisks按标签安装驱动器,但它不适用于串行控制台。原因是与串行控制台关联的会话似乎不是“活动的”,这意味着udisks失败:
user@my-live-usb:~$ udisks --mount /dev/disk/by-label/image-data --mount-options ro
Mount failed: Not Authorized
Run Code Online (Sandbox Code Playgroud)
更改allow_any输入/usr/share/polkit-1/actions/org.freedesktop.udisks.policy没有帮助,所以我想知道如何告诉 ConsoleKit 串行控制台是“活动的”。尝试通过 DBUS 接口执行此操作失败:
user@my-live-usb:~$ dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Session7 org.freedesktop.ConsoleKit.Session.Activate
Error org.freedesktop.DBus.GLib.UnmappedError.CkSeatError.Code0: Unable to activate session
Run Code Online (Sandbox Code Playgroud)
Session7 是在 /dev/ttyS0 上列出的那个。
那么如何让 ConsoleKit 将串行控制台识别为活动会话呢?
(就我而言,udisks 版本是 1.0.1+git20100614-3,consolekit 是 0.4.1-4。)
值得一提的是,Debian 实时系统会自动将实时用户登录到所有 6 个视频控制台和串行控制台上。
我想列出给定包的递归依赖项,以及每个依赖项的当前安装版本。我还希望每一行都有一个条目,因此它是可排序和可区分的。
基本上,比如说,tcpdump我希望输出看起来像:
libtext-wrapi18n-perl: 0.06-7
perl-base: 5.14.2-21+deb7u2
Run Code Online (Sandbox Code Playgroud)
...等等。每行的确切格式并不重要,重要的是差异和排序的能力。
APT中已安装包的问题列表(递归)依赖项类似,但没有给出包版本。使用debfoster -d看起来很有希望,但它的输出不适合进一步处理。
假设我有一个我有权读取的磁盘映像(可能已分区)。但是,我无权通过环回 * 挂载它。理论上,数据就在那里;我可以编写类似于 Linux 内核、分区编辑器和mount自己的代码来解析映像、查找分区、解释文件系统和提取文件的代码。但是对于 GNU/Linux 系统是否已经存在这样的工具?
*真的,我正在编写工具来处理它,我不想 (a) 假设这些工具的用户可以sudo和 (b) 要求他们去sudo可能不需要的地方。
(如果答案因文件系统而异,ext2-4对我来说更重要。但涵盖多个流行文件系统的答案将是首选。)
我正在围绕 libgpiod 的接口编写一些代码。比如我想设置一条线输出高电平。在底层,libgpiod 打开内核为该行提供的 fd,然后调用ioctl(fd, GPIO_V2_LINE_SET_VALUES_IOCTL, ...).
我的问题是:
这个特定的ioctl()调用(带有GPIO_V2...参数)理论上(可能)是否会像写入任意文件描述符一样阻塞?
ioctl()理论上来说,呼叫通常会阻塞吗?例如,首先请求线路还涉及ioctl()芯片的 on a fd。I2C 怎么样ioctl()?
fd如果它是阻塞的,那么行 struct ( ) 中的底层是否是line->fd_handle->fd我需要在事件循环中等待的底层(例如,epoll()或像 libuv 这样的抽象事件库)?
我试图通过研究来回答这个问题,但是(a)搜索“ioctl”和“blocking”的任何组合只会给出将fd设置为阻塞或不阻塞的结果,并且(b)它不在手册页或内核中我能找到的文档。
mount ×2
apt ×1
boot-loader ×1
consolekit ×1
debian ×1
disk-image ×1
filesystems ×1
gpio ×1
ioctl ×1
linux-kernel ×1
live-usb ×1
quoting ×1
sed ×1
shell-script ×1
syslinux ×1
udisks ×1