Unix & Linux

Linux,FreeBSD和其他类似Un * x的操作系统用户的问答

2
捕获&&链接的命令的输出/重定向
我有一系列与&&链接在一起的命令a,b,c a && b && c。 我想捕获所有到stdout和stderr的命令的输出。 a && b && c 2>&1 > capture_file 仅捕获c命令的输出。

8
将文本文件拆分为固定单词数的行
相关但没有令人满意的答案:如何将大文本文件拆分为500个单词左右的块? 我试图将一个文本文件(http://mattmahoney.net/dc/text8.zip)一行都包含> 10 ^ 7个单词,然后将其拆分为N个单词的行。我当前的方法可行,但相当缓慢且难看(使用shell脚本): i=0 for word in $(sed -e 's/\s\+/\n/g' input.txt) do echo -n "${word} " > output.txt let "i=i+1" if [ "$i" -eq "1000" ] then echo > output.txt let "i=0" fi done 关于如何使它更快或更紧凑的任何提示?

1
bash变量分配中的单括号
我想知道bash中的单个括号。我知道它们用于在子shell中执行命令,并且它们用于创建数组,但是它们还用于其他吗? 引起我注意的一件事是,当您使用in变量赋值时,例如 var=(hello) echo $var # hello bash不会产生错误或任何东西,并且输出与 var=hello 这两个变量定义是相同的还是有区别的?
11 bash  array 

2
重击僵尸
Bash似乎不会制造僵尸。看起来这些进程在被杀死时会立即收获。 我可以让bash变成僵尸吗? 我为什么要问: 我希望能够安全地杀死一个子进程,或者kill -9如果它在一定时间内没有消失,则可以安全地杀死它,但是我不想意外破坏不是我的子进程的进程。僵尸进程通常非常容易,而且在竞争条件下也很安全。
11 bash  process 

3
在外壳之间切换,停止当前正在播放的音乐
在听音乐时,我使用Ctrl+ Alt+ 更改了虚拟控制台F2,然后音乐突然暂停了。返回回运行X服务器控制台Ctrl+ Alt+ F7是我目前使用的(或登录到控制台用户Ctrl+ Alt+ F2),再次开始播放音乐。 Linux(我正在使用Ubuntu)是一个多用户操作系统。据我所知,它有7个虚拟控制台,用户可以登录并同时工作。那么为什么会这样呢?如果在切换控制台时我的系统正在更新,将会发生什么?
11 ubuntu  xorg  audio  console 

4
用`mv`将换行符添加到文件名中
这是一个严重的问题。我测试了一些awk脚本,并且我需要名称中带有换行符的文件。 是否可以使用来在文件名中添加换行符mv? 我现在可以用touch: touch "foo bar" 通过触摸,我为每个副本和粘贴添加了换行符。但是我不能fooReturnbar在shell中写。 如何重命名文件以在文件名中包含换行符? 编辑2015/06/28; 下午07:08 要添加换行符,zsh我可以使用Alt+Return


1
使用命令行替换PDF中的图像
我需要处理一些PDF文件。任务包括彼此交换给定的图像文件。我的第一个问题是如何在批处理过程中从命令行替换PDF图像。接下来,我将尝试解决其他问题,例如如何识别需要替换的图像(因为PDF文件可能包含多个图像)。但是首先,我想解决第一个问题:如何用另一个替换PDF中的图像。 我已经阅读了有关poppler-utils和pdftk的信息,但据我所知,这些工具都不允许将图像替换为PDF。



4
保留每个工作目录的历史记录(参见每个shell会话)
有没有一种方法可以使现代外壳的历史特征仅限于路径? 我的工作上下文被拆分为文件系统上的路径,并且shell活动的模式(例如重复发出的命令)对于每个“项目”而言都是不同的。如果我可以将历史记录功能的作用域范围限定为从当前路径(或子路径)发出的命令,那就太好了。

2
如何在文件中搜索文本而忽略换行符?
我想搜索文件中可能分成几行的文本。一个grep,它将忽略换行符并返回匹配的行距。 例如,我将搜索is an example file,并希望在以下文件中找到它: 这是 一个 示例文件。 不要依赖前导或尾随空格,最好完全忽略所有形式的空格(最好将空格的任何序列都视为一个空格)。 一种非理想的解决方案是tr '\n' ' ' | grep,它区分匹配和不匹配,但不显示匹配项,也不能很好地处理大文件。

2
服务失败时运行任意命令
我想在服务失败时运行一些脚本。我所看到的与此FailureAction=选项最接近的选项(在本[Service]节下面),但是它仅提供重新启动命令。
11 systemd 

2
在两个网络接口上分离网络流量
您能否借助您的专业知识来理解如何配置两个网络接口上的网络流量分离? 到目前为止,据我了解,静态路由用于网络流量,该流量不旨在使用默认网关。默认网关用于所有不面向本地网络且在路由表中未指定首选路由的流量。 情况如下。 网络中的每台计算机都有两个网卡。 每个产品的生产接口为eth0(GW = 10.10.10.1)。 每个的管理接口是eth1(GW = 192.168.100.1)。 生产和管理流量应完全分开。 我在下面发布了我与Debian Wheezy一起尝试过的事情。而且,我的问题是,尽管我设置的主机可以在两个接口上进行通信,但是各个主机似乎在错误的接口上“听到”了流量。例如: 主机140 eth0 Link encap:Ethernet HWaddr 08:00:27:d1:b6:8f inet addr:10.10.10.140 Bcast:10.10.10.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fed1:b68f/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1341 errors:0 dropped:0 overruns:0 frame:0 TX packets:2530 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:641481 (626.4 …
11 debian  centos  rhel  routing 

1
列出shell中的所有btrfs文件系统和子卷
是否有一种便捷的方法来获取所有btrfs文件系统子卷上的信息而无需使用C,即在POSIX shell中? /sys/fs/btrfs仅包含有关文件系统的信息,不包含有关子卷的信息,因此当前我最终将所有文件系统装入temp文件夹,使用进行扫描btrfs subvol list,然后解析结果输出。不用说,这很丑陋。 这是一个3.16.x内核和btrfs-progs v3.14.1(来自Ubuntu 14.10的现货)。 以下是我当前正在使用的(丑陋)脚本。我知道我可以使用纯C获得所需的信息,而这也许最终我会做的,但是我想知道是否有一种更简单,更优雅的方法。 #!/bin/bash for i in /sys/fs/btrfs/*[!features]; do device="/dev/$(basename $i/devices/*)" mountpoint=/var/lib/btrfs/tmp/mnt/$(basename "$i") [ -d "$mountpoint" ] || mkdir "$mountpoint" grep -qs $mountpoint /proc/mounts [ $? -ne 0 ] && mount -v "$device" "$mountpoint" while read -r subvol; do # whatever you want done …
11 shell  btrfs 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.