我现在正在准备 Linux 终端评估,我尝试了谷歌,发现大多数资源都指的是基本的“grep”而不是更强大的“egrep”——嗯,这至少是教授在讲座中所说的。
我总是在处理小样本,所以性能调优是一件很遥远的事情。
所以基本上我想知道是否有任何地方我必须切换到 egrep 才能以更好的方式做到这一点?现在使用基本的“grep”是否安全?会不会有潜在风险?
抱歉我对 Linux shell 命令的了解有限,手册页对我来说就像一个迷宫,老实说我没有花太多时间来理解这两个命令提供的所有功能。
我在 ubuntu 10.4 上,我的外壳是bash. 当我打开几个 gnome 终端并关闭它们时,历史记录被正确附加。当我进入时,shopt它说:
histappend off
Run Code Online (Sandbox Code Playgroud)
谁能告诉我追加行为的配置位置?
我正在尝试在 Cygwin 中构建一个 bash 脚本,它将 HTML 文件转换为 RTF。在 OS X 中,这对 来说是微不足道的textutils,但对于常规 Linux 或 Cygwin 来说并不存在。相反,我试图从命令行使用 OpenOffice。
我读过其他地方的OpenOffice可以正常安装的程序headlessly运行/usr/bin/ooffice,但在Cygwin的Windows下这显然是行不通的,OpenOffice的安装程序没有内置本地Cygwin的符号链接,并甚至可能没有安装Windows当量ooffice。
如何从 Cygwin 的命令行使用 OpenOffice 将 HTML 文件转换为 RTF 文件?
在我看来,Ruby 的功能要强大得多,而且您还可以用它编写更强大的脚本。
是否有任何开源实现可以在 Ubuntu 上用 Ruby 替换 Bash,以便您可以使用 Ruby 而不是 Bash 命令。
就像 Ruby shell 而不是 Bash shell。
我的脚本包含如下内容:
ifc=$(ifconfig)
Run Code Online (Sandbox Code Playgroud)
有了这个,ifc变量包含命令的输出ifconfig但没有换行符。所以,当我用它打印时,echo $ifc我只得到一行。
如何包含子命令的换行符?
我对 Ubuntu 还很陌生,我很喜欢它!
但是我不太明白shell和终端之间的区别。谁能解释一下?有人告诉我,终端只是查看外壳的“工具”,类似于使用 Firefox 或 Chrome 等浏览器“查看”网络。
他的比喻正确吗?另外Ubuntu的默认shell是什么?Bash、tcshell 或其他什么?
我有一台 MacbookPro Lion,我尝试归档我的文件,如果源比目标新,我试图复制和覆盖这些文件。我尝试了以下命令
cp -u source destination
Run Code Online (Sandbox Code Playgroud)
但它说, -u 是非法的。我也没有在man cp.
你能帮忙吗,在这种情况下我该怎么办?
[我有问题从 SO 移到这里,所以请随时再次回答。我希望这是处理这个问题的正确方法]
mtime's-和+switch有什么区别,因为两者都没有带回我需要的结果?
我想删除所有超过 5 天的文件:
find /mnt/sdb1/tmp/ -type f -mtime +5 -exec ls {} \;
find /mnt/sdb1/tmp/ -type f -mtime -5 -exec ls {} \;
Run Code Online (Sandbox Code Playgroud)
我已将输出更改为ls以比较结果。
我正在尝试在 Mac OS X 终端上编写一个简单的别名来复制当前工作目录。我有这个:
alias cpwd="echo \`pwd\` | pbcopy; echo \"Copied \`pwd\`\""
Run Code Online (Sandbox Code Playgroud)
然后我可以运行以下命令来复制它:
$ cpwd
Run Code Online (Sandbox Code Playgroud)
问题是最后echo pwd包含换行符。所以当我粘贴它时,它会立即执行(如果粘贴在终端中)。
我想要做的就是去掉试用换行符,但我在互联网上找到的任何东西似乎都不适合我。看过涉及sed,awk和 的各种解决方案cut,但我不太明白。似乎很容易做到。
是否可以在一个命令中对文件中的多次出现进行 grep 计数?例如:
$ cat > file
blah alfa
beta blah
blah blahgamma
gamma
Run Code Online (Sandbox Code Playgroud)
我可以:
grep -c 'alfa' file
1
grep -c 'beta' file
1
grep -c 'gamma' file
2
Run Code Online (Sandbox Code Playgroud)
但是有可能像这样:
grep -c -e 'alfa' -e 'beta' -e 'gamma' -somemoreblackmagic file
Run Code Online (Sandbox Code Playgroud)
并获得每个人的计数?
alfa 1
beta 1
gamma 2
Run Code Online (Sandbox Code Playgroud) bash ×10
linux ×3
macos ×2
newlines ×2
script ×2
shell ×2
terminal ×2
conversion ×1
cygwin ×1
find ×1
grep ×1
openoffice ×1
osx-lion ×1
ruby ×1
ubuntu ×1
ubuntu-10.04 ×1
unix ×1
whitespace ×1