小编Jef*_*ler的帖子

让 tmux 将缓冲区复制到剪贴板

我试图找出一种体面的方法来将 tmux 缓冲区中的内容复制到剪贴板中。我尝试了一些不同的东西,比如

bind-key p select-pane -t 2 \; split-window 'xsel -i -b' \; paste-buffer
Run Code Online (Sandbox Code Playgroud)

这让我相当接近,我所要做的就是在我做前缀 p 之后点击 control-d。

我尝试通过这样做来解决这个问题

bind-key p select-pane -t 2 \; split-window 'xsel -i -b << HERE\; tmux paste-buffer\; echo HERE'
Run Code Online (Sandbox Code Playgroud)

但这根本行不通。事实上,如果我把它配对到只是

bind-key p select-pane -t 2 \; split-window 'xsel -i -b << HERE'
Run Code Online (Sandbox Code Playgroud)

它没有做任何事情,所以我假设拆分窗口不喜欢 shell 命令中的 << 。

有任何想法吗?

编辑:select-pane -t 2如果你愿意,你可以跳过,这并不重要。我只使用特定的布局,而窗格 2 是我在做其他事情时更喜欢拆分的布局,以便默认情况下进入涉及拆分的绑定。

keyboard-shortcuts tmux clipboard xclip

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

“/dev”Linux 文件是如何创建的?

Linux 中有一些特殊的文件,它们并不是真正的文件。

其中最显着和清晰的例子是在dev文件夹中,“文件”,如:

  • /dev/null - 忽略您写入文件的任何内容
  • /dev/random - 输出随机数据而不是文件内容
  • /dev/tcp - 通过网络发送您写入此文件的任何数据

首先,这些类型的“文件”的名称是什么,它们实际上是某种伪装的脚本或二进制文件?

其次,它们是如何创建的?这些文件是在内核级别内置到系统中的,还是有办法自己创建一个“神奇文件”(a 怎么样/dev/rickroll)?

linux devices files

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

如何在不启动 livecd 的情况下缩小根文件系统

我发现自己需要重新排列系统分区,以将之前根文件系统下的数据移动到专用挂载点。卷都在 LVM 中,所以这相对容易:创建新卷,将数据移入其中,缩小根文件系统,然后在适当的点挂载新卷。

问题是第 3 步,缩小根文件系统。涉及的文件系统是ext4,所以支持在线调整大小;然而,在挂载时,文件系统只能增长。缩小分区需要卸载它,这对于正常运行的根分区当然是不可能的。

网络上的答案似乎围绕着启动 LiveCD 或其他应急媒体、执行压缩操作,然后启动回已安装的系统。但是,有问题的系统是远程的,我只能通过 SSH 访问。我可以重新启动,但无法启动救援光盘并从控制台执行操作。

如何在保持远程 shell 访问的同时卸载根文件系统?

centos lvm

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

“systemctl daemon-reload”有什么作用?

我有一项服务突然停止。我试图重新启动该服务但失败并要求运行“systemctl daemon-reload”。

它究竟是做什么的?什么是“守护进程重新加载”?

centos systemd daemon

107
推荐指数
1
解决办法
29万
查看次数

如何更新 Linux“定位”缓存

如何更新locate的缓存/索引?我安装了新软件包,但这些文件显然尚未编入索引。那么我必须提交哪个命令才能触发索引器?

我目前正在开发 debian jessie(测试):使用 Linux mbpc 3.13-1-amd64 #1 SMP Debian 3.13.7-1 (2014-03-25) x86_64 GNU/Linux

debian locate

106
推荐指数
3
解决办法
14万
查看次数

“cat file | ./binary”和“./binary &lt; file”有什么区别?

我有一个二进制文件(我无法修改),我可以:

./binary < file
Run Code Online (Sandbox Code Playgroud)

我也可以这样做:

./binary << EOF
> "line 1 of file"
> "line 2 of file"
...
> "last line of file"
> EOF
Run Code Online (Sandbox Code Playgroud)

cat file | ./binary
Run Code Online (Sandbox Code Playgroud)

给我一个错误。我不知道为什么它不适用于管道。在所有 3 种情况下,文件的内容都提供给二进制的标准输入(以不同的方式):

  1. bash 读取文件并将其提供给二进制的标准输入
  2. bash 从 stdin 读取行(直到 EOF)并将其提供给二进制的stdin
  3. cat 读取文件行并将其放入标准输出,bash 将它们重定向到二进制文件的标准输入

据我所知,二进制文件不应该注意到这 3 个之间的区别。有人可以解释为什么第三种情况不起作用吗?

BTW:二进制文件给出的错误是:

20170116/125624.689 - U3000011 无法读取脚本文件“”,错误代码“14”。

但我的主要问题是,具有这 3 个选项的任何程序有何不同。

下面是一些进一步的细节:我试图再次strace的 和实际上有一些错误ESPIPE(非法谋取)lseek的 后面EFAULT(地址错误)读取错误信息之前。 …

shell pipe io-redirection

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

查找重复文件

是否可以在我的磁盘上找到重复文件,这些文件有点相同但具有不同的文件名?

files duplicate-files

103
推荐指数
5
解决办法
7万
查看次数

变量上的 grep

假设我有一个变量

line="This is where we select from a table."
Run Code Online (Sandbox Code Playgroud)

现在我想 grep 有多少次 select 在句子中出现。

grep -ci "select" $line
Run Code Online (Sandbox Code Playgroud)

我试过了,但没有用。我也试过

grep -ci "select" "$line"
Run Code Online (Sandbox Code Playgroud)

它仍然不起作用。我收到以下错误。

grep: This is where we select from a table.: No such file or directory
Run Code Online (Sandbox Code Playgroud)

shell grep string

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

SED:在最后一行后插入文本?

这个sed 命令在文件的开头插入一个标签:

sed -i "1s/^/<?php /" file
Run Code Online (Sandbox Code Playgroud)

如何使用 sed 在每个文件的末尾插入一些内容?

sed

98
推荐指数
6
解决办法
25万
查看次数

使用一个命令杀死多个正在运行的进程实例

假设我有任何进程(例如,vi)的一千个或更多实例正在运行。我如何在一次射击/一行命令/一个命令中将它们全部杀死?

process kill

97
推荐指数
5
解决办法
24万
查看次数