Questions tagged «bash»

Bash是来自GNU Project的类Unix操作系统的免费外壳。

1
如何使用LILO恢复Kali linux密码?
我忘了我的Kali密码,我尝试进入LILO单用户模式,但它仍然要求root密码(我忘了)。作为次要措施,我刚跑了 init=/bin/bash 该命令运行但是在启动系统时它会卡住,我重复了大约3次,但它仍然在上次检查的确切位置卡住(它卡在一个提示只检查我所有系统规格的地方)所以我想这是Kali的某种安全措施。 我不知道我错了。 关于如何解决我的问题的任何想法?

1
脚本完成后告诉我
几年前,我有一个叫做beep-forever的小脚本[1],永远地敲响了终端钟。 使用案例:我想知道脚本是否已完成: do-foo-which-lasts-ten-to-thirty-minutes.sh; beep-forever.sh 在我的环境中(一个房间里有几个人)我不想使用它。 我怎么能得到这些信息? 我通过ssh连接到远程linux服务器。AFAIK没有连接到我的ubuntu PC的桌面环境。发送邮件在大多数远程服务器上都不起作用。 [1] http://www.thomas-guettler.de/scripts/beep-forever.sh.txt


1
为什么没有匹配时grep打印?
$ ps ax | grep 6557 #=> 6582 s003 S+ 0:00.01 grep 6557 但是使用活动监视器快速检查没有使用pid 6557的进程。并且在线的所有内容都表示当没有匹配时grep应该返回0。
bash  grep 

2
如何在Ubuntu上批量重命名文件?
我rename在Ubuntu 10上发现不幸的是不支持正则表达式。我需要重命名包含的文件_thumb,_t保留原样。示例:重命名SLN0097H_thumb@2x~ipad.JPG为SLN0097H_t@2x~ipad.JPG。希望没有编写bash脚本循环就可以。

0
如何使用`script -c`命令启动tomcat?
我想用命令启动tomcat: script -c "sh /usr/program/tomcat/tomcat-8.0.50/bin/startup.sh" 运行该命令后,控制台将显示tomcat已成功启动的消息。 但ps -ef | grep tomcat表明tomcat没有启动。 然后我尝试使用script没有-c选项的命令: [root@xxx test]#script Script started, file is typescript01 [root@xxx test]# sh /usr/program/tomcat/tomcat-8.0.50/bin/startup.sh Using CATALINA_BASE: /usr/program/tomcat/tomcat-8.0.50 Using CATALINA_HOME: /usr/program/tomcat/tomcat-8.0.50 Using CATALINA_TMPDIR: /usr/program/tomcat/tomcat-8.0.50/temp Using JRE_HOME: /usr/program/java/jdk1.8.0_112 Using CLASSPATH: /usr/program/tomcat/tomcat-8.0.50/bin/bootstrap.jar:/usr/program/tomcat/tomcat-8.0.50/bin/tomcat-juli.jar Tomcat started. 然后ps -ef | grep tomcat显示tomcat已启动。 我怎样才能启动tomcat script -c?
linux  bash  tomcat 

