标签: shell

选择 SSH 使用的 shell?

如何设置用户通过 SSH 连接到服务器时使用的 shell。例如,我无法忍受 BASH 并且需要使用 ZSH,.zsh_profile当我通过 ssh 连接到机器时,我如何才能使 ZSH 与我的配置文件 ( )一起加载。

我也不想用ssh传递一堆参数,我不能设置默认shell吗?

shell

52
推荐指数
5
解决办法
8万
查看次数

以不同的用户身份运行 shell 脚本

以不同用户身份运行 shell 脚本的好方法是什么?我正在使用 Debian etch,并且我知道我想模拟哪个用户。

如果我手动进行,我会这样做:

su postgres
./backup_db.sh /tmp/test
exit
Run Code Online (Sandbox Code Playgroud)

由于我想自动化该过程,因此我需要一种将 backup_db.sh 作为 postgres 运行的方法(继承环境等)

谢谢!

scripting linux debian shell suid

50
推荐指数
3
解决办法
24万
查看次数

如何拆分 PEM 文件

注意:这不是一个真正的问题,因为我已经找到了答案,但是由于我在这里不容易找到它,所以我将其发布,以便它可以使其他人受益。

问题:如何读取连接的 PEM 文件作为 apache/mod_ssl 指令SSLCACertificateFile使用的文件?

答案(原文)来源):

cat $file|awk 'split_after==1{n++;split_after=0} /-----END CERTIFICATE-----/ {split_after=1} {print > "cert" n ".pem"}'
Run Code Online (Sandbox Code Playgroud)

如果末尾有一个空行,这可能会留下一个空文件,例如openssl pkcs7 -outform PEM -in my-chain-file -print_certs. 为防止出现这种情况,请在打印前检查行的长度:

cat $file|awk 'split_after==1{n++;split_after=0}
   /-----END CERTIFICATE-----/ {split_after=1}
   {if(length($0) > 0) print > "cert" n ".pem"}' 
Run Code Online (Sandbox Code Playgroud)

回答 29/03/2016

按照@slugchewer answercsplit可能是一个更清晰的选择:

csplit -f cert- $file '/-----BEGIN CERTIFICATE-----/' '{*}'
Run Code Online (Sandbox Code Playgroud)

shell openssl awk x509

49
推荐指数
5
解决办法
10万
查看次数

Linux:使用 find 来定位早于 <date> 的文件

find对查找比 X 天前修改得更多的文件有很好的支持,但是我怎样才能find找到在某个日期之前修改的所有文件?

我在find手册页中找不到任何内容来执行此操作,只能与另一个文件时间进行比较或检查创建时间与现在之间的差异。制作具有所需时间的文件并与之比较是唯一的方法吗?

linux shell find

48
推荐指数
6
解决办法
12万
查看次数

sudo su - postgres 和 sudo -u postgres 有什么区别?

PostgreSQL 用户默认在 unix 套接字上进行对等身份验证,其中 unix 用户必须与 PostgreSQL 用户相同。所以人们经常使用susudo成为postgres超级用户。

我经常看到人们使用以下结构:

sudo su - postgres
Run Code Online (Sandbox Code Playgroud)

而不是

sudo -u postgres -i
Run Code Online (Sandbox Code Playgroud)

我想知道为什么。同样,我见过:

sudo su - postgres -c psql
Run Code Online (Sandbox Code Playgroud)

代替

sudo -u postgres psql
Run Code Online (Sandbox Code Playgroud)

如果没有领导sudosu版本可能会做出一些感觉,如果你是一个老平台没有sudo。但是为什么要在比史前时代更短的 UNIX 或 Linux 上使用sudo su

postgresql su shell sudo

47
推荐指数
1
解决办法
12万
查看次数

Cron:只在电子邮件中收到错误?

我最终通过一个 shell 脚本为我的数据设置了一个现实的备份计划,由 cron 以紧密的时间间隔处理。不幸的是,每次执行 CRON 时,我都会收到空电子邮件,而不仅仅是在出现问题时。

是否可以仅在出现问题时让 CRON 发送电子邮件,即。我TAR没有按预期执行?

这是目前我的 crontab 的设置方式;

0 */2 * * * /bin/backup.sh 2>&1 | mail -s "Backup status" email@example.com
Run Code Online (Sandbox Code Playgroud)

非常感谢!

shell bash schedule cron

46
推荐指数
4
解决办法
6万
查看次数

在 shell 脚本中查找公共 IP 地址

我可以使用 ifconfig 或 hostname -i 命令找到我的 IP 地址。

但是我如何找到我的公共 IP?

(我有一个静态公共 IP,但我想使用 unix 命令找到它)

unix shell

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

find 命令默认排序顺序

linux find 命令返回的条目的默认排序顺序是什么?

例如,如果我发出

find . -type f -name '*mp3' 
Run Code Online (Sandbox Code Playgroud)

并且输出由多个子文件夹中的多个文件组成,列出目录的默认顺序是什么?同时,列出单个目录中的文件的排序顺序是什么?

有时它会返回:

./B/01.mp3
./A/01.mp3
./A/04.mp3
./A/02.mp3
Run Code Online (Sandbox Code Playgroud)

看看如何首先列出目录 B 的内容,然后是目录 A 的内容。同时在目录 A 中,文件以有趣的顺序列出。

linux shell find

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

在 Shell 脚本中使用 Linux 进行模板化?

我想要完成的是:

1.) 有一个配置文件作为模板,带有像 $version $path 这样的变量(例如 apache config)

2.) 有一个 shell 脚本来“填充”模板的变量并将生成的文件写入磁盘。

这是否可以通过 shell 脚本实现。如果您能说出一些我可以完成的命令/工具或一些好的链接,我将非常感激。

linux shell

41
推荐指数
4
解决办法
6万
查看次数

如何列出符号链接链?

鉴于这个例子:

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 ×10

linux ×5

find ×2

awk ×1

bash ×1

cron ×1

debian ×1

openssl ×1

postgresql ×1

schedule ×1

scripting ×1

su ×1

sudo ×1

suid ×1

symbolic-link ×1

unix ×1

x509 ×1