小编Cal*_*leb的帖子

将文件夹内容上移一级

我有一个解压缩的目录,但在一个文件夹中。如何将内容上移一层?我正在通过 SSH 访问 CentOS。

shell rename

181
推荐指数
4
解决办法
35万
查看次数

使用破折号 (-) 代替文件名

对于命令,如果-用作参数代替文件名将意味着 STDIN 或 STDOUT。

  1. 但在这个例子中,它创建了一个名为 的文件-

    echo hello > -
    
    Run Code Online (Sandbox Code Playgroud)

    我怎样才能-在这个例子中表示 STDOUT?

  2. 相反,我怎么能在示例中-命名一个文件-,例如:

    cat -
    
    Run Code Online (Sandbox Code Playgroud)

command-line shell utilities

140
推荐指数
4
解决办法
33万
查看次数

了解 bash 中的感叹号 (!)

我用了

history | less
Run Code Online (Sandbox Code Playgroud)

为了获取先前命令的行和左侧的数字,我找到了我想要重复的行(例如 22)并做了

!22
Run Code Online (Sandbox Code Playgroud)

在命令提示符下,它起作用了——在我当时所做的行上执行命令集。我无法弄清楚感叹号在哪里使用,它在 bash 采取的操作方面代表什么,以及在哪里使用它。从文档中我没有看到“有形”的解释。

command-line bash command-history

129
推荐指数
5
解决办法
17万
查看次数

在文本控制台上禁用屏幕消隐

我正在运行 linux 集群,主要是在 SLES10 上。服务器主要是刀片,通过远程控制台访问。服务器机房中有一个真正的控制台,但已关闭。

我想禁用屏幕消隐,因为它没有任何作用,而且很麻烦。您必须按 键才能查看是否已连接,这很痛苦。我们在运行级别 3 下运行,因此控制台处于文本模式,不涉及 X11。

linux suse terminal console

81
推荐指数
7
解决办法
11万
查看次数

如何转储手册页?

我怎样才能“cat”一个手册页,就像我会“cat”一个文件来获取内容的转储?

man

62
推荐指数
5
解决办法
3万
查看次数

我如何告诉 cron 每隔一天运行一个命令(奇数/偶数)

将 cron 配置为每隔一天使用“Day of Month”字段运行命令时,如下所示:

1 22 */2 * * COMMAND
Run Code Online (Sandbox Code Playgroud)

每次当月的某一天是奇数时它都会运行:1、3、5、7、9 等等。

如何将 cron 配置为在一个月中的几天运行,甚至像 2,6,8,10 等等(没有从字面上指定它,这是有问题的,因为每个月都有不同的天数)?

cron

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

`git pull` 是怎么吃掉我的作业的?

我感觉就像校长办公室里的一个孩子,解释说我的作业在到期前一天晚上被狗吃掉了,但我正盯着脸上的一些疯狂的数据丢失错误,我无法弄清楚它是怎么发生的。我想知道 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)

debugging git data-recovery

53
推荐指数
1
解决办法
3553
查看次数

内置的冒号 ':' 有什么作用?

我已经破解了很多 shell 脚本,有时最简单的事情让我感到困惑。今天我遇到了一个广泛使用:(冒号)bash 内置的脚本。

文档似乎很简单:

: (a colon)  
     : [arguments]  
Run Code Online (Sandbox Code Playgroud)

除了扩展参数和执行重定向之外,什么都不做。返回状态为零。

但是,我以前只在 shell 扩展的演示中看到过这个。我遇到的脚本中的用例广泛使用了这种结构:

if [ -f ${file} ]; then
    grep some_string ${file} >> otherfile || :
    grep other_string ${file} >> otherfile || :
fi
Run Code Online (Sandbox Code Playgroud)

实际上有数百个 grep,但它们只是更多相同。除了上面的简单结构之外,不存在输入/输出重定向。稍后在脚本中不会检查返回值。

我正在阅读这是一个无用的结构,上面写着“或什么都不做”。用“或什么都不做”来结束这些 grep 的目的是什么?在什么情况下,这个构造会导致与简单地|| :从所有实例中删除不同的结果?

shell-script shell-builtin

49
推荐指数
7
解决办法
1万
查看次数

使用具有特定网络接口的 ssh

我正在使用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)

ssh routing vpn

43
推荐指数
3
解决办法
11万
查看次数

命令完成时防止窗格/窗口关闭 - tmux

在我的tmux.conf文件中,我将其配置为打开窗口、命名它们、设置窗格等。等等。

但是,我遇到的一个问题是,如果其中一个窗格启动了一个命令,比如说ls,那么该窗格会在命令完成后(立即)自行关闭。有什么办法可以防止这种行为吗?或者在命令完成后它会降到正常的shell?

我假设我需要在窗格启动时启动一个 shell -> 执行命令,但如果我能弄清楚如何做,我会被诅咒的。我为这个问题搜索了一些谷歌,但没有找到。

tmux

43
推荐指数
2
解决办法
2万
查看次数