Unix & Linux

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

4
为什么不能通过击键杀死Bash脚本调用的超时?
[编辑:这看起来与其他一些问题类似,询问如何杀死所有产生的进程-答案似乎都是使用pkill。因此,我的问题的核心可能是:是否可以将Ctrl-C / Z传播到脚本生成的所有进程?] 当rec使用timeout来自coreutils 的命令调用SoX 时(这里已讨论),一旦从Bash脚本中调用它,似乎没有任何办法可以通过击键杀死它。 例子: timeout 10 rec test.wav ...可以用bash中的Ctrl+ C或Ctrl+ 杀死Z,但不能从脚本内部调用。 timeout 10 ping nowhere ...可以被杀死Ctrl+ C或Ctrl+ Z从庆典,并与Ctrl+ Z当它在脚本中运行。 我可以找到进程ID并以这种方式将其杀死,但是为什么不能使用标准的击键动作呢?并且有什么方法可以构造我的脚本,以便可以吗?


2
awk高精度算术
我正在寻找一种方法来告诉awk在替换操作中执行高精度算术。这涉及从文件中读取字段,并以该值的1%增量替换它。但是,我在那里失去了精度。这是问题的简化重现: $ echo 0.4970436865354813 | awk '{gsub($1, $1*1.1)}; {print}' 0.546748 在这里,十进制精度后我有16位数字,但是awk仅给出6位数字。使用printf,我得到相同的结果: $ echo 0.4970436865354813 | awk '{gsub($1, $1*1.1)}; {printf("%.16G\n", $1)}' 0.546748 关于如何获得所需精度的任何建议?

2
创建bash完成脚本以等号后自动完成路径?
我想创建一个bash完成脚本,该脚本可以识别形式为--arg和的参数--some-arg=file。 在阅读了本教程和中的一些示例之后/usr/share/bash_completion/completions/,我编写了以下脚本(以节省使用Chromium键入一些标志的时间): _chromium() { local cur prev opts COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" # Some interesting options opts=" --disable-web-security --easy-off-store-extension-install --incognito --load-extension= --pack-extension= --pack-extension-key= --user-data-dir= " # Handle --xxxxxx=file if [[ ${cur} == "--"*"=" ]] ; then # Removed failures (is my logic OK?) return 0 fi # Handle other options if …

4
附加时间戳记以及日志文件行
我有一个日志文件,在添加时需要在每行附加时间戳。因此,我正在寻找将时间戳附加到日志行中每个条目的脚本,并且该脚本可以作为cron作业运行。
11 logs  date 

2
如何覆盖Gnome 3 SSH处理程序?
我希望能够单击看起来像SSH的链接,ssh://user@servername并打开一个在其中运行SSH的gnome终端。 阅读完XDG资料后,我做了以下工作: 我在$ HOME / bin / ssh-terminal中使用以下命令创建了一个shell脚本: #!/bin/sh dest=${1#ssh://} gnome-terminal -e "ssh $dest" & 这在命令行中有效。 我使用以下命令创建了$ HOME / .local / share / applications / ssh-terminal.desktop: [Desktop Entry] Type=Application Name=SSH Terminal Exec=ssh-terminal %u Icon=utilities-terminal StartupNotify=false MimeType=x-scheme-handler/ssh; 我跑了 update-desktop-database ~/.local/share/applications/ 现在,当我尝试运行时xdg-open ssh://user@hostname,出现以下错误: $ xdg-open ssh://buildbot@10.16.50.74 gvfs-open: sftp://buildbot@10.16.50.74/: error opening location: The …
11 gnome3  gvfs 

3
DNS主服务器与从服务器以及主服务器与辅助服务器
我对“辅助名称服务器”与“从属名称服务器”与“主要名称服务器”与“主名称服务器”之间的区别感到困惑 我知道从属名称服务器会查询主服务器,并根据对主服务器的更改自行更新。我不确定的是,例如我要设置2个名称服务器: ns1.example.com ns2.example.com 是否应该将这两个都设置为“主要和主服务器”,然后将任何辅助名称服务器都设置为从属服务器?还是在任何给定时间只有一个主服务器,而所有其他名称服务器都应该是从服务器? 我已经阅读了一些指南和许多手册页,但是在阅读中还没有遇到这个问题。任何人都有指向此类事物引用的指针吗?还是知道设置多个DNS服务器的最佳实践是什么?
11 networking  dns 

12
过滤文本文件以删除空行的好方法是什么?
我有一个.csv文件(在Mac上),有一堆空行,例如: "1", "2", "lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum ","2","3","4" "1", "2", "lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum …

1
使用MC,MV,MA进行复制,粘贴,全选
我正在Macbook Pro上使用Kubuntu Linux 12.04,并且正在寻求将Command / Meta键用于常见快捷键(例如复制,粘贴和全选)的功能。 尝试的解决方案: 在KDE的“系统设置”>“快捷方式和笔势”>“标准键盘快捷键”中重新映射“复制”,“粘贴”,“全选”等。 问题:大多数应用程序似乎忽略了这些快捷方式。我测试过的所有Web浏览器都继续期望该Ctrl键,而我表示希望使用该Meta键。由于找不到可用的网络浏览器,因此我没有尝试任何其他应用程序。 经过测试:Firefox,Chromium,Rekonq,Arora,Konqueror。 交换Meta与Ctrl 使用xmodmap的。 问题:终端仿真器将需要使用该Meta密钥代替Ctrl命令,例如各种键盘应用程序中的键盘中断,大多数Emacs绑定以及无数其他绑定。 考虑的解决方案: 分别更改GUI应用程序中的常用快捷方式。不幸的是,很少能够更改“复制”,“粘贴”和“全选”的绑定。 仅对Konsole(或其他终端仿真器)更改Ctrl修饰符。理想情况下,这将导致Meta- x产生击键Ctrl- x反之亦然。但是,我找不到任何方法可以做到这一点。 使用stty可以更改终端键盘命令的绑定,以使用meta并为所有其他CLI应用程序编写自定义配置文件。这将需要付出不合理的努力。 对于这种简单的修改似乎需要付出多大的努力,我感到非常惊讶,并且我将感谢您为找到合理的解决方案而提供的任何帮助。

2
阅读历史
如何read通过按向上/向下键在内置命令支持历史记录中循环显示它们? 当您按向上键时,我尝试捕获,但是它似乎不适用于read: read -p '> ' -n 3 foo echo echo -n "$foo" | hexdump 按下箭头键似乎可以工作,并且可以使用它来检测到它,但是如果按下aa↑,它将失败,因为它将仅读取向上箭头标识符的第一个字符,而需要使用第三个字符来区分不同的箭头键。

2
ntpd是否设置硬件时钟?
是否ntpd设置硬件时钟? ntpd如果通过-q选项是否设置硬件时钟(平均一次校正)? Linux 3.5.6,ntp 4.2.6.p5。 这里写的是ntpd每11分钟将系统时钟同步到硬件一次,但是我在ntpd勒芒中找不到对此的引用。
11 ntpd 




2
为什么只有两个用户定义的信号?
在linux系统中定义的信号列表中,有两个信号称为“用户定义的信号”(SIGUSR1和SIGUSR2)。在特定情况下会引发或捕获其他信号,但是SIGUSR留给用户应用程序使用。 那么为什么只有两个信号呢?
11 history  signals  ipc 

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.