Unix & Linux

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

1
为什么某些正则表达式命令具有各种字符的相反的'\'解释?
以以下命令为例: find . -regex ".*\.\(cpp\|h\)" 这将在目录中找到所有的.h和.cpp文件。句号“。” 在正则表达式中通常表示“任何字符”。要使其仅与实际期间匹配,必须使用反斜杠字符“ \”对其进行转义。 在这种情况下,给定具有特殊含义的字符,您必须对其进行转义以获取其代表的实际字符。 现在,带括号和“或”栏,分别为字符“(”,“)”和“ |”。这些也具有特殊含义,用于对正则表达式进行分组。但是,要获得特殊含义,必须使用反斜杠对字符进行转义!没有反斜杠,字符具有它所代表的实际字符的含义。 为什么是“。” 与'(',')'和'|'不同吗?

5
动态符号链接
我为不同的体系结构构建了我的应用程序,并希望创建一个“动态符号链接”,该链接可根据变量将我带到正确的版本。 如果我当前登录的计算机是x86,则符号链接应将我带到该版本。 我想做什么的一个模拟例子: $ uname -i x86_64 $ ls -ltr lrwxr-xr-x 1 dogbane gg 4 Feb 16 15:40 mylink -> @sys/ drwxrwxr-x 2 dogbane gg 2048 Feb 16 15:40 x86_64/ drwxrwxr-x 2 dogbane gg 2048 Feb 16 15:40 i386/ $ cd mylink $ pwd -P ~/x86_64 这可能吗? 我知道我可以使用cd $(uname -i),但想要更简单的方法。
10 symlink 

2
screen + vim —有什么方法可以自动设置屏幕窗口名称以打开vim文件名?
我有一个非常漂亮的屏幕rc文件,该文件向我显示了打开的窗口,几乎就像终端底部的选项卡一样。目前,窗口是根据我的提示命名的,并不是那么有用。有没有一种方法可以根据窗口中当前打开的vim会话的文件名自动命名窗口?我认为如果可能的话,这将成为一个出色的多窗口编辑器。


3
如何将字幕轨道“刻录”到mp4视频文件
我想将字幕文件作为mp4视频文件的一部分,这样我就不必处理两个单独的文件。 我想象两种方式: 使字幕成为视频的固有部分。这将需要视频重新编码。 将字幕设为单独的流,但仍嵌入在同一视频文件中。这是更可取的,特别是因为我可以禁用它(与其他方法不同),甚至可以使用字体类型/大小。 我该如何做第二种方式?知道第一种方法的工作原理也很愚蠢。

5
使用单个内置命令在跨子目录的文件中查找子字符串?
在Windows中,如果我想在所有子目录中的所有文件中找到一个字符串,我会做类似的事情 findstr /C:"the string" /S *.h 但是,在Linux(例如,Ubuntu)中,除了找到涉及,和的管道命令外find,我别无其他方法(此页为示例:如何通过子目录递归grep?)。但是,我的问题就不同了:是否有任何内置命令可以通过这种魔术工作而无需编写我的shell脚本?xargsgrep
10 linux  grep  find  recursive 

3
在GNU屏幕下的vim中修复CTRL- *
在GNU屏幕下运行vim时,我发现CTRL带有箭头和Pg *键的组合无法正常工作。 我正在使用Ubuntu 10.10 vim-gnome软件包。 在另一台也运行Ubuntu的计算机上,它确实没有问题。不幸的是,我现在没有该配置。 这里有一个相关的问题:如何在Vim中修复Ctrl +箭头? 但是,建议的解决方案是重新映射vim的键绑定以与终端仿真器(在这种情况下为PuTTY)一起使用。我不记得做任何事情了,并且怀疑有一个屏幕配置选项可以解决此问题。 在gnu屏幕邮件列表上还有一个线程,它表明通过vim运行$ TERM=xterm vim是适当的修复或解决方法。确实可以,但是我有点担心可能会有副作用。听起来还不太熟悉,无法成为我在另一台机器上设置的解决方案(如果需要解决方案)。
10 ubuntu  vim  gnu-screen 

