标签: gnu

使用 tmux/screen 进行多路复用和在终端模拟器中打开选项卡有什么区别?

我试图通过 htop 测量内存和 cpu 使用情况来比较这两种运行多个 shell/进程的方法。

有人可以解释一下每种方法的功能有何差异,或者是否存在差异?

编辑:

据我现在的理解,tmux/screen和其他多路复用器是虚拟会话,即原始会话中的多个虚拟会话。这与在终端中打开新选项卡实际创建新会话形成对比。

我仍然不确定一种方法是否比另一种方法具有性能优势;也没有涉及的潜在机制。

同时,请随时贡献有关该主题的更多详细知识!

下面的这些链接帮助我理解了基本区别:

多路复用器和终端有什么关系?

使用终端复用器有什么好处

terminal display gnu multiplexing tmux

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

使用 wget 调用但不下载页面

我想知道是否有任何参数允许我使用wget和“调用”页面,但不下载页面

问题是当你wget在一个页面上调用时,它会将它下载到wget.exe所在的文件夹中,但我不想每次使用它时都下载一个文件。

windows download wget gnu arguments

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

Sudoers NOPASSWD 用于单个可执行文件但允许其他可执行文件

操作系统: Arch Linux

Linux版本: 4.16.11

须藤版本: 1.8.23

我需要什么

  • 能够执行any executablesudo使用密码提示
  • 能够在/home/username/script.sh没有密码提示的情况下执行一个可执行文件。

当我这样配置时

username ALL=(ALL) NOPASSWD: /home/username/script.sh
Run Code Online (Sandbox Code Playgroud)

我对 有想要的效果script.sh,但我不能executablesudo.

例子

$ sudo ./script.sh # runs fine!
Run Code Online (Sandbox Code Playgroud)

尝试别的

$ sudo nano /etc/sudoers
[sudo] password for username: 
Sorry, user username is not allowed to execute '/usr/bin/nano 
/etc/sudoers' as root on hostname.
Run Code Online (Sandbox Code Playgroud)

看来这是替换的结果ALLNOPASSWD,看来我需要两者。如果sudoers文件已ALL供用户使用,我可以使用密码提示执行任何我想要的操作

username ALL=(ALL) ALL
Run Code Online (Sandbox Code Playgroud)

我试图结合 ALL 和 NOPASSWD 但没有结果

username ALL=(ALL) …
Run Code Online (Sandbox Code Playgroud)

linux sudo gnu permissions sudoers

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

为什么 GNU diff 这样的内存猪?

有足够多的问题询问如何区分大文件,因为diff无法处理它们。

我想知道为什么GNU diff 无法处理它们。

我做了一个小实验。我比较了两个相同的数据集,就像这样

$ time /usr/bin/diff -u <(cat file1) <(cat file2) > /tmp/memoryhog
^C

real    5m6.478s
user    0m0.540s
sys     0m19.184s
Run Code Online (Sandbox Code Playgroud)

这是 top 在我取消工作的同时显示的内容:

差异内存使用

3  PID  %MEM    VIRT   SWAP    RES   CODE    DATA    SHR nMaj nDRT S  PR  NI  %CPU COMMAND
 19087  30.0   16.0g          9.4g   0.2m   16.0g   2.0m           R  20       0.5 /usr/bin/diff -u /dev/fd/63 /dev/fd/62
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,输出是空的:

$ stat -c '%s' /tmp/memoryhog 
0
Run Code Online (Sandbox Code Playgroud)

(它们实际上不是文件,而是数据库结果,我忘记跟踪diff当时实际消耗了多少字节- 估计每个管道文件 30-60GiB。)

但是那里发生了什么?

diff 当它甚至不需要跟踪单个字节更改时,是否正在分配大量内存?

我只能假设部分原因是必须跟踪行数,但是分配 16GiB 虚拟内存对于该任务来说似乎有点多!

是什么diff觉得需要那么多的内存?或者只是糟糕的内存处理? …

memory linux diff gnu

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

在 Windows 上获取“linux 命令行工具”的最佳方式

我想下载诸如“ rm -rf”之类的基本内容。

