对于命令,如果-用作参数代替文件名将意味着 STDIN 或 STDOUT。
但在这个例子中,它创建了一个名为 的文件-:
echo hello > -
Run Code Online (Sandbox Code Playgroud)
我怎样才能-在这个例子中表示 STDOUT?
相反,我怎么能在示例中-命名一个文件-,例如:
cat -
Run Code Online (Sandbox Code Playgroud)我用了
history | less
Run Code Online (Sandbox Code Playgroud)
为了获取先前命令的行和左侧的数字,我找到了我想要重复的行(例如 22)并做了
!22
Run Code Online (Sandbox Code Playgroud)
在命令提示符下,它起作用了——在我当时所做的行上执行命令集。我无法弄清楚感叹号在哪里使用,它在 bash 采取的操作方面代表什么,以及在哪里使用它。从文档中我没有看到“有形”的解释。
我正在运行 linux 集群,主要是在 SLES10 上。服务器主要是刀片,通过远程控制台访问。服务器机房中有一个真正的控制台,但已关闭。
我想禁用屏幕消隐,因为它没有任何作用,而且很麻烦。您必须按 键才能查看是否已连接,这很痛苦。我们在运行级别 3 下运行,因此控制台处于文本模式,不涉及 X11。
将 cron 配置为每隔一天使用“Day of Month”字段运行命令时,如下所示:
1 22 */2 * * COMMAND
Run Code Online (Sandbox Code Playgroud)
每次当月的某一天是奇数时它都会运行:1、3、5、7、9 等等。
如何将 cron 配置为在一个月中的几天运行,甚至像 2,6,8,10 等等(没有从字面上指定它,这是有问题的,因为每个月都有不同的天数)?
我感觉就像校长办公室里的一个孩子,解释说我的作业在到期前一天晚上被狗吃掉了,但我正盯着脸上的一些疯狂的数据丢失错误,我无法弄清楚它是怎么发生的。我想知道 git 怎么会吃掉我的整个存储库!我已经多次将 git 放入绞拧器中,它从不眨眼。我用它将 20 Gig Subversion 存储库拆分为 27 个 git 存储库,并将 foo 过滤分支出来以解决混乱问题,并且它从未在我身上丢失过一个字节。reflog 总是可以依靠的。这次地毯不见了!
从我的角度来看,我所做的只是运行git pull,它破坏了我的整个本地存储库。我的意思不是说它“弄乱了签出的版本”或“我所在的分支”或类似的东西。我的意思是整件事都没有了。
这是事件发生时我的终端的屏幕截图:

让我带你了解一下。我的命令提示符包含有关当前 git 存储库的数据(使用 prezto 的 vcs_info 实现),因此您可以查看 git 存储库何时消失。第一条命令就够正常了:
» caleb » jaguar » ~/p/w/incil.info » ? ? zend ? »
??? git co master
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.
Run Code Online (Sandbox Code Playgroud)
在那里你可以看到我在 'zend' 分支上,并检查了 master。到现在为止还挺好。您将在我的下一个命令之前的提示中看到它成功切换了分支:
» caleb » jaguar » ~/p/w/incil.info » ? ? master ? »
??? git pull
remote: Counting objects: …Run Code Online (Sandbox Code Playgroud) 我已经破解了很多 shell 脚本,有时最简单的事情让我感到困惑。今天我遇到了一个广泛使用:(冒号)bash 内置的脚本。
该文档似乎很简单:
Run Code Online (Sandbox Code Playgroud): (a colon) : [arguments]除了扩展参数和执行重定向之外,什么都不做。返回状态为零。
但是,我以前只在 shell 扩展的演示中看到过这个。我遇到的脚本中的用例广泛使用了这种结构:
if [ -f ${file} ]; then
grep some_string ${file} >> otherfile || :
grep other_string ${file} >> otherfile || :
fi
Run Code Online (Sandbox Code Playgroud)
实际上有数百个 grep,但它们只是更多相同。除了上面的简单结构之外,不存在输入/输出重定向。稍后在脚本中不会检查返回值。
我正在阅读这是一个无用的结构,上面写着“或什么都不做”。用“或什么都不做”来结束这些 grep 的目的是什么?在什么情况下,这个构造会导致与简单地|| :从所有实例中删除不同的结果?
我正在使用openconnect连接到 vpn。输入凭据后,我得到以下信息:
POST https://domain.name/...
Got CONNECT response: HTTP/1.1 200 OK
CSTP connected. DPD 30, Keepalive 30
Connected tun0 as xxx.xxx.xxx.xxx, using SSL
Established DTLS connection
Run Code Online (Sandbox Code Playgroud)
运行ifconfig显示我有一个tun0具有特定 IP 地址的新网络接口。
问题:如何ssh只使用网络接口,tun0以便我可以访问该专用网络上的计算机?
编辑:
我的网络配置 ( route -n) 似乎是这样的:
172.16.194.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet8
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
172.16.25.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet1
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
0.0.0.0 192.168.0.1 …Run Code Online (Sandbox Code Playgroud) 在我的tmux.conf文件中,我将其配置为打开窗口、命名它们、设置窗格等。等等。
但是,我遇到的一个问题是,如果其中一个窗格启动了一个命令,比如说ls,那么该窗格会在命令完成后(立即)自行关闭。有什么办法可以防止这种行为吗?或者在命令完成后它会降到正常的shell?
我假设我需要在窗格启动时启动一个 shell -> 执行命令,但如果我能弄清楚如何做,我会被诅咒的。我为这个问题搜索了一些谷歌,但没有找到。