Unix & Linux

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

3
apt-get build-dep无法找到源包
我已经按照本指南在Ubuntu 12.04上禁用了鼠标中键粘贴。 奇迹般有效。 现在,我试图在Linux Mint 17上实现相同的目标。 sudo apt-get build-dep libgtk2.0-0 它给了我以下输出: Reading package lists... Done Building dependency tree Reading state information... Done Picking 'gtk+2.0' as source package instead of 'libgtk2.0-0' E: Unable to find a source package for gtk+2.0 对我来说,apt-get似乎以某种方式“解析” 'libgtk2.0-0'到'gtk+2.0',但是没有找到任何这样的软件包。 编辑:尽管我现在可以编译该程序(请参阅我的答案),但我仍然不知道Picking 'gtk+2.0' as source package instead of 'libgtk2.0-0'应该是什么 意思。任何对此的见解将不胜感激,谢谢!
16 apt  compiling 

5
查找重复的文件并将其替换为符号链接
我试图找到一种方法来检查给定目录中是否存在重复文件(甚至具有不同名称),并用指向首次出现的符号链接替换它们。我试过了,fdupes但只列出了那些重复项。 这就是上下文:我正在根据自己的喜好自定义图标主题,我发现很多图标,即使它们在父文件夹中具有不同的名称和位置,并且用于不同的用途,基本上也一样图片。由于在只需要一个修改的情况下进行二十或三十次相同的修改是多余的,因此我只想保留一个图像并符号链接所有其他图像。 例如,如果我fdupes -r ./在目录中运行testdir,它可能会返回以下结果: ./file1.png ./file2.png ./subdir1/anotherfile.png ./subdir1/subdir2/yetanotherfile.png 给定此输出,我想保留文件file1.png,删除所有其他文件,并用指向它的符号链接替换它们,同时保留所有原始文件名。因此file2.png将保留其名称,但将成为其链接file1.png而不是重复。 这些链接不应指向绝对路径,而应相对于父testdir目录。即yetanotherfile.png会点../../file1.png,不/home/testuser/.icons/testdir/file1.png 我对涉及GUI和CLI的解决方案都感兴趣。fdupes我引用了它不是强制性的,因为它是我所知道的工具,但是我也欢迎使用其他工具的解决方案。 我很确定创建一个处理所有这些内容的bash脚本应该不会那么困难,但是我不够熟练,无法找出如何自己编写它。

4
通过OpenVPN仅针对特定网络名称空间提供所有流量
我正在尝试建立一个VPN(使用OpenVPN),以使去往/来自特定进程的所有流量(仅流量)通过VPN。其他进程应继续直接使用物理设备。据我了解,在Linux中这样做的方法是使用网络名称空间。 如果我正常使用OpenVPN(即通过VPN 集中来自客户端的所有流量),则可以正常工作。具体来说,我像这样启动OpenVPN: # openvpn --config destination.ovpn --auth-user-pass credentials.txt (destination.ovpn的简化版本在此问题的结尾。) 我停留在下一步,编写将隧道设备限制为名称空间的脚本。我试过了: 使用以下命令将隧道设备直接放置在名称空间中 # ip netns add tns0 # ip link set dev tun0 netns tns0 # ip netns exec tns0 ( ... commands to bring up tun0 as usual ... ) 这些命令执行成功,但是在名称空间内部生成的流量(例如,带有ip netns exec tns0 traceroute -n 8.8.8.8)陷入了一个黑洞。 假设“ 您只能[仍]仅将虚拟以太网(veth)接口分配给网络名称空间 …

4
将命令的输出存储到环形缓冲区
我有一个长时间运行的命令,该命令在stdout上生成大量输出。例如,我希望仅保留最后三天或最后一个gibibyte(避免在中间使用切割线),并尽可能保留不超过20 MiB的文件块。每个文件块都以数字后缀或时间戳命名。 就像是: my-cmd | magic-command --output-file-template=my-cmd-%t \ --keep-bytes=1G \ --keep-time=3d \ --max-chunk-size=20M \ --compress=xz 会写: my-cmd-2014-09-05T10:04:23Z 当达到20M时,它将压缩并打开一个新文件,依此类推,过一会儿它将开始删除最旧的文件。 是否存在这样的命令? 我知道logrotate它管理其他应用程序编写的文件的能力,但是我正在寻找更简单的方法,而不必设置cron作业,指定规则,暂停进程等。

