小编Sea*_*mus的帖子

为什么“ls”在以前很大的小目录中需要很长时间?如何解决这个问题?

我正在运行 Arch Linux,并使用 ext4 文件系统。

当我ls在一个现在实际上很小但曾经很大的目录中运行时 - 它会挂起一段时间。但是下次我运行它时,它几乎是瞬间的。

我试着做:

strace ls
Run Code Online (Sandbox Code Playgroud)

但老实说,我不知道如何调试输出。如有必要,我可以发布它,尽管它超过 100 行。

而且,不,我没有使用任何别名。

$ type ls
ls is hashed (/usr/bin/ls)

$ df .
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda9      209460908 60427980 138323220  31% /home
Run Code Online (Sandbox Code Playgroud)

ls bash ext4

43
推荐指数
2
解决办法
6150
查看次数

如何禁用日志记录?

我最近了解到它journalctl占用了我的 16GB SD 卡(Raspberry Pi)的很大一部分:

\n
$ journalctl --disk-usage\nArchived and active journals take up 312.1M in the file system.  \n
Run Code Online (Sandbox Code Playgroud)\n

我没有这种感觉,journalctl并且在我的这台机器的用例中发挥journald作用。\n它是一个老式的 RPi,并且rsyslog也在运行。我估计我对它的需求和使用journalctl可能是“千载难逢”。因此,我决定禁用journald- which “feeds” journalctl。我认为这很简单,使用systemctlto stop,或者可能只是disableing ,systemd-journald.service这样它就不会在下次启动时启动。

\n

在拔掉插头之前,我决定做一些研究。没有找到数千个提供“操作方法”建议的参考文献,而是针对我的特定搜索词“如何禁用日志”的结果非常少。相反,结果主要提供了减少journald资源消耗的建议。我确实找到了一些让我犹豫的参考资料:

\n

ArchLinux 论坛中的一个旧帖子表明,不可能journald在没有影响的情况下禁用它;即"Masking systemd-journald causes all kinds of dependency failures and drops you at an …

rsyslog systemd systemd-journald

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

`awk` 可以对指定行数的列求和

我已经查看了“类似问题”,但似乎没有一个能解决我的问题:

我有一个很大的 CSV 输入文件;文件中的每一行都是一个x,y数据点。这里有几行用于说明,但请注意,通常数据不是 单调的

1.904E-10,2.1501E+00  
3.904E-10,2.1827E+00  
5.904E-10,2.1106E+00  
7.904E-10,2.2311E+00  
9.904E-10,2.2569E+00  
1.1904E-09,2.3006E+00  
Run Code Online (Sandbox Code Playgroud)

我需要创建一个小于输入文件的输出文件。对于输入文件中的每N 行,输出文件将包含不超过 一行。在输出文件中的每个单个线将是一个数据点,这是平均的的值N行的输入文件。x,yx,y

例如,如果输入文件中的总行数为 3,000,并且N=3,则输出文件将包含不超过1,000 行。使用上面的数据来完成这个例子,上面的前 3 行数据将被替换为一行,如下所示:

x = (1.904E-10 + 3.904E-10 + 5.904E-10) / 3 = 3.904E-10

y = (2.1501E+00 + 2.1827E+00 + 2.1106E+00) / 3 = 2.1478E+00,或:

3.904E-10,2.1478E+00 
Run Code Online (Sandbox Code Playgroud)

对于输出文件的一行。

我已经摆弄了一段时间,但还没有弄好。这是我一直在使用的,但我看不到如何迭代NR值以处理整个文件:

awk -F ',' 'NR == 1, NR == 3 {sumx += $1; avgx = …
Run Code Online (Sandbox Code Playgroud)

awk numeric-data

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

将 MacOS 上的手册页传送到编辑器中

使用bash在Mac OS编辑一些man为我所用的网页。

在 Mac OS 中,该命令open -t filename将在系统的默认文本编辑器中打开指定的文件。

$ man somepage | col -b
Run Code Online (Sandbox Code Playgroud)

将正确呈现指定man页面。我想要做的是在文本编辑器中打开呈现的手册页。我可以按如下方式完成此操作:

