Unix & Linux

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

1
在后台运行多个bash函数并等待它们返回
这是一个简单的脚本,可以nvidia-smi在多个主机上运行命令,并将其输出保存到公共文件中。这里的目标是使其异步运行。 &在process_host()函数结尾是否足够?我的脚本正确吗? #!/bin/bash HOSTS=(host1 host2 host3) OUTPUT_FILE=nvidia_smi.txt rm $OUTPUT_FILE process_host() { host=$1 echo "Processing" $host output=`ssh ${host} nvidia-smi` echo ${host} >> $OUTPUT_FILE echo "$output" >> $OUTPUT_FILE } for host in ${HOSTS[@]}; do process_host ${host} & done; wait cat $OUTPUT_FILE

3
使用nmcli分配静态IP地址
因此,我试图为VM提供一个静态IP地址,这种情况特别棘手。 VM在具有自己的公共IP范围的ESXi群集上运行。 我让它(一个sorta)使用一个IPv4地址,除了每次启动时都会重新分配它,现在摆弄nmcli之后,我无法获得分配给它的任何IPv4地址。 接口是ens32,我已更改ipv4.addresses为XXX.XXX.120.44/24(想要具有address 120.44),XXX.XXX.120.1将其设置为网关,并将其设置为手动。 是否有人对为什么这种方法不起作用有任何见解?所有联机指南均适用于较早的网络服务,而不适用于NetworkManager。

2
标志,选项和参数之间有什么区别?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 3年前关闭。 ls -a(我考虑-a一种选择) sudo -u username(-u=选项,username= arg) chmod 664 my-dir(664=选项,my-dir= arg) 除了想到目录清单时,我想不出一个可能说“这是一个标志”的示例: -r--------. 1 david david 3344 May 19 17:48 611056.pdf 这为所有者设置了“读取标志”,仅此而已。是什么阻止我将其称为“读取选项”? 我主要使用DocBook XML编写和编辑技术文档,并且正在寻找差异的解释,该差异应尽可能一致和准确。但是,我已经看到一种模式形成: 标志通常是布尔值。例如,setenforce 0 选项有助于定义命令的行为方式。有些可能是可选的。 参数告诉命令要操作的对象。 我可以看到自己将标志和选项结合在一起(某些选项可能有十二个可能的值,但布尔值只有两个)。参数看起来足够不同以保持原样。

1
返回给定PID的流程的所有者
我试图从列表中获取流程的所有者,我有命令pidof nmap获取ps -u <PID> | grep USER当前正在使用的then ,但是当我运行它时,它最终只是打印标题(顶行)。 给定进程ID时,如何获取所有者的名称?

3
陷阱是由subshel​​l继承的吗?
我尝试了以下脚本: #!/bin/bash trap 'echo "touching a file" && touch $FILE' EXIT foo1(){ echo "foo1" } foo(){ echo "foo" export FILE=${FILE:-/tmp/file1} } (foo1) foo 上面脚本的输出是: [root@usr1 my_tests]# ./test.sh foo1 foo touching a file 但是,我也希望在退出时也要调用trap foo1,这是在子shell中调用的。 这是预期的吗? 是trap由subshel​​l继承的吗? 如果是,那么trap子外壳程序在什么情况下会继承?
14 shell  trap  subshell 

1
为什么我不应该使用'kill -9'/ SIGKILL
发布这个问题是因为我惊讶地发现没有直接回答它;抱歉,如果这是重复的话-我确实看过! 我听说过kill -9或kill -SIGKILL不好,但是我不明白为什么。如果我不应该kill -9有什么要我做杀死一个进程?
14 process  kill 

4
dd:多个输入文件
我需要串联两个文件中的块: 如果需要串联整个文件,我可以简单地做 cat file1 file2 > output 但是我需要从第一个文件中跳过第一个1MB,而我只希望从第二个文件中跳过10 MB。听起来像是工作dd。 dd if=file1 bs=1M count=99 skip=1 of=temp1 dd if=file2 bs=1M count=10 of=temp2 cat temp1 temp2 > final_output 有可能一步一步做到这一点吗?即,无需保存中间结果?我可以在中使用多个输入文件dd吗?
14 files  dd  cat  data 

