Unix & Linux

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

2
如何在单引号内使用变量
我有一个应用程序,它以嵌入在单引号中的双引号作为输入属性。以这个正确的命令为例: command -p 'cluster="cl1"' 为了使其自动化,我创建了一个bash文件$CLUSTER作为变量。我的命令应该如何?换句话说,我应该代替cl1放置什么? 请注意,如果我修改了上面的命令,它将不会被接受。例如:command -p "cluster=cl1"不被接受

2
转储单个应用程序的网络流量(类似跟踪)
我正在寻找一种方法来转储应用程序生成的网络数据的pcap,以类似的方式strace转储syscalls等,例如: net-strace somecommand -args somecommand会在网络上执行某些操作,并net-strace保存该应用程序生成的所有流量的pcap转储(+回复和相关流量)。 能做到吗?
11 networking  dump 

2
在OOM杀手/ cgroup杀死进程之前接收信号
在我们的集群中,我们正在限制进程资源,例如内存(memory.limit_in_bytes)。 我认为,最后,这也可以通过Linux内核中的OOM杀手来处理(通过阅读源代码看起来很像)。 在我的进程被杀死之前,有什么方法可以发出信号吗?(就像SGE的-notify选项一样,该选项将在进程终止qsubSIGUSR1之前发送。) 我在/dev/mem_notify 这里了解到有关信息,但我没有它-如今还有其他东西吗?我也读了这篇似乎有些相关的文章。 我希望至少能够转储一个小的堆栈跟踪信息以及其他一些有用的调试信息-但也许我甚至可以通过释放一些内存来恢复。 我当前正在使用的一种解决方法是这个小脚本,该脚本经常检查我是否接近极限(95%),如果是,它将发送过程a SIGUSR1。在Bash中,我将在后台(cgroup-mem-limit-watcher.py &)启动此脚本,以便它监视同一cgroup中的其他proc,并在父Bash进程终止时自动退出。

1
如何在Awesome-WM中删除GTK3应用程序上的窗口填充?
我几乎在所有台式机上都以平铺模式使用了真棒。自从GTK3中出现客户端装饰以来,一些常见的Gnome项目应用程序就在其主窗口边框之外进行了大量填充。我怀疑这是针对阴影效果的,但是由于窗口大小是根据填充大小而不是正常窗口本身完成的,因此它会对平铺系统造成混乱。 值得注意的罪犯是鹦鹉螺和gedit,但其他最近更新的Gnome应用程序都具有某些行为。 如何配置GTK和/或AwesomeWM忽略这些填充并根据实际的窗口几何尺寸调整窗口大小?我想要的结果是零边界,零填充的平铺布局。



3
强制apt-get提示是/否
有没有办法强制apt-get显示是/否提示?--force-yes存在一个选项,但似乎没有--force-prompt或类似的选项。如果您尝试安装已经安装了所有依赖项的软件包,它将开始安装而不会显示是/否提示。如果要检查是否存在依赖项以及将安装哪些依赖项,这可能会很麻烦,因为您不知道是否提前安装了潜在的依赖项。 注意:“ apt-get install”什么时候要求我确认是否要继续?有点相关,因为它描述了在什么标准条件下显示提示。我很想知道如何强制它。
11 apt 

1
将多个PDF文件合并为一个(按矩阵排列)
有一组PDF文件的,可以说:in-01.pdf,in-02.pdf,in-03.pdf,...我想所有的人组合成一个单一的一个,形成M x N矩阵。 该命令montage允许这样做(M并且N应该为整数): montage -mode concatenate -tile NxM in-*.pdf out.pdf 问题是生成的PDF的大小很大,而我希望它(可能只是)比所有输入PDF大小的总和大一点。我认为montage是先将输入的PDF转换为图像,然后从这些图像中创建输出PDF(例如,原始PDF中的文本不会在输出PDF中显示为文本,而是显示为质量较低且较大的图像尺寸)。 我想应该有一种方法可以做到这一点(例如,LATEX允许将PDF图像插入另一个PDF中,而无需先将其转换为图像)。 我正在寻找在GNU / Linux系统下使用免费软件工具的命令行替代方案。 注意:我们可以假设这些PDF文件具有完全相同的尺寸(宽度和高度)。它们是自动生成的PDF图像,通常由图形/图形(简单的形状,线条和矩形)和一些文本(标题,标签...)组成。


