Questions tagged «bash»

与其他Bourne / POSIX shell相对,GNU的Bourne Again SHell特有的问题。对于一般关于Unix shell的问题,请改用/ shell标记。

7
如何在Bash中通过不同的代码点打印ASCII字符?
在ASCII表中,存在'J'字符,该字符在不同的数字系统中具有代码点: Oct Dec Hex Char 112 74 4A J 可以通过打印printf '\112'或通过八进制代码点打印此字符 echo $'\112'。如何通过十进制和十六进制代码点表示形式打印相同的字符?
12 bash  shell  ascii 

3
如何设置脚本在端口收到消息时执行
我想知道如何获取shell脚本以侦听某个端口(也许使用netcat?)。希望当消息发送到该端口时,脚本会记录该消息,然后运行一个函数。 例: 计算机1的脚本在后台运行,该脚本打开了端口1234以访问传入流量 计算机2将消息“ hello world”发送到计算机1的端口1234 计算机1上的脚本将消息“ hello world”记录到变量$ MESSAGE中 现在已设置变量$ MESSAGE,脚本运行功能 我该怎么做呢?

5
bash +使用printf以特殊格式打印
我刚刚编写了以下bash脚本来检查Linux机器列表上的ping访问: for M in $list do ping -q -c 1 "$M" >/dev/null if [[ $? -eq 0 ]] then echo "($C) $MACHINE CONNECTION OK" else echo "($C) $MACHINE CONNECTION FAIL" fi let C=$C+1 done 打印: (1) linux643 CONNECTION OK (2) linux72 CONNECTION OK (3) linux862 CONNECTION OK (4) linux12 CONNECTION …

3
如何从bash检查Debian中是否存在软件包
我想编写一个安装bash脚本,在其中安装MySQL服务器。 在Linux Mint上,我遵循以下代码: apt-get -y --force-yes install mysql-server-5.6 但是我安装了新的Debian 8,但没有mysql-server-而是有mariadb。 我如何找出包装是否存在? 我只知道dpkg -s应该告诉哪个软件包是否已安装。
12 bash  apt  deb 

8
如何使用bash求和时间?
我想知道一系列过程将花费在我的计算机上的总时间,以确定我应该在那运行还是在功能更强大的计算机上运行。因此,我正在预测每个命令的运行时间。输出如下: process1 00:03:34 process2 00:00:35 process3 00:12:34 如何汇总第二列以获得总运行时间?我可以尝试通过每行 awk '{sum += $2 } END { print sum } 但这是没有意义的,因为这些值不是自然数。
12 bash  time  arithmetic 

4
杀死在后台运行的Shell脚本
我已经编写了一个shell脚本来使用inotifyt-tools的inotifywait实用程序监视目录。我希望该脚本在后台连续运行,但是我也希望能够在需要时将其停止。 为了使它连续运行,我习惯了while true;像这样: while true; do #a set of commands that use the inotifywait utility end 我已经将其保存在文件中/bin并使其可执行。为了使其在后台运行,我使用nohup <script-name> &并关闭了终端。 我不知道如何停止此脚本。我看过的答案在这里和非常密切相关的问题在这里。 更新1: 根据下面的@InfectedRoot的答案,我已经能够使用以下策略解决我的问题。初次使用 ps -aux | grep script_name 并sudo kill -9 <pid>用来杀死进程。然后,我不得不再次pgrep inotifywait使用sudo kill -9 <pid>ID作为返回值。 这行得通,但我认为这是一种凌乱的方法,我正在寻找更好的答案。 更新2: 答案包括杀死2个进程。这很重要,因为在命令行上运行脚本会启动2个进程,1个是脚本本身,2个是inotify进程。
12 bash  shell  kill  inotify 

4
禁用bash中的作业控制(CTRL-Z)
有时我偶然会碰巧按下CTRL+ Z,我的应用程序就会消失在后台。我知道,我可以用将它带回来fg,所以没什么大不了的。但是我想知道还是要关闭它job control。在我的一生中,我不记得有什么需要的实例,在我看来,它只是过去的遗物。 可以job control完全禁用吗?还是我错过了一些东西,这个功能可能有用?我如何在我的手机上禁用它.bashrc 更新: 我已经尝试过set +m@Falsenames建议。但是,这仅在我在终端中键入时有效。添加set +m到我.bashrc没有任何效果。

