Questions tagged «bash»

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

1
Bash:Grep正则表达式无法正常工作
当这样使用时grep: ps aux | grep 'processname' | awk '{print $2}' 在PIDs与流程processname返回。使用时: ps aux | grep '^processname' | awk '{print $2}' 我正在尝试获取命令行开始的进程processname,但它不起作用。 运行示例流程: processname other_processname 我想获得PID第一个选项,因为这processname是命令的开始。 我也试过使用过-E, -e, -w标志,它们都返回相同的结果。什么不对?
bash  regex  grep 

1
管道到sudo bash时传递变量
我尝试在我的私人Bitbucket中创建一个简单的命令来运行脚本。该脚本需要以root身份运行,然后它将从repo下载更多文件,因此我需要bitbucket帐户的密码。 我怎么传递$bbpass给runme.sh? read -s -p "Password:" bbpass && curl --user myuser:$bbpass https://bitbucket.org/myuser/misc/raw/tip/runme.sh | sudo bash && unset bbpass runme.sh: #!/usr/bin/env bash echo "Hello world!" echo $bbpass

1
为什么在当前目录中执行脚本时必须键入./?[重复]
可能重复: 为什么。默认情况下不在路径中? 这个问题可能是微不足道的,但我想知道为什么我必须在我的脚本名称之前键入点和斜杠才能执行它,即使它位于我当前的目录中。 ./my_script.sh 每当我输入没有点和斜线时: my_script.sh 我只是得到-bash:cloud_sync.sh:找不到命令 将./放在脚本名称前面的原因是什么? 谢谢。
linux  bash  unix 


3
将所有plesk MySQL数据库备份到单个文件
HY, 因为我是shell脚本的新手,所以我需要一只手。我目前将所有mydatabase备份到一个文件,这使得恢复变得非常困难。第二个问题是我的MySQL密码由于Plesk错误而无法正常工作,我从“/etc/psa/.psa.shadow”获取密码。这是我用来将所有数据库备份到单个文件的代码。 mysqldump -uadmin -p`cat /etc/psa/.psa.shadow` --all-databases | bzip2 -c > /root/21.10.2013.sql.bz2 我在网上发现了一些将每个数据库备份到单个文件的脚本,但我不知道如何让它们适合我的情况。这是一个示例脚本: for db in $(mysql -e 'show databases' -s --skip-column-names); do mysqldump $db | gzip > "/backups/mysqldump-$(hostname)-$db-$(date +%Y-%m-%d-%H.%M.%S).gz"; done 有人可以帮我把上面的脚本用于我的情况吗?要求: 使用plesk密码位置将每个数据库备份到单个文件。

1
一个意识到远程文件更改的脚本
curl -z pci.ids --remote-time --silent -f -L -O \ http://pciids.sourceforge.net/v2.2/pci.ids 此命令检查远程文件是否已更改,仅在远程文件已被修改时才下载。只有在文件发生变化时,如何才能显示“已更改”?
bash  curl 

3
IFS的范围是什么?
我对IFS的范围感到困惑,不同的人似乎认为它是基于会话而不是在脚本中设置/更改后。 我的问题是,我有一段时间读取有可能空白的列,它抵消了我设置它们的变量。如果我从选项卡更改数据中的分隔符,并更新IFS以使用该新分隔符,我担心它可能会影响我的工作流程中的其他读取命令。 如果我这样做: while IFS='|' read var1 var2 var3 这只会改变特定while循环的IFS值吗?
linux  bash 

0
使用less,cat和其他linux工具的特殊和变音字符
我正在使用GNU bash,版本4.1.10(4)-release(i686-pc-cygwin)并设置我的.inputrc以允许特殊字符和德语变形金刚等: set meta-flag on set convert-meta off set output-meta on 在命令行上,这工作正常。但是,使用“cat”或“less”等工具时,不会显示特殊字符。用猫,我得到灰色的地方; 因为“少”我得到逃脱序列(例如,对于德国变音符号)。 任何帮助将非常感谢! 提前谢谢了, 奥利
linux  bash  cygwin  less  cat 

1
函数从命令行运行,但不在脚本中运行
我有一个shell脚本文件,它启动一个ruby dev服务器并设置窗口的标题。出于某种原因,它不能在OS X中运行,但它在Ubuntu中运行。 这是我的脚本: [10:24:48] [user@mac site_web]$ tail ./sdev.sh #!/bin/bash title "dev server port 3000" RAILS_ENV=development rails s -p 3000 --debugger 从命令行运行良好,但在脚本中失败。 [10:18:17] [user@mac site_web]$ title "dev server" title changed [10:18:29] [user@mac site_web]$ ./sdev.sh ./sdev.sh: line 2: title: command not found 最后一行是问题所在。 我的标题函数(在我的〜/ .bash_profile中): # function for setting terminal titles …
macos  bash  script 

