fucking-algorithm icon indicating copy to clipboard operation
fucking-algorithm copied to clipboard

关于 Linux shell 你必须知道的 :: labuladong的算法小抄

Open utterances-bot opened this issue 4 years ago • 1 comments
trafficstars

文章链接点这里:关于 Linux shell 你必须知道的

评论礼仪 见这里,违者直接拉黑。

utterances-bot avatar Sep 11 '21 12:09 utterances-bot

纠正一处错误 "nohub some_cmd &" 应为 "nohup some_cmd &"。

关于后台执行的补充

  1. "nohup 的原理也很简单,终端关闭后会给此终端下的每一个进程发送SIGHUP信号,而使用nohup运行的进程则会忽略这个信号,因此终端关闭后进程也不会退出。"

https://wiki.jikexueyuan.com/project/linux-process/nohup.html

  1. 注意 "(cmd &)" 是用小圆括号扩起来的

  2. 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

wangxiuwen avatar Sep 11 '21 12:09 wangxiuwen

七输入重复命令太麻烦里面提到的 但是这个方法有缺点:首先,该功能似乎只有 bash 支持,我用的 zsh 作为 shell 终端,就用不了;第二,只能查找出一个(最近的)命令,如果我想找以前的某个命令,就没办法了。 其实再次按Ctrl+R就可以往前搜索了

lanqsh avatar Nov 17 '22 03:11 lanqsh