小编art*_*bot的帖子

如何在终端上没有换行的情况下读取超过 4k 的输入?

所以我在剪贴板上有很多没有新行的数据(一行是一个大的 SVG 文件)。我去了

$ cat >file.svg
Run Code Online (Sandbox Code Playgroud)

然后尝试粘贴(在 Gnome 终端中),但只接受前 4kB 字符。

我认为这是一个 readline 功能/限制。

有没有办法从 STDIN 读取可以避免这个问题?

编辑

测试用例:创建一个演示文件。这个将有~4k“=”符号后跟“foo bar”。

{ printf '=%.0s' {1..4095} ; echo "foo bar" ; } > test.in
Run Code Online (Sandbox Code Playgroud)

将其复制到剪贴板

xclip test.in
Run Code Online (Sandbox Code Playgroud)

(如果你想中键插入)或

xclip -selection clipboard test.in
Run Code Online (Sandbox Code Playgroud)

(如果您想使用 Ctrl-Shift-Insert 将其粘贴进去)

然后cat >test.out,粘贴(无论哪种方式)。按 Ctrl-D 结束流。cat test.out- 你看到“foo bar”了吗?

在我的设置(Ubuntu 12.04、Gnome 终端、zsh)上粘贴时,我只=看到foo bar. 我检查时也一样test.out

terminal clipboard

33
推荐指数
2
解决办法
7916
查看次数

如何让日晒配色方案与 gnome-terminal、tmux 和 vim 一起使用?

围绕这个有很多问题,但这是因为有太多的变数。在我开始工作之前,我必须拼凑来自许多网站的说明。

首先,我无法在 gnome-terminal 中轻松设置 16 种日光化颜色定义(我手动/单击才意识到我没有正确设置顺序/映射)。一旦我确定我继续前进......

然后我在 vim OK-ish 中使用了日晒颜色,但是在某些突出显示中出现了一些奇怪的黑色背景。一旦我解决了这个问题,我继续前进......

然后我意识到 vim 曾经在 tmux 中运行过 v.wonky。这引起了广泛的争论,但很少有答案(主要是关于设置TERMxterm-256colors)对我有用。我最终也解决了这个问题。

Solarized是一个非常好的调色板(尽管我使最暗的基色变暗并使最亮的基色变亮,因为我更喜欢更高的对比度,并且在我的校准屏幕上发现 tmux 的“白色”太黄了 - 在典型的未校准笔记本电脑屏幕上可能很好,因为它们“ re通常太蓝了!),所以我发布了这个问题及其答案,以分享我的学习结果。

colors vim tmux gnome-terminal

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

如何仅在需要时才要求提供 SSH 密钥密码?

(我已经阅读了本网站上许多看起来相关的问题,我相信这是一个真正的新问题。)

我在很多服务器上都有很多密钥,它们都受到密码保护。

我喜欢输入密码,就像我喜欢输入密码一样 - 这是一个真正的生产力消耗。

  • ssh-agent + ssh-add命令可用于登录 shell,这意味着您只需在登录时输入一次密码

  • 钥匙串可用于在注销后保持 ssh 代理处于活动状态,例如,您可以拥有它,因此您只需在启动时输入一次密码,或者您可以让它保持活动状态一小时左右。

我遇到的问题是,这两种解决方案通常都是在 shell 登录(例如.zshrc)中启动的,依赖于我在登录时输入我的密码,即使我不需要解锁它。(我对钥匙串让代理无限期地活着不满意。)

我想要的是仅在需要时提示输入密码(对于代理)。

这样我就可以登录到服务器A,做一些东西,然后ssh到服务器B,并在该点被要求提供密码。在服务器 B 上做一些事情,注销。回到 A,做一些更多的事情,再次 ssh 到 B 并且不需要我的密码(它由代理持有)。

我注意到这在像 Gnome 这样的图形桌面上是可能的——当你尝试 ssh 时,你会得到一个弹出窗口,要求输入密码来解锁你的私钥。所以这就是我所追求的,但来自控制台。

ssh ssh-agent

18
推荐指数
2
解决办法
6910
查看次数

切换窗格后如何结束 tmux 序列

在 tmux 中,当打开单独的窗格时,我会Ctrl-B ?切换到上面的窗格。伟大的。除了如果我想按下的下一个键也是一个箭头键(例如,我想转到上面的 bash 提示符并搜索上一个命令的历史记录),那么这个击键也会被 tmux 解释。

在 tmux 释放对键盘的控制之前,似乎有一个超时时间。我怎样才能减少它?

tmux

9
推荐指数
1
解决办法
1658
查看次数

Apache 和 systemd

我刚刚开始使用引入了 systemd 的 Debian 8。我对围绕 SysV 与 systemd 的政治不感兴趣,但我很困惑,尤其是围绕 Apache (2.4)。

现在有两种方法可以重启 apache:

  1. apache2ctl restart 或者 apache2ctl graceful
  2. systemctl restart apache2它似乎systemctl restart apache2.service做同样的事情。

