Unix & Linux

Linux,FreeBSD和其他类似Un * x的操作系统用户的问答

1
如何启用定位和排队要构建的数据库?
在新的Ubuntu 10.4实例上,我尝试locate仅使用命令来接收错误 locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory 在其他系统上使用此命令时,我猜测这意味着尚未构建数据库(这是全新安装)。我相信它应该每天运行,但是我应该如何排队使其立即运行? 另外,如何确定“每日运行”?如果我有一个仅一次打开一个小时的盒子,那么数据库是否会自己建立?

2
终端自动完成:循环浏览建议
我在Ubuntu安装程序上安装了此软件,并且由于我切换到Fedora,所以我想对其进行设置,却忘记了如何做……这个想法很简单: 我不希望终端机在我加倍时向我显示建议tab,而是希望它在每次按动时循环显示所有可能的建议tab……这也可以在Vim中完成。 因此,当我键入gedit a并按tab它时,它将向我显示每个文件的第一个字母a。


2
各个分区表之间有什么区别?
当我想创建一个新的分区表时,我有以下选择: aix amiga bsd dvh gpt mac msdos pc98 sun loop msdos我猜gparted中的默认值似乎是“ MBR”分区表。但是,它gpt是较新的,但对Windows的支持较少。我已经使用Linux很长时间了,但是我从来没有真正研究过分区。 有哪些不同的选择及其区别?是否有推荐用于仅Linux磁盘的磁盘?


1
如何在zip中列出文件而不需要命令行中的其他信息
在我的bash命令行中,当我使用时,unzip -l test.zip我得到如下输出: Archive: test.zip Length Date Time Name --------- ---------- ----- ---- 810000 05-07-2014 15:09 file1.txt 810000 05-07-2014 15:09 file2.txt 810000 05-07-2014 15:09 file3.txt --------- ------- 2430000 3 files 但是我只对包含文件详细信息的行感兴趣。 我试图使用grep进行过滤,如下所示: unzip -l test.zip | grep -v Length | grep -v "\-\-\-\-" | g -v Archive | grep -v …

3
如何将有色差异输出减少?
我一直在使用git diff,它产生彩色输出。但是,我现在发现我需要对某些东西使用普通的diff,并且由于缺少颜色,它会产生很多难以阅读的输出。如何使diff产生可读的彩色输出?理想情况下,通过管道将其减少到更少,以便于查看大文件。
37 colors  diff  less 

5
如何使用查找重命名多个文件
我想使用命令find命令重命名多个文件(file1 ... filen到file1_renamed ... filen_renamed): find . -type f -name 'file*' -exec mv filename='{}' $(basename $filename)_renamed ';' 但是得到这个错误: mv: cannot stat ‘filename=./file1’: No such file or directory 这不起作用,因为文件名未解释为外壳变量。
37 shell  find 


8
如何使Vim表现得像“ tail -f”?
我想知道是否有一种方法可以使Vim表现得像tail -f。 即使是到目前为止我发现的最好的Vim插件也无法达到我的期望。 我真的很想实时查看文件更新。即使我没有键盘,我也希望Vim不断重新加载缓冲区并跳到最后一行。 这个怎么做? (我不想重新加载整个文件,因为某些日志文件非常大。最好的是只加载最后一行,就像这样tail -f做。)
36 vim  tail 