man somepage | col -b > filename && open -t filename
Run Code Online (Sandbox Code Playgroud)

我可能应该对此感到满意,但我在我的脑海中意识到必须有一种“更好的方法”来仅使用管道和重定向来做到这一点。此外,上面的命令倾向于用我可能不需要保留的文件“乱扔”我的文件系统 - 因此需要另一个步骤来删除 cruft。理想情况下,我可以在没有文件名或每次调用时覆盖的通用文件名的情况下在编辑器中打开呈现的手册页。我已经花了大约一个小时来解决这个问题,尝试不同的事情,但无济于事。

对我来说最有意义的是:

$ open -t < man somepage | col -b
Run Code Online (Sandbox Code Playgroud)

或这个:

$ open -t &1 < man somepage | col -b
Run Code Online (Sandbox Code Playgroud)

但当然这不起作用,因为外壳将其man作为文件名。我什至接近做对了吗?我愚蠢的尝试吗?

osx man editors pipe io-redirection

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

使用 less / search 命令时使用锚 ^ 模式

在浏览 Linux 手册页时,有时您需要查询手册页中诸如-p或 之类的标志的含义。-al

手册页的默认文本阅读器较少,我尝试使用 / 搜索来查找公共标志列表定义中的第一个匹配项:

/^-p
Run Code Online (Sandbox Code Playgroud)

Pattern not found发生了却不起作用。

这个技巧在 vim 中工作时有效,但在阅读手册页时不适用于 less。

有没有办法实现这个要求呢?

less man search pattern-matching

5
推荐指数
1
解决办法
737
查看次数

在 Debian bullseye 中,systemd-timesyncd 是否检查其他 ntp 守护进程?

我已经用它systemd-timesyncd作为我的系统计时器好几年了。我为我的 Raspberry Pi 运行一个名为raspbian的 Debian衍生产品。我对 SNTP 客户端非常满意,但想尝试在离网应用程序中使用。systemd-timesyncdchronyd

以下命令可用于列出配置systemd-timesyncd

$ systemctl cat systemd-timesyncd
Run Code Online (Sandbox Code Playgroud)

buster中,此清单中有一段代码,systemd-timesyncd如果发现安装了另一个计时服务(NTP守护进程),则可以“原谅自己”:

# /lib/systemd/system/systemd-timesyncd.service.d/disable-with-time-daemon.conf
[Unit]
# don't run timesyncd if we have another NTP daemon installed
ConditionFileIsExecutable=!/usr/sbin/ntpd
ConditionFileIsExecutable=!/usr/sbin/openntpd
ConditionFileIsExecutable=!/usr/sbin/chronyd
ConditionFileIsExecutable=!/usr/sbin/VBoxService
Run Code Online (Sandbox Code Playgroud)

buster发布后的某个时刻(与bullseye同时发布??),上述方案被更改;如果发现其他计时器,该命令不再包含任何限制或禁止启动的引用。systemctl cat systemd-timesyncdsystemd-timesyncd

有谁还记得这个变化的历史吗?更重要的是,systemd-timesyncd如果发现安装了另一个计时守护进程,是否仍然会抑制其启动?这是在哪里/如何完成的?

raspbian chrony systemd-timesyncd

5
推荐指数
1
解决办法
1095
查看次数

vim 可以在不退出的情况下关闭文件吗?

我在 中打开了一个文件vim,并且我已经完成了编辑。有没有办法让我关闭文件(或缓冲区)以使vim屏幕空白?

vim

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

为什么 `ssh-agent -k` 没有杀死 ssh-agent (macOS),或者为什么没有设置 `SSH_AGENT_PID`?

我正在尝试解决突然爆发的短期 SSH 连接问题。这些连接是从我的 Mac(MBP、Catalina 10.15.6 zsh)发起到我的网络上的一些 Linux “设备”,特别是Raspberry Pies。连接终止后,他们将消息留client_loop: send disconnect: Broken pipe在终端中。

但是:这仅作为背景提供,以防与我眼前的问题相关:

为什么命令ssh-agent -k不杀死ssh-agent

似乎失败是因为SSH_AGENT_PID未设置环境变量。我根据我在 Mac 终端应用程序中看到的内容猜测:

