我试图通过 htop 测量内存和 cpu 使用情况来比较这两种运行多个 shell/进程的方法。
有人可以解释一下每种方法的功能有何差异,或者是否存在差异?
编辑:
据我现在的理解,tmux/screen和其他多路复用器是虚拟会话,即原始会话中的多个虚拟会话。这与在终端中打开新选项卡实际创建新会话形成对比。
我仍然不确定一种方法是否比另一种方法具有性能优势;也没有涉及的潜在机制。
同时,请随时贡献有关该主题的更多详细知识!
下面的这些链接帮助我理解了基本区别:
我想知道是否有任何参数允许我使用wget和“调用”页面,但不下载页面。
问题是当你wget在一个页面上调用时,它会将它下载到wget.exe所在的文件夹中,但我不想每次使用它时都下载一个文件。
操作系统: Arch Linux
Linux版本: 4.16.11
须藤版本: 1.8.23
我需要什么:
any executable与sudo使用密码提示/home/username/script.sh没有密码提示的情况下执行一个可执行文件。当我这样配置时
username ALL=(ALL) NOPASSWD: /home/username/script.sh
Run Code Online (Sandbox Code Playgroud)
我对 有想要的效果script.sh,但我不能executable用sudo.
例子
$ 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)
看来这是替换的结果ALL有NOPASSWD,看来我需要两者。如果sudoers文件已ALL供用户使用,我可以使用密码提示执行任何我想要的操作
username ALL=(ALL) ALL
Run Code Online (Sandbox Code Playgroud)
我试图结合 ALL 和 NOPASSWD 但没有结果
username ALL=(ALL) …Run Code Online (Sandbox Code Playgroud) 有足够多的问题询问如何区分大文件,因为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觉得需要那么多的内存?或者只是糟糕的内存处理? …
我希望我的问题表述正确。我有一个大量使用“sed”的脚本。它在我的带有 GNU 'sed' 的 ubuntu 上运行良好。但是当我尝试在 BusyBox 上运行它时,它失败了。有没有办法在busybox上获得GNU sed?我不是 Linux 专家。
我有一个 PDF 文件,它有一个错误的字体(一些 d、o 和 q 在圆圈内填充黑色),读起来很烦人。
如何更改整个文档中的特定字体,同时保持文件结构?
PS:我使用的是 GNU/Linux,所以我更喜欢跨平台解决方案。
像大多数人一样,我将less其用作终端寻呼机。有时,我会查看由很长的纯文本或标记文本行组成的文件。默认情况下,这些线会在终端窗口边缘less 折叠。也就是说,最后一列的单词被破坏,导致文本难以阅读。有没有什么方法可以在字边界less处换行fmt,就像 Emacs 视觉行模式一样?
我知道我可以fmt在查看之前简单地通过管道输入输入,尽管这需要我提前知道我的终端宽度。我希望有某种方法可以less很好地换行,并在调整终端窗口大小时自动重新格式化它们。
我有一台Mac。我想使用CentOS 附带的GNU ,因为它比 BSD Mac 版本功能更全。具体来说,在 CentOS 机器上给出:scriptman script
Run Code Online (Sandbox Code Playgroud)-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.
而我的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 …
我想使用 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,我想有一种方法可以解决此问题。可能首先重新创建目录结构,然后创建链接。