Unix & Linux

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

4
有时历史记录命令未存储在.bash_history中
我昨天在CentOS 7中发布了许多命令。但是当我今天想检索这些命令时,我发现没有任何记录。当我打开文件时.bash_history,我仍然找不到昨天发出的命令,但几天前我发现了许多旧命令。为什么不存储最近的命令?如何增加历史记录功能?

3
在Vim中,如何从多行复制?(不是范围);
假设我有 1 - funct1 2- funct 2 3 - funct 3 4 line 4 如何复制第1行和第3行(不是行范围)并粘贴,例如在第8行?如果我|像(1y|3y)这样用arg进行操作,我会将行拉到几个寄存器,对吗?但是,如何一次从多个寄存器中放入?
20 vim 

6
如何以交互方式在bash中输入n个数字的n个重复
我想运行命令 foo --bar=baz <16 zeroes> 如何有效输入16个零*?如果按住不放Alt,1 6 0它将重复下一次操作160次,这不是我想要的。在emacs中,我可以使用Alt-[number]或Ctrl-u 1 6 Ctrl-u 0,但是在bash中,它会Ctrl-u杀死当前正在键入的行,而下一个零只会向该行添加一个0。 如果我做 foo --bar=baz $(printf '0%.0s' {1..16}) 然后history准确显示以上内容,而不显示foo --bar=baz 0000000000000000;即bash的行为不符合我的要求。(编辑:指向正,我想输入一些零而不使用$(...)命令替换) (*)我猜“有效”的技术定义是“使用O(log n)击键”,最好是击键的数量等于16中的位数(对于16的所有值)加上一个常数;这个定义使emacs示例具有效率。

2
在awk中不区分大小写的搜索
我需要使用awk搜索关键字,但是我想执行不区分大小写(不区分大小写)的搜索。 我认为最好的方法是将搜索字词(“关键字”)和awk同时读取的目标行都大写。根据这个问题,我如何使用toupper所有大写字母进行打印,但是我不知道如何在匹配项中使用它,因为该答案仅显示了打印内容,而没有将大写文本保留在变量中。 在给出此输入的情况下,这是一个示例: blablabla &&&Key Word&&& I want all these text and numbers 123 and chars !"£$%& as output &&&KEY WORD&&& blablabla 我想要这个输出: I want all these text and numbers 123 and chars !"£$%& as output 这就是我所拥有的,但是我不知道如何添加toupper: awk "BEGIN {p=0}; /&&&key word&&&/ { p = ! p ; next } …

5
为什么论据中间存在一个EOF?
我想编写一个小的bash函数,以便我可以告诉bash,import os否则from sys import stdout它将生成一个新的Python解释器,其中包含导入的模块。 后一个from函数如下所示: from () { echo "from $@" | xxd python3 -i -c "from $@" } 如果我这样称呼: $ from sys import stdout 00000000: 6672 6f6d 2073 7973 2069 6d70 6f72 7420 from sys import 00000010: 7374 646f 7574 0a stdout. File "<string>", line 1 from sys …
20 bash  python 


9
在行首grepping一个固定的字符串
grep "^$1"这类作品,但是我该如何逃脱,"$1"以便grep不会特别解释其中的任何字符? 或者,还有更好的方法? 编辑: 我不想搜索,'^$1'而是要搜索动态插入的固定字符串,该字符串仅在行首时才应匹配。这就是我的意思$1。
20 grep 


2
超时,管道中断和wc
我有一个想法可以快速对一些减压程序进行基准测试。例如,对于gz,我将运行以下命令: timeout 10 zcat foo.gz | wc -c 这将测量解压缩器可以在10秒内提取的数据量。 唯一的问题是,它不起作用:因为zcat被杀死,wc也被杀死,所以我没有得到字节数,只是一条Terminated消息。 因此,问题是:有没有一种方法可以通过某种方式阻止信号来从wc获取计数,或者使用替代方法而不是wc来打印结果,即使它获得了术语信号也是如此。 当然,还有其他选择: 写入临时文件: timeout 10 zcat foo.gz > /dev/shm/x ; du -sb /dev/shm/x ; rm -r /dev/shm/x 问题是使用大量内存,并且可能会降低性能。 使用ulimit代替: ulimit -t 10; zcat foo.gz | wc -c 这也可以,但是仅测量cpu时间,因此不会测量由于I / O(例如,由于压缩效果更差,需要从磁盘读取更多字节)而导致的速度降低。 制作较小的测试文件: 嗯,这当然可以工作,并且可能是最好的解决方案。但是,这会创建很多临时文件。
20 pipe  timeout 

1
命令sed'1!G; h; $!d'如何反转文件的内容?
我的问题与该答案中针对反向grepping的sed特定解决方案有关。我无法解读的/ 解决方案如下:sedgrep sed '1!G;h;$!d' file 有人可以解密此命令吗? 我从VI(M)的知识中知道G代表文件的最后一行,而sed bang(!)和后跟一个地址的工作方式有点像grep -v这样,也就是说它将不匹配该行。但总体而言,上面的内联sed脚本超出了我的范围。
20 sed 


3
Linux的man命令的最新源代码在哪里?
我正在寻找man命令的最新源代码,我的Linux版本很旧(v1.6f),但是在搜索了一段时间后我失败了。 我的意思是的最新源代码man,而不是可以编译和安装man-pages的二进制文件/usr/bin/man本身。
20 linux  man 


3
`<&-`是做什么的?
我将Bash的一个片段复制到远程执行的ssh命令的后台: ssh user@remote &lt;&lt;CMD some process &lt;&amp;- &gt;log 2&gt;error &amp; CMD 怎么&lt;&amp;-办? 我的猜测是,它与&lt; /dev/null 我的下一个理解是,三个主要的文件描述符(stdin,stdout,stderr)需要被关闭,以防止: 作业正在后台运行,脚本正在退出-发生冲突吗? 当终端关闭时,正在接受来自终端的stdin的所有进程都关闭了吗?

4
仅查看不断增长的日志文件中的新条目
tail -f x.log 我使用此命令在命令提示符下查看不断增长的日志文件。 我只对运行后看到写入文件的日志行tail -f感兴趣,而对在执行之前写入文件的日志不感兴趣tail -f。但是tail -f在启动时执行命令,将最后10行显示出来。 这使我感到困惑,有时这些日志是新生成的(或)它们是旧日志吗? 因此,我如何自定义tail -f仅输出新条目?
20 logs  tail 

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.