1.列出ssh​​相关进程

% pgrep -f ssh       
2138
75076
75942
75943
75944
% ps 2138     
  PID   TT  STAT      TIME COMMAND
 2138   ??  S      0:00.26 /usr/bin/ssh-agent -l
Run Code Online (Sandbox Code Playgroud)

PID2138ssh-agent,其他 PID 是ssh与 Raspberry 或 Ubuntu 盒子的活动连接 - 所有 Linux。

2.杀死ssh-agentIAW man …

ssh openssh ssh-agent

3
推荐指数
1
解决办法
4952
查看次数

`curl` 如何在 macOS 中访问 SSL 证书?

我使用的是 macOS 10.15.5 的 Macbook。我有 MacPorts,但我使用的是curl.

% curl --version
curl 7.64.1 (x86_64-apple-darwin19.0) libcurl/7.64.1 (SecureTransport) LibreSSL/2.8.3 zlib/1.2.11 nghttp2/1.39.2
Release-Date: 2019-03-27
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp 
Features: AsynchDNS GSS-API HTTP2 HTTPS-proxy IPv6 Kerberos Largefile libz MultiSSL NTLM NTLM_WB SPNEGO SSL UnixSockets
Run Code Online (Sandbox Code Playgroud)

当我尝试 d/l 最新的时youtube-dl,我收到证书错误:

% sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl
  % Total    % Received % Xferd  Average Speed   Time    Time     Time …
Run Code Online (Sandbox Code Playgroud)

curl https macos

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

如何将日期添加到 stderr(不是文件名,而是在日志文件中)?

我有一个crontab条目:
00 10 * * * test.sh>>output_log 2>>error_log

但我想也包括日期为output_logerror_log在每一天的开始行。

我怎样才能做到这一点?

我试过:

{ echo `date` && . test.sh; }>>output_log 2>>error_log
Run Code Online (Sandbox Code Playgroud)

但它仅在 output_log 中包含日期,因为echo date不被视为stderr因此不包含在2.

我想要这样的伪代码:

{ echo `date` && . test.sh }>>output_log { echo `date` plus 2's content } >>error_log  
Run Code Online (Sandbox Code Playgroud)

linux command

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

文件系统与 CIFS 的兼容性

我一直使用我的 Raspberry Pi 作为音乐文件服务器,但我对此并不满意。当前设置使用samba我的 RPi 上的服务器以及格式为 WD Passport USB 驱动器vfat。这是我的 Sonos 音乐系统的库:Sonos 安装驱动器,并在菜单中列出它找到的所有音乐供我选择。

大多数时候,Sonos 界面似乎可以与 RPi Samba 服务器顺利运行。然而,它在我的 MacOS 上运行得不太顺利。我使用 Mac 来维护音乐库,有两个主要的棘手问题:

  1. 必须通过 Samba 配置更改用户权限才能在音乐库中进行删除和添加
  2. 在 Mac 的 Finder 应用程序中浏览 RPi 上的 Samba 音乐共享会发现许多“遗漏和伪影”,而在使用 CIFS 的 NetgearNAS 上浏览内容完全相同的文件夹则完美无缺;见下图。

在此输入图像描述

一位朋友使用 NetgearNAS 作为他的 Sonos 系统的文件服务器。它工作非常可靠,并且“工件”不会出现在 Finder 中。他的 NetgearNAS 配置为使用CIFS(且仅 CIFS)。我想在我的 RPi 上尝试 CIFS,但到目前为止我的研究只会增加我的困惑。

最后,我的问题:

  1. SMB 和 CIFS 看似密切相关,但它们是“同一个东西”吗?如果不是,有什么区别?

  2. 一些来源将 CIFS 称为文件系统(在某种意义上ext4FAT32、 等是文件系统),而其他来源则将其称为网络协议。由于 没有 CIFS 扩展名mkfs,因此将 CIFS 称为文件系统的参考文献似乎会产生误导 - 或者我是否遗漏了某些内容?

  3. 如果CIFS只是一种网络协议,它是否仅限于特定的文件系统?即可以使用 …

filesystems samba cifs raspbian

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