小编Zai*_*aid的帖子

为什么我的 Bash 脚本不能识别别名?

在我的~/.bashrc文件中有两个定义:

  1. commandA,这是更长路径的别名
  2. commandB,这是 Bash 脚本的别名

我想用这两个命令处理同一个文件,所以我写了以下 Bash 脚本:


#!/bin/bash

for file in "$@"
    do
    commandA $file
    commandB $file
done
Run Code Online (Sandbox Code Playgroud)

即使在退出会话并重新登录后,command not found当我运行此脚本时,Bash 仍会提示我输入两个命令的错误。

我究竟做错了什么?

bash alias

272
推荐指数
5
解决办法
22万
查看次数

有没有办法动态刷新 less 命令?

我喜欢这个watch命令,但它有它的局限性

我很想知道我是否可以模仿watchwith的功能less。我主要是寻找滚动浏览我的目录的能力,因为它通过运行脚本动态修改。

less watch

164
推荐指数
7
解决办法
16万
查看次数

什么时候需要 xargs?

xargs命令总是让我困惑。是否有一般规则?

考虑下面的两个例子:

$ \ls | grep Cases | less
Run Code Online (Sandbox Code Playgroud)

打印与“案例”匹配的文件,但将命令更改为touch将需要xargs

$ \ls | grep Cases | touch
touch: missing file operand
Try `touch --help' for more information.

$ \ls | grep Cases | xargs touch
Run Code Online (Sandbox Code Playgroud)

command-line xargs

140
推荐指数
5
解决办法
6万
查看次数

比较 Vim 中的两个文件

是否可以在 Vim 中并排查看两个文件?如果是这样,我如何设置我的编辑器来做到这一点,有没有办法diff在 Vim 中的两个文件之间?

我知道:next:prev命令,但这不是我所追求的。串联查看这两个文件真的很好。

vim diff

82
推荐指数
4
解决办法
14万
查看次数

少不是多吗?

当我执行more filenameand 时less filename,结果终端似乎非常相似。我可以导航和我相同的文件通过搜索(jSpace/pattern等)。

我很难相信less是这样more,反之亦然。两者之间有什么区别吗?

command-line less more

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

如何在 watch 命令的输出中滚动?

我使用该watch命令查看我的目录内容随着脚本在其上运行而发生的变化(通过watch ls dir/

这是一个很棒的工具,除了一旦条目数量填满屏幕的垂直长度,我似乎无法向下或向上滚动以查看所有内容。

有没有办法做到这一点?

watch

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

如何为我自己的电动工具添加手册页条目?

我不知道如何通过这些man页面提供我自己开发的专业脚本(主要用 Bash 和 Perl 编写)。

我必须遵循什么程序,是否需要编写特定格式的文档才能执行此操作?

man documentation

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

当我按下 'v' 键时,可以调用 vim 而不是默认的 vi 吗?

我要推出vim,而不是默认的vi编辑时,我打vless

是否有任何设置可以修改以允许我执行此操作?

less vim keyboard-shortcuts vi

25
推荐指数
1
解决办法
1万
查看次数

如何在 Ubuntu 上安装 perldoc?

Ubuntu 10.10 预装了 Perl 5.10.1,但奇怪的perldoc是它不是软件包的一部分。

$ perldoc
You need to install the perl-doc package to use this program.
Run Code Online (Sandbox Code Playgroud)

如何使此功能可用?

ubuntu perl software-installation

22
推荐指数
1
解决办法
3万
查看次数

在一行中将参数传递给多个命令

我希望能够在一行中对同一个文件运行多个命令。我目前这样做的方式是:

commandA file && commandB file && perl -ne '...' file
Run Code Online (Sandbox Code Playgroud)

我的直觉告诉我,应该有一种方法只提供一次文件名参数,然后通过管道xargs或类似的方式将它同时传递给两个命令:

find file | xargs commandA && xargs commandB && xargs perl -ne '...'
Run Code Online (Sandbox Code Playgroud)

当我尝试这个时,只有第一个命令运行。我怎样才能实现我想做的事?

command-line

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