标签: bash

如何清除我在提示中输入的内容?

我在 bash 中输入了一个非常非常长的命令。糟糕,这是错误的命令。
到目前为止,这意味着我经历了两个地狱:

  1. 意识到我的命令毫无用处。
  2. 必须通过按住Backspace直到提示清晰来清除我的外壳。

有没有更快的方法?

terminal bash

16
推荐指数
2
解决办法
3598
查看次数

如何在 Mac 上排队复制多个文件?

当我在 Mac 上复制多个文件时,系统会尝试同时复制所有文件。问题是双重的。

首先,当您选择多个文件并复制它们时,它们都进入一个进程,采用“全有或全无”的方法,这与数据库中的 ACID 不同。这通常是不可取的。

此外,当您添加其他复制进程时,系统会尝试同时复制所有内容。

例如,我决定复制一个大文件A,然后我决定也复制一个大文件B。这导致两个并行复制操作,无论“大文件”之一是否也是许多文件的选择。

我不喜欢这个有几个原因:

  • 当多个复制进程同时运行时,它似乎会使其他进程陷入困境。
  • 此外,当同时复制多个文件时,复制过程本身似乎要慢得多。
  • 最后,如果进程中止,则没有文件到达目的地。
  • 将文件添加到队列时,它也会立即开始复制,并进一步拖慢进程。
  • 当复制到(本地)网络上的其他机器或驱动器时,这是一个真正的问题。

结果:A我想首先传输和使用的文件到达所需的时间比需要的要长得多,并且当从 LAN 上的中央 HD 复制时,我无法使用第一个文件,直到所有其他文件也都到达为止。

因此...如何在 Mac 上排队复制多个文件?澄清一下:无论选择了很多文件,还是一一添加,我都希望它们都放入一个一次只复制一个文件的队列中,直到队列完成。

也欢迎使用 Bash,尤其是 Perl 来回答!

bash file-transfer perl macos

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

在 shell 脚本中以某种颜色回显文本

我即将写一个shell脚本。通过将其颜色设置为黄色,我希望能够在视觉上将其某些输出文本区分为警告。

这是怎么做的?

bash shell-script

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

查找设置了 ACL 的文件

我怎样才能找到所有设置了一些扩展 ACL 的文件,即那些+ls -l.

我找不到对应的标志find。我的天真方法是find将 withls -lgrep. 但我不认为这很好。

有人有想法吗?

linux bash acl find

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

如何将 bash 脚本参数传递给子 shell

我有一个包装脚本,它做了一些工作,然后将原始参数传递给另一个工具:

#!/bin/bash
# ...
other_tool -a -b "$@"
Run Code Online (Sandbox Code Playgroud)

这工作正常,除非“其他工具”在子shell中运行:

#!/bin/bash
# ...
bash -c "other_tool -a -b $@"
Run Code Online (Sandbox Code Playgroud)

如果我像这样调用我的包装脚本:

wrapper.sh -x "blah blup"
Run Code Online (Sandbox Code Playgroud)

然后,只有第一个原始参数 (-x) 被传递给“other_tool”。实际上,我没有创建子外壳,而是将原始参数传递给 Android 手机上的外壳,这应该没有任何区别:

#!/bin/bash
# ...
adb sh -c "other_tool -a -b $@"
Run Code Online (Sandbox Code Playgroud)

bash

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

如何使用echo覆盖文件?

echo "foo">> bar.txt多次使用时,它会附加到文件末尾。如何bar.txt每次都覆盖?

linux bash

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

打印当前时间(以毫秒为单位)

我希望在 Windows 中cygwin安装此命令,因此任何 Linux 命令都适用于我。

cygwin bash time

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

从另一台计算机通过 SSH 连接到 macOS 后运行命令时出现“不允许操作”错误

我尝试从 MacBook A 通过 SSH 连接到另一台连接了两个外部驱动器的 iMac (iMac B)。SSH 成功,但我无法执行lstouch命令。

虽然我将完整磁盘访问权限设置为terminallstouch命令,甚至sshd,但我无法使用它,并且返回到“不允许操作”。

当我尝试在桌面文件夹或外部驱动器中使用这些命令但在 iMac B 上的交互式终端上没有任何操作时,会发生此错误。

即使root帐户也无法执行此命令,所以它应该有比root更高级别的帐户,是吗?

有谁知道会发生什么?

在此输入图像描述

在此输入图像描述

mac ssh terminal bash

16
推荐指数
2
解决办法
8609
查看次数

zsh:将所有命令输出保留在终端屏幕上

我想知道如何才能zsh做到bash这一点:我希望命令输出始终显示在终端中这些命令的正下方。

例如,当我运行以下命令时,其结果显示如下bash

john-doe@machine:~$ aws sts get-caller-identity
{
    "UserId": "USERID",
    "Account": "123456789",
    "Arn": "arn:aws:iam::123456789:user/jonh-doe"
}
Run Code Online (Sandbox Code Playgroud)

而在 中执行时zsh,结果显示在单独的“编辑器”中,我可以在看到这些结果后退出,但一旦退出,我也无法访问命令的输出。下面有一个截图:

一旦“editor”退出,命令输出就会丢失(命令执行成功)

我不想总是将输出通过管道传输到文件。

我正在运行 Ubuntu 20.04 并oh-my-zsh使用主题powerlevel10k(我也测试了其他主题,并且zsh行为与我上面提到的相同)。我还使用TerminatorUbuntu 的默认终端程序进行了测试。

是否有任何设置可以覆盖此zsh行为?

任何帮助将不胜感激。谢谢你!

terminal bash zsh command-line oh-my-zsh

16
推荐指数
2
解决办法
7129
查看次数

管道( | )是命令吗?

据我了解,管道( | ) 获取一个进程的标准输出并将其作为标准输入传递到另一个进程。

但我想知道管道是否( | )被视为像 ls、grep 等命令。

下面的命令行中有多少个命令?

ls /etc | grep nginx

我很困惑是否应该数一下管道( | )

linux bash command-line pipe

16
推荐指数
1
解决办法
7070
查看次数

标签 统计

bash ×10

linux ×3

terminal ×3

command-line ×2

acl ×1

cygwin ×1

file-transfer ×1

find ×1

mac ×1

macos ×1

oh-my-zsh ×1

perl ×1

pipe ×1

shell-script ×1

ssh ×1

time ×1

zsh ×1