Questions tagged «bash»

Bash是Bourne Again SHell,它是经典Unix sh(shell)的继承者。

1
远程重启多台机器
我需要远程重启许多机器。通常我只是发出 for host in <hostlist>;do ssh ${host} 'sudo shutdown -r now';done 但是我想给用户一些时间,然后重新启动。但是,即使我使用它们,它们的ssh会话也不会断开连接: ssh -f 'sudo shutdown -r +5 &;disown' 我收到一条错误消息: bash:-c:第0行:意外令牌;' bash: -c: line 0:sudo shutdown -r +5&; disown' 附近的语法错误 有什么建议?
11 ssh  bash 

2
针对CVE-2014-7169的更新的Shellshock漏洞测试如何工作?
我了解CVE-2014-6271的原始测试,该测试是: $ env x='() { :;}; echo vulnerable' bash -c "echo this is a test" 但是我对CVE-2014-7169的更新测试和相应输出感到困惑: $ env X='() { (a)=>\' sh -c "echo date"; cat echo sh: X: line 1: syntax error near unexpected token `=' sh: X: line 1: `' sh: error importing function definition for `X' Thu …
11 security  bash 

1
尝试在Debian中执行启动脚本时没有此类文件或目录错误
对Debian(Raspbian)来说还很陌生,而我在这方面苦苦挣扎了几天。我有一个要在启动时执行的启动脚本。 我已执行以下命令,以使脚本可执行,并将其与默认参数一起添加到启动序列中。 sudo chmod 755 /etc/init.d/testsam sudo update-rc.d testsam defaults 尝试测试脚本时,我执行以下操作: sudo /etc/init.d/testsam start 但是这样做时,我得到一个错误:无法执行/etc/init.d/testsam:没有这样的文件或目录。 我将脚本最小化到最基本的程度,但仍然不了解实际原因。我希望有人可以指出正确的解决方案吗?这是当前的脚本。 #! /bin/bash # /etc/init.d/testsam case "$1" in start) #echo "starting script" ;; stop) #echo "stopping script" ;; *) #echo "Usage: /etc/init.d/testsam {start|stop}" exit 1 ;; esac exit 0 谢谢你的帮助

3
bash的smtp.gmail.com给出“证书错误:无法识别对等证书颁发者。”
如果出现问题,我需要我的脚本向管理员发送电子邮件,并且该公司仅使用Gmail。按照一些发布说明,我能够使用.mailrc文件设置mailx。首先是nss-config-dir的错误,我通过从firefox目录复制一些.db文件解决了该问题。到./certs并以mailrc为目标。已发送邮件。 但是,上面的错误出现了。出于某种奇迹,.db中有一个Google证书。它通过以下命令显示: ~]$ certutil -L -d certs Certificate Nickname Trust Attributes SSL,S/MIME,JAR/XPI GeoTrust SSL CA ,, VeriSign Class 3 Secure Server CA - G3 ,, Microsoft Internet Authority ,, VeriSign Class 3 Extended Validation SSL CA ,, Akamai Subordinate CA 3 ,, MSIT Machine Auth CA 2 ,, Google Internet …
11 ssl  bash  gmail 

2
Debian SSH-调整大小的终端未向bash注册
由于磁盘故障,我们最近重新安装了服务器,现在终端大小调整出现了问题。我们安装了Debian 6.0.6。 病征 调整终端大小时,似乎没有正确调整基于ncurses的应用程序(经测试:ytalk,irssi,screen,tmux,某些ncurses示例应用程序)。屏幕通常最终变为空白。在应用程序中强制重绘将使用旧的终端大小进行重绘。 当在bash(4.1.5(1))提示符下调整窗口大小时,COLUMNS和LINES变量永远不会更新。 诊断程序 试图将SIGWINCH捕获在bash中,似乎从未收到过。经过测试: trap 'touch /home/user/sigwinch' SIGWINCH trap 'touch /home/user/sigusr1' SIGUSR1 kill -s SIGWINCH $$ kill -s SIGUSR1 $$ 哪个应该在我的主目录中创建了两个文件。它只是创造/home/user/sigusr1。 尝试kill -s SIGWINCH $$不会导致$ COLUMNS / $ LINES变量的更新。 启用checkwinsize(shopt -s checkwinsize)将导致bash在从任何应用程序返回时更新$ COLUMNS / $ LINES(按预期)。调整checkwinsize启用终端的大小后,这将导致以下结果: $ echo $COLUMNS ; ls > /dev/null ; echo $COLUMNS 72 …
11 debian  bash  term 

