标签: bash

Powershell 相对于 cygwin/unix-shell 的优势是什么

我知道的明显区别是能够连接到某些 MS 产品,例如 Exchange。但是对于不必管理此类产品的人来说,Powershell 的优势是什么?学习 Powershell 的原因是什么(假设我精通 bash 和 cygwin)?

powershell shell bash cygwin

9
推荐指数
3
解决办法
6293
查看次数

如何使用“tput”命令设置终端的标题?

我通过这个答案发现,多年来我一直在以一种幼稚的方式在提示中设置终端颜色。

我现在已经修改了我的 .bashrc 以使用 'tput' 命令来为我的提示的各种元素着色。我剩下的一个转义码是这样的:

TITLEBAR="\[\033]2; PROD - \u@\h:\w \007\]"
Run Code Online (Sandbox Code Playgroud)

有谁知道是否有一个 tput/terminfo 属性可以用来设置终端窗口的标题栏,以便我可以消除这种转义?

shell bash terminal bashrc terminfo

9
推荐指数
2
解决办法
4494
查看次数

用于杀死进程直到它死亡的 Bash 片段?

我正在尝试编写一个强大的 bash 脚本,并在其中创建一个后台进程。在脚本的最后,我想杀死它。我有它的PID。

我在想这样的事情

while [[ ps ef $PID ]] ; do
  kill $PID
  sleep 0.5
done
Run Code Online (Sandbox Code Playgroud)

有什么更好的建议吗?这种方法有什么可能的问题吗?

scripting bash kill process snippet

9
推荐指数
2
解决办法
8308
查看次数

在 Redhat 上,“kernel.suid_dumpable = 1”是什么意思?

我正在运行一个 bash 脚本来复制一些日志文件,然后在 Red Hat 机器上重新启动服务。每次执行脚本时,我都会在控制台上得到以下信息:

[root@servername ~]# sh /bin/restart_nss.sh
kernel.suid
_dumpable = 1
Stopping Service: [ OK ]
Starting Service: [ OK ]
[root@servername ~]#

在这种情况下,“kernel.suid_dumpable = 1”是什么意思?

谢谢,IVR复仇者

redhat shell bash

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

是否可以在 Linux 上的 Bash 中隐藏恶意别名?

是否有可能在 Linux 系统上隐藏 Bash 中恶意别名的存在,并在用户不知情的情况下执行它?

security linux bash alias malware

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

有人应该如何为 /etc/shadow 创建加密密码?

我正在 Linux 机器上为 Subversion 存储库访问设置一个新帐户,并且可以将密码发送给新用户。但是,我认为这个新用户有一个命令行实用程序可以将他喜欢的密码加密成一种格式,我可以将其直接复制/粘贴到 /etc/shadow 文件中。

这个新用户应该在控制台(例如 Bash)上运行以创建这样一个加密密码的完整命令是什么?

更新:将不允许用户登录机器,该帐户将仅用于 svn+ssh:// 访问。因此,用户不能自行更改。

encryption password bash shadow

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

MySQL 相当于 .pgpass,或 mySQL 的 cron 作业中的自动身份验证

我正在编写一个 bash 脚本来备份我的数据库。大多数是 postgresql,在 postgres 中有一种方法可以通过创建一个包含 postgres 密码的 ~/.pgpass 文件来避免必须进行身份验证。我把它放在 root 的主目录中,并将其设置为 chmod 0600,这样 root 就可以转储 postgres 数据库而无需进行身份验证。现在我想为mysql做一些类似的事情,虽然我只有一个mysql数据库。我怎样才能做到这一点?我不想在命令行上为 mysqldump 指定密码,因为这是其他用户可能有点可见的脚本的一部分。有没有更好的方法(即内置于 mysql)来做到这一点,而不是制作一个只有 root 可以读取的文件,然后读取该文件以获取 mysql 密码,然后在 bash 脚本中将其用作变量?

mysql backup bash cron

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

是否可以为找到的每个文件获得“find -exec”扩展反引号?

这是一个工作正常的命令:

echo Blah: `stat -c %a .`
Run Code Online (Sandbox Code Playgroud)

是否可以对找到find -exec的每个文件执行相同的操作,而{}不是.?

linux bash

9
推荐指数
2
解决办法
3617
查看次数

将多个 unix 命令合并为一个输出

我需要在我们的邮件日志中搜索特定的电子邮件地址。我们将一个名为maillog的当前文件以及一周的 .bz2 文件保存在同一文件夹中。目前,我正在运行以下命令来搜索文件:

grep person@domain.com maillog
bzgrep person@domain.com *.bz2
Run Code Online (Sandbox Code Playgroud)

有没有办法将grepbzgrep命令组合成一个输出?这样,我可以将合并的结果通过管道传输到单个电子邮件或单个文件。

linux unix bash grep

9
推荐指数
2
解决办法
5448
查看次数

脚本执行后导出的变量未保留

我正面临一个奇怪的问题。我有一个带有 solaris 11 的虚拟机,并尝试编写一些 bash 脚本。

如果,在外壳上,我输入:

export TEST=aaa
Run Code Online (Sandbox Code Playgroud)

然后运行:

set
Run Code Online (Sandbox Code Playgroud)

我正确地看到了一个名为 TEST 的新环境变量,其值为 aaa。但是,如果我在脚本中做基本相同的事情。当脚本终止时,我看不到变量集。举一个具体的例子,如果在文件 test.sh 中我有:

#!/usr/bin/bash
echo 1: $TEST   #variable not defined yet, expect to print only 1:
echo 2: $USER
TEST=sss
echo 3:  $TEST
export TEST
echo 4:  $TEST
Run Code Online (Sandbox Code Playgroud)

它打印:

1:
2: daniele
3: sss
4: sss
Run Code Online (Sandbox Code Playgroud)

并且在执行之后, TEST 不会在 shell 中设置。我错过了什么吗?我尝试同时执行 export TEST=sss 和单独的变量集/导出,没有任何区别。

solaris bash

9
推荐指数
2
解决办法
8162
查看次数