我想知道是否可以在其中创建自定义快捷方式vim
或vi
保存打开的文件?
例如,CtrlS而不是每次键入:w
?
谢谢!
是否可以使用来自 stdout 的提交消息,例如:
echo "Test commit" | git commit -
Run Code Online (Sandbox Code Playgroud)
还尝试在 中回显消息内容.git/COMMIT_EDITMSG
,但随后运行git commit
会要求在提到的文件中添加更改。
有时,我想测试我的正则表达式是否正确。
如何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)
在没有太多脚本的情况下,这以某种方式可能吗?
如果我用“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
将此“信息”存储在某处?
根据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
. 难道我做错了什么?
我有两个 Asix USB 转以太网适配器。FreeBSD 将它们确定为ue1
和ue2
适配器。
问题是,在重新启动时,有时界面会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) 考虑以下:
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。我的问题是 - 为什么?
在翻译中,这不是说:
看着这个:
cmd foo1 || cmd foo2 && …
是否有一些解决方法可以根据第一列一次加入多个文件?通常,我会这样做:
join File1 File2 > File1+File2
和File1+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 中不匹配的行(第五行)谢谢
在 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)
所以,我的问题是,当使用-z
and时是否有任何特殊情况! -n
,反之亦然! -z
,-n
因为它们基本上都在进行相同的测试?
谢谢