3
从命名管道(cat或tail -f)连续读取
我已配置rsyslog为将某些日志事件记录到/dev/xconsole: *.*;cron.!=info;mail.!=info |/dev/xconsole /dev/xconsole是一个命名管道(fifo)。如果我想查看正在记录的内容,可以执行cat /dev/xconsole。令我惊讶的是,该命令cat /dev/xconsole在读取文件后没有完成,而是充当了tail -f。换句话说,这两个命令的行为相同: cat /dev/xconsole tail -f /dev/xconsole 有人可以解释为什么吗? 两者之间有什么区别吗?
16 pipe  cat  tail  fifo 

5
如何转义字符串中的特殊字符?
假设$file拥有文件名的值,请说Dr' A.tif。在bash编程中,如何在$file不删除特殊字符的情况下转义单引号和其他任何特殊字符? 2014年7月9日更新 根据@Gilles的要求,以下代码片段无法处理Dr' A.tif: files=$(find /path/ -maxdepth 1 -name "*.[Pp][Dd][Ff]" -o -name "*.[Tt][Ii][Ff]") echo "${files}" > ${TEMP_FILE} while read file do newfile=$(echo "${file}" | sed 's, ,\\ ,g') ## line 1 done < ${TEMP_FILE} 我已经试过了之后从@Patrick答案上line 1,这似乎为我工作。但是,如果我有诸如的文件Dr\^s A.tif,printf命令似乎无济于事,它会向我显示Dr\^s\ A.tif。如果我在这样的控制台上手动尝试: printf "%q" "Dr\^s A.tif" 我将得到以下输出: Dr\\\^s\ A.tif 知道如何处理吗?
16 bash 

1
从Ubuntu中的DHCP服务器忽略DNS
我DNS在/etc/resolvconf/resolv.conf.d/base文件中设置了static : nameserver 8.8.8.8 nameserver 8.8.4.4 但是我的电脑仍然从DHCP获取DNS,这是我的/etc/resolv.conf: nameserver 192.168.100.2 nameserver 8.8.8.8 nameserver 8.8.4.4 如何忽略DNS从DHCP服务器获得的信息?
16 ubuntu 

3
如何限制进程及其子进程的总资源(内存)
关于约束单个进程的资源有很多问题和答案,例如RLIMIT_AS可用于约束由进程分配的最大内存,在诸如此类中可以视为VIRT top。有关该主题的更多信息,例如,这里是否有一种方法可以限制Unix中特定进程可以使用的内存量? setrlimit(2) 文档说: 通过fork(2)创建的子进程继承其父级的资源限制。资源限制在execve(2)中保留。 应该通过以下方式理解: 如果某个进程的RLIMIT_AS为2GB,则它分配的内存不能超过2GB。当它产生一个子代时,会将2GB的地址空间限制传递给该子代,但计数从0开始。这两个进程加起来最多会占用4GB的内存。 但是,约束整个进程树分配的内存总和的有用方法是什么?

4
Qt 5的qtconfig工具?
我刚刚在Arch Linux中安装了QT 5,但qtconfig没有用: %> qtconfig qtconfig: could not exec '/usr/lib/qt/bin/qtconfig': No such file or directory 是的,没有这样的文件,甚至没有 /usr/lib/qt5/bin/qtconfig 有什么想法可以找到它吗?我需要调整的字体smplayer,现在与QT 5库链接。
16 arch-linux  qt 



6
为什么我无法ping通Google?
我无法ping google.com (未知主机)。但是我可以ping IP地址。我试图ping通Google的IP地址,但是它不起作用。 resolv.conf nameserver 8.8.8.8 nameserver 209.139.209.33 ifconfig -a eth0 Link encap:Ethernet HWaddr 00:50:56:xx:xx:xx inet addr:10.2.0.63 Bcast:10.2.15.255 Mask:255.255.240.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:638762803 errors:0 dropped:0 overruns:0 frame:0 TX packets:231307131 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:55502371533 (51.6 GiB) TX bytes:23436883491 (21.8 GiB) lo Link …
16 dns  ip  internet  ping  route 


2
Thunar键盘快捷键以更改选项卡
当前在图纳尔,要移至下一个选项卡,将使用Ctrl+ Alt+ PageDown。我想将其更改为Ctrl+ Tab或Ctrl+ PageDown。 现在,~/.config/Thunar/accels.scm所有快捷方式都以以下格式定义: (gtk_accel_path "<Actions>/ThunarWindow/new-tab" "<Primary>t") 我的问题是: new-tab上例中应替换的用于更改标签的关键字是什么? Ctrl-> <Primary>。那么Tab->呢?和PageDown->吗?
16 gtk  thunar 


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.