Questions tagged «bash»

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

2
自动以不同的消息或声音结束终端中的每个命令
我安装了SVOX pico2wave并创建了一个脚本。现在,当我输入: speech "Hello world" 计算机文本语音引擎大声说出“ Hello world”。此外,我在定义为.bashrc的变量中使用PROMPT_COMMAND: PROMPT_COMMAND="speech 'Command executed.'" 因此,漂亮的“文字转语音”引擎会在终端返回提示之前向我大声宣告该命令已执行。 但是,这在一段时间后变得很无聊,我认为在终端中用计算机说不同的文本行结束每个命令真的很酷(想想星舰企业的自动驾驶仪)。 因此,我在.bashrc中创建了一个数组变量,其中包含不同的消息: array[0]="Shields at 90%" array[1]="Engaging proton overdrive" array[2]="Autopilot disengaged" array[3]="Targetting solution available" array[4]="Alert. Incoming missile." array[5]="Deploying countermeasures." array[6]="Firing torpedoes." array[7]="Engaging auto-cannon." array[8]="Severe damage on deck 17. Sealing off." array[9]="Deploying repair droids to deck 17." 我想,是每个我在终端上运行的指令时,该变量PROMPT_COMMAND被更新和读出的不同的阵列中的随机线。 我想我需要一个循环,但是我不知道该怎么做。 我将非常感谢您的帮助。谢谢。

1
按下组合键后,在终端/ tty中出现的“(arg:1)”是什么?
在一个虚拟终端中,我(不小心)按了Win+ 1,得到了新行,其中包括 (arg: 1) 只要保持Win按下状态,我按下的所有数字都会附加到括号中的数字之后,例如Win和1+ 4yields (arg:14)。 当我(释放后Win)按任意键时,该字符将被打印与数字读取次数相同的次数,并且该(arg: ...)表达式将由标准提示替换。 有人知道这里会发生什么吗?



4
如何在需要sudo的bash脚本中仅输入一次密码
数据 我希望操作员用户在此计算机上安装自己的CIF共享 该sudoers文件已包含/bin/mount -t cifs //*/* /media/* -o username=*所有操作员的命令 我希望用户cifs通过一次输入密码的脚本装载一次共享,而不是两次。 sudo密码和cifs密码相同。 我已经拥有的 该脚本有效: #!/bin/bash sudo 'mount -t cifs //192.168.1.1/home /media/$USER/home -o username=$USER' ... 但是它要求用户两次输入相同的密码! 一次 sudo 一次用于安装本身 这也将起作用: #!/bin/bash echo -n Password: read -s szPassword echo $szPassword | sudo -S sh -c 'echo $szPassword | mount -t cifs //192.168.1.1/home /media/$USER/home …
21 bash  scripts  sudo 


2
什么是.bashrc文件,它有什么作用?
我似乎找不到有关该.bashrc文件是什么以及它到底做什么的任何明确信息。 感谢到目前为止的所有帮助。似乎该脚本可以完成所有操作,包括着色,补全,别名和外壳历史记录等。似乎没有什么用处吗?
21 bash  bashrc 


5
是否有任何手册来获取bash快捷键列表?
与bash命令行交互时,我使用了许多快捷方式,以使工作更轻松,更快捷。 喜欢: ctrl+ L:清除屏幕 ctrl+ a/ ctrl+ e:向移动开始/行尾 ctrl+ r:仅写几个字符即可搜索命令的历史记录 ctrl+ u/ ctrl+ y:到剪切/粘贴线。 还有很多我想知道的知识,对学习绝对有帮助。 我想从哪里知道在Ubuntu中这些快捷方式的列表?是否有列出这些快捷方式的手册? 注意: 我想将快捷方式及其操作的列表放在一个位置。在很短的时间内学习其中的许多内容确实会有所帮助。那么有什么办法可以得到这样的清单呢?虽然感谢您在这里给出的答案。

7
如何记录服务器上所有用户的所有Bash命令?
我们的小型公司运行Ubuntu Server 11.10,几个人可以通过SSH访问。有时也使用实际的端子。我们如何在本地记录所有运行的Bash命令以及用户和时间戳? 我们可以假设没有人是邪恶的并且正在积极地尝试避免记录日志,但是我们仍然希望用户不要对其日志文件具有直接写访问权。同时会话必须正确处理。
21 bash  logging 

4
我如何在Ubuntu中教bash一些诅咒的话?
当bash遇到未知命令(单词?)时,它将执行以下操作: The program 'hello' can be found in the following packages: * hello * hello-debhelper Try: sudo apt-get install <selected package> 我想知道这是如何完成的,因此我可以对其进行编辑或添加一些内容,以便从本国字典中交叉检查未知词,该词具有短语:答复对,然后可以将其发送至输出。 我感到内looking ..但是我尝试挖掘的一些bash指南对此没有任何帮助。也许我在看错地方..任何指针? 是的,我正在这样做,所以每当程序失败时我键入wtf,我都希望向我扔东西……
21 bash  bashrc 

4
如何将命令(例如diff)的输出保存到变量中
我想测试diff(如果文件相同)是否有任何输出(如果没有)echo "Passed $x" else echo "Failed $x"。我想出了一些中间步骤(将diff的输出保存到文件中,然后从文件中读取) diff "./helloworld$x.out" "./output/helloworld$x.out" > tmp.txt; output="`cat tmp.txt`"; if [ "$output" = "" ]; then echo "Passed $x"; else echo "Failed $x"; fi; 我确定代码可以改进吗?主要问题是:是否可以将输出diff直接保存到变量中?
21 bash 

1
在什么时候创建〜/ .bashrc文件?
例如,如果我运行命令adduser test,是否在为用户创建主目录时自动创建.bashrc test?如果不是在用户创建时创建的,那么它是在什么条件下创建的? 另外,如果我将.bashrc文件添加到用户的主目录中,操作系统会覆盖它吗? 提前致谢。

1
如何在脚本中确定当前是否正在由另一个进程写入文件?
我对bash脚本非常陌生,因此我可能会拨错树,但这是我目前的情况: 在脚本中,我开始soffice;将odt转换为pdf 似乎soffice使自己脱离了脚本的过程,并徘徊去做自己的事情。GUI应用程序倾向于这样做... 但是,我需要等到新pdf完全写入后,因为我的下一步涉及处理该新pdf。 (据我所知)我无法使用Soffice的进程ID,因为在脚本开始之前它可能已经是一个正在运行的进程。对于其他不相关的文档/演示文稿/电子表格,常规的GUI活动可能已经打开办公室。 对我而言,问题的关键在于,在我继续之前,必须完成新pdf的撰写... 有什么方法可以确定何时不再以“写入”模式向另一个进程打开文件?...

1
在工作但被删除的情况下,如何读取sh文件?
在一次采访中,他们问了我这个问题。 已有一个sh文件正在运行,但是自开始执行以来已被删除。 他们要我找到进程并阅读文件。 我设法找到了过程 ps -ef | grep test.sh 并尝试通过使用它来阅读 cat /proc/PID/cmdline test.sh 但它说 no such file or directory 我不知道下一步该怎么做,所以我不得不跳过这一步。 也许这是一个简单的问题,但这对我来说确实是一个好问题,我真的很想知道答案。你们可以帮忙吗?

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.