Unix & Linux

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

5
根据第三列排序
我面临着一个巨大的4列文件。我想根据其第三列在stdout中显示排序后的文件: cat myFile | sort -u -k3 这足以执行技巧吗?
130 files  sort 

2
轻松解压缩DEB,编辑postinst和重新打包DEB
我正在尝试安装英特尔的OpenCL SDK,但DEB文件是RPM的错误转换(有关好奇的信息,请参见此处)。我需要postinst在它们提供的DEB中编辑脚本。 如何获取现有的DEB,提取内容(包括控制信息),然后在以后重新打包内容以创建新的DEB?我只会编辑文件,不会添加或删除任何文件。

2
关闭笔记本电脑盖时如何禁用自动暂停?
我正在使用archlinux。在最近的系统升级之前,它永远不会自动挂起(也许我更新了内核?)。 我认为它与laptop-mode或有关acpid,所以我停止了它们: /etc/rc.d/laptop-mode stop /etc/rc.d/acpid stop 我也编辑/etc/laptop-mode/laptop-mode.conf: ENABLE_LAPTOP_MODE_TOOLS=0 然后我编辑/etc/acpi/actions/lm_lid.sh,注释掉最后一行: # /usr/sbin/laptop_mode auto 但是以上所有方法都不起作用。发现以下行/var/log/kernel.log(忽略了不相关的行): Oct 23 15:29:20 localhost kernel: [18617.549098] PM: Syncing filesystems ... done. Oct 23 15:29:20 localhost kernel: [18618.001898] PM: Preparing system for mem sleep Oct 23 15:29:30 localhost kernel: [18618.039565] Freezing user space processes ... (elapsed 0.01 seconds) …

8
Rsync过滤器:仅复制一种模式
我正在尝试创建一个目录,该目录将仅容纳从LaTeX编译的所有PDF。我喜欢将每个项目都放在一个单独的文件夹中,所有项目都放在一个名为的大文件夹中LaTeX。所以我尝试运行: rsync -avn *.pdf ~/LaTeX/ ~/Output/ 它将在其中找到所有pdf ~/LaTeX/并将其传输到输出文件夹。这行不通。它告诉我找不到与“ *.pdf” 匹配的内容。如果我不使用此过滤器,该命令将列出LaTeX下所有项目文件夹中的所有文件。因此,*。pdf过滤器存在问题。我尝试用~/主目录的完整路径替换,但这没有任何效果。 我正在使用zsh。我尝试在bash中执行相同的操作,甚至使用列出了每个子目录中每个文件的过滤器进行操作...这是怎么回事? 为什么rsync无法理解我的仅pdf过滤器? 好。所以更新:不,我正在尝试 rsync -avn --include="*/" --include="*.pdf" LaTeX/ Output/ 这给了我整个文件列表。我猜是因为一切都与第一种模式相符...
128 backup  rsync  wildcards 

7
如何杀死一只失控的猫?
很多时候,我不小心cat在内容最多几千行的文件上运行命令。 我尝试cat使用Ctrl+ C或Ctrl+ 终止命令Z,但是这两个命令仅cat在终端的总输出显示后才生效,因此我必须等到cat完全执行后才能执行。 有没有更好的解决方案,可以避免等待?因为有时文件的大小最大为100MB,所以等待它会很烦人。 我正在使用tcsh。
128 shell  terminal  kill  cat  tcsh 


6
为什么不采用Linux作为正式的GNU内核?
尽管我在相当长一段时间内都知道了Hurd的存在及其作为官方GNU操作系统内核的使命,但我想知道多年来Linux为何不被视为官方GNU内核,因为它处于一个更好的状态比赫德? 到目前为止,Linux已经或多或少地担当了20多年的角色,但是人们可以看到GNU项目在涉及Linux方面一直在与时俱进。为什么会这样呢?是因为梦想赫德(在将来的某个时候)处于生产质量水平吗?是因为GNU项目在Linux中没有充分体现其使命吗?是否出于其他政治原因?
128 linux-kernel  gnu  hurd 


5
在tmux中重新编号窗口
我经常在tmux中遇到十多个窗口。后来,我关闭了一些旧的。有没有一种方法可以将第15窗口重编号为第3窗口(不再存在)?还是pack再次将它们全部收起来,以确保没有空的插槽?我想这样做是因为很难跳到编号更高的窗口,因为您做不到Ctrl+B, 15。我必须使用Ctrl+B, w列出窗口,然后键入与要打开的窗口相对应的字母。 我知道我可以交换Windows。例如,我可以创建一个新窗口(Ctrl+B, c),该窗口将在空插槽3中打开。然后,我可以swapw窗口15和窗口3,然后关闭窗口15。显然,这是一个乏味的方法。 如何在tmux中管理许多窗口?
128 tmux 

1
在bash脚本中,在“ if”语句中使用条件“或”
这个问题是我先前提出的问题的后遗症。该站点上的用户好心地帮助我确定了如何编写一个for遍历字符串值的bash 循环。例如,假设循环控制变量fname遍历string "a.txt" "b.txt" "c.txt"。我想echo“是!” when fname具有值"a.txt"or "c.txt",并且为echo“ no!” 除此以外。我已经尝试了以下bash shell脚本: #!/bin/bash for fname in "a.txt" "b.txt" "c.txt" do echo $fname if [ "$fname" = "a.txt" ] | [ "$fname" = "c.txt" ]; then echo "yes!" else echo "no!" fi done 我得到的输出: a.txt 没有! b.txt 没有! c.txt 是! 为什么if当fname有值时语句显然产生true "a.txt"?我使用|不正确吗?
127 bash  shell-script 




8
仅列出当前目录中的常规文件(但不列出目录)
我可以ls -ld */用来列出当前目录中的所有目录条目。是否有类似的简单方法仅列出当前目录中的所有常规文件?我知道我可以用find find . -maxdepth 1 -type f 或统计 stat -c "%F %n" * | grep "regular file" | cut -d' ' -f 3- 但是这些并不让我觉得自己过于优雅。是否有一种很好的简短方法仅列出常规文件(我不在乎设备,管道等),而不列出当前目录的子目录?列出符号链接也将是一个加号,但不是必须的。
126 shell  files  ls  wildcards 

14
将字符串替换为一个巨大的(70GB)一行文本文件
我有一个巨大的(70GB),一行,文本文件,我想替换其中的一个字符串(令牌)。我想<unk>用另一个虚拟令牌替换该令牌(手套发行)。 我试过了sed: sed 's/<unk>/<raw_unk>/g' < corpus.txt > corpus.txt.new 但是输出文件corpus.txt.new有零字节! 我也尝试使用perl: perl -pe 's/<unk>/<raw_unk>/g' < corpus.txt > corpus.txt.new 但是我遇到了内存不足的错误。 对于较小的文件,以上两个命令均有效。 如何替换这样的文件字符串? 这是一个相关的问题,但是没有一个答案对我有用。 编辑:将文件分成10GB(或其他大小)的块,然后分别应用于sed每个文件,然后与它们合并,该cat怎么办?那有意义吗?有没有更优雅的解决方案?

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.