小编ant*_*nio的帖子

Arch GRUB 在非 lvm 磁盘上请求 /run/lvm/lvmetad.socket

我正在根据ArchWiki设置程序运行此脚本。它在GRUB 配置步骤失败

我在 VMware Player 中使用 archlinux-2013.12.01-dual.iso,内存sda为1 GB,大小为 810 MB。我还在主机上安装了 CIFS 共享。

# DEV=sda
# PART=sda1
# echo "1,,L,*" | sfdisk /dev/$DEV
# mkfs.ext3 /dev/$PART
# mount /dev/$PART /mnt
# pacstrap -i /mnt base 
# genfstab -U -p /mnt >> /mnt/etc/fstab
# arch-chroot /mnt 
# pacman -S grub
# pacman -S os-prober
# grub-mkconfig -o /boot/grub/grub.cfg
Run Code Online (Sandbox Code Playgroud)

我得到:

Generating grub configuration file ...
Found linux image: /boot/vmlinuz-linux
Found initrd image: /boot/initramfs-linux.img
  /run/lvm/lvmetad.socket: connect failed: No …
Run Code Online (Sandbox Code Playgroud)

partition arch-linux lvm grub2

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

从脚本启动后台进程并在脚本结束时对其进行管理

我想从脚本运行和配置一个类似于守护进程的进程。
我的 shell 是在 Cygwin 下模拟的 zsh,守护进程是SFK,一个基本的 FTP 服务器。

对于此处重要的内容,startserv.sh可以按如下方式起草脚本:

#!/bin/sh
read -s -p "Enter Password: " pw
user=testuser
share=/fshare
cmd="sfk ftpserv -user=$user -pw=$pw -usedir $share=$share"
$cmd &
Run Code Online (Sandbox Code Playgroud)

运行脚本后startserv.sh,它停止(结束?)而不显示任何提示,然后:

  • CTRL+C结束脚本和后台作业进程;

  • 点击Enter脚本结束该过程保留在后台。

无论如何,我只能通过ps而不能看到它jobs,所以,当我想关闭进程时,我必须发送一个残酷的kill -9信号,这是我想避免的事情,以支持 CTRL+ C。

另一种方法 是在后台运行整个脚本。'Would be',但read如果脚本作为startserv.sh &.

请注意,我需要一个临时服务器,而不是真正的守护进程:也就是说,我希望服务器进程在脚本结束后在后台运行,以执行简单的交互式 shell 任务(使用虚拟机来宾),但我不不需要进程在 shell 中存活;因此nohup似乎不合适。

command-line signals job-control shell-script background-process

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

在 zsh 和 Bash 中循环一个字符串

我想转换这个 Bash 循环:

x="one two three"

for i in ${x}
do
    echo ${i}
done
Run Code Online (Sandbox Code Playgroud)

以这种方式同时使用 Bash 和 zsh

此解决方案有效:

x=( one two three )

for i in ${x[@]}
do
    echo ${i}
done
Run Code Online (Sandbox Code Playgroud)

无论如何,我正在x从字符串修改为数组。

$x当 zsh 是字符串并且以与 Bash 兼容的方式时,有没有办法在 zsh 中循环?

我知道zsh的setopt shwordsplit模仿猛砸,但我不能将其设置特设的循环,因为它不会在Bash的工作。

