有没有办法gnu sed详细说明运行的内容和完成的内容?
我想要一个类似“调试模式”的东西,这样我就可以看到 - 对于每一行输入 - 脚本运行前后的保持空间和模式空间的内容等。
找到具有适合安装和运行 GNU/Linux 的硬件的笔记本电脑的最佳方法是什么?我正在寻找最适合与 GPL 驱动程序和/或固件一起使用的东西。
例如,我快速浏览了linux-on-laptops.com,但它们没有列出联想的一些较新型号。大多数测试用例似乎已经过时了。此外,鉴于如此多的信息,不清楚从哪里开始寻找。
不幸的是,FSF 网站没有列出许多笔记本电脑的可能性。来自 FSF 网站的LAC没有提到无线连接是他们笔记本电脑的一项功能,可能是因为固件问题。
我一直在寻找能够接受 ath9k 驱动程序的笔记本电脑,因为这些卡不需要固件,但从通用规格页面获取型号类型并不总是可能的。在线搜索 lspci 转储可能是掷骰子。
然后是从 FSF 的角度来看哪种显卡是理想的问题。来自 FSF 网站:
此页面并非详尽列表。此外,某些视频卡可以使用免费软件,但没有 3D 加速。
我想知道是否可以更改内核,例如,将 Fedora 的 Linux 内核替换为 FreeBSD 的内核。
现在,已经存在Debian GNU/kFreeBSD。我是否可以自定义 Linux 发行版以包含 BSD 内核?
似乎find必须检查给定的路径是否与文件或目录相对应,以便递归地遍历目录的内容。
这是一些动机以及我在本地所做的事情,以说服自己find . -type f确实比find .. 我还没有深入研究 GNU 查找源代码。
所以我正在备份我$HOME/Workspace目录中的一些文件,并排除属于我的项目或版本控制文件的依赖项的文件。
所以我运行了以下快速执行的命令
% find Workspace/ | grep -v '/vendor\|/node_modules/\|Workspace/sources/\|/venv/\|/.git/' > ws-files-and-dirs.txt
Run Code Online (Sandbox Code Playgroud)
find管道传输到grep可能是不好的形式,但它似乎是使用否定正则表达式过滤器的最直接方式。
以下命令仅包含 find 输出中的文件,并且花费的时间明显更长。
% find Workspace/ -type f | grep -v '/vendor\|/node_modules/\|Workspace/sources/\|/venv/\|/.git/' > ws-files-only.txt
Run Code Online (Sandbox Code Playgroud)
我编写了一些代码来测试这两个命令的性能(使用dash和tcsh,只是为了排除 shell 可能产生的任何影响,即使不应该有任何影响)。的tcsh,因为他们基本上是相同的结果已被忽略。
我得到的结果显示了大约 10% 的性能损失 -type f
下面是程序的输出,显示了执行 1000 次各种命令迭代所花费的时间。
% perl tester.pl
/bin/sh -c find Workspace/ >/dev/null
82.986582
/bin/sh -c find Workspace/ | grep -v '/vendor\|/node_modules/\|Workspace/sources/\|/venv/\|/.git/' …Run Code Online (Sandbox Code Playgroud) 我想要一种随机运行命令的方法,比如 10 次中的 1 次。是否有内置或 GNU coreutil 来执行此操作,理想情况下是这样的:
chance 10 && do_stuff
哪里do_stuff只执行了 10 次?我知道我可以写一个脚本,但这似乎是一件相当简单的事情,我想知道是否有一种定义的方式。
buitin bash 命令time提供毫秒精度的执行和 GNU time(通常是 /usr/bin/time)提供厘秒精度。的times(2)系统调用给出时钟倍,100个时钟= 1秒(通常),所以精度等GNU time。所以问题是 bashtime使用什么以使其更精确?
bash有一个方便的文件.bash_history,它保存命令的历史记录,并且在下次执行bash历史记录时填充保存的命令。
是否可以以bc相同的方式将命令历史记录保存到文件中,然后在启动时加载它以便保留 bc 历史记录?
我尝试阅读GNU bc 手册,它提到了readline和libedit。从ldd /usr/bin/bc我看到我的使用readline,并readline具有write_history和read_history功能。这个功能是在里面实现的bc还是我需要修补的bc?
如果我从当前日期中减去一个时间量,GNU 日期的工作方式很直观:
date '+%F %R'; date '+%F %R' --date='- 1 hour'
2021-04-19 15:35
2021-04-19 14:35
Run Code Online (Sandbox Code Playgroud)
但是,当我使用日期作为操作数时,结果出乎意料:
$ date '+%F %R' --date='2000/1/2 03:04:05 - 1 hour'
2000-01-02 06:04
$ date '+%F %R' --date='2000/1/2 03:04:05 + 1 hour ago'
2000-01-02 02:04
Run Code Online (Sandbox Code Playgroud)
怎样date理解$date - 1 hour表达?
在 GNU OS 中,如果另一个进程同时读取相同的数据(从同一管道),则进程只能将数据写入管道。
是否有类似管道的东西可以让第一个进程写入并缓冲数据,直到第二个进程读取它?
我在理解命令语法方面的选项和参数方面遇到了令人困惑的变化。
例如,我遇到了如下定义:
command -a -b -c d e f
有些在 之间有所不同-a -b -c,将它们称为选项或开关,d e f并将它们称为参数。
command -a -b -c d e f
有些,例如bash手册,调用所有-a -b -c d e f参数并解释说,它们都可以$1 $2 $3 $4 $5 $6分别从脚本中访问。
command -a b=c
有些调用-a一个选项,b一个参数和c值,但其他人像前两点一样将它们混合在一起,在一个变体中调用所有-a b c参数。
这三个版本只是大量不同调用变体的示例,我什至不知道如何将它们全部列出,但我注意到肯定没有固定的命名约定。
或者至少,我知道没有标准化的命名约定,因为我遇到了不同的随机来源,但即使在官方 Linux 和 GNU 附属站点或手册中,我也可能遇到这种不一致的情况。
有没有毫无疑问的官方命名方案可以参考?