标签: shell

如何列出符号链接链?

鉴于这个例子:

mkdir a
ln -s a b
ln -s b c
ln -s c d
Run Code Online (Sandbox Code Playgroud)

如果我执行:

ls -l d
Run Code Online (Sandbox Code Playgroud)

它会显示:

d -> c
Run Code Online (Sandbox Code Playgroud)

有没有办法ls或任何其他linux命令来d -> c -> b -> a代替显示?

linux shell symbolic-link

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

伪造特定 shell 会话的日期

我当然想在这里实现一些奇怪的东西,但我想在 GNU/Linux 上为 shell 会话在本地伪造日期。我需要对程序在不同日期的行为进行黑盒测试,修改系统范围的日期可能会产生不需要的副作用(cron 作业、混乱的日志等)。

有任何想法吗 ?

linux unix shell time unix-shell

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

如何通过替换文件名中的单词来重命名多个文件?

将 ACDC 替换为 AC-DC

例如我们有这些文件

ACDC - 摇滚乐不是噪音污染.xxx

ACDC - Rocker.xxx

ACDC - Shoot To Thrill.xxx

我希望他们成为:

AC-DC - 摇滚乐不是噪音污染.xxx

AC-DC - Rocker.xxx

AC-DC - 惊险刺激.xxx

我知道 sed 或 awk 用于此操作。我无法用谷歌搜索任何东西,所以我在寻求你的帮助 =) 你能为此任务提供完整的 shell 命令吗?

反馈:OSX 用户的解决方案

files shell rename sed

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

#!/bin/sh 与 #!/bin/bash 的最大可移植性

我通常使用 Ubuntu LTS 服务器,从我理解的符号链接/bin/sh/bin/dash. 许多其他发行版虽然符号链接/bin/sh/bin/bash.

#!/bin/sh由此我了解到,如果脚本在顶部使用,它可能不会在所有服务器上以相同的方式运行?

当您希望在服务器之间最大程度地可移植这些脚本时,是否有建议将哪个 shell 用于脚本?

linux shell bash sh

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

有没有理由在 zsh 上使用 bash?

我很好奇为什么要运行 bash 而不是 zsh。我的意思是 zsh 与 bash 完全向后兼容。不要误会我的意思:我不喜欢 bash 或任何东西。我只是真的想知道使用它是否比 zsh 有任何优势。

那么有什么理由使用 bash 而不是 zsh 呢?

scripting shell bash zsh

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

以 Linux“系统”用户身份运行命令(shell = /bin/false)

我在 Ubuntu 11.04 ( adduser --system) 中创建了一个“系统”用户来运行某些 cron 作业,但有时我想通过以该用户身份手动运行命令来测试一下。什么是最简单的方法来做到这一点?

su不起作用,因为用户有/bin/false它的外壳(这对 cron 很好)。我一直在手动更改外壳以/bin/bash进行测试,然后再次将其更改回来,但我想知道有没有更简单的方法?

linux ubuntu su shell cron

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

无法从 CRON(凭证)运行 AWS CLI

尝试运行一个简单的 AWS CLI 备份脚本。它遍历包含文件中的行,将这些路径备份到 S3,并将输出转储到日志文件。当我直接运行此命令时,它运行没有任何错误。当我通过 CRON 运行它时,我的输出日志中出现“无法找到凭据”错误。

外壳脚本:

AWS_CONFIG_FILE="~/.aws/config"

while read p; do
 /usr/local/bin/aws s3 cp $p s3://PATH/TO/BUCKET --recursive >> /PATH/TO/LOG 2>&1
done </PATH/TO/INCLUDE/include.txt
Run Code Online (Sandbox Code Playgroud)

我只是在开始看到错误后才将这一行添加到配置文件中,我认为这可能会解决它(尽管我很确定这是 AWS 默认的样子)。

Shell 脚本以 root 身份运行。我可以在指定位置看到 AWS 配置文件。我觉得这一切都很好(就像我说的,它在 CRON 之外运行良好)。

shell bash cron amazon-web-services

34
推荐指数
3
解决办法
4万
查看次数

需要修复用户主目录中的文件权限

有没有人有一个工具或脚本可以递归地纠正目录上的文件权限?

在一台 Ubuntu Linux 机器上,一堆文件被错误地复制到一个具有完整 777 权限(用户、组、其他 - 读取、写入、执行)的 USB 磁盘。我想将它们放回已更正的用户目录中。

目录应该是775,所有其他文件可以是664。所有文件都是图像、文档或MP3,所以它们都不需要可执行。如果设置了目录位,则它需要执行,否则它只需要用户和组,读取和写入。

我认为在编写 shell 脚本之前检查是否存在这样的实用程序是值得的:)

linux ubuntu filesystems permissions shell

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

强制 SSH 使用特定的 shell

有没有办法强制 SSH 在远程端使用特定的 shell,而不管用户的默认 shell 是什么?

我尝试过类似的解决方案:

ssh host.domain.com /bin/bash -c 'complicated, multi-line command'
Run Code Online (Sandbox Code Playgroud)

但不幸的是,远程端的默认 shell 负责解析“复杂的多行命令”部分,我很难充分地转义它以供 Bash 和 C shell 用户使用。

ssh shell bash command-line-interface

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

将回声附加到文件?

在 linux 中,我该如何做类似的事情

echo 'hello world' > log.txt
Run Code Online (Sandbox Code Playgroud)

但它不是覆盖 log.txt 的内容,而是附加到 log.txt 的末尾?

linux shell unix-shell

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