`

bash zsh quoting variable

8
推荐指数
2
解决办法
4787
查看次数

位置参数中的分词

考虑以下示例:

IFS=:
x="a   :b"   # three spaces
echo ["$x"]  # no word splitting
# [a   :b]   # as is
echo [$x]    # word splitting 
# [a    b]   # four spaces
Run Code Online (Sandbox Code Playgroud)

分词识别单词"a "(三个空格)和"b",用冒号分隔,然后echo用中间的空格连接单词。
但是,当使用 的值$x作为函数参数时,我发现很难解释结果。

args(){ echo ["$*"];}
args a   :b  # three spaces
# [a::b]
Run Code Online (Sandbox Code Playgroud)

和:

args(){ echo [$*];}
args a   :b  # three spaces
# [a  b]     # two spaces
Run Code Online (Sandbox Code Playgroud)

$*扩展为所有位置参数组合的值。此外,"$*"相当于"$1c$2",其中c是 IFS 变量值的第一个字符。

args(){ …
Run Code Online (Sandbox Code Playgroud)

parameter variable-substitution arguments variable bash-expansion

7
推荐指数
1
解决办法
1029
查看次数

使用 Openbox 在双显示器设置上镜像单个 X 应用程序

在双显示器系统中是否可以镜像单个窗口而不是整个屏幕?换句话说,我可以要求 X 应用程序在 DISPLAY:0.0和上同时打开:0.1吗?

基本上,这对于演示很有用,在这种演示中,人们只需要向投影仪发送一份 PDF(或类似)窗口的副本。

我的窗口管理器是 Openbox。

openbox multi-monitor display window-management

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

自动生成mimeapps.list数据库

在上一个问题中,我询问了如何为不同的 mime 类型手动设置默认应用程序。

除了使用多个工具之一之外,它还可以归结为添加一个条目~/.config/mimeapps.list,该条目会覆盖缓存的系统范围设置 /usr/share/applications/mimeinfo.cache。YMMV 取决于您的系统 XDG 基本目录 设置和合规性。

我们的发行版通常有很大的内容mimeapps.list(在我的例子中超过 50 行)。虽然有(GUI)工具可以添加/修改单个条目,但我没有找到任何标准程序和/或工具来自动生成整个 mimeapps.list数据库。

如果我删除mimeapps.list并安装新的应用程序,它不会重建。
那么, 什么过程产生呢mimeapps.list?

user-default configuration mime-types

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

Cygwin:轻松从 CD 到 Windows 路径

在 Windows 中,路径很长(不合理),因此通常将某些链接拖放到终端或从文件管理器复制并粘贴路径。可以在 shell 初始化文件中放入类似的函数

cdw() { cd "`cygpath -u $1`"  }
Run Code Online (Sandbox Code Playgroud)

现在我们有 Windows 版本的cd. 假设“C:\Program Files”位于您的剪辑中,您可以键入:

cdw“ CTRL+ V”

和CD在那里。我同意你的观点,引用很无聊: cdw CTRL+ V(没有双引号)将是杀手cd。
在 Bash 中利用该history命令很容易,如下所示。但我使用zsh,其中发出 history不会返回最后一个命令(即history本身)。经过反复试验,我想出了这个函数:

cdw(){
  print -s 
  set $(fc -l -1 | tail -2 | head  -1)
  shift 2
  p=`cygpath -u "$*"`
  cd "$p"
}
Run Code Online (Sandbox Code Playgroud)

它有效,但似乎太复杂了。我想知道你是否能找到比我更优雅的解决方案。

zsh cygwin

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

Arch Linux:在没有窗口管理器的情况下运行 VirtualBox (VM)

在Arch Linux 中,我想在没有窗口管理器的情况下运行 VirtualBox。

作为根,我可以轻松做到:

xinit /usr/bin/VirtualBox  -- :0 vt1
Run Code Online (Sandbox Code Playgroud)

作为非 root 用户,我得到一个空白屏幕。如果我打开另一个终端,杀死 VirtualBox 并阅读

~/.local/share/xorg/Xorg.0.log  ,
Run Code Online (Sandbox Code Playgroud)

然后它不会显示任何错误并且与"/var/log/Xorg.0.log"我作为根获得的基本相同。

更新

正如 Arkadiusz Drabczyk 所指出的,问题在于 VB 中的一个错误。它适用于版本 5.2.4-119785。
我的最终目标是使用 VB 类型的裸机,以全屏模式启动操作系统,仅此而已,即:

xinit '/usr/bin/VirtualBox' --startvm "VM name" --fullscreen -- :0 vt1
Run Code Online (Sandbox Code Playgroud)

xorg x11 virtualbox xinit

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

备份 /etc 配置文件的最佳实践

我想在非全新安装的远程服务器(Ubuntu 10.04.2)上设置froxlor。

自两个月以来,我负责管理服务器。在我开始之前,前一个人安装并配置了一些服务和文件。我不知道他到底在做什么,我只能查看他安装的内容(通过历史记录),而不能查看他编辑的内容。我想安装 Server-Management-Panel 'Froxlor' 来管理所有内容,而不是通过 ssh 手动执行。我的堂兄(他租用服务器)也应该能够用浏览器配置一些东西。

这些服务已经安装、配置和使用

  • 阿帕奇 2 + php 5 + mysql 5.1
  • 1.3 版本
  • 后缀 2.7 + 快递 0.62

我发现的教程基于全新安装系统。我已经安装了 froxlor,但是为了使用它,我必须执行一些脚本并更改/覆盖服务的配置文件。但是如果我这样做,当前的配置将会丢失。

尽可能简单地备份配置(更少的工作和问题)并配置 froxlor 然后合并备份文件的最佳实践是什么。

我必须备份哪些数据/配置文件?

ubuntu backup remote-management

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

在基本字母后键入死键

美国国际键盘允许通过死键添加变音符号。具体来说:

`a映射到 à 并
'a映射到 á。

在 X 中,使用国际或标准美国键盘,我想改为设置这样的映射:

a`映射到 á 并
a'映射到 à。

如您所见,我希望在基本字母之后键入死键,并且我更喜欢交换重音和重音死键。(这使我的打字速度更快、更自然,并且如果禁用了死键功能,则带有附加变音符号的单词更具可读性)。

你能告诉我合适的工具/配置文件来实现这一点吗?
如果它与答案有关,我的发行版是 Arch Linux。

keyboard keyboard-layout dead-keys compose-key

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

双启动 Windows 7 和 Arch Linux

我有一台装有 Windows 7 64 位的 Vaio 笔记本。我想用 Arch Linux 双启动它。我有三个主要分区:恢复、系统保留(活动和引导)和 WindowsC:驱动器。我已经用 WindowsC:驱动器调整了大分区的大小。现在我有一个空白空间可以在其中创建 Linux 分区,但是对于引导加载程序我迷路了。

根据 Arch 文档,使用 Windows 7/8 引导加载程序将我限制在 Fat32 Linux 分区,真的不行。所以我可以使用 GRUB 或 SysLinux。至于 Syslinux,我读到使用chain.c32可以防止 Windows 7 休眠。至于GRUB,新版本很复杂,这么简单的任务我真的需要它吗?其次,Arch Docs 说,建议使用大约 1 到 2 MiB 的后 MBR 间隙,以便为嵌入 GRUB 的core.img. 我如何检查我是否拥有它以及如果我没有它该怎么办?

dual-boot arch-linux boot-loader windows

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