从ls,grep等输出颜色通常很好。但是当您不想要它时(例如在将结果传送到另一个命令的脚本中)是否有可以将其关闭的开关? 如果它不是默认设置,则将其ls -G打开(使用某些BSD 派生版本ls),但ls +G不会将其关闭。还有什么会吗?
Unix 的创造者肯·汤普森(Ken Thompson)曾被问到,如果让他重来,他会怎么做。他说,“我会用 'e' 来拼写 creat。”
肯指的是什么?是否有“创建”命令?
XFA 表单是 pdf 文件的功能,涉及完成某些文档中的字段的选项 - 在许多情况下是官方文档。这些选项可能会打开一个日历,例如,为了选择日、月和年等。通常这些表格确保使用某种官方格式。
我已经看到 Okular 显示不支持 XFA 表单的警告:
更多在这里。
在 Okular 中选择“显示表单”,可以编辑这些字段并保存更改,但与我在 Windows 中使用 Adobe Reader 看到的相比,只有其中的一部分可以通过这种方式真正访问:没有日历选项,并且单独的日/月/年字段不存在,这可能会引起对结果正确性的质疑。
Adobe Reader 9仍然可以安装在 Ubuntu 14.04 中,但这似乎是一个非常有限的选择。
是否有可以使用完全 XFA 表单的原生 pdf 阅读器?
(如果不是,Wine 是解决方案吗?)
Ubuntu 14.04 的解决方案适用于 16.04。也。
我测试的文件在这里。
假设一个程序cook接受一个参数:包含要烹饪的食物配方的文本文件的路径名。假设我想从bash脚本中调用这个程序,还假设我已经在一个字符串变量中拥有了配方:
#!/bin/bash
the_recipe="$(cat << EOF
wash cucumbers
wash knife
slice cucumbers
EOF
)"
cook ... # What should I do here? It expects a file, but I only have a string.
Run Code Online (Sandbox Code Playgroud)
当需要文件名参数时,如何将配方传递给命令?
我想创建一个临时文件只是为了传递文件,但我想知道是否有其他方法可以解决这个问题。
我正在为我的服务器编写 shell 脚本,这是一个运行 FreeBSD 的共享主机。我还希望能够在运行 Linux 的 PC 上本地测试它们。因此,我试图以可移植的方式编写它们,但sed我认为没有办法做到这一点。
我的网站的一部分使用生成的静态 HTML 文件,并且此 sed 行在每次重新生成后插入正确的 DOCTYPE:
sed -i '1s/^/<!DOCTYPE html> \n/' ${file_name.html}
Run Code Online (Sandbox Code Playgroud)
它适用sed于 Linux上的 GNU ,但 FreeBSDsed期望-i选项后的第一个参数是备份副本的扩展名。这是它的样子:
sed -i '' '1s/^/<!DOCTYPE html> \n/' ${file_name.html}
Run Code Online (Sandbox Code Playgroud)
但是,GNUsed反过来又希望表达式紧跟在 之后-i。(它还需要修复换行符处理,但这里已经回答了)
当然,我可以在脚本的服务器副本中包含此更改,但这会造成混乱,即我使用 VCS 进行版本控制。有没有办法以完全可移植的方式使用 sed 实现这一点?
试图找出如何使用不区分大小写的搜索,less我在 serverfault 上找到了这个。
这似乎完美地回答了我的问题。问题是:它在这里不起作用(OpenSUSE 13.1;少于 458)。
我有别名less,less -WiNS但我改变了。但即使称之为 ascommand less file也不会改变任何东西。我已经检查过命令行中ps不再有任何-i选项。
正如答案所说,less帮助(按h)指出我也可以-i在 内使用less。如果我使用一次,然后less告诉我它已更改为不区分大小写的搜索(这是正确的:没有任何变化)。如果我使用它两次,然后less告诉我它已转向区分大小写的搜索。是的,那么它从一开始就可以正常工作。但是-i,在命令行上提供两次不起作用。
这是怎么回事?
所以维基百科(链接)告诉我该命令pwd是“打印工作目录”的缩写,这是有道理的。
但是对于环境变量,“P”必须是打印以外的其他内容的首字母缩写词。
我听到人们谈论“当前工作目录”,这听起来更好,更直观,但环境变量似乎仍然被称为 $PWD,而不是 $CWD。从来没有人说“你检查了打印工作目录变量了吗?”。
我目前正在使用 web 应用程序服务器 uWSGI,运行时它告诉我(在 uWSGI 统计页面上):
"cwd":"/home/velle/greendrinks",
Run Code Online (Sandbox Code Playgroud)
所以他们显然喜欢(更直观的首字母缩写词)cwdover pwd。
我想我想弄清楚是我误解了什么,还是只是给环境变量一个不直观的名字?
我真的很喜欢 Mutt 的想法,在终端中阅读邮件。我对一些不一致和 imap 处理不太满意。我开始尝试寻找一些 mutt 的替代品,但我似乎找不到任何替代品。
linux 有哪些终端的 mutt 电子邮件客户端的替代方案?
我有csh我的默认外壳,如echo $SHELL. 我想切换到bash我的默认 shell。我尝试了以下方法无济于事:
随着chsh我得到:
chsh: can only change local entries; use ypchsh instead.
Run Code Online (Sandbox Code Playgroud)随着ypchsh我得到:
ypchsh: yppasswdd not running on NIS master host ("dcsun2").
Run Code Online (Sandbox Code Playgroud)我只有.chsrc在我的主目录中,我.profile在/etc. 如何将我的默认 shell 更改为bash?
我不确定何时使用nc,netcat或ncat。如果一个是另一个的弃用版本?如果一个仅在一个发行版上可用?如果它是相同的命令但名称不同?
其实我有点困惑。我的问题来自想要在两台 CentOS 7 服务器之间进行网络速度测试。我遇到了几个使用nc和 的例子,dd但使用netcat或 的例子并不多ncat。
有人可以为我澄清一下吗?
shell ×2
software-rec ×2
bash ×1
centos ×1
colors ×1
email ×1
freebsd ×1
gnu ×1
history ×1
less ×1
ls ×1
mutt ×1
nc ×1
netcat ×1
pdf ×1
portability ×1
sed ×1
shell-script ×1
terminology ×1