fucking-algorithm
fucking-algorithm copied to clipboard
关于 Linux shell 你必须知道的 :: labuladong的算法小抄
纠正一处错误 "nohub some_cmd &" 应为 "nohup some_cmd &"。
关于后台执行的补充
- "nohup 的原理也很简单,终端关闭后会给此终端下的每一个进程发送SIGHUP信号,而使用nohup运行的进程则会忽略这个信号,因此终端关闭后进程也不会退出。"
https://wiki.jikexueyuan.com/project/linux-process/nohup.html
-
注意 "(cmd &)" 是用小圆括号扩起来的
-
shell 中单小括号的作用
"①命令组。括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格。
②命令替换。等同于cmd,shell扫描一遍命令行,发现了$(cmd)结构,便将$(cmd)中的cmd执行一次,得到其标准输出,再将此输出放到原来命令。有些shell不支持,如tcsh。
③用于初始化数组。如:array=(a b c d)"
https://blog.csdn.net/taiyang1987912/article/details/39551385
"(cmd &)" 是新开一个子shell, 而不是子进程,经过实验可以看到确实是挂到了1号进程 systemd下。
# python3 -m http.server &
# ps -ef | grep python
root 11583 8663 4 19:51 pts/5 00:00:00 python3 -m http.server
# (python3 -m http.server &)
# ps -ef | grep python
root 11907 1 2 19:52 pts/5 00:00:00 python3 -m http.server
七输入重复命令太麻烦里面提到的
但是这个方法有缺点:首先,该功能似乎只有 bash 支持,我用的 zsh 作为 shell 终端,就用不了;第二,只能查找出一个(最近的)命令,如果我想找以前的某个命令,就没办法了。
其实再次按Ctrl+R就可以往前搜索了