小编Mar*_*ter的帖子

用 ASCII 创建图表

我正在寻找一个程序,我可以用它来创建这样的 ASCII 图表:

    +---------+
    |         |                        +--------------+
    |   NFS   |--+                     |              |
    |         |  |                 +-->|   CacheFS    |
    +---------+  |   +----------+  |   |  /dev/hda5   |
                 |   |          |  |   +--------------+
    +---------+  +-->|          |  |
    |         |      |          |--+
    |   AFS   |----->| FS-Cache |
    |         |      |          |--+
    +---------+  +-->|          |  |
                 |   |          |  |   +--------------+
    +---------+  |   +----------+  |   |              |
    |         |  |                 +-->|  CacheFiles  |
    |  ISOFS  |--+                     |  /var/cache  |
    |         |                        +--------------+
    +---------+
Run Code Online (Sandbox Code Playgroud)

它最好是Debian …

graph text ascii-art

175
推荐指数
4
解决办法
8万
查看次数

shell 逻辑运算符 &&、|| 的优先级

我试图了解逻辑运算符优先级在 bash 中是如何工作的。例如,我会期望以下命令不会回显任何内容。

true || echo aaa && echo bbb
Run Code Online (Sandbox Code Playgroud)

然而,出乎我的意料,bbb被打印出来了。

有人可以解释一下,我如何理解bash 中的复合&&||运算符?

shell bash

173
推荐指数
3
解决办法
11万
查看次数

使用 while 循环 ssh 到多个服务器

我有一个文件servers.txt,其中包含服务器列表:

server1.mydomain.com
server2.mydomain.com
server3.mydomain.com
Run Code Online (Sandbox Code Playgroud)

当我逐行读取文件while并回显每一行时,一切都按预期工作。打印所有行。

$ while read HOST ; do echo $HOST ; done < servers.txt
server1.mydomain.com
server2.mydomain.com
server3.mydomain.com
Run Code Online (Sandbox Code Playgroud)

但是,当我想通过 ssh 连接到所有服务器并执行命令时,我的while循环突然停止工作:

$ while read HOST ; do ssh $HOST "uname -a" ; done < servers.txt
Linux server1 2.6.30.4-1 #1 SMP Wed Aug 12 19:55:12 EDT 2009 i686 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

这仅连接到列表中的第一台服务器,而不是所有服务器。我不明白这里发生了什么。有人可以解释一下吗?

这更奇怪,因为使用for循环工作正常:

$ for HOST in $(cat servers.txt ) ; do ssh $HOST "uname -a" ; done
Linux server1 2.6.30.4-1 #1 SMP …
Run Code Online (Sandbox Code Playgroud)

scripting ssh io-redirection

95
推荐指数
3
解决办法
20万
查看次数

bash:测试是否设置了 $WORD

我正在寻找一个构造 in bash,以确定变量$WORD是否是定义的词之一。我需要这样的东西:

if "$WORD" in dog cat horse ; then 
    echo yes
else
    echo no
fi
Run Code Online (Sandbox Code Playgroud)

bash 有这样的结构吗?如果不是,最接近的会是什么?

bash shell-script

80
推荐指数
4
解决办法
13万
查看次数

允许 user1 在没有密码的情况下“su - user2”

我需要允许用户martin切换到martin-test没有密码的用户

su - martin-test
Run Code Online (Sandbox Code Playgroud)

我认为这可以在/etc/pam.d/su. 该文件中已经有一些可以取消注释的行。但是,我不喜欢将 user 添加martin到 group的想法wheel。我不希望给martin任何更多的特权,而不是能够切换到martin-test。我也不想用sudo

在保持用户权限martin最小的情况下,最好的方法是什么?

users password authentication pam

70
推荐指数
3
解决办法
11万
查看次数

如何通过 SSH 来利用 shellshock?

显然,shellshock Bash 漏洞利用CVE-2014-6271可以通过 SSH 在网络上被利用。我可以想象这个漏洞是如何通过 Apache/CGI 工作的,但我无法想象这将如何通过 SSH 工作?

有人可以提供一个示例如何利用SSH,以及会对系统造成什么危害?

澄清