1
我们是否应该在bash / shell脚本中使用UTF-8字符(如⏰)?
如果使用bash以下命令启动,则这里的简单代码可以在我的机器上按预期工作: function ⏰(){ date } ⏰ 使用此工具的其他人可能会遇到问题,还是通用? 我想知道,因为到目前为止,我从未在其他源代码中看到过类似的东西。 编辑:有无限的可能性,例如,可以通过使用表情符号来快速区分功能角色。 💣表示可以修改或删除文件的内容,a表示正在进行的工作,📃表示交互式菜单... 我想我们应该为所有这些创建一个标准,但这似乎是一个有趣的想法。 也许〜5个字符的随机行可以帮助我们了解代码的功能。(当然,我们需要学习如何阅读它们。) 更多编辑:我正在试一试。现在,如果我在编辑器(Or cat myscript.sh|grep function)中折叠所有函数,它们将看起来像这样。(geany与此处相比,我的unicode在终端中看起来要好得多。) function ⬚_1(){ function ⬚⬚_2(){ function ⬚⬚⬚_📃_D(){ function ⬚⬚⬚⬚_📃_X(){ function ⬚⬚⬚⬚⬚_📃_Y(){ function ⬚⬚⬚⬚⬚⬚_❓_P(){ function ⬚⬚⬚⬚_📃_Z(){ function ⬚⬚⬚⬚⬚_❓_U(){ function ⬚⬚⬚⬚⬚_❓_O(){ 我使用一个奇怪的缩进⬚来展示功能之间的相互关系,并使用符号📃/❓来清楚地区分它们的作用。(当然,这些不是我的真实函数名称,我只是在最后加上一个随机字母,但是即使没有它们,我们也可以清楚地看到它们之间的关系。)
36 bash  shell  unicode 

3
为什么打开文件比读取可变内容快?
在bash脚本中,我需要/proc/文件中的各种值。到目前为止,我有数十行代码直接像这样对文件进行grep: grep -oP '^MemFree: *\K[0-9]+' /proc/meminfo 为了提高效率,我将文件内容保存在一个变量中并对其进行grep化: a=$(</proc/meminfo) echo "$a" | grep -oP '^MemFree: *\K[0-9]+' 与其多次打开文件,不如将其打开一次并grep变量内容,我认为这会更快-但实际上它更慢: bash 4.4.19 $ time for i in {1..1000};do grep ^MemFree /proc/meminfo;done >/dev/null real 0m0.803s user 0m0.619s sys 0m0.232s bash 4.4.19 $ a=$(</proc/meminfo) bash 4.4.19 $ time for i in {1..1000};do echo "$a"|grep ^MemFree; done …

3
管道如何限制内存使用量?
Brian Kernighan在此视频中解释了贝尔实验室基于内存限制而对小语言/程序的早期吸引力 一台大机器将是64 k字节,即K,而不是M或G,这意味着任何单个程序都不会太大,因此自然会倾向于编写小程序,然后编写管道机制,基本上是输入输出重定向,因此可以将一个程序链接到另一个程序。 但是考虑到数据必须存储在RAM中才能在程序之间传输,因此我不理解这如何限制内存使用。 来自维基百科: 在大多数类似Unix的系统中,管道的所有进程都是同时启动的[强调我的],并适当地连接它们的流,并由调度程序以及计算机上运行的所有其他进程进行管理。其中一个重要方面是将Unix管道与其他管道实现区分开来,它是缓冲的概念:例如,发送程序每秒可以产生5000个字节,而接收程序每秒只能接受100个字节,但没有。数据丢失。而是将发送程序的输出保存在缓冲区中。当接收程序准备读取数据时,管道中的下一个程序将从缓冲区读取数据。在Linux中,缓冲区的大小为65536字节(64KB)。如果需要,可以使用称为bfr的开源第三方过滤器来提供更大的缓冲区。 这使我更加困惑,因为这完全破坏了小程序的目的(尽管它们会在一定程度上模块化)。 作为第一个问题(内存限制取决于大小数据的问题),我唯一能想到的解决方案是,那时根本就不会计算大型数据集,而真正的问题管道本应解决的是程序本身所需的内存量。但是考虑到Wikipedia引号中的粗体字,即使这样也使我感到困惑:因为一次不会执行一个程序。 如果使用了临时文件,那么所有这些都将非常有意义,但是据我了解,管道不会写入磁盘(除非使用交换)。 例: sed 'simplesubstitution' file | sort | uniq > file2 对我来说sed很明显,正在读取文件并逐行吐出。但是sort,正如BK在链接的视频中指出的那样,它是一个句号,因此必须将所有数据读入内存(或对吗?),然后将其传递给uniq,(我认为)这将是一个一次在线程序。但是在第一个和第二个管道之间,所有数据都必须存储在内存中,不是吗?
36 pipe  history 

6
从目录中删除数十亿个文件,同时查看进度
我有一个30 TB的目录,其中包含数十亿个文件,这些目录正式是所有JPEG文件。我正在删除文件的每个文件夹,如下所示: sudo rm -rf bolands-mills-mhcptz 该命令仅运行,无论是否运行,均不显示任何内容。 我想看到它正在删除文件或命令的当前状态是什么。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.