1
Bash脚本中的SSH + Sudo + Expect:在远程机器中使用sudo运行命令
我试图使用脚本自动部署一些.deb包。我想sudo dpkg -i $myDeb.deb在我可以使用ssh访问的远程机器列表中执行。 我试图在bash脚本中使用'expect'自动执行命令,但我显然做错了,因为我得到了许多不同的错误(取决于我把引号放在哪里,基本上) 这是我的功能(将通过以下方式调用:_remoteInstallation "myPackage115.deb" "192.168.1.55"。我知道在远程机器中,.deb将位于$ HOME / Documents /中: function _remoteInstallation(){ local retval=1 local debToInstall=$(basename "$1") local remoteMachine="$2" spawned=$(expect -d -c " set timeout 1800 spawn "/usr/bin/ssh -t borrajax@$remoteMachine /usr/bin/sudo /usr/bin/dpkg -i /home/borrajax/Documents/$debToInstall"' expect { \"Are you sure you want to continue connecting\" { send \"yes\r\"; exp_continue …
ubuntu  bash  ssh  sudo  expect 

0
需要每次都使用bash_profile
我有一个运行linux的服务器空间。为我创建了一个用户。我的主目录中有一个bash_profile,我为JAVA_HOME和JAVA设置了环境变量。 当我通过putty访问服务器时,每次登录时都必须获取bash_profile。这是一个错误吗? 因为我无法通过IP地址访问tomcat服务器主页:portNo。这与上述问题有关吗?
linux  bash  tomcat 

1
Bash Shell脚本选项处理:添加-all和-q(安静),强制不重复
我正在编写一个带有N个选项的Bash脚本。称它们为-1,-2,..., - N。以下适用于选项的使用: 可以提供任意数量的选项,从0到N. 没有选择采取任何论点 可以按任何顺序提供选项 我以一种相当标准的方式处理这些: while [[ $# -gt 0 ]] do OPTION="$1" case $OPTION in -1) process_option_1 shift ;; -2) process_option_2 shift ;; ... -N) process_option_N shift ;; *) echo "Unknown option $OPTION. Aborting..." exit 1 esac done 目标1 我想添加两个额外的选项: -all这意味着-1,-2,... -N的全部 -q这表示“安静”模式,即不向显示器打印任何内容 如果出现-all,则它必须单独出现或仅出现-q。 -q可以与“ -all ”或“-1 …

2
bash:如何在select中使用带引号的参数
从一个命令我得到一些参数,我想在shell脚本中使用bash中的select语句向用户提供。命令提供的参数可能包含空格,因此受引号保护。这是一个简化的例子。 这按预期工作: select opt in a b "c d" do echo $opt break done 输出如预期: 1) a 2) b 3) c d #? 但是使用变量中的命令输出它不能按预期工作: opts="a b \"c d\"" select opt in $opts do echo $opt break done 虽然$ opts包含与第一个选择示例中的硬编码类型相同的输出,但输出是不同的: 1) a 2) b 3) "c 4) d" #? 所以不是bash消耗了报价。它们被保留,但引号不会像我们硬编码时那样封装参数。正如我已经写过的那样,我将参数作为命令的输出。它们可能包含空格,因此已经被引号保护。如何将它们整合到“选择”语句中?它不是关于单引号和双引号。使用单引号也会发生同样的情况: 1) …

1
sudo ssh-add /root/.ssh/id_rsa返回错误
我试图ssh-add使用sudo用法命令保存ssh身份验证: linux$ sudo ssh-add /root/.ssh/id_rsa Could not open a connection to your authentication agent. 但如所示,它返回错误 我做了一些研究,发现我必须eval "ssh-agent -s"按照以下链接执行命令:https://stackoverflow.com/questions/17846529/could-not-open-a-connection-to-your-authentication-剂/ 17695338#17695338 但是如果用sudo命令执行它我会收到错误 $ sudo eval `ssh-agent -s` sudo: eval: command not found 我缺少什么?
linux  ubuntu  bash  ssh  sudo 

1
在bash脚本中更改用户和环境
为什么这样做(以root身份): $su - aba ~> echo $JAVA_HOME Ausgabe: /usr/java/jdk1.7.0_45 而不是这个shell脚本(也以root身份运行): #!/bin/bash su - aba << EOF echo $JAVA_HOME > tmp EOF 输出: $more tmp $ 问题: 我怎样才能做到这一点?或者更好:我的目标是作为另一个用户执行一些命令,并使用这个用户的这个环境,甚至可能改变他的环境(只是暂时的)。 编辑 与此同时,我成功了runuser - aba -c 'echo JAVA_HOME',尽管并不是所有方面都希望如此,因为我仍然只能传输一个命令行。
linux  bash 

2
数据库备份bash通过ssh工作但不在cronjob中工作
我已经整理了一个脚本来备份共享主机上的数据库。脚本如下: mysqldump --databases [db1] [db2] | openssl aes-256-cbc -a -salt -pass file:/home/[user]/etc/.keys/.backup_key | gzip > /home/[user]/backup/$(date +%Y:%m:%d:%H:%M:%S).gz 数据库凭据存储在/ home / [user]中的.cnf中,以及脚本中显示的密钥文件中的加密密钥。当我通过SSH运行此脚本时,一切正常,并创建备份文件。但是,cronjob集不会创建任何文件以在每天的顶部执行。 有任何想法吗? 非常感谢。
linux  bash  ssh  backup  cron 

1
“Control R”bash快捷键搜索的条目数量是否有限制?
我已将bash历史限制增加到10000,并且我看到我的bash历史已增长到大约6000个条目。但是,当我尝试使用“Ctrl R”搜索我的历史记录时,它只搜索bash历史记录的一部分 - 更具体地说,只搜索最近的命令。 是否有可配置的参数,我可以告诉bash搜索我的整个.bash_history文件?

3
使用sed从空格分隔的字符串中解析特定值
我有一个文件,其中包含以下行: 0 6 973 1346 2318 456 431 93 58 1 1 0 0 0 0 我想提取第1,第4和第5个数字并将它们保存在bash中的变量中以供进一步使用。在上面的例子中,我想要的值是'0','1346'和'2318'。 我想用sed但我不知道怎么做。任何其他方式也欢迎。 PS。谢谢你的答案,以下是我现在使用的: for fn in $(cat filelist); do more $fn | \ while read str; do echo $str var=$(echo $str | awk -F" " '{print $1,$2,$3,$4,$5}') set -- $var echo $1 echo $4 …
bash  sed 

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.