1
更改当前正在运行的脚本的精确级别
我想更改当前正在运行的脚本的精确级别: #!/bin/bash nice_it ( ) { nice ps -o "%p %r %y %x %n %c %a" } nice_it 这是行不通的,因为nice试图更改由它启动的命令的精确级别。 有可能在bash中实现这一目标吗?
11 bash  nice 

6
无需root密码即可连接到MySQL低谷命令行
我正在为某些任务构建Bash脚本。这些任务之一是从同一bash脚本中创建MySQL数据库。我现在正在做的是创建两个变量:一个用于存储用户名,另一个用于存储密码。这是我脚本的相关部分: MYSQL_USER=root MYSQL_PASS=mypass_goes_here touch /tmp/$PROY.sql && echo "CREATE DATABASE $DB_NAME;" > /tmp/script.sql mysql --user=$MYSQL_USER --password="$MYSQL_PASS" < /tmp/script.sql rm -rf /tmp/script.sql 但是总是会收到一条错误消息,提示使用root用户密码拒绝访问root用户,我在做什么错呢?我需要对PostgreSQL做同样的事情。

1
pgrep / pidof用于复杂进程名吗?
我试图使用pidof或pgrep能够将HUP发送到系统中的进程。问题是我只想使用精确的参数终止该进程。 这是“ ps awx”的输出 657 ? S 0:00 processname software 658 ? S 0:00 processname demo 659 ? S 0:00 processname test 通过执行以下操作之一: pidof processname pgrep processname 您会从进程名开始获得所有进程的列表,但是我想做以下事情: pidof processname test pgrep processname test 仅检索我需要的PID(在本示例中为659) 更新 通过在pgrep上使用-f标志,可以做到: pgrep -f "processname test" 您会得到正确的答案。

3
Bash脚本计算文件数量
我有一个脚本,如果文件存在或不存在,我想显示不同的消息。我有一个像这样的脚本: count=ls /import/*.zip | wc -l echo "Number of files: " $count if [ "$count" > "0" ]; then echo "Import $count files" else echo "**** No files found ****" fi 但是,如果不存在文件,则显示的No such file or directory不是0个文件。目录中有一个目录/import/,所以我不能只执行ls命令,因为它总是返回大于0的值。 如何计算特定扩展名(.zip,.gz等)的文件数,并在bash脚本中使用该值来显示文件数,然后在if语句中使用它显示不同的消息?
11 bash  scripting 

3
如何删除所有空目录
(在Linux系统上) 我在文件系统上有大量的嵌套子目录。我想修剪所有根本不包含文件的所有目录路径。 换句话说,我要递归删除该目录或该目录的任何子目录中没有文件的每个目录。
11 linux  unix  bash 

3
在Linux中记录“人员”活动
因此,我阅读了许多与此相关的文章,并且比以前更加困惑。有各种工具的建议,包括ttyrec,snoopy,acct,rootsh,sudosh,ttyrpld,unix审计等等。 就我而言,我希望能够记录在系统上执行的所有命令(例如启用了时间戳的历史记录),但我也想知道谁做了什么?但是,我们所有人都通过ssh登录到相同的一小部分用户帐户(取决于我们正在执行的操作)。我如何获得命令日志,包括“谁”会给我的信息(关于连接),以便我可以将操作跟踪到特定的人,而这只是一般的“用户”?
11 linux  ssh  bash  logging 


5
使用终端/ ssh时,不同机器的颜色提示是否不同?
我有5台不断投入工作的机器。当我在错误的盒子上发出错误的命令时,它变得越来越令人沮丧。幸运的是我还没有做任何坏事。我想知道是否有任何我可以硬编码的hack,它们会根据我所使用的计算机以不同的颜色显示提示?例如,蓝色代表Desktop1,紫色代表笔记本电脑,红色代表服务器等?这可能吗? 当前,我正在使用此命令export PS1 =“ \ e [0; 31m [\ u @ \ h \ W] \ $ \ e [m”从这里获取http://www.cyberciti.biz/faq/bash-shell更改Linux或unix /下我的外壳提示的颜色, 但显然在ssh上不起作用。 另外,如果您还有其他一些不错的bash技巧可以帮助我缓解视力,那将是很棒的。我得到了为手册页上色的技巧。 http://linuxtidbits.wordpress.com/2009/03/23/less-colors-for-man-pages/

2
Linux-找出进程的当前工作目录?
如果我有一个进程PID X,如何找出它在哪个目录中运行?我可以看到ps aux | grep X调用它的完整命令行。但是,在这种情况下,它是./script.sh,我想看看script.sh它正在运行。
11 bash  process 


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.