我在通过 SSH 访问的远程系统上使用 screen(有问题的命名终端会话管理器)来运行长时间运行的进程等。我最终开始使用命令直接附加到 screen 会话,而不是首先通过 SSH 登录,然后启动 screen:
ssh -t hostname screen -xRR
Run Code Online (Sandbox Code Playgroud)
的用途-xRR是附加到现有的屏幕会话(如果可用),否则只需创建一个新会话。问题是,当创建新会话时,它不会被创建为登录 shell:
$ shopt -q login_shell; echo $?
1
Run Code Online (Sandbox Code Playgroud)
因此,.profile与首先使用 SSH 登录然后运行相比,登录会话设置(运行和朋友)未完成,然后部分设置丢失screen- 在这种情况下,SSH 启动的 shell 是一个登录 shell,它设置正确,屏幕我猜继承了环境。
我尝试使用-l屏幕上的标志,该标志被记录为“登录模式”,但它没有帮助 - 我认为它只会更新诸如who.
知道如何让屏幕运行登录 shell 吗?
我正在构建一堆服务以安装在我自己的(自动创建的)服务器上。我正在从 Ubuntu 14.04 上的 upstart 迁移到 Ubuntu 16.04,其中默认启用服务(如果我们不想在安装时启动,我们必须做额外的工作),到 Ubuntu 16.04,我们希望使用 systemd 作为新的本机服务框架。
这些服务是使用我自己创建的 deb 包安装的。我通过添加和添加一个--with systemd来升级 deb 创建rulespackage-name.servicesystemd 单元规范。
我发现的问题是,即使我添加了一个[Install]带有的部分WantedBy=multi-user.target,该服务也不会在系统上启动。
相反,该服务被安装,然后systemctl status package-name显示:
? package-name.service - My Service
Loaded: loaded (/lib/systemd/system/package-name.service; disabled; vendor preset: enabled)
Active: inactive (dead)
Run Code Online (Sandbox Code Playgroud)
我的.bashrc 中没有任何 systemd 覆盖rules,正如我从带有 systemd 页面的Debian 包装以及dh_systemd_enable 手册页中了解到的那样,如果我选择不启用,我可以使用它来不启用服务。
同样从状态显示的外观来看,似乎dh-systemd确实启用了服务(供应商预设位),但这还不够。我错过了什么?
有人知道可以用来代替less或more用于查看文本的 GUI 应用程序 (X/GTK+/Qt/whatever) ,特别是从标准输入管道输入的应用程序吗?理想情况下,寻找也可以在 Mac OSX 上运行的东西(甚至可能只在 Mac 上运行)。
我希望向 UNIX 新手介绍命令行文本处理的美妙世界(使用awk、sed,grep甚至一些perl),使用允许交互式搜索、使用鼠标滚动的漂亮 GUI 向他们显示文本会很有用(我知道大多数 Linux 终端支持较少的鼠标滚动,但 Mac 终端不支持)等。
到目前为止,我发现的最好的事情是将输入通过管道输入zenity --text-info,但该查看器非常有限,甚至不允许搜索。
我在 Ubuntu 18.10 上遇到 SystemD 解析服务的问题 - 在我的无线网络上,我们有一个 IPv6 子网,它通过一些奇怪的网络设置(工作内容)隧道传输,不能用于 DNS 解析。
出于某种原因,即使我已将静态 DNS 配置设置/etc/systemd/resolved.conf.d/dns.conf为仅包含 IPv4 DNS 记录,并且 DHCP 从不通告 IPv6 DNS 服务器,但已解析总是在我的无线连接上向特定于连接的 DNS 配置添加一些时髦的 IPv6 地址,并且然后“回退”到它们并停止解析地址。
这是我的dns.conf(主要resolved.conf是默认的 - 那里什么都没有):
[Resolve]
DNS=172.18.1.254 8.8.8.8 8.8.4.4 1.1.1.1
DNSSEC=no
Run Code Online (Sandbox Code Playgroud)
(第一个DNS地址是本地路由器)
解析的全局配置(可以从 获得resolvectl status):
Global
LLMNR setting: no
MulticastDNS setting: no
DNSOverTLS setting: no
DNSSEC setting: no
DNSSEC supported: no
Current DNS Server: 172.18.1.254
DNS Servers: 172.18.1.254
8.8.8.8
8.8.4.4
1.1.1.1
...
Link 2 (wlp2s0)
Current Scopes: …Run Code Online (Sandbox Code Playgroud) 我正在使用 GNU date 命令来解析任意自然语言日期 - 例如检测某个纪元时间戳是否来自上周,我可以这样做:
if [ "$timestamp" -lt "$(date +"%s" -d "last sunday")" ]; then ...
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试将我的脚本移植到 FreeBSD 时,我如何实现相同的功能?man date没有表现出任何承诺,除非我错过了一些明显的东西。
我正在尝试为 git 存储库自动化 deb 包构建器,作为其中的一部分,我想获得一堆提交评论(自上一个包发布以来)并将它们放入debian/changelog新版本的多个评论中。
我正在使用这样的dch“批处理模式”:
dch -v ${RELEASE_VER} --distribution stable "comment"
Run Code Online (Sandbox Code Playgroud)
但这仅适用于一条评论。如果我多次运行它,我会得到多个版本条目。
该dch手册页说:
如果在命令行上给出更改的文本,debchange 将在批处理模式下运行并简单地添加文本,必要时使用换行符
我不确定“必要时使用换行符”是什么意思,但如果作为第一个非选项参数传递的注释文本包含新行,dch将从文本中删除新行并将其作为单个注释。