Articles of bash

通配符的mv仍然是primefaces的

我的理解是,mv dir1 / file1 dir2 /是primefaces的, 是mv dir1 / * dir2 /还primefaces? 例如,假设dir1中有10个文件,每个10GB。

无声和脚本安装的CPAN和Perl模块?

我需要在Scientific Linux(RHEL)安装脚本中自动安装CPAN和一些Perl模块。 不幸的是,我所希望的特定模块(至less其中之一)不能作为RPM被发现,就我所见。 所以我需要安装CPAN,自动configuration(或使用configuration文件),然后自动安装想要的模块(包括依赖项)。 这似乎不是一个非常不寻常的要求,但我还没有看到任何真正的好文件。 问题是,每当CPAN第一次启动交互式configuration运行。 这可以跳过吗? 我该如何直接从命令行启动模块安装?

在BASH脚本中上传FTP

我需要将目录/ home / test的全部内容上传到我的ftp服务器,在特定的文件夹中。 然后,我将通过cron每小时安排脚本。 任何例子? NB。 考虑到我在一个Netgear的ReadyNAS Duo(一个debian盒),我不能安装lftp或相似的,只有标准的命令:)

为什么'pkill /?' 杀了我的SSH会话?

通过SSH以root身份运行以下命令(bash)之后: pkill –help pkill -h pkill /? 前两个命令没有提供任何信息,这就是为什么跑第三(有点本能…)。 接下来发生的事情是,我的服务器的SSH会话closures,它不会重新连接。 我猜测它停止了所有(或大部分)正在运行的进程,包括负责此类进程的守护进程。 我想了解为什么会发生这种情况:我的input的具体评估(分步)是什么,它是什么原因导致的。 我最好的猜测是,它与贝壳评价'?'有关。 字符,这可能转化为一些单字符expression式的列表,这些expression式被传递给pkill,然后closures这些PID。

确保没有控制台会话(Linux)

在bash作为默认shell的Linux系统上,我想用下列条件configuration自动注销: 控制台会话(VGA,串口,远程KVM等)在指定的时间段后被注销 即使运行“非空闲”进程(如top控制台会话也会被注销 SSH会话不以这种方式注销 目的是确保无论是通过VGA还是通过远程KVM或串口进行的控制台会话都不会被意外login。 我想确保我们的网站。 由于第二个项目符号, TMOUT环境variables并不完全满足我的需求。 我可以制定一个快速的解决scheme来杀死某个年龄段的login进程,但这似乎很脆弱,容易产生副作用。 我可以寻找shell的/proc/$PID/fd/0链接到/dev/tty* 。 不过,这似乎是一个必须已经解决的问题。 任何指针如何实现这一点非常感谢。

如何从脚本设置docker容器的根密码?

我有一个脚本,在主机上运行,​​并创build/启动/停止docker集装箱。 我希望脚本更改容器中的root用户的密码。 由于容器是一个SSH服务器,我试过: sshpass -p 'OLDPASS' ssh root@<container-IP> 'echo -e "NEWPASS\nNEWPASS" | passwd root' sshpass -p 'OLDPASS' ssh root@<container-IP> 'echo -e "NEWPASS\nNEWPASS" | passwd root' 但它不起作用。 在继续之前,花更多的时间来debugging它,我想知道是否有更聪明的方法来做到这一点。 我明白,正确的“docker方式”是制作一个由Dockerfile运行的脚本,该脚本从共享卷中提取密码并将其设置为root密码。 这听起来很复杂,但我知道如何去做,并且适用于我使用的另一个docker图像。 但是我不想这样做。 我只需要一个使用Docker或者ssh来非交互式地改变用户密码的命令。

Bash:菜单只适用于less数比赛

使用Bash自动完成,只有在有1-2个选项的情况下,才有一种方法可以使用菜单循环来完成匹配,否则使用完整的列表? 例 主目录包含桌面,文档,下载,项目和公共 ~$ cd D<tab><tab> # lists matches Desktop Documents Downloads ~$ cd De<tab> # completes Desktop ~$ cd P<tab> # completes Projects ~$ cd Projects<tab> # completes Public 前者是complete行为,后者是menu-complete 。 我想要它select第二个选项,如果只有1-2个匹配,第一个如果有3个或更多。

bash选项卡完成只适用于root

我build立了一个Ubuntu 12服务器(使用他们的预configuration映像在机架空间云上),并创build了一个非root用户。 当我以标准用户身份login时,在terminal按[TAB]输出一个实际的标签,按[UP]输出^ [[A。 如果我以root身份login,[UP]input最后一个命令,[TAB]自动完成。 两个用户的.bashrc文件看起来完全一样。 我真的不知道在哪里看。

docker的shell脚本ps -a | grepfind运行某些容器的数目

我想编写一个脚本,由我的开发构build服务器执行,在构build和运行新容器之前将删除所有“类似的”泊坞窗容器。 下面是我需要的bash脚本的伪代码 var name = $1 var number_of_results = # of containers returned from $(docker ps -a | grep "$name") if(number_of_result > 0) docker rm -f $(docker ps -a | grep "$name")

在bash中获得更多有用的选项卡完成提示?

比方说,我有一个目录中有几个文件就像这样: $ ls file1 file2 file3 而我想在bash中做一些tab完成: $ cat file<tab> file1 file2 file3 我记得看到有人正在完成制表符,并且shell将下一个部分粗体显示,所以在这种情况下,它会加粗文件名的2和3 ,所以它看起来像这样:file 1 file 2 file 3 这将告诉你你应该input什么。 我认为这是zsh一个function,但有什么办法让它在bash ?