Unix & Linux

Linux,FreeBSD和其他类似Un * x的操作系统用户的问答


7
内置的冒号有什么作用?
我已经破解了许多shell脚本,有时最简单的事情使我感到困惑。今天,我遇到了一个脚本,该脚本大量使用了:内置的(冒号)bash。 该documenation似乎很简单: : (a colon) : [arguments] 除了扩展参数和执行重定向之外,什么也不要做。返回状态为零。 但是,我以前仅在用于shell扩展的演示中看到过这种用法。我遇到的脚本中的用例广泛使用了此结构: if [ -f ${file} ]; then grep some_string ${file} >> otherfile || : grep other_string ${file} >> otherfile || : fi 实际上有几百个抱怨,但更多的是相同的。除了上面的简单结构之外,没有输入/输出重定向。稍后在脚本中不检查返回值。 我将其视为无用的构造体,上面写着“或者什么也不做”。以“或什么都不做”来结束这些抱怨有什么目的?在什么情况下,这种构造会导致与简单地|| :从所有实例中删除结果不同的结果?





3
将文本输入发送到分离的屏幕
我正在尝试在我的unRAID服务器上运行minecraft服务器。 服务器将在外壳中运行,然后坐在那里等待输入。要停止它,我需要输入“ stop”并按Enter,然后它将保存世界并优雅地退出,我回到了shell中。如果我通过telnet进入NAS盒来运行它,那一切都可以,但是我想直接在盒中运行它。 这是我以前的第一次尝试: #define USER_SCRIPT_LABEL Start Minecraft server #define USER_SCRIPT_DESCR Start minecraft server. needs sde2 mounted first cd /mnt/disk/sde2/MCunraid screen -d -m -S minecraft /usr/lib/java/bin/java -Xincgc -Xmx1024M -jar CraftBukkit.jar MCunraid是我包含Craftbukkit.jar和所有世界文件的文件夹。如果我直接输入该屏幕行,则该屏幕会分离安装程序并启动服务器。如果我从脚本中执行该行,则似乎无法设置屏幕 要停止服务器,我需要在STOP中“键入”,然后按Enter。我的方法是 screen -S minecraft -X stuff "stop $(echo -ne '\r')" 向屏幕“ minecraft”发送文本停靠点和回车符。但这不起作用,即使我直接在命令行上输入也是如此。但是,如果我使用“ screen -r”,则可以在服务器运行的情况下进入屏幕,然后键入“ stop”,它将正常关闭。 如果我远程登录并手动执行该服务器,则服务器运行良好,只需要运行它即可,而无需与远程计算机连接。
44 linux  gnu-screen 





3
如何确定某人的SSH密钥是否包含空密码?
我的一些Linux和FreeBSD系统有数十个用户。员工将使用这些“ ssh网关”节点通过SSH进入其他内部服务器。 我们担心其中一些人使用未加密的私钥SSH密钥(没有密码的密钥。这很糟糕,因为如果破解者获得了在此计算机上的帐户的访问权限,他们可能会窃取私钥并现在可以访问出于安全原因,我们要求所有用户使用密码对自己的SSH私钥进行加密。 如何确定私钥是否未加密(例如,不包含密码)?是否有不同的方法可以对ASCII铠装密钥和非ASCII铠装密钥进行此操作? 更新: 为了明确起见,假设我在计算机上具有超级用户访问权限,并且可以读取每个人的私钥。
44 security  ssh  users 

8
执行Shell脚本的不同方法
有几种执行脚本的方法,我知道的是: /path/to/script # using the path (absolute or relative) . script # using the . (dot) source script # using the `source` command 还有更多吗?它们之间有什么区别?在某些情况下,我必须使用一种而不是另一种?

10
在vi模式下使我的zsh提示显示模式
我使用bindkey -v(对于bash-ers,set -o vi我认为也可以在zsh中使用)或vi(m)模式。但令我感到困惑的是,我没有任何视觉提示可以告诉我是处于插入模式还是命令模式。有谁知道我如何使我的提示显示模式?
44 shell  prompt  zsh 


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.