小编Wil*_*ard的帖子

如何将文件从多个服务器复制到本地系统?

我们在 app00、app01 等服务器上多次部署了一个应用程序。我需要将所有这些服务器中的单个日志文件复制到我的本地 mac 上,以便我可以执行一些 grepping 和剪切。

我使用 csshX 来查看此文件,但找不到 scp 的等效项。我基本上想要两件事:

  1. 能够连接到 n 个这样的服务器并复制文件
  2. 避免在本地命名冲突,方法是在日志文件前加上服务器主机名

我该怎么做呢?

scp file-copy

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

[[.ch.]] 在正则表达式中是什么意思?

替代标题:什么是符合 POSIX 的正则表达式中的“整理序列”或“整理元素”?

我在 POSIX 规范的第 9.3.5 节中找到了确切的技术定义,作为列表中的第 4 项,但我不太清楚。

我在网上搜索示例和解释,并没有完全空手而归,但绝对没有开悟。

我唯一得到的是,在某些情况下,您可以让您的正则表达式将多个字符视为单个字符,以便进行长度比较和确定“最长匹配”是什么(因为正则表达式是贪婪的并且返回最长的匹配)。

仅此而已吗?我很难看到它的用途,但我怀疑我的理解不完整。 正则表达式的“整理”实际上是什么? 以及如何[[.ch.]]在POSIX规范的例子,涉及到这个?

terminology posix regular-expression

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

如何在 CentOS 上找到缺少手册页的软件包?

在 的底部man pcregrep,有一条消息:

SEE ALSO

       pcrepattern(3), pcresyntax(3), pcretest(1).
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试查看时,man pcresyntax我得到:

$ man pcresyntax
No manual entry for pcresyntax
$ man 3 pcresyntax
No entry for pcresyntax in section 3 of the manual
$ man -k pcre
pcre-config          (1)  - program to return PCRE configuration
pcregrep             (1)  - a grep with Perl-compatible regular expressions
pcre_table           (5)  - format of Postfix PCRE tables
pcretest             (1)  - a program for testing Perl-compatible regular expressions
Run Code Online (Sandbox Code Playgroud)

我试过yum info pcresyntax,甚至 …

man centos

9
推荐指数
1
解决办法
1873
查看次数

find 命令中的运算符优先级?

见下面的例子:

$ ls -1p
appledir/
applefile
orangedir/
orangefile
$ find . -type f -name apple\*
./applefile
$ find . -type f -name orange\*
./orangefile
$ find . -type f -name apple\* -o -name orange\*
./applefile
./orangedir
./orangefile
$ find . -type f \( -name apple\* -o -name orange\* \)
./applefile
./orangefile
$ 
Run Code Online (Sandbox Code Playgroud)

我惊讶地发现我需要括号才能按预期工作;显然,我还没有内化find评估其论点的优先规则。

我如何轻松预测何时需要以及何时不需要使用括号来明确地对find初选进行分组?

换句话说,我可以想象在给它的命令中find 插入括号的规则是什么,这将使我能够准确预测它将如何评估未分组的表达式?

find

9
推荐指数
1
解决办法
1625
查看次数

如何检查 glob 是否有扩展?

有没有一种很好的干净的传统方法来做到这一点?

例如,如果某个目录中有任何“.gz”文件,我想解压缩它们。但如果没有,我不想看到任何错误。

如果我使用gzip -d /mydir/*.gz,我会收到错误消息:

gzip: /mydir/*.gz: No such file or directory
Run Code Online (Sandbox Code Playgroud)

如果我先shopt -s nullglob然后gzip -d /mydir/*.gz,我会得到以下信息:

gzip: compressed data not read from a terminal. Use -f to force decompression.
For help, type: gzip -h
Run Code Online (Sandbox Code Playgroud)

我有一种我知道可行的方法,我将其作为答案发布。我想知道是否有更好/更清洁的方法。

POSIX 兼容性是一个奖励,但不是必需的。

bash shell-script wildcards

9
推荐指数
1
解决办法
3527
查看次数

如何从vim中有效地将文件添加到vim的args列表中?

真的,我只是混淆了几个术语,其中一些可能是同义词:

  • 缓冲区
  • 标签
  • 档案
  • 视窗

我想完全理解这些术语,我们将不胜感激。但是,我的直接问题是:

我喜欢在将多个文件列为 vim 命令的参数时获得的文件之间切换的方法。然而,有时我在编辑会话中,我意识到我也想编辑另一个文件,使用相同的宏、寄存器等,而不结束编辑会话。如何从 vim 中打开另一个文件,:n并:prev允许我在新文件之间切换?

vim

8
推荐指数
2
解决办法
4686
查看次数

如何打印带有填充中心对齐的变量?

如何打印$myvar填充以使其位于终端的中心,并且任一侧都=位于屏幕的边缘?

bash tput printf text-formatting

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

为什么以及何时应该在 shell 脚本中避免使用 eval?

该站点上的许多答案和评论都提到通常应避免eval在 shell 脚本中使用。这些评论通常是针对初学者的。

我已经看到提到安全问题和健壮性,但很少有例子。

我已经明白命令是什么,以及如何使用它eval。但是,那里给出的答案仅简要提及使用eval. 值得注意的是,每个答案都指出这eval可能是一个主要的安全漏洞,但大多数只是将这一事实作为结束语而没有详细说明。这似乎值得进一步考虑,实际上是它自己的问题。

为什么是用eval一个坏主意?

当将它适当地使用?

是否有任何指导方针可以完全安全地使用它,或者它总是不可避免地存在安全漏洞?


编辑:这篇文章是我在发布这个问题时实际寻找的那种规范参考(答案)。任何滥用的人eval都可以指向此参考。

shell-script eval

8
推荐指数
2
解决办法
9050
查看次数

Set awk array on command line?

I know the -v switch can be used to awk on the command line to set the value for a variable.

Is there any way to set values for awk associative array elements on the command line?

Something like:

awk -v myarray[index]=value -v myarray["index two"]="value two" 'BEGIN {...}'
Run Code Online (Sandbox Code Playgroud)

shell options awk associative-array

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

如果 systemd 已经取代了 SystemV,为什么它仍然存在,谁在运行这个节目?

我正在运行 Debian 8 x64 并且仍在学习它。我在 Debian 和 Ubuntu 系统上反复遇到的令人困惑的事情之一是似乎有两种运行和管理服务的方式:

  • service
  • systemctl

我已经通读了systemd (systemctl)上的 Debian 页面以及诸如systemd 如何使用 /etc/init.d 脚本之类的问题?

据我目前所知,如今许多 Linux 发行版,包括 Debian 和 Ubuntu,正在摆脱旧的 SysV(系统五)并采用systemd。

我可以看到 my/sbin/init是到/lib/systemd/systemd.

问题是:

  • 如果 systemd 已经取代了 SysV,为什么 SysV ( service) 还在?
  • 为什么我可以互换使用两者?如果我在其中启动一个守护进程,另一个会知道它。如何?哪个正在主持节目?
  • 是否有任何真正的理由再使用service或我应该坚持使用systemctl?

debian systemd init sysvinit

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