标签: shell

如何使用 ls 仅列出非空文件?

如何ls使用 linux列出(使用)所有非空文件(大小 > 0)?

linux bash shell command-line ls

43
推荐指数
5
解决办法
8万
查看次数

为鱼重新使用“~/.profile”?

(我说的是贝壳,尤其是鱼的鱼。)

对于 Bash/ZSH,我有~/.profile一些导出、别名和其他东西。

我不想为 Fish 的环境变量单独配置,我想重新使用我的~/.profile. 如何?

在常见问题解答中,据说我至少可以通过 导入它们/usr/local/share/fish/tools/import_bash_settings.py,但是我真的不喜欢为每个 Fish 实例运行它。

.profile shell fish

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

如果没有 vi、vim、joe 等,如何编辑文件?

如果没有 vi、vim、joe、mcedit,有没有办法编辑文件?换句话说,有没有办法只使用 shell 命令来编辑文件?

linux text-editing shell text-editors editing

43
推荐指数
4
解决办法
9万
查看次数

Mac 中 Alt+Dot 的等效项/替代项

我在 Linux shell 中怀念的一件事是Alt+Dot快捷方式。它的作用是插入上一个命令的最后一个参数。这看起来是一个微不足道的技术,但它真的很有用。

即如果你输入这个:

$ ls /Applications/MAMP/conf/apache/
Run Code Online (Sandbox Code Playgroud)

下次您只需键入命令 + 快捷方式,参数就会为您完成。

$ cd 'alt+dot'
Run Code Online (Sandbox Code Playgroud)

在 Mac 上,我知道 2 个选择;按Esc+Dot或键入!$ , !*魔法空间设置

然而,虽然这两种替代方法都插入了您使用的最后一个参数,但它们无法像重复键入Alt+Dot那样在命令历史记录中向后滚动。

我现在可以接受这个选项,但我很想知道是否有人知道更好的方法。

linux mac terminal bash shell

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

Bash Shebang 为傻瓜?

我有一些主要使用的 bash 脚本

#!/bin/bash
Run Code Online (Sandbox Code Playgroud)

但我经常遇到一些看起来像

#!/bin/bash -e
#!/bin/bash -x
#!/bin/bash -ex
Run Code Online (Sandbox Code Playgroud)

等等。

有人可以解释这些shebang选项的含义和好处以及它们是否适用于其他shebang吗?

script bash shell

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

在linux中查找并删除所有名为“test”的目录

我有很多名为“test”的目录,我想删除它们。

我知道如何找到它们并使用以下方法打印它们:

find . -name test -print
Run Code Online (Sandbox Code Playgroud)

现在,如何删除目录?


请注意,我在目录中也有文件,它们也必须被删除。

linux unix shell

41
推荐指数
4
解决办法
7万
查看次数

多个标准输入?如何?

从这个commandlinefu 帖子

$ diff <(wget -q -O - URL1) <(wget -q -O - URL2)
Run Code Online (Sandbox Code Playgroud)

看起来像多个标准输入但是——如果我没有记错我的 Linux Porgramming 课程——这不可能。我认为,根据定义,标准输入是一个流。

也许这与标准输入有关?谁可以给我解释一下这个; 也许提供指向文档的链接。

奖励:脚本将如何处理这些多个流?如果有人可以提供 Python 或 Perl 示例,那将非常有帮助。

linux script shell

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

/etc/environment 和 /etc/profile 之间有什么区别?

我知道前者在后者之前加载,但是它们的目的和其他方面有什么区别?我应该在一个变量中设置一些变量而不是在另一个中设置一些变量,有什么好的理由吗?除了/etc/environment似乎存在为系统运行的所有进程设置环境的事实,而/etc/profile用于设置从登录外壳使用和传播的环境,对吗?

另外,顺便提一下,传统上哪个程序读取/etc/environment?它与POSIX有关,还是只是一个约定?

shell environment-variables posix

40
推荐指数
2
解决办法
5万
查看次数

',,' 可以别名为 '..' 吗?

有时当我想切换到父目录时,我错误地键入cd ,,而不是cd ... 有没有办法让 bash 认为这些语句是相同的?我从不在我的命令中使用逗号。理想情况下,我想别名,,... 当我尝试这个时,它不起作用。为什么这不起作用?我还能如何解决这个问题?

$ alias ,,=..
$ cd ,,
-bash: cd: ,,: No such file or directory
Run Code Online (Sandbox Code Playgroud)

linux bash shell

40
推荐指数
3
解决办法
4935
查看次数

什么是 BASH 的 $PROMPT_COMMAND 的 ZSH 等价物?

BASH 支持$PROMPT_COMMAND定义在任何第一级交互式提示之前要执行的命令的环境变量。我正在寻找等效的 ZSH。

文档precmd我可以定义一个函数来实现它;但是,我不知道如何从环境变量中定义它。

我考虑过传递一个环境变量,让 ZSH 读取包含该函数定义的文件,但 ZSH似乎不支持这样的事情:它只读取全局文件,然后读取每个用户的文件。我可以替换它们,但我不能在不修改文件的情况下添加它们,这是我做不到的。

那么如何通过环境变量在 ZSH 中定义预提示钩子,就像我$PROMPT_COMMAND在 BASH 中所做的那样?

bash zsh shell environment-variables

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