小编fug*_*ive的帖子

在 Vim 上配置快捷方式以保存文件

我想知道是否可以在其中创建自定义快捷方式vimvi保存打开的文件?

例如,CtrlS而不是每次键入:w

谢谢!

vim vi vimrc

11
推荐指数
1
解决办法
2970
查看次数

Git提交使用来自bash的stdout?

是否可以使用来自 stdout 的提交消息,例如:

echo "Test commit" | git commit -
Run Code Online (Sandbox Code Playgroud)

还尝试在 中回显消息内容.git/COMMIT_EDITMSG,但随后运行git commit会要求在提到的文件中添加更改。

pipe git

8
推荐指数
1
解决办法
2819
查看次数

使用 grep|sed|awk 从 stdin 测试正则表达式

有时,我想测试我的正则表达式是否正确。

如何regex从标准输入进行反向匹配?

Fe I 可以将字符串与提供的正则表达式匹配,例如:

grep "\(foo\)-bar"
foo
bar
foo-bar
foo-bar #Match found
Run Code Online (Sandbox Code Playgroud)

我想做的是相反的事情,就像这样:

$ grep "This is one string"
\(This\) #Will send "This" to stdout
This?.*  #Will send full match
Run Code Online (Sandbox Code Playgroud)

在没有太多脚本的情况下,这以某种方式可能吗?

command-line grep sed awk regular-expression

7
推荐指数
2
解决办法
5306
查看次数

重启后会执行“at”命令吗?

如果我用“at”来安排一些事情,

$ at noon
warning: commands will be executed using /bin/sh
at> echo "Will I be created?" > /tmp/at_test
at> <EOT>
job 12 at Fri Jun 30 12:00:00 2017
Run Code Online (Sandbox Code Playgroud)

如果我在执行时间之前重新启动机器,我的命令会被执行吗?

cron与从文件中安排任务的常规程序不同,是否at将此“信息”存储在某处?

cron at reboot

6
推荐指数
1
解决办法
2765
查看次数

如何使用Monit环境变量?

根据Monit 链接

Monit 不使用任何环境变量。但是,当 Monit 执行启动/停止/重启程序或 exec 操作时,它会设置几个环境变量,可执行文件可以利用这些环境变量来获取有关触发该操作的事件的信息。

是否可以在自定义操作上使用这些变量?

例如,对于通知,我不使用邮件服务,而是使用自定义脚本,它应该接收该 ENV monit 变量并提供输出。这是测试环境变量的基本示例。

check process dhcp with pidfile "/var/run/dhcpd.pid"
        start = "/etc/init.d/isc-dhcp-server start"
        stop = "/etc/init.d/isc-dhcp-server stop"
        if does not exist program then exec "/bin/echo $MONIT_EVENT > /tmp/monittest"
        depends on lan
Run Code Online (Sandbox Code Playgroud)

当我故意让程序失败时,比如 check process dhcp with pidfile "/var/run/unexisting.pid"

我在/tmp/monittest. 难道我做错了什么?

monitoring environment-variables monit

5
推荐指数
1
解决办法
3504
查看次数

FreeBSD 混合了类似 USB 到以太网适配器的名称

我有两个 Asix USB 转以太网适配器。FreeBSD 将它们确定为ue1ue2适配器。

问题是,在重新启动时,有时界面会ue1变成ue2,反之亦然,这几乎破坏了我的网络配置。这两个适配器具有非常相似的 MAC,并且可能是系统尝试识别它时的问题。

在Linux系统上,我之前udev通过适配器mac地址设置静态规则来解决这个问题。我如何在 Freebsd 中实现类似的功能?我知道它与相关devd但我不确定如何管理它,因此适配器获得“静态”名称。

usbconfig 
ugen0.1: <DWCOTG OTG Root HUB> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA)
ugen0.2: <vendor 0x0424 product 0x9514> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (2mA)
ugen0.3: <vendor 0x0424 product 0xec00> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (2mA)
ugen0.4: <ASIX Elec. Corp. AX88179> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (248mA)
ugen0.5: <ASIX Elec. Corp. AX88179> …
Run Code Online (Sandbox Code Playgroud)

freebsd udev ifconfig usb-device

5
推荐指数
1
解决办法
382
查看次数

布尔测试 &amp;&amp; 和 || 的问题 在 bash

考虑以下:

root@debian-lap:/tmp echo "Step 1 " || echo "Failed to execute step 1" ; echo "Step 2"
Step 1
Step 2
root@debian-lap:/tmp
Run Code Online (Sandbox Code Playgroud)

如您所见,第 1 条和第 3 条echo命令正常执行。

如果我的第一个命令失败了,我想停止脚本并exit从中停止:

root@debian-lap:/home/fugitive echo "Step 1 " || echo "Failed to execute step 1" && exit 2 ; echo "Step 2"
Step 1 
exit
fugitive@debian-lap:~$ 
Run Code Online (Sandbox Code Playgroud)

exit命令执行并退出 shell,即使第一个命令的退出代码为 0。我的问题是 - 为什么?

在翻译中,这不是说:

  • 回声“第1步”
  • 如果命令失败,则 echo 'Failed to execute step 1' 并退出脚本
  • 否则回声“第2步”

看着这个:

cmd foo1 || cmd foo2 && …

shell bash shell-script

4
推荐指数
1
解决办法
1705
查看次数

使用 join 合并多个文件

是否有一些解决方法可以根据第一列一次加入多个文件?通常,我会这样做: join File1 File2 > File1+File2File1+File2 File3 > final_output

示例文件:

文件1:

1 test1
2 test3
3 test4
4 test5
7 test7
Run Code Online (Sandbox Code Playgroud)

文件2:

1 example1
2 example2
3 example3
4 example4
8 example8
Run Code Online (Sandbox Code Playgroud)

文件3:

1 foo1
2 foo2
3 foo3
4 foo4
10 foo10
Run Code Online (Sandbox Code Playgroud)

考虑到fe第五行在每个文件中可能不同,并且有n文件数。 编辑:

示例输出:

1 test1 example1 foo1
2 test2 example2 foo2
3 test3 example3 foo3
4 test4 example4 foo4
Run Code Online (Sandbox Code Playgroud)

另一方面,我不确定如何处理 column1 中不匹配的行(第五行)谢谢

awk text-processing join

2
推荐指数
1
解决办法
4182
查看次数

-n 和 -z 在内置测试中的使用 - Bash

在 bash 中考虑以下内容:

root@debian-lap:/tmp I=$(echo)
root@debian-lap:/tmp echo "$I"

root@debian-lap:/tmp [ -z "$I" ] && echo "TRUE" || echo "FALSE"
TRUE
Run Code Online (Sandbox Code Playgroud)

这意味着变量 $I 是zero。我可以通过否定测试实现相同的目的,以查看变量是否为非零,!并使测试反向,因此它检查变量zero

root@debian-lap:/tmp ! [ -n "$I" ] && echo "TRUE" || echo "FALSE"
TRUE
root@debian-lap:/tmp
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是,当使用-zand时是否有任何特殊情况! -n,反之亦然! -z-n因为它们基本上都在进行相同的测试?

谢谢

shell bash shell-script test

0
推荐指数
1
解决办法
2362
查看次数