有什么方法可以执行终端命令中标题中所述的操作,还是必须查看代码?
我目前正在为 Linux 上的 GCSE 计算控制评估做准备。我在命令行中输入ls > list和ls >> list,但它没有做任何事情。我用谷歌搜索过它,但我找不到它到底做了什么。
有什么作用:
ls > list
Run Code Online (Sandbox Code Playgroud)
和
ls >> list
Run Code Online (Sandbox Code Playgroud)
做?
如果 shell 被要求执行一个已知会终止的可能无用(或部分无用)的命令,例如cat hugeregularfile.txt > /dev/null,它是否可以跳过该命令的执行(或执行更便宜的等价物,例如, touch -a hugeregularfile.txt)?
更一般地说,shell 是否类似于 C 编译器,因为它可以对源代码执行任何转换,只要外部可观察的行为就像抽象机器评估它一样?
编辑
Nota Bene:我最初提出的问题有一个标题,询问是否允许shell进行这些优化,而不是是否应该甚至是否存在可以执行这些优化的实现。我对理论比实践更感兴趣,尽管两者都是受欢迎的。
使用sswith-p选项时,user/pid/fd列会跳到特定行下方。例如,这就是我实际看到的:
# ss -nulp4
State Recv-Q Send-Q Local Address:Port Peer Address:Port
UNCONN 0 0 *:20000 *:*
users:(("perl",pid=9316,fd=6))
UNCONN 0 0 *:10000 *:*
users:(("perl",pid=9277,fd=6))
UNCONN 0 0 192.168.100.10:53 *:*
users:(("named",pid=95,fd=517),("named",pid=95,fd=516))
UNCONN 0 0 127.0.0.1:53 *:*
users:(("named",pid=95,fd=515),("named",pid=95,fd=514))
Run Code Online (Sandbox Code Playgroud)
首选输出格式:
# ss -nulp4
State Recv-Q Send-Q Local Address:Port Peer Address:Port
UNCONN 0 0 *:20000 *:* users:(("perl",pid=9316,fd=6))
UNCONN 0 0 *:10000 *:* users:(("perl",pid=9277,fd=6))
UNCONN 0 0 192.168.100.10:53 *:* users:(("named",pid=95,fd=517),("named",pid=95,fd=516))
UNCONN 0 0 127.0.0.1:53 *:* users:(("named",pid=95,fd=515),("named",pid=95,fd=514))
Run Code Online (Sandbox Code Playgroud)
为了确认没有换行符,我试过这个:
# ss …Run Code Online (Sandbox Code Playgroud) 最近我知道--那是双连字符,它用于告诉命令选项列表已经结束,后面的内容不应被视为选项。所以,
grep -- 'search_word' *
Run Code Online (Sandbox Code Playgroud)
将搜索给定的search_word. 但是,如果您删除--并且有一个以 开头的文件,您可能会看到意外行为-,这将打开与filename 中的字符匹配的选项。
这叫什么--?这有什么技术术语吗?
ps和top命令有什么区别?我看到两者都可以显示有关正在运行的进程的信息。什么时候应该使用哪一个?
当您在终端中粘贴某些命令时,它有时会自动执行该命令(就像按下“Enter”键一样),有时则不会。
我已经使用 Linux 多年,在许多发行版的各种控制台中粘贴了数千个命令,但我仍然无法判断我将要粘贴的命令是否会自动执行。
是什么触发了这种行为?
想知道这个yes命令有什么用,我偶然发现了这个评论,并试图执行
yes $(yes yes)
Run Code Online (Sandbox Code Playgroud)
据我所知,这应该只是打印出无限的 序列yes,但它什么都不输出,几秒钟后我的图形终端就会崩溃。(如果我在 tty1 上执行它,我会在一段时间后看到登录提示。)
这里发生了什么?
查看GNU Coreutils,我发现了factor我以前从未注意到的命令。
阅读手册页:
打印每个指定整数 NUMBER 的质因数。如果在命令行上没有指定,则从标准输入中读取它们。
有实际用途factor,还是只是一个演示/玩具包?