我曾经只下载cygwin,但binutils或其他一些更好的替代品(如果我只需要真正基本的东西......我正在尝试考虑我在 ' rm -rf'之外缺少的任何东西,而在 atm 上失败了)

windows cygwin gnu

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

BusyBox 上的 sed 命令需要不同的语法?

我希望我的问题表述正确。我有一个大量使用“sed”的脚本。它在我的带有 GNU 'sed' 的 ubuntu 上运行良好。但是当我尝试在 BusyBox 上运行它时,它失败了。有没有办法在busybox上获得GNU sed?我不是 Linux 专家。

gnu sed busybox

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

更改pdf文档中的特定字体

我有一个 PDF 文件,它有一个错误的字体(一些 d、o 和 q 在圆圈内填充黑色),读起来很烦人。

如何更改整个文档中的特定字体,同时保持文件结构?

PS:我使用的是 GNU/Linux,所以我更喜欢跨平台解决方案。

linux pdf gnu characters

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

可以像fmt那样少换行吗?

像大多数人一样,我将less其用作终端寻呼机。有时,我会查看由很长的纯文本或标记文本行组成的文件。默认情况下,这些线会在终端窗口边缘less 折叠。也就是说,最后一列的单词被破​​坏,导致文本难以阅读。有没有什么方法可以在字边界less换行fmt,就像 Emacs 视觉行模式一样?

我知道我可以fmt在查看之前简单地通过管道输入输入,尽管这需要我提前知道我的终端宽度。我希望有某种方法可以less很好地换行,并在调整终端窗口大小时自动重新格式化它们。

linux gnu command-line less

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

在 Mac 上安装 GNU“脚本”命令

我有一台Mac。我想使用CentOS 附带的GNU ,因为它比 BSD Mac 版本功能更全。具体来说,在 CentOS 机器上给出:scriptman script

   -c, --command command
          Run the command rather than an interactive shell.  This makes it easy  for  a  script  to
          capture the output of a program that behaves differently when its stdout is not a tty.
Run Code Online (Sandbox Code Playgroud)

而我的Mac上的版本没有这样的选项。我想在假装是 tty 的同时查看命令的输出,这是我知道如何做到这一点的唯一方法。

我有brew,并且安装了一堆GNU版本的实用程序(grep findutils coreutils gawk gnu-sed gnu-tar gnu-indent gnu-getopt gnutls),但这些似乎都不提供script.

我尝试搜索 Homebrew 公式,但不出所料,很多软件包都提到了“脚本”一词,所以我很容易错过它。

编辑:根据评论,我不确定是否有GNU script,但肯定还有另一个版本,我的 Mac 没有。script --version在 CentOS 7 …

bash gnu homebrew macos

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

GNU 存储。仅符号链接文件,而不是目录

我想使用 Git 存储库和stow. 这是我当前的存储库,其中包括我想要存放的文件/目录以及Makefile我正在使用的命令make stow

不幸的是,当 stow 遇到不存在的目录时,我遇到了问题。例如,如果我删除我的~/.config/yabai/目录(以模拟它在新安装中不存在)并运行make stow它将符号链接整个目录:

$ ls -l
[...]
lrwxr-xr-x   1 adam staff   26 Mar 12 19:28 yabai -> ../.dotfiles/.config/yabai
[...]
Run Code Online (Sandbox Code Playgroud)

这会导致问题,因为如果我或程序在此目录中创建其他文件,它们也会出现在我的~/.dotfiles/目录中。


如果目录已存在,则不会出现此问题,因为链接的是其中的文件而不是目录本身:

$ ls -l
drwxr-xr-x   3 adam staff   96 Mar 12 19:43 yabai
Run Code Online (Sandbox Code Playgroud)
$ ls -l
lrwxr-xr-x  1 adam staff  37 Mar 12 19:43 yabairc -> ../../.dotfiles/.config/yabai/yabairc
Run Code Online (Sandbox Code Playgroud)

根据使用管理点文件的人数stow,我想有一种方法可以解决此问题。可能首先重新创建目录结构,然后创建链接。

symbolic-link gnu dotfiles

6
推荐指数
0
解决办法
2025
查看次数