小编Kus*_*nda的帖子

如何用`ls`关闭颜色?

ls,grep等输出颜色通常很好。但是当您不想要它时(例如在将结果传送到另一个命令的脚本中)是否有可以将其关闭的开关? 如果它不是默认设置,则将其ls -G打开(使用某些BSD 派生版本ls),但ls +G不会将其关闭。还有什么会吗?

ls colors

64
推荐指数
3
解决办法
10万
查看次数


支持 XFA 表单的 Pdf 阅读器(不再支持适用于 Linux 的 Adob​​e Reader)?

XFA 表单是 pdf 文件的功能,涉及完成某些文档中的字段的选项 - 在许多情况下是官方文档。这些选项可能会打开一个日历,例如,为了选择日、月和年等。通常这些表格确保使用某种官方格式。

我已经看到 Okular 显示不支持 XFA 表单的警告:

在此处输入图片说明

在此处输入图片说明

更多在这里

在 Okular 中选择“显示表单”,可以编辑这些字段并保存更改,但与我在 Windows 中使用 Adob​​e Reader 看到的相比,只有其中的一部分可以通过这种方式真正访问:没有日历选项,并且单独的日/月/年字段不存在,这可能会引起对结果正确性的质疑。

Adobe Reader 9仍然可以安装在 Ubuntu 14.04 中,但这似乎是一个非常有限的选择。

是否有可以使用完全 XFA 表单的原生 pdf 阅读器?

(如果不是,Wine 是解决方案吗?)


Ubuntu 14.04 的解决方案适用于 16.04。也。


我测试的文件在这里

software-rec pdf

58
推荐指数
4
解决办法
5万
查看次数

如何将字符串传递给需要文件的命令?

假设一个程序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)

当需要文件名参数时,如何将配方传递给命令?

我想创建一个临时文件只是为了传递文件,但我想知道是否有其他方法可以解决这个问题。

bash shell-script

53
推荐指数
4
解决办法
2万
查看次数

如何使用 sed -i(就地编辑)实现可移植性?

我正在为我的服务器编写 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 实现这一点?

shell freebsd sed gnu portability

51
推荐指数
4
解决办法
2万
查看次数

较少的搜索总是不区分大小写的

试图找出如何使用不区分大小写的搜索,less在 serverfault 上找到了这个

这似乎完美地回答了我的问题。问题是:它在这里不起作用(OpenSUSE 13.1;少于 458)。

我有别名lessless -WiNS但我改变了。但即使称之为 ascommand less file也不会改变任何东西。我已经检查过命令行中ps不再有任何-i选项。

正如答案所说,less帮助(按h)指出我也可以-i在 内使用less。如果我使用一次,然后less告诉我它已更改为不区分大小写的搜索(这是正确的:没有任何变化)。如果我使用它两次,然后less告诉我它已转向区分大小写的搜索。是的,那么它从一开始就可以正常工作。但是-i,在命令行上提供两次不起作用。

这是怎么回事?

less case-sensitivity

49
推荐指数
5
解决办法
4万
查看次数

什么是 $PWD?(与当前工作目录相比)

所以维基百科(链接)告诉我该命令pwd是“打印工作目录”的缩写,这是有道理的。

但是对于环境变量,“P”必须是打印以外的其他内容的首字母缩写词。

我听到人们谈论“当前工作目录”,这听起来更好,更直观,但环境变量似乎仍然被称为 $PWD,而不是 $CWD。从来没有人说“你检查了打印工作目录变量了吗?”。

我目前正在使用 web 应用程序服务器 uWSGI,运行时它告诉我(在 uWSGI 统计页面上):

"cwd":"/home/velle/greendrinks",
Run Code Online (Sandbox Code Playgroud)

所以他们显然喜欢(更直观的首字母缩写词)cwdover pwd

我想我想弄清楚是我误解了什么,还是只是给环境变量一个不直观的名字?

terminology environment-variables

47
推荐指数
2
解决办法
11万
查看次数

mutt 有什么替代品吗?

我真的很喜欢 Mutt 的想法,在终端中阅读邮件。我对一些不一致和 imap 处理不太满意。我开始尝试寻找一些 mutt 的替代品,但我似乎找不到任何替代品。

linux 有哪些终端的 mutt 电子邮件客户端的替代方案?

software-rec email mutt

39
推荐指数
3
解决办法
2万
查看次数

如何从 csh 更改为 bash 作为默认 shell

我有csh我的默认外壳,如echo $SHELL. 我想切换到bash我的默认 shell。我尝试了以下方法无济于事:

  1. 随着chsh我得到:

    chsh: can only change local entries; use ypchsh instead.
    
    Run Code Online (Sandbox Code Playgroud)
  2. 随着ypchsh我得到:

    ypchsh: yppasswdd not running on NIS master host ("dcsun2").
    
    Run Code Online (Sandbox Code Playgroud)

我只有.chsrc在我的主目录中,我.profile/etc. 如何将我的默认 shell 更改为bash

shell

36
推荐指数
2
解决办法
18万
查看次数

ncat、nc 和 netcat 有什么区别?

我不确定何时使用nc,netcatncat。如果一个是另一个的弃用版本?如果一个仅在一个发行版上可用?如果它是相同的命令但名称不同?

其实我有点困惑。我的问题来自想要在两台 CentOS 7 服务器之间进行网络速度测试。我遇到了几个使用nc和 的例子,dd但使用netcat或 的例子并不多ncat

有人可以为我澄清一下吗?

centos netcat nc

36
推荐指数
2
解决办法
4万
查看次数