4
如何检查压缩文件是否为空?
有没有一种快速的方法来检查压缩文件是否为空,还是必须先将其解压缩? 例: $ touch foo $ if [ -s foo ]; then echo not empty; fi $ gzip foo $ if [ -s foo.gz ]; then echo not empty; fi not empty $ wc -l foo.gz 1 foo.gz

5
IFS(内部字段分隔符)可以用作多个连续定界符char的单个分隔符吗?
使用具有非空格值的IFS解析数组会创建空元素。 即使使用tr -s将多个delims缩小到一个delim是不够的。 有一个示例可以更清楚地说明问题。. 是否有一种方法可以通过对IFS进行调整来实现“正常”结果(是否有相关的设置来更改IFS的行为?....即,与默认空白相同) IFS。 var=" abc def ghi " echo "============== IFS=<default>" arr=($var) for x in ${!arr[*]} ; do echo "# arr[$x] \"${arr[x]}\"" done # sfi="$IFS" ; IFS=':' set -f # Disable file name generation (globbing) # (This data won't "glob", but unless globbing # is actually needed, …
10 bash  shell  scripting 

3
是什么导致VirtualBox OSE挂起我的机器?
我正在使用VirtualBox OSE,最近,当我在其上运行Ubuntu 10.10时,我的计算机倾向于挂起,迫使我对其进行硬重置(不好)。我如何开始查找问题所在? 这是重置之前“ / var / log / syslog ” 的最后一行: Jan 27 12:11:22 debian kernel: [ 193.400230] warning: `VirtualBox' uses 32-bit capabilities (legacy support in use) 注意事项: VirtualBox OSE版本为3.2.10 我在Debian Squeeze上使用32位2.6.37内核 使用Fedora 14 VM时无法重现此问题

4
Linux的分布式软件包存储库?
很多时候,我都看到过该说明,告诉用户不要过于频繁地更新其存储库(即每天更新一次),因为这会使服务器承受太大的压力。我也了解到,这样的存储库需要庞大的机器。 我想知道是否有像BitTorrent这样的软件包管理工具?或者,如果没有,拥有这样的系统是否可行? (我正在考虑一个系统,其中每个用户保留他们拥有的软件包并以与BitTorrent相同的方式为其提供服务。)

1
如何获取我的Shell函数以利用zsh中的现有自动完成功能?
我定义了几个shell函数,.zshrc这些函数可以节省键入并允许与屏幕集成。例如: function s() { screen -t "$1" ssh "$@" } 但是,当我使用这些Shell函数时,我无法利用zsh的内置命令完成功能。(对于SSH,将基于known_hosts和ssh_config自动完成主机名)。挂接到我为之创建包装器的命令的现有完成机制上的首选方法是什么? 编辑: 感谢Gilles在下面的回答。使用compdef似乎是实现此目的的方法,但有趣的是,它似乎无法统一工作。在这种情况下,我具有以下设置: function s() { screen -t "$1" ssh "$@" } function m() { screen -t "man.$1" man "$1" } compdef $_comps[man] m compdef $_comps[ssh] s 包装函数'm'的完成按预期工作,但是函数's'的完成不起作用;而不是尝试完成主机名,它可以通过单击“制表符”时向我提供文件列表来回退到默认的自动完成功能。SSH完成的处理方式是否有些奇怪,这意味着我需要做进一步的事情?
10 zsh  autocomplete 

1
conky:正确的列对齐
假设我想要以下内容 .conkyrc NAME PID CPU% MEM% ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3} ${top name 4} ${top pid 4} ${top cpu …
10 conky 

4
为什么echo“ bar” -n与echo -n“ bar”不同?
相比 echo -n "bar" 与 echo "bar" -n 前者做了我认为应该做的事情(打印“ bar”而不换行),而后者则没有。这是错误还是设计使然?为什么它与许多cli程序的不同之处在于您无法移动选项?例如,tail -f /var/log/messages与完全相同tail /var/log/messages -f。当我忘记了我想要前者时,有时会做后者,因为在内部通常通过getopt重新排列选项和参数。 更新:是的,我最初讨厌我的问题。我删除了您必须查看历史才能使某些答案有意义的nerf。


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.