Questions tagged «bash»

Bash(Bourne-Again SHell)是默认情况下在Ubuntu命令行界面中使用的shell。

3
命令末尾&的含义是什么?
我有一个启动脚本行: pyprogramm >> /dev/null 2>&1 & 含义: >> /dev/null - redirect stdout to null device 2>&1 - redirect stderr to stdout (that is redirected to null device) 但是最后的&意思是什么?


2
Bash脚本将backkup /克隆到另一个分区
Ubuntu 18.04于2018年4月26日发布,我想尝试使用它来升级程序和转换数据,但如果有bug则不想提交。 我已经将Windows从410 GB gparted压缩到385 GB,重新启动了Ubuntu 16.04,然后运行以创建一个新的25 GB分区,标记为“ Ubuntu18.04”。我运行rm-kernels并删除了约20个内核,以在Ubuntu 16.04上消除了约10 GB。 现在,我需要一个脚本,该脚本将使用16.04 LTS填充新分区并为其创建新的Grub菜单选项。仅复制相关目录。例如/sys,/run,/proc和/dev在启动过程中创建的虚拟目录,不应该被复制。 我还希望/etc/fstab修补正确的UUID并cron禁用重新启动作业,以便在启动克隆后不对克隆数据进行每日备份。 我期望在接下来的几周/几个月内多次运行该脚本。因此,克隆过程应该毫不费力地重复。 相同的脚本可用于测试安全更新和新的Ubuntu Kernel Team更新,而不会影响生产系统。
12 grub2  bash  upgrade  backup  clone 

2
如何在一个命令行中运行多个带有&的命令?
我遇到了头痛的问题。 我想在后台执行多个命令,所以我想一开始在bash中启动它们。在后台在linux shell中启动一个命令很容易,就像这样: myCommand & 启动多个命令也很容易,就像这样: myCommand1 && myCommand2 要么 myCommand1 ; myCommand2 但是,如果我想在后台运行多个命令,则尝试使用以下命令格式,但失败: myCommand1 & && myCommand2 & 要么 myCommand1 & ; myCommand2 & 两种格式都失败。如何运行&一个命令行中包含的多个命令?

5
在heredoc(EOF)中是否有类似于echo -n的内容?
我正在写一个庞大的脚本工厂脚本,为我的服务器生成许多维护脚本。 到现在为止,我写了一些行,需要用echo -ne例如一行 echo -n "if (( " | sudo tee -a /usr/local/bin/upgradeAllServers &> /dev/null # Generate exitCode check for each Server IFS=" " COUNT=0 while read -r name ipAddr do if(($COUNT != 0)) then echo -n " || " | sudo tee -a /usr/local/bin/upgradeAllServers &> /dev/null fi echo -n …
12 bash  scripts 

1
如何解决警告:命令替换:在输入中忽略了空字节?
我有一个运行的脚本,该脚本需要使用notify-send,但以root身份运行。我发现唯一可行的方法是此脚本。问题是在这条线上: DBUS_SESSION=`grep -z DBUS_SESSION_BUS_ADDRESS /proc/$DBUS_PID/environ | sed -e s/DBUS_SESSION_BUS_ADDRESS=//` 我不断收到错误 warning: command substitution: ignored null byte in input 如何修复或禁止显示错误消息? 顺便说一句,下面的内容不会压制它: 2> /dev/null > /dev/null >> /dev/null > /dev/null 2>&1 2>&1


