标签: shell

“终端”、“外壳”、“tty”和“控制台”之间的确切区别是什么?

我认为这些术语在松散使用时几乎指的是同一件事:

  • 终端
  • 贝壳
  • 打字机
  • 安慰

这些术语中的每一个究竟指的是什么?

shell terminal tty terminology console

1433
推荐指数
10
解决办法
42万
查看次数

如何使用具有管道字符的模式对多个模式进行 grep?

我想在多个文件中找到与两种模式之一匹配的所有行。我试图通过键入来找到我正在寻找的模式

grep (foo|bar) *.txt
Run Code Online (Sandbox Code Playgroud)

但是外壳将它解释|为管道并在bar不是可执行文件时抱怨。

如何在同一组文件中搜索多个模式?

shell grep quoting regular-expression

764
推荐指数
7
解决办法
176万
查看次数


“--”(双破折号)是什么意思?

--compgen命令中看到使用过。

例如:

compgen -W "foo bar baz" -- b
Run Code Online (Sandbox Code Playgroud)

里面的意思是什么--

command-line shell utilities syntax

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

关闭管道中的缓冲

我有一个调用两个命令的脚本:

long_running_command | print_progress
Run Code Online (Sandbox Code Playgroud)

long_running_command打印的进展,但我很不满意它。我正在使用print_progress使其更好(即,我在一行中打印进度)。

问题:将管道连接到标准输出也会激活一个 4K 缓冲区,所以漂亮的打印程序什么都没有……什么都没有……什么都没有……很多……:)

如何禁用4K缓冲区long_running_command(不,我没有源)?

shell pipe buffer

475
推荐指数
9
解决办法
26万
查看次数

如何将多行附加到文件

我正在编写一个 bash 脚本来查找不存在的文件,然后创建它并将其附加到它:

Host localhost
    ForwardAgent yes
Run Code Online (Sandbox Code Playgroud)

所以"line then new line 'tab' then text"我认为它是一种敏感的格式。我知道你可以这样做:

cat temp.txt >> data.txt
Run Code Online (Sandbox Code Playgroud)

但它看起来很奇怪,因为它有两行。有没有办法以这种格式附加它:

echo "hello" >> greetings.txt
Run Code Online (Sandbox Code Playgroud)

shell io-redirection text-processing

460
推荐指数
6
解决办法
103万
查看次数

Bash 运算符 [[ vs [ vs ( vs ((?

我对这些运算符在 bash 中使用时有何不同(括号、双括号、括号和双括号)感到有些困惑。

[[ , [ , ( , ((
Run Code Online (Sandbox Code Playgroud)

我见过人们在这样的 if 语句中使用它们:

if [[condition]]

if [condition]

if ((condition))

if (condition)
Run Code Online (Sandbox Code Playgroud)

shell bash test

436
推荐指数
6
解决办法
19万
查看次数

登录 Shell 和非登录 Shell 的区别?

我了解交互式 shell 和非交互式 shell 之间的基本区别。但是,登录 shell 与非登录 shell 的确切区别是什么?

你能举例说明非登录交互式shell 的使用吗?

shell login

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

如何删除名称以“-”(连字符又名破折号或减号)开头的文件?

如何删除文件名以破折号(连字符或减号)开头的文件-?我通过 ssh 连接到远程 OSX 服务器,并且我的目录中有这个文件:

tohru:~ $ ls -l
total 8
-rw-r--r--    1 me  staff  1352 Aug 18 14:33 --help
...
Run Code Online (Sandbox Code Playgroud)

我怎么--help能从 CLI 中删除?这个问题是我偶尔以不同形式遇到的问题,这些文件很容易创建,但很难摆脱。

我试过使用反斜杠

rm \-\-help
Run Code Online (Sandbox Code Playgroud)

我试过引号

rm "--help"
Run Code Online (Sandbox Code Playgroud)

如何防止将减号(破折号或连字符)字符解释为选项?

command-line shell options quoting rm

428
推荐指数
6
解决办法
18万
查看次数

为什么不使用“哪个”?那用什么?

当寻找的路径,可执行文件或检查,如果你在Unix shell中输入命令的名称会发生什么,有不同的公用事业过多(whichtypecommandwhencewherewhereiswhatishash,等)。

我们经常听说which应该避免。为什么?我们应该用什么来代替?

shell history which portability

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