他们似乎做不同的事情(!)。我不明白其中的区别。

我似乎需要同时执行这两项操作才能正确地完全重启工作。例如,在更改 php 模块的配置文件后,它只注意到两者之后的更改。

另一次apache2ctl configtest失败并且在systemctl status apache2我修复了配置时报告了失败,以便这些命令中的第一个很高兴,重新启动apache2ctl restart但 systemd status 命令仍然将其列为未运行并且存在旧的配置问题。

我承诺在某个时候会花很多时间深入阅读有关 systemd (RTFM) 的内容,但同时在与 apache 相关的实用层面上,我会很感激建议。

debian systemd apache-httpd

8
推荐指数
1
解决办法
6412
查看次数

什么是 rpc.statd,它应该监听哪些端口,以及如何杀死它?

我发现在我的 Debian 服务器上的多个端口(TCP:59061、UDP:40594、UDP:919)上rpc.statd运行netstat -tunap命令。

我相信这与 NFS 有关,但我没有运行 nfs 服务器(AFAIK!)。

另一个问题提到了这个问题,但我的系统上不存在那里提到的包。)

那么它应该在哪些端口上运行,如果我不需要它(我连接到 NFS 共享,但我不提供任何服务)我该如何摆脱它?

debian

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

如何编写一个在网络中断前触发的 Systemd 单元

我想在用户关闭计算机时运行脚本,但它需要联网。因此,我希望它在系统即将关闭(或重新启动)时运行,但它需要在卸载任何内容或关闭网络之前运行。

我怎样才能做到这一点?

systemd

6
推荐指数
1
解决办法
3235
查看次数

与 tmux 终端覆盖相比,默认终端如何

在我的 tmux 配置中,我有以下内容:

set-option -g default-terminal "screen-256color"
set-option -ga terminal-overrides ',*-256color*:Tc'
Run Code Online (Sandbox Code Playgroud)

这意味着如果我运行tmux info | grep Tc检查真彩色支持,它会工作并显示已启用。echo $TERM在 tmux 中screen-256color按预期给出。

正如我从 tmux 手册中了解到的,终端覆盖匹配上的终端名称*-256color*,这是有道理的。

不过,我不明白的是,下列哪项工作/匹配:

set-option -ga terminal-overrides ',*screen-256color*:Tc'
Run Code Online (Sandbox Code Playgroud)

我不明白为什么不?这是怎么回事?

tmux 版本 2.9a

(旁白:如果你想知道为什么我使用screen-而不是,说tmux-这是因为 neovim 似乎需要它来检测真彩色支持)

tmux

6
推荐指数
1
解决办法
2817
查看次数

如何从命令行查看电子邮件文件(位于 MailDir 中)?

我确信我曾经有过一种从命令行读取电子邮件文件的方法,这种方法非常简单,但现在我再也找不到它了。

我有 MailDir 格式的文件,我希望查看它们的内容(标头、正文(HTML/纯文本)、MIME 解码、可能提取附件)。这些不是我的电子邮件;这并不是说我想要一个能够为我获取、排序、发送邮件的 MUA——它们只是我需要检查的原始文件。

email

6
推荐指数
2
解决办法
9622
查看次数

有没有办法在登录时绕过 .zshrc?

我很享受学习 ZSH,但有一件事困扰着我。如果我在我的 .zshrc 中放了一些使 shell 无用的东西(我正在玩一些影响键盘解释方式的东西),那么我最终可能无法修复它,除非我可以在登录时绕过我的 zshrc。

有办法吗?

zsh

4
推荐指数
1
解决办法
932
查看次数

是否可以在仍然安装的情况下查看安装点的“后面”?

我有两个分区,一个安装在/,一个安装在/crypt。我使用的是bind安装到安装/crypt/home/home/(和各种其他)。

问题是我现在有点需要查看原始/home目录,但当然我只看到/crypt/home.

我无法卸载它,因为要这样做我必须登录,这意味着 /home 正在使用中...

有没有办法(可能是另一个绑定安装或其他东西)我可以访问原始/home目录下的文件,而无需求助于从 USB 记忆棒等启动?

filesystems mount

4
推荐指数
1
解决办法
387
查看次数

如何降级使用 -t testing 安装的 Debian 软件包?

我使用default-release, apt install -t testing ...method安装了一个上游 openssh 。现在我想降级它。

有一个类似的问题,但我相信我的问题是不同的,因为它特定于我使用的安装/升级方法。

我以为我可以这样做:

apt install -V openssh-server -t jessie
Run Code Online (Sandbox Code Playgroud)

但这仍然会选择较新的回购。任何地方都没有首选项或引脚设置。

我对是否有办法做到这一点很感兴趣。请不要告诉我我已经制作了一个 FrankenDebian 系统,我这样做是非常愚蠢的 - 我已经明白了:-)

debian apt

2
推荐指数
1
解决办法
1531
查看次数