4
在后台多次运行同一命令
如何运行多个命令并使用bash后台运行它们? 例如: $ for i in {1..10}; do wait file$i &; done 其中wait是自定义二进制文件。 现在我得到一个错误: syntax error near unexpected token `;' 运行上面的命令时。 后台运行后,命令应并行运行。

3
使用bash查找PHP扩展文件夹
我正在尝试构建一个bash脚本来安装Source Guardian PHP扩展,但是在随后的每个Ubuntu版本中,目标目录都是不同的。 在Ubuntu 14.04上安装PHP5导致扩展存储在/ usr / lib / php5 / 20121212 + lfs /中,在Ubuntu 15.04中此目录更改,例如/ usr / lib / 20131226 / 我已经检查了/etc/php5/fpm/php.ini和/etc/php5/fpm/php-fpm.conf,但是这些文件都没有提及20121212 + lfs或20131226。 如果将Source Guardian扩展名放在其他任何地方,则不会加载。 有没有办法以编程方式确定扩展文件夹?
14 bash  ubuntu  php 

3
如何在不重新启动的情况下重新生成70-persistent-net.rules?
该文件/etc/udev/rules.d/70-persistent-net.rules在重新引导期间在具有udev的Linux系统上自动生成(如果不存在)。但是我想知道如何在不重新引导服务器的情况下(使用命令)创建此规则文件。 我闲逛了一段时间,发现这个脚本生成了rules文件: /lib/udev/write_net_rules 但是,不可能从命令行运行此脚本,因为(我假设)它想由udev启动,并且正确设置了一些环境变量。手动启动它会显示错误消息“缺少$ INTERFACE”。即使我在脚本开始之前设置了环境变量INTERFACE = eth0,它仍然会打印错误“缺少有效的匹配”。更不用说我有两个接口(eth0和eth1),并且我希望为这两个接口生成规则文件。 我也在考虑触发这样的udev事件,希望它会从udev本身启动脚本,但是没有任何变化: udevadm trigger --type=devices --action=change 因此,有人知道如何在/etc/udev/rules.d/70-persistent-net.rules不重新启动的情况下重新生成文件中的持久性网络规则吗?
14 linux  udev 

1
rsync是否会删除目的地上已从发送方删除的文件?
如果rsync是从源文件中删除的,它们是否会从目标中删除文件? 例如,在源代码/ home / me中,我有三个文件: a.txt b.txt c.txt 现在,我运行命令rsync -v /home/me/ user@ip.address:/home/backup,并将其复制文件a.txt,b.txt并c.txt到/home/backup。 /home/backup现在的内容 a.txt b.txt c.txt 如果a.txt要从中删除/home/me,将在下次运行rsync时a.txt删除/home/backup,是否需要指定一个选项,还是完全不可能? 如果有任何替代rsync的方法,也欢迎使用它们。 旁注:我已经阅读了与该主题相关的内容,但是我无法完全理解或了解它与问题的确切关系。
14 rsync  backup 

4
突出显示鼠标以进行截屏,而不会干扰工作流程
为了制作文档/教程视频,我需要突出显示鼠标,例如鼠标周围带有黄色的半透明电晕: 单击和移动时,标记应处于活动状态,但是如果一直处于启用状态,那就没问题了。 它可以在某种程度上掩盖其背后的视图,但它可能无法禁用单击其背后的内容或将焦点从窗口移开的功能。 Compiz似乎已成为过去,find光标不受任何动作(单击/移动)的约束,并且阻止了交互(在绘制时,您无法单击“通过”它)并且key-mon不绘制正确地,也将禁用交互,并且至少在使用平铺窗口管理器时,鼠标荧光笔通常存在问题。 我正在使用Arch Linux和很棒的wm。 谢谢!

3
检查SSL证书是否有效的脚本
我有几个SSL证书,并且证书过期后想通知我。 我的想法是创建一个cronjob,每天执行一个简单的命令。 我知道opensslLinux 中的命令可用于显示远程服务器的证书信息,即: openssl s_client -connect www.google.com:443 但我在此输出中看不到到期日期。另外,我必须用CTRL+ 终止此命令c。 如何从脚本(最好使用openssl)中检查远程证书的到期时间,并在“批处理模式”下进行操作,以使其自动运行而无需用户干预?

4
给定两个后台命令,当其中一个退出时,终止其余命令
我有一个启动两个服务器的简单bash脚本: #!/bin/bash (cd ./frontend && gulp serve) & (cd ./backend && gulp serve --verbose) 如果第二个命令退出,则似乎第一个命令继续运行。 我如何更改此设置,以便如果其中一个命令退出,另一个命令终止? 注意,我们不需要检查后台进程的错误级别,只需检查它们是否已经退出即可。

3
默认状态行的格式是什么?
我在这里了解了如何更新vim statusline 。而且我能够成功更新它。 但是,我想保留默认vim statusline的格式,并向其中添加更多信息,例如文件大小,文件类型等。 Vim的默认状态行是: <file-name> line_num,col_num %file 我该怎么办? 我想在文件名后添加信息 显示状态行的当前格式(不:set statusline显示任何内容) 我试过了: set statusline+=%y 但这会覆盖整个状态行,仅显示文件类型(%y)。 有什么提示吗?
14 vim 

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.