Tag: bash

打开新的终端窗口时,如何自动启动Linux屏幕?

我和Bash一起运行Ubuntu 14.04(Cinnamon Mint 17.1)。 每次我打开一个新的终端窗口,我进入screen启动屏幕窗口管理器,但我希望shell为我这样做。 我相信我需要修改.bashrc而不是.profile ,因此它会在每个新的终端窗口上启动,而不仅仅是登录。 所以我在.bashrc的末尾添加了以下内容来替换shell进程: exec /usr/bin/screen -q 当我启动一个新的终端窗口时: 通常,我得到一个带有闪烁光标的空白窗口,只有在按下Ctrl+C后才会出现Bash提示。 有时,当我按Ctrl+C或调整终端窗口大小时,终端窗口立即关闭。 有时,我得到一个没有$LS_COLORS的Bash提示符(尽管很难重现这个,所以我不完全确定它何时或为什么会发生)。 任何人都可以解释为什么这对我来说失败了,并建议一个解决方案? 谢谢, 休

重定向apt和apt-get命令

当sudo apt-get install -y blender重定向到/dev/null ,安装过程完成,没有任何警告或错误。 但是当sudo apt install -y blender重定向到/dev/null ,会显示以下警告: WARNING: apt does not have a stable CLI interface. Use with caution in scripts. 那么导致此警告的apt-get和apt命令有什么区别? 我知道使用apt而不是apt-get ,但是如何在没有此警告的情况下重定向apt输出? 还有另一种方法可以降低噪音吗? (因为它们应该是静默的-q和-qq选项)

在脚本中组合两个命令

我想把两个命令放在一起 我需要脚本登录: ssh root@192.168.0.188 然后我需要运行脚本(通过ssh登录到root@192.168.0.188): find /var/mobile/Media/Music/ -name “*.mp3″ -exec ln -s {} /var/mobile/Media/Music/”All Songs” \;

cd /和cd的区别//?

有什么区别cd /和cd // ? 我们可以看到添加/到最后没有做任何事情。 但当我做cd //和pwd ,我发现: $ cd // $ pwd // /和//什么区别? 两个目录中的ls显示相同的内容。 //为什么需要?

从shell脚本调用并运行php脚本

我正在尝试一些简单而又无法理解的东西。 试图运行一个从脚本目录调用php脚本的shell脚本。 我的shell脚本很简单test.sh : #!/bin/sh LIST=”/path/to/my/site/dir” CONFIG=”/usr/bin/php ” for i in $LIST do . “${CONFIG}${i}/test.php” done 我的test.php没有错误,当我直接在浏览器中运行它时,它正在工作。 它再简单的脚本就好 当我运行./test.sh结果是 ./test.sh:8 :.:无法打开/ usr / bin / php /path/to/my/site/dir/test.php 第8行是. “${CONFIG}${i}/test.php” . “${CONFIG}${i}/test.php” 我也试过在PHP文件的开头添加这行,但结果是一样的 #!/usr/bin/php 更新:php的路径 $ which -a php /usr/bin/php 我也做了chmod +x test.php

如何使用syslog for else输出(显示whois – 查询)?

有log-file /var/log/syslog和ip-addresses的输出,例如SRC=10.158.0.1 。 我想从这个文件中扫描SRC= …每个打印地址SRC= …然后用whois (SRC= …)进行查询whois (SRC= …) 。 应该监视此查询。 我的尝试是错误的,在bash脚本中看起来像这样: #/bin/bash while [ 1 ] do grep ‘SRC=ip-address’ /var/log/syslog >> /home/$user/topsecret001/pitbull001.txt; whois ‘SRC=ip-address’ >> /home/$user/topsecret001/pitbull002.txt; done 有人可以帮忙解决问题吗? 我应该如何定义ip-address以及如何在此ip-address中使用命令whois ? / var / log / syslog的输出在这里看起来像这个片段: http://paste.ubuntu.com/5859332/ / var / log / syslog的输出如下所示 – 当有一点警报时(如今): http://paste.ubuntu.com/5862958/ 想法也是 – 只有在滚动系统日志的行中弹出“无效状态”时才执行whois查询。 感谢您的贡献。 我已经用你的代码学到了一些东西。 通常解决方案看起来比想象的要容易 – […]

从文本文件一次只打印一行

如何一次只打印或显示文本文件中的单词。 当我运行我的脚本时,它应该只显示文本文件中的每个单词,但只显示该单词。 这就是我所做的,但它会在单独的行中显示每个单词,但它显示了所有单词: FS=$’\n’ for j in `cat read` do echo “$j” done 我希望输出看起来像这样: root@matrix:~> first word —> this word disappear when second is displayed root@matrix:~> second word —> this disappear when third is displayed root@matrix:~> third word —> this disappear when fourth is displayed and continues like this to the end of the file!

如何防止’&’和’>’运算符的输出(发送到后台运算符和重定向运算符)

我尝试了各种gedit , & , >/dev/null 2>/dev/null 。 当gedit与其他两个一起使用时,它总是向终端打印一些东西。 我知道数字是pid的。 但是,请说明以下内容 当我将stdout和stderr重定向到/ dev / null时,为什么会产生这些输出,而裸gedit什么都不打印? [1]+ Done是什么意思? 如何防止这些输出?

如何在登录时运行针对X11设置的sh脚本?

基于gui的鼠标加速控制不足以驯服我的鼠标,所以我通过运行来纠正这个: xinput set-prop 10 “Device Accel Constant Deceleration” 2.9 从终端手动运行时,此脚本具有所需的效果(每次)。 但是我还没有找到在每次登录时运行它的方法。 尝试通过rc.local执行它或使用系统设置中的脚本启动选项都没有结果。 你对我还能尝试什么有什么建议吗? 我应该直接修改X11配置文件吗? 与此主题相关的几个post建议不要这样做。

“$ @”在bash脚本中做了什么?

我遇到了这个脚本 : #!/bin/sh qemu-system-x86_64 -enable-kvm \ -m 2G \ -device virtio-vga,virgl=on \ -drive file=/home/empty/qemubl/lab.img,format=raw,if=virtio \ -cpu host \ -smp 4 \ -soundhw sb16,es1370 \ “$@” $@的作用是什么? 我搜索man bash的$@但Pattern not found 。