我知道为了抑制程序的输出,我可以将其重定向到/dev/null,例如隐藏来自 Chromium 的所有错误和警告消息,我可以像这样启动程序
chromium-browser 2> /dev/null &
Run Code Online (Sandbox Code Playgroud)
但是,如果我碰巧忘记了错误消息并键入
chromium-browser &
Run Code Online (Sandbox Code Playgroud)
(当它们出现在命令中间时这很烦人)我不知道该怎么做,除了停止应用程序并重新正确启动它。
我可以在不重新启动应用程序的情况下以某种方式重定向错误输出吗?
我有一个 ISO 文件,我将它刻录到 CD 上。现在如何检查 CD 是否正确创建?我想要一个计算哈希和的命令,我可以用它来检查我在 ISO 文件上计算的哈希和。理想情况下,命令应该:
dd将光盘回一个文件然后md5sum在该文件上运行是不可接受的如果没有不能满足所有的答案,我也会欣赏最近的匹配。如果你能告诉我为什么它不是那么简单,那就更好了。
曾经我的一个朋友(他是一位经验丰富的 Unix/Linux 用户)告诉我,将 root 的 shell 设置为 sh 以外的其他东西(即 bash 或 zsh)可能会产生问题,因为某些脚本可能会假设 shell 是 sh 并做一些奇怪的事情.
但是,我认为 Ubuntu 的默认 root shell 设置为 bash,Gentoo 也使用 bash。有人可以打破神话吗?
每次用户使用 ssh 连接时,有没有办法运行脚本/命令?是否可以全局配置(即在任何用户登录时运行脚本)?
我在 Identica 上遇到了这个问题,但还没有答案,无论如何都想知道。
这真的让我失望。我有 Gentoo 和 Ubuntu,都带有 Grub2。Gentoo 有一个专用/boot分区,而 Ubuntu 没有。我menuentry在 Gentoo 中有一个/etc/grub.d/40_custom可以启动 Ubuntu(并且 Ubuntu 可以正常启动)。
因为 Ubuntu 带有 Grub,所以我想链式加载到那个,而不是维护我设置根、内核、initrd 和其他东西的条目。这是我对链加载器的使用(Ubuntu 已开启/dev/sda4,我已经在那里安装了 Grub):
menuentry 'Chainloader' {
insmod chain
set root=(hd0,4)
chainloader +1
}
Run Code Online (Sandbox Code Playgroud)
它给了我error: Invalid signature,我发现没有可用的解决方案。有人可以指出吗?
这是结果 </dev/sda4 head -c 512 | hd
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000200
Run Code Online (Sandbox Code Playgroud)
这是 的结果fdisk -l。/dev/sda1属于/bootGentoo,Gentoo 属于 …
我在这里有一个小问题。
如果我有两个文件,比如说filea和fileb,mv filea fileb会
filebfilea为fileb那么如果我有两个目录,比如说dira和dirb,mv dira dirb会
dira到dirb(会成为dirb/dira)注意到在这两种情况下都没有通知或消息,这对我来说非常不一致。我认为mv dira dirb应该只是简单地覆盖dirb与内容dira(或指定目录下的合并两个目录dirb)。
我记得在某处读到过,带斜杠的目录名(如dira/)被视为目录,而没有斜杠的名称(如dira)被视为文件(当然,在某种程度上)。无论如何,现在我想让 shell(zsh 和可能的 bash)通过使用斜杠来尊重我的目录符号。是否有一个终端选项可以让我强制执行?
澄清一下,这是我想要的行为:
mv dira dirb结果dirb被内容覆盖diramv dira dirb/结果dira被移入dirb(在dirb/dira)有没有人和我一样的想法?还是我只是奇怪?
情况是,我有一个 MP3 播放器mpg321,它接受文件列表作为参数。我将我的音乐保存在一个名为“music”的目录中,其中还有一些目录。我只想播放所有这些,所以我运行程序
mpg321 $(find /music -iname "*\.mp3")
Run Code Online (Sandbox Code Playgroud)
. 问题是,一些文件名中有空格,程序将这些名称分成更小的部分并抱怨丢失的文件。用find引号包裹结果
mpg321 "$(find /music -iname "*\.mp3")"
Run Code Online (Sandbox Code Playgroud)
无济于事,因为一切都会变成一个大“文件名”,这显然是找不到的。
那我该怎么做呢?如果这很重要,我正在使用bash,但zsh很快就会切换到。
我没有安装桌面管理器(我不想安装)。通过终端登录后,我startx用来启动 GUI。~/.xinitrc我的 GUI 会话中有条目。现在我在那里有 xmonad,但有时我想运行一个 GNOME 会话,有时一个 KDE 会话。我曾经~/.xinitrc为此目的进行编辑,但我认为应该有一种更优雅的方式(例如使用替代配置)。但是,我在man startx或 中找不到任何内容man xinit。
我计划有几个配置文件(每个 GUI 会话一个),然后告诉startx我在需要时加载它们。我怎样才能做到这一点?
我刚刚建立了一个 Gentoo 基本系统(这意味着我现在可以启动和登录并使用它做一些事情)。我的根分区位于 LVM2 虚拟组中(具有单独的/boot分区)。为了启动,我需要将以下参数传递给内核:
root=/dev/ram0 real_root=/dev/vg/rootlv init=/linuxrc dolvm
Run Code Online (Sandbox Code Playgroud)
显然,它在挂载 root 之前使用初始 ramdisk 做一些事情(我猜是加载 LVM 的东西)。有没有办法可以将这段代码放入内核本身,这样就不需要 initrd 了?如果没有,我如何自己制作 initrd?
补充一点可能很有用,我曾尝试为非 LVM 根目录编译内核,没有 initrd 并且它运行良好。然后我试图将整个事情放在 LVM 下,但无法启动机器(我猜它无法处理 LVM 的东西)。然后我使用genkernel带有--lvm选项的工具,它创建了我当前正在使用的工作内核和 initrd。
现在我想跳过genkernel并自己做所有事情,最好没有 initrd 以便机器启动得更快(反正我不需要灵活性)。
我正在按照Gentoo wiki制作我自己的 initramfs 。而不是熟悉的tarand gzip,页面告诉我使用cpioand gzip。维基百科说cpio2.6 内核的 initramfs 使用了它,但没有解释原因。
这只是一个约定还是cpio对 initramfs 更好?我还可以使用tarandgzip吗?