1
为什么'find -exec cmd {} +'必须以'{} +'结尾?
前言:我了解-exec {} \;&的区别-exec {} +。我也没有问题,因为这样,我只是好奇的语义find。 当-exec以+而不是结束参数时;,我们需要以结束{} +,例如: # FreeBSD find $ find . -type f -exec cp {} /tmp + find: -exec: no terminating ";" or "+" # GNU find is even more cryptic: $ find: missing argument to `-exec' ;在这些示例中使用代替+可以很好地工作(但显然可以做其他事情)。 从POSIX: -exec utility_name [argument ...] ; -exec utility_name [argument …
11 find  history  posix 

2
为什么Docker需要root特权?
我正在学习Docker,我非常喜欢它。 但是,我不明白,为什么docker需要root特权来制作容器,读取日志等等。 我读过一些这样的文章 https://docs.docker.com/articles/security/ 但我所看到的只是“码头工人需要root特权,因为它可以访问根文件夹”。好吧,我不介意以非root用户身份运行docker,而只给他们访问外部系统中非root用户拥有的文件夹的权限。 为什么会有问题呢?
11 docker 

2
括号在bash shell本身有效,但在bash脚本中无效
我可以从命令行提示符运行以下命令: cp -r folder/!(exclude-me) ./ 以递归方式将folder 除子目录之外的所有内容复制exclude-me到当前目录中。这完全符合预期。但是,我需要在我编写的bash脚本中使用它: if [ -d "folder" ]; then cp -r folder/!(exclude-me) ./ rm -rf folder fi 但是当我运行脚本时: bash my-script.sh 我得到这个: my-script.sh: line 30: syntax error near unexpected token `(' my-script.sh: line 30: ` cp -r folder/!(exclude-me) ./' 而且我不知道为什么它可以在命令提示符下工作,但是在bash脚本中完全相同的行不起作用。

4
旧版Debian版本和Bash Shellshock
我们正在运行Debian Etch,Lenny和Squeeze,因为该商店从未进行过升级。我们有150多个运行各种Debian版本的系统。鉴于本周的“外壳冲击”,我认为我需要升级bash。我不了解Debian,所以我很担心。 我可以在我的apt-get install bash所有Debian系统上执行并获得正确的Bash软件包,而我的存储库却指向一个Squeeze条目。如果没有,我还有什么其他行动方针?

2
Shell脚本计数字符时遇到问题
我正在尝试学习基础知识,而我的脚本在计算用户输入的字符时遇到了一个问题。这是我的脚本,有人可以指出我要去哪里了吗? #!/bin/bash echo "Enter a word!" read INPUT_STRING len= echo $INPUT_STRING | wc -c echo "Your character length is " $len exit

2
重新索引大型CSV文件
我在这个有用的线程中仔细研究了答案,但是我的问题似乎相去甚远,以至于我无法想到一个好的答案(至少使用sed)。 我有一个很大的CSV文件(超过200 GB),其中的行如下所示: <alphanumerical_identifier>,<number> 在<alphanumerical_identifier>整个文件中唯一的位置。我想创建一个单独的文件,用索引替换第一列,即 <index>,<number> 这样我们得到: 1, <number> 2, <number> 3, <number> 可以awk在不将完整文件加载到内存的情况下生成递增索引吗? 由于索引单调增加,因此最好只删除索引。解决方案会有所不同吗,即: <number> <number> <number>
11 files  sed  awk  csv 

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.