我正在根据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) 我想从脚本运行和配置一个类似于守护进程的进程。
我的 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
我想转换这个 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的工作。
`
考虑以下示例:
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
在双显示器系统中是否可以镜像单个窗口而不是整个屏幕?换句话说,我可以要求 X 应用程序在 DISPLAY:0.0和上同时打开:0.1吗?
基本上,这对于演示很有用,在这种演示中,人们只需要向投影仪发送一份 PDF(或类似)窗口的副本。
我的窗口管理器是 Openbox。
在上一个问题中,我询问了如何为不同的 mime 类型手动设置默认应用程序。
除了使用多个工具之一之外,它还可以归结为添加一个条目~/.config/mimeapps.list,该条目会覆盖缓存的系统范围设置 /usr/share/applications/mimeinfo.cache。YMMV 取决于您的系统 XDG 基本目录
设置和合规性。
我们的发行版通常有很大的内容mimeapps.list(在我的例子中超过 50 行)。虽然有(GUI)工具可以添加/修改单个条目,但我没有找到任何标准程序和/或工具来自动生成整个 mimeapps.list数据库。
如果我删除mimeapps.list并安装新的应用程序,它不会重建。
那么,
什么过程产生呢mimeapps.list?
在 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)
它有效,但似乎太复杂了。我想知道你是否能找到比我更优雅的解决方案。
在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) 我想在非全新安装的远程服务器(Ubuntu 10.04.2)上设置froxlor。
自两个月以来,我负责管理服务器。在我开始之前,前一个人安装并配置了一些服务和文件。我不知道他到底在做什么,我只能查看他安装的内容(通过历史记录),而不能查看他编辑的内容。我想安装 Server-Management-Panel 'Froxlor' 来管理所有内容,而不是通过 ssh 手动执行。我的堂兄(他租用服务器)也应该能够用浏览器配置一些东西。
这些服务已经安装、配置和使用
我发现的教程基于全新安装系统。我已经安装了 froxlor,但是为了使用它,我必须执行一些脚本并更改/覆盖服务的配置文件。但是如果我这样做,当前的配置将会丢失。
尽可能简单地备份配置(更少的工作和问题)并配置 froxlor 然后合并备份文件的最佳实践是什么。
我必须备份哪些数据/配置文件?
美国国际键盘允许通过死键添加变音符号。具体来说:
`a映射到 à 并
'a映射到 á。
在 X 中,使用国际或标准美国键盘,我想改为设置这样的映射:
a`映射到 á 并
a'映射到 à。
如您所见,我希望在基本字母之后键入死键,并且我更喜欢交换重音和重音死键。(这使我的打字速度更快、更自然,并且如果禁用了死键功能,则带有附加变音符号的单词更具可读性)。
你能告诉我合适的工具/配置文件来实现这一点吗?
如果它与答案有关,我的发行版是 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. 我如何检查我是否拥有它以及如果我没有它该怎么办?
arch-linux ×2
variable ×2
zsh ×2
arguments ×1
backup ×1
bash ×1
boot-loader ×1
command-line ×1
compose-key ×1
cygwin ×1
dead-keys ×1
display ×1
dual-boot ×1
grub2 ×1
job-control ×1
keyboard ×1
lvm ×1
mime-types ×1
openbox ×1
parameter ×1
partition ×1
quoting ×1
shell-script ×1
signals ×1
ubuntu ×1
user-default ×1
virtualbox ×1
windows ×1
x11 ×1
xinit ×1
xorg ×1