4
所有ssh命令的本地时间戳记录?
如何保留我在其中使用的所有远程命令的本地时间戳记ssh(命令行openssh客户端始于bash)? 要求: 必要: 100%客户端,无需依赖服务器日志 为每个用户配置或安装的日志存储在用户的主目录中。 支持区分与多个用户和主机的多个同时会话。 非侵入性(无需每次都激活它,并且不会严重干扰使用ssh) 高优先级: 没有记录输出或尽可能过滤掉 密码条目未记录或文件已加密 指示实际使用的命令(在完成制表符/历史记录,退格键,CTRL+ C等之后的操作) 很高兴有: 还记录链接会话中的命令(在远程ssh或su <user>会话期间输入的命令) 会话的开始和结束应被记录 一个bash基于简单的,非root用户的解决方案将是最好的(也许是该命令的alias或bash包装脚本ssh?) 我的技能水平: 我对编程并不陌生,但仍在学习bash和学习“ Linux方式”,因此,对带有简短说明的代码示例将不胜感激。 可能的策略 键盘记录程序 -问题:记录密码,不记录选项卡/历史记录完成(请参阅glenn的回答) screen每秒进行一次回滚转储,并diff在它们之间找到新的回滚行 -问题:如何以一种有用的自动化方式实现这一点? ssh "$@" | tee >(some_cleaner_function >> $logfile) -问题:无法在链接的会话中处理多行命令或历史记录,需要仔细清理(请参阅我的答案) 以上一些的组合 一个例子 以下SSH会话: user@local:~$ ssh user@remote Last login: Tue Jun 17 16:34:23 2014 from local user@remote:~$ cd …


2
如何在变量中存储管道(|)?
想法是将其用作...命令中的管道。例如:说有某种长路径必须反复输入,然后是管道和第二个程序,即 "directory1/directory2/direcotry3/file.dat | less -I " 我希望该部分存储在变量中,因此可以这样使用: r="directory1/directory2/direcotry3 \| less -I -p " $ cat path1/path2/$r <searchterm> 相反,我得到 cat: invalid option -- I Try `cat --help' for more information. ...表示管道显然无法正常工作。
12 bash  pipe  variable 

3
可以同时使用大括号(排列)和数组扩展吗?
Bash的{}大括号扩展语法允许创建简单的排列 # echo {b,c,d}{a,e,i,o,u} ba be bi bo bu ca ce ci co cu da de di do du 但是我不清楚是否/如何将其与数组一起使用,除非非常笨拙地使用$() echoandeval 有没有一种简单的方法可以将数组与花括号(排列)扩展一起使用? 例如,想象一下类似的事情(这当然不起作用): CONS=( b c d ) VOWEL=( a e i o u ) echo {${CONS[@]}}{${VOWEL[@]}}

2
当文件加载到保管箱文件夹中时,使用inotifywait移动文件
我试图找到一种方法,将文件立即出现在CentOS上的保管箱中,立即将其移动到另一个文件夹。 我已经在互联网上搜寻了一些线索,但是除了需要使用inotify一个调用脚本来处理文件的事实以外,我无能为力了。 我的BASH知识非常有限,我怀疑是否可以用PHP编写。 换句话说,如何使用显示的文件立即将其移动到另一个文件夹inotify?
12 bash  centos  inotify 

4
如何在Bash脚本中为来自apt-get的人使用zypper?
我对在bash脚本中从apt-get转换到zypper有一些疑问。 这等效于什么? sudo apt-get install curl --assume-yes (其中curl可以是任何包装) 我找到了Zypper备忘单-openSUSE。非常好!但是我会很感激这里的经验之谈-在脚本中使用zypper的正确方法是什么,我要自动同意所有提示而不跳过需要响应的内容? 由于我的经验不足,我很想使用: sudo zypper --non-interactive --no-gpg-checks --quiet install --auto-agree-with-licenses curl 但这真的等于--assume-yes吗? 那等价的呢? sudo apt-get autoremove -y sudo apt-get autoclean -y 这表明没有人... gdebi-core是否有替代品?还是zypper的“功能强大的可满足性求解器”永远不需要gdebi?我在需要在较旧版本上安装软件包并且已经有一个.deb文件的情况下使用gdebi(但不是所有依赖项)。


2
在bash和X11之间共享剪贴板
在该线程中,最上面的答案显示了如何将以前在gnome终端上用鼠标选择的文本复制到X11中的剪贴板。 我的问题是:假设我使用bash设置标记从终端复制了一段文本并复制了键盘快捷键(即set-mark+ M-w)。可以与X11共享此剪贴板吗? 编辑:在最初的问题中,我谈到了与GNOME共享剪贴板,但是正如Gilles在下面指出的那样,GNOME没有专门的剪贴板(对X通用),所以我更新了问题。
12 bash  x11  clipboard 

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.