我编辑了 default/etc/update-motd.d/00-header,添加了一些颜色以使其更易于阅读:
printf "Welcome to \e[1;34m%s\e[0m \e[2m(%s %s %s)\e[0m\n" "$DISTRIB_DESCRIPTION" "$(uname -o)" "$(uname -r)" "$(uname -m)"
Run Code Online (Sandbox Code Playgroud)
我可以在终端中很好地运行这行代码,但是当我00-header使用此信息进行编辑时,我会以纯文本形式打印出转义码:
Welcome to \e[1;36mUbuntu 13.10\e[0m \e[2m(GNU/Linux 3.11.0-23-generic i686)\e[0m
Run Code Online (Sandbox Code Playgroud)
如何为当天的信息添加一点色彩?
该命令tput有两个不同的选项来设置颜色setf和setaf,但它们在我的计算机上似乎都可以正常工作:
$ tput setf 2 && echo 'Hello world!'
$ tput setaf 2 && echo 'Hello world!'
Run Code Online (Sandbox Code Playgroud)
似乎有一个类似的两重性与setb和setab。
这两个选项有什么区别?
如果您使用大括号扩展和wget,您可以轻松获取按顺序编号的图像:
$ wget 'http://www.iqandreas.com/sample-images/100-100-color/'{90..110}'.jpg'
Run Code Online (Sandbox Code Playgroud)
它获取编号90.jpg为99.jpg很好的前 10 个文件,但100.jpg随后返回404: File not found错误(我只有 100 个图像存储在服务器上)。如果您使用更大的范围,例如{00..200}100 个不存在的文件,这些不存在的文件会变得更“有问题” ,这会增加脚本的执行时间,甚至可能会成为一个轻微的负担(或至少是烦恼)服务器。
wget在收到第一个 404 错误后,有没有办法停止?(甚至更好,连续两个,以防由于其他原因在范围内丢失文件)答案不需要使用大括号扩展;循环也很好。
给定输入:
hello: world foo bar baz
bar:
baz: bin boop bop fiz bang beep
bap: bim bam bop
boatkeeper: poughkeepsie
Run Code Online (Sandbox Code Playgroud)
我想将其分为顶部的大多数单词,至少在最后,如下所示:
baz: bin boop bop fiz bang beep
hello: world foo bar baz
bap: bim bam bop
boatkeeper: poughkeepsie
bar:
Run Code Online (Sandbox Code Playgroud)
我将如何使用sort或其他工具执行此操作?
我正在尝试将相同的sshd设置应用于多个用户。
根据手册,它似乎Match User像一个AND:
引入条件块。如果
Match满足该行中的所有条件,则以下行中的关键字将覆盖在配置文件的全局部分中设置的那些
我如何状态“为这些用户......”,所以在这个例子中bob,joe和phil被允许使用SSH作为代理,但不允许登录:
Match User bob, User joe, User phil
PasswordAuthentication yes
AllowTCPForwarding yes
ForceCommand /bin/echo 'We talked about this guys. No SSH for you!'
Run Code Online (Sandbox Code Playgroud) 我有一个用户对系统的访问权限有限(也就是说,他不是 sudoer);我们叫他鲍勃吧。
我有一个脚本或二进制文件,我,系统管理员,信任它,并且以 root 身份运行它不会有任何问题;让我们调用脚本get-todays-passphrase.sh。此脚本的工作是从位于 中的“私有”(由 Bob 以外的用户/组甚至 root 用户/组拥有)文件中读取数据/srv/daily-passphrases,并仅输出文件中的特定行:与今天的日期对应的行.
像鲍勃用户不容许知道明天的密码,即使它的文件中列出。出于这个原因,该文件/srv/daily-passphrases是由Unix许可保护的,所以非root用户喜欢鲍勃没有允许直接访问文件。但是,它们可以随时运行get-todays-passphrase.sh脚本,从而返回“过滤后的”数据。
总结一下(TL;DR版本):
是否可以在 Unix 文件权限内执行此操作?或者,如果 Bob 启动了一个脚本,该脚本是否总是注定要以与 Bob 相同的权限运行?
我刚刚花了最后两个小时从没有 GUI 的 Live CD运行dd命令(或想象任何类似的“难以重做”的场景);我所拥有的只是我可信赖的“多窗口”( CTRL+ALT+F#) Bash 终端。
唉,在命令期间dd抛出了几个讨厌的错误消息和我想保留的更多信息。我插入了一个可以写入数据的 USB 驱动器,但是如何在命令运行后将先前的输出保存为文本文件?
如果这是一个漂亮的 GUI 中的终端模拟器,我会简单地使用我的鼠标来选择文本,复制它,然后将它粘贴到一个文档中。如果我知道该命令会产生错误,我会首先将它输出到一个文件中,但是唉,额外的输出令人惊讶。
如何在不重新运行命令的情况下将上一个命令的文本输出保存到文件中?这甚至可能吗?
有时内部硬盘驱动器可用/dev/sda(随后的媒体位于/dev/sdbetc 中),其他时候可用/dev/hda. 两者有什么区别?
它是否因 Linux 发行版而异,还是基于计算机硬件或硬盘驱动器类型?
在以下视频中:Linux HOWTO:使用 PGP 保护您的数据,第 2 部分,您将看到如何使用gpg. 在大约1:50,讲师说以下内容:
在生成密钥时,最好将鼠标稍微移动一下,以便为创建密钥对提供更多的随机数熵。
这在我看来就像一个神话,特别是因为命令行工具通常不应该受到光标的影响。另一方面,我不知道 Linux 的随机数生成器是如何工作的,无论它是由 GUI 共享还是独立于它。他声称的内容是否有任何库存,或者这是货物崇拜编程的一个例子?
sshd我的系统上有一个系统用户和一个名为 的组ssh:
$ cat /etc/passwd | grep ssh
sshd:x:120:65534::/var/run/sshd:/usr/sbin/nologin
$ cat /etc/group | grep ssh
ssh:x:117:
Run Code Online (Sandbox Code Playgroud)
我的猜测是用户sshd允许 OpenSSH 使用 port 22,并且/etc/ssh无需以 root 身份运行即可访问。
我假设该ssh组也是由 OpenSSH 创建的,但我在文档中找不到任何提及。
这个新用户的目的是什么?