3
VeraCrypt可以在Linux上使用持久安装点吗?
VeraCrypt可以在Linux上使用持久安装点吗? Windows + VeraCrypt +加密的卷绝对路径 在Windows上,我可以通过批处理脚本安装veracrypt加密的分区/磁盘,该脚本采用所显示的设备名称mountvol.exe。这样的属性非常有用,因为重新启动会导致相对路径的更改(\Device\Harddisk1\Partition3-> reboot-> \Device\Harddisk3\Partition3)。 我在Windows上用于veracrypt卷的批处理脚本(缩写形式): @echo "C:\Program Files\VeraCrypt\VeraCrypt.exe" /v \\?\Volume{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\ /l z /m label=Encrypted_1 /q "C:\Program Files\VeraCrypt\VeraCrypt.exe" /v \\?\Volume{yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy}\ /l f /m label=Encrypted_2 /q [...] pause Linux + VeraCrypt +加密卷相对路径仅? 我对Windows /v \\?\Volume{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\的Linux命令行中是否存在并行命令一无所知。我尝试了(徒劳)--mount=/dev/disk/by-uuid/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx标志,因为mountvol.exe 卷名(可能)基于UUID编号(blkid虽然对于UUID来说是不敏感的)。官方的veracrypt / truecrypt文档允许Linux用户仅使用相对(可变)路径(/dev/sda3->重新启动-> /dev/sdc3)进行操作。由于不稳定,每次加载操作系统后都必须验证路径。 我的bash脚本,用于在Linux上安装veracrypt卷(缩写形式): #! /bin/bash # echo "Encrypted_1" && veracrypt --mount …

4
如何在bash中执行输出的最后一行?
我知道可以使用bash运行bash的最后一条命令!!,但是如何运行输出的最后一行呢? 我正在考虑此输出的用例: The program 'git' is currently not installed. You can install it by typing: sudo apt-get install git 但是我不知道该怎么办。我在想类似!!,@@或类似的东西? 超级用户也有这个问题。
12 bash 

5
以编程方式使bash脚本可执行
我需要创建一个bash脚本来创建和安装驱动器。因此,有两个简单的命令。在命令行中输入时,两者都“有效”。 每次普通用户登录时都会创建并执行该脚本,因此我需要一种使该脚本在那时可执行的方法。到目前为止,我无法使它正常工作。例如,第一部分mkdir /vvv/gggg没有进行,因为脚本不可执行(我在猜测)。 希望这是有道理的。这可能吗?任何有关如何使这项工作的想法将不胜感激。 更新: 感谢您的回复。除了我不熟悉Linux外,我可能还应该添加一些其他信息。 我正在使用一个名为Ulteo的开源虚拟桌面应用程序。该应用程序在Ubuntu之上运行,几乎没有支持-这就是为什么我在这里。基本上,我在学火。 因此,该应用程序具有登录脚本管理功能,可以在其中将脚本绑定到用户。具有网络使用权限的简单Windows脚本可以很好地工作。但是,当我尝试应用Linux bash脚本时,没有任何反应。 我在想,因为我需要chmod +x首先对脚本执行a 指令才能使脚本可执行,所以这就是失败的原因。顺便说一句,Ulteo在chroot监狱中运行。我创建了一个脚本,将其保存,但找不到该脚本。我在chroot监狱的内部和外部进行了搜索。 我喜欢dan08的方法,让初始脚本引用另一个我可以手动找到并使其可执行的脚本。我会遇到同样的问题吗? 这些附加信息是否可以澄清情况?提前致谢。 附有照片。 ![登录密码管理控制台] [1] ![有效的Windows脚本] [2] ![无法使用的简单Linux脚本] [3] 抱歉,我还不能发布图片

2
为什么我需要运行“ / bin / bash --login”
我刚刚安装了一个新的Ubuntu 13.10服务器,其中通过安装了ruby 2.1.1 rvm。 问题是,每当我切换到用户“ rails”(安装了ruby和rails的用户)时,我都必须先运行,/bin/bash --login然后Ubuntu才能识别出ruby,rails或rvm已安装。 希望有人知道: 上面的命令有什么作用? 为什么我需要运行它? 我该怎么办才能一劳永逸地解决它?:) 任何帮助表示赞赏!
12 13.10  bash  login  ruby  rvm 

1
从文件中搜索特定文本并输出该行(Shell脚本)
假设我有一个变量$ str1 str1="20140121-21:48:26|Joanne Frances|" 我想要做的是在文件中搜索该部分。该文件包含,例如: 20140121-21:48:26|Joanne Frances|Perez|9173046751.000000|Mar 31| 20140121-21:50:28|Nikko|Real|9065887272.000000|Mar 21| 20140121-22:22:53|Czarina|Revilla|9999999999.000000|Jan 21| 输出应为: 20140121-21:48:26 | Joanne Frances | Perez | 9173046751.000000 | 3月31日| 更新:最后知道问题试图解决的问题echo $str1,它输出的20140121|Adrian Perez|意思是它实际上不在文件中。哈哈!我好乱!-_-



2
运行bash脚本时自动确认?
我正在研究一个简单的bash脚本,该脚本配置新服务器的方式。没什么特别的,但是希望它将在将来节省我很多时间。 我如何防止这样的提示: You are about to add the following PPA to your system: Stable version of nginx. More info: https://launchpad.net/~nginx/+archive/stable Press [ENTER] to continue or ctrl-c to cancel adding it 从脚本运行这样的命令时: sudo add-apt-repository ppa:nginx/stable sudo apt-get update sudo apt-get -y install nginx 是否可以设置自动接受标志或类似的标志?
12 apt  bash  scripts  automation 

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.