AFAIU,只有经过身份验证的用户才能通过 SSH 利用此漏洞。这个漏洞对于拥有合法访问系统的人有什么用?我的意思是,这个漏洞没有权限提升(他不能成为 root),所以他只能通过 SSH 合法登录后做更多的事情。

bash ssh shellshock

68
推荐指数
3
解决办法
6万
查看次数

在 .bashrc 中使用导出

我注意到在我的前面.bashrc有一些行export,例如

export HISTTIMEFORMAT="%b-%d  %H:%M  "
...
export MYSQL_HISTFILE="/root/.mysql_history"
Run Code Online (Sandbox Code Playgroud)

而其他人则没有,例如

HISTSIZE=100000
Run Code Online (Sandbox Code Playgroud)

我想知道,首先,这是否正确,其次export.bashrc.

bash environment-variables bashrc

58
推荐指数
3
解决办法
7万
查看次数

禁止 CTRL-D 使用终结器终端模拟器关闭我的窗口)

我经常同时登录多个 SSH 会话。要退出多个会话,我按CTRL+ d, 直到我回到我的本地机器上。

但是,我偶尔会按太多次,然后我的终端会退出。

有没有办法让CTRL+d无法关闭我的终端?

我使用终结器作为我的终端模拟器。

command-line shell bash terminal

52
推荐指数
2
解决办法
2万
查看次数

保持 NumLock 始终开启

我有一个右侧带有数字键的标准键盘(我猜它被称为 104 键键盘)。我只想将数字键用作数字键。这意味着我不想NumLock打开和关闭数字键。

但是,有时会发生(我不知道如何,可能是我不小心按了NumLock键)NumLock关闭了,我必须再次按下它。这是非常烦人的。

是否可以禁用关闭NumLock

换句话说:我希望我的数字键始终充当数字键,并禁用NumLockswitch

我正在使用 Debian 和 LXDE(Openbox)。

更新:

我已经使用了几年的解决方案,我在 Openbox 中使用它在NumLock按下键时执行脚本。此脚本然后NumLock再次打开。

<keybind key="Num_Lock">
  <action name="Execute">
    <command>numlock-on.sh</command>
  </action>
</keybind>
Run Code Online (Sandbox Code Playgroud)

除了是一个肮脏的黑客之外,这不能可靠地工作。不知何故,我仍然碰巧numlock键盘上的键被禁用了。

我对数字锁定键的想法感到沮丧。numlockCaps Lock是纯粹的邪恶的概念。

无论如何,我尝试了第二种解决方案,将以下内容放入我的openbox自动启动脚本中:

xmodmap -e 'keycode 77 = Escape'
Run Code Online (Sandbox Code Playgroud)

但这根本不起作用。

首先,当我登录时openbox,一切正常,并且数字键可以作为数字键使用。

但是当我按下时numlock,它不仅禁用了数字键,而且当我按下7例如时,我得到OH,然后数字键用作箭头键。

再次按下NumLock键不会启用数字键。我必须注销并重新登录。

所以xmodmap解决方案没有按预期工作。

我怎样才能一劳永逸地完全禁用密钥的撒旦功能NumLock

keyboard numlock

36
推荐指数
7
解决办法
2万
查看次数

铬浏览器(pepperflashplugin)在 0.0.0.0:5353 上打开监听端口

我正在使用chromium browser(chrome) 和pepperflashpluginin Debian。我注意到,chromium/pepperflashplugin 在我的公共接口上打开了一个监听端口,0.0.0.0:5353如下所示netstat

netstat -lptun
Proto  Recv-Q  Send-Q  Local Address  Foreign Address  State  PID/Program name     
udp         0       0  0.0.0.0:5353   0.0.0.0:*               13971/libpepflashpl
Run Code Online (Sandbox Code Playgroud)

我之前一直在使用 Firefox (Iceweasel),我从未见过浏览器/flash-plugin 打开端口。事实上,我从未见过任何客户端应用程序在0.0.0.0.

为什么铬要这样做?

这有必要吗?

我可以禁用这个吗?

我可以在禁用pepperflashplugin的情况下启动chrome吗?

chrome browser netstat plugin

30
推荐指数
4
解决办法
2万
查看次数