小编Arc*_*ing的帖子

cron.d(如在 /etc/cron.d/ 中)和 crontab 之间有什么区别?

目录 cron.d(如/etc/cron.d/)和之间的主要区别是什么crontab

据我了解,人们可以创建一个文件,/etc/cron.d/my_non_crontab_cronjobs然后将任何想要的内容放入其中,就像将它们放入crontabvia 一样crontab -e

那么两者的主要区别是什么呢?

cron debian

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

posix / chmod 中的大写 X 是什么?

我知道什么是ugoa(所有者、组、其他人、全部)或rwx(读取/正确/执行)或 4,2,1 或-, f, d, l,我试图读入man chmod以了解什么是大写Xchmod但没有一个条目。然后我在 posix/chmod 中阅读了这篇文章,但被困在了这段话中:

仅当目标 a) 是目录 b) 已经为用户、组或其他人中的任何一个设置了至少一个可执行位时才设置可执行位。

我还在这篇文章中读到了这个代码示例:

chmod -R u=rwX,g=rX,o=rX testdir/
Run Code Online (Sandbox Code Playgroud)

我知道testdir/对所有者 (u)、组 (g) 和其他人 (o)有递归许可,但我承认我仍然错过了大写 X 的意图。

也许这里的教学措辞可以对此有所了解(我在这里发布的主要原因是因为我没有找到关于此的 SE 会议)。

更新

对不起,我错过了那个男人。我没想到 X 会出现在参数列表之前,我认为搜索返回的是 x 而不是 X,我的错。

permissions chmod posix

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

从现在开始的某个时间做一些事情(也许还可以在控制台中显示结果)

我使用 Ubuntu 服务器 16.04,并且我希望at在当前会话中使用该实用程序在 1 分钟后执行某些操作(例如echo),而不提供特定日期和时间 - 仅比当前时间提前 1 分钟。

这失败了:

echo 'hi' | at 1m
Run Code Online (Sandbox Code Playgroud)

我选择的原因atsleep,因为睡眠障碍当前会话是延迟命令为此更适合在另一个会话,而不是大部分时间的一个,我们的工作。AFAIR,at不会以这种方式行事,也不会妨碍我的会议。

更新_1

根据 Pied Piper 的回答,我尝试过:

(sleep 1m; echo 'hi')  &
Run Code Online (Sandbox Code Playgroud)

我对这种方法有一个问题:“hi”流打印在我的主提示中,并且还在_包含它的主提示下添加了一个空的辅助提示 ( ),请参阅:

USER@:~# (sleep 1m; echo 'hi')  &
[1] 22731
USER@:~# hi
^C
[1]+  Done
Run Code Online (Sandbox Code Playgroud)

更新_2

通过 Peter Corde 的回答,我尝试过:

(sleep 2 && echo -e '\nhi' && kill -WINCH $$ &)
Run Code Online (Sandbox Code Playgroud)

这在 Bash 4.4 中可以正常工作,但在某些旧版本中似乎无法正常工作(请参阅答案中的评论)。我个人在自己的环境中使用 Bash 4.3。

sleep console stdout at delay

12
推荐指数
3
解决办法
1626
查看次数

Debian 9.3 - 解压失败,说文件不存在

我在 Debian 9.3 中运行了以下命令:

cd /usr/local/src
wget http://www.rfxn.com/downloads/maldetect-current.tar.gz
Run Code Online (Sandbox Code Playgroud)

该文件下载得很好,但是,当我执行时:

tar -xzfv maldetect-current.tar.gz
Run Code Online (Sandbox Code Playgroud)

我得到:

tar (child): v: Cannot open: No such file or directory tar (child):
Error is not recoverable: exiting now tar: Child returned status 2
tar: Error is not recoverable: exiting now
Run Code Online (Sandbox Code Playgroud)

ls -la表明该文件确实存在:

/usr/local/src# ls -la
total 3144
drwxrwsr-x  2 root staff    4096 Jan  8 11:46 .
drwxrwsr-x 11 root staff    4096 Jan  8 11:40 ..
-rw-r--r--  1 root staff 1605546 Jul 14 04:45 maldetect-current.tar.gz
Run Code Online (Sandbox Code Playgroud)

tar debian files

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

Nginx 位置 ~ /\.ht

locationNginx中以下块的含义是什么?

location ~ /\.ht {
    deny all;
}
Run Code Online (Sandbox Code Playgroud)

我问,因为我有一个小的 WordPress 站点,我从它的配置中删除了这个块并重新启动了服务器,但该站点似乎仍然正常工作。

nginx

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

Linux 中的主要执行阶段是什么(程序在 Linux 中基本上是如何执行的)?

我知道在 Linux 中有两个执行阶段,处理我们运行的每个命令。我会说出我对它们的理解方式,因为我不知道原文的措辞:

  1. 外壳处理---外壳编辑命令(将其拆分为不同的行等),所有这些都在与当前外壳不同的外壳中完成。

  2. 在 shell 处理之后执行结果(在我们使用的原始 shell 中)。

有人可以回答这些操作的名称并参考他认为最适合新学习者的一些阅读材料吗?

executable

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

set -x:在调试模式下工作时,制表符补全会导致输出混乱

我知道这set -x会让 Bash 用户进入调试模式,并且我觉得在调试模式下全职工作将帮助我更好地处理 Bash 中可能出现的问题。

我在使用时遇到问题set -x

当我尝试使用我的发行版(Ubuntu 16.04)的本机制表符完成来完成目录名称时,我得到一个非常长且混乱的输出。

例如,$PWD/var/www/html/运行以下任一命令:

cd ~/u[制表符补全完成uulcwe]

cd ~ && cd u[制表符补全完成uulcwe]

在这两个示例中,我都会得到非常长且混乱的输出:

+ return 0
+ local -a toks
+ local quoted x tmp
+ _quote_readline_by_ref '~/u' quoted
+ '[' -z '~/u' ']'
+ [[ ~/u == \'* ]]
+ [[ ~/u == \~* ]]
+ printf -v quoted '~%q' /u
+ [[ ~/u == …
Run Code Online (Sandbox Code Playgroud)

bash debugging ubuntu autocomplete output

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

Gnome 外壳 VS Unity

我是否正确理解Gnome shell是为允许基于 GUI 的操作而编写的 shell,而Unity GUI实际上是基于 Gnome shell 的接口之一

gui

4
推荐指数
2
解决办法
1380
查看次数

如果文件中不存在这些行,如何将多行追加到文件中?

如果文件中不存在这些行,如何将多行追加到文件中?

例如,要添加多个全局别名,/etc/bash.bashrc我使用heredocument

cat <<-"BASHRC" >> /etc/bash.bashrc
    alias rss="/etc/init.d/php*-fpm restart && systemctl restart nginx.service"
    alias brc="nano /etc/bash.bashrc"
BASHRC
Run Code Online (Sandbox Code Playgroud)

我被批评说这个操作不包括检查行是否已经存在的方法,如果错误地重新执行这里文档,我可能会导致冗余和冲突。

shell-script text-processing deduplication

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

将下载实用程序(如 wget)的 url 合并到一行中

考虑这些wget代码:

wget -P ~/ https://raw.githubusercontent.com/user/repo/branch/papj.sh
wget -P ~/ https://raw.githubusercontent.com/user/repo/branch/nixta.sh
Run Code Online (Sandbox Code Playgroud)

有没有什么优雅的方法可以将具有上述相同基本 URL 的不同终端合并为一行而不是 2 行或更多行?

伪代码:

wget -P ~/ https://raw.githubusercontent.com/user/repo/branch/papj.sh||nixta.sh
Run Code Online (Sandbox Code Playgroud)

command-line download wget curl

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