1
Ecryptfs似乎没有加密主文件夹
系统: Ubuntu 16.04 LTS amd64 “bento”流浪盒,带有VirtualBox 5。 脚步: root@vagrant:~# adduser --encrypt-home citizenfour root@vagrant:~# ssh citizenfour@localhost citizenfour@vagrant:~$ echo "abcdefg" > secret.txt citizenfour@vagrant:~$ chmod 0600 secret.txt citizenfour@vagrant:~$ exit root@vagrant:~# cat ~citizenfour/secret.txt # abcdefg 问:即使我们为主文件夹设置加密,为什么root仍然可以阅读citizenfour秘密citizenfour?即secret.txt注销时为什么没有加密?

1
为什么URL中的&符导致Mac OS X终端中某些命令失败?
为什么URL中的&符导致以下命令失败? 我想通过在终端中运行Safari来打开一个网页,将URL作为参数。 这按预期工作: open -a safari "http://endic.naver.com/search.nhn?sLn=en&searchOption=all&query=good" 但是一旦删除了引号,就无法按预期工作: open -a safari http://endic.naver.com/search.nhn?sLn=en&searchOption=all&query=good 相反,它返回: [3] 5395 [4] 5396 [1] Done open -a safari http://endic.naver.com/search.nhn?sLn=en [2] Done searchOption=all 似乎URL中的&符号被视为“在后台运行上一个命令”,尽管URL中的&符号后面没有空格。
macos  bash 

2
在终端配置文件中,如何在ssh连接后立即将其设置为cd?
我在OS X上,使用终端(bash)连接到我的Web服务器。我想设置配置文件,以便在ssh连接后打开一个特定的子目录。我不总是想在这个目录中启动 - 这个配置文件用于管理服务器的特定区域。 现在,我在终端首选项>配置文件> Shell>启动>运行命令中设置了配置文件: ssh me@server.com; cd sub/folders/ 当然,ssh连接,第二个命令永远不会运行。在终端配置文件中以任何方式执行此操作?

1
使用'if'基于条件运行命令的awk脚本
我这里有一段代码基本上是一个名为'srcip'的文件(它只是一个IP地址列表),并将它与我的'〜/ db'文件进行比较,该文件只是我们拥有的服务器的制表符分隔的IP HOSTNAME数据库在我们的环境中。目标是获取'srcip'文件并将其与〜/ db文件中的内容进行匹配以获取主机名。它运行正常但由于DHCP问题,有很多IP地址故意不在〜/ db文件中,因此我们需要使用该host命令进行真正的主机查找。我想要的是基本上在这个awk代码中放置一个if语句来检查数据库中的IP是否不匹配,然后在该ip上运行host命令并给我输出。我怎么能在这里做到这一点? awk 'FNR==NR {a[$1]=$2; next} $1 in a && a[$1]!=$2 {print $1, a[$1], $2}' OFS="\t" srcip ~/db 我知道awk可以使用if下面这样的语句来检查是否有任何系统用户有/ bin / bash shell: awk -F':' '{ if ($3 < '500' && $7 != "/bin/bash" ) print $0 }' /etc/passwd 如上所述,我需要使用能够快速解析这些数据的东西,例如awk或sed,而不是依赖任何循环。请记住,我已经可以使用while循环执行此操作但是考虑到while循环的性质,它会逐行解析它并且我们使用起来很慢,因为我们有近100,000个IP可以一次解析(如果不是更多)。对于2000行,我可以运行这段代码但是这不是我想要做的: #!/bin/bash while read this_IP_address do db_host=$(grep "^$this_IP_address" …

4
可以显示当前目录中的所有文件,文件名不以偶数开头,后跟任何字母?
我试图回答一个专注于Linux / Unix的COSC类的问题。 我正在使用Linux与bash shell。我是9月份的Linux新手。 我的导师在本周的作业中有这个问题,并且基于课堂讨论,它从包括在内,而不是包括在内。我花了很长时间才真正想要这个。 我提出的命令没有考虑文件的名称是否以偶数位开头,后跟另一位使用通配符的数字。这是问题被包括在或被排除在任务之外的关键点,我已经坐了好几个小时试图解决这个问题。 它甚至可能吗? 我提出了: echo [!02468][a-zA-Z]* 任何建议都受到欢迎和非常感谢。

1
CygWin作为非特权用户访问/ dev / nul时出现的问题
注意:这个问题最初是一个简单的排版错误(nul而不是null)提问者。无论如何,细节可能对任何有相同错误并在研究后到达这里的人有用。请记住:问题并不完全在用户权限中。 我试图通过SSH登录使用有限(不属于Administrators组)用户的帐户打开CygWin的Bash shell,并进行了测试: $ echo "test" > /dev/nul bash: /dev/nul: Permission denied 管理员帐户不会发生此问题。 我已经通过网络阅读了CygWin 难以使用受限用户的帐户运行,但我没有找到任何解决方法。 有谁知道是否有可用的解决方案? 编辑:感谢@DanielB,现在我知道问题是一个简单的拼写错误:nul而不是null。所以问题现在应该是: 为什么管理员用户没有这个问题?

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.