1,Bourne shell(AT&T shell, $)
2,C shell(Berkeley shell, %)
3,Korn shell(a superset of the Bourne shell, $)
几大Linux shell
Bash -- Linux default shell(The GNU Bourne Again shell, $)
TC shell(bundled with Solaris 8+, >)
Z shell
Public Domain Korn shell -- pdksh($)
看看Ubuntu下面支持哪些shell:
$ cat /etc/shells # /etc/shells: valid login shells /bin/csh /bin/sh /usr/bin/es /usr/bin/ksh /bin/ksh /usr/bin/rc /usr/bin/tcsh /bin/tcsh /usr/bin/esh /bin/bash /bin/rbash /bin/dash /usr/bin/screen
POSIX(Portable Operating System Interface) 1003.2标准是shell的国际标准
/etc/passwd文件最后一行是login之后load的shell,如果为null,则启动Bash
ps命令查看当前进程,pstree/ptree则按树状显示
系统调用fork会duplicate一份要调用的进程
shell命令如果为built-in,则shell处理它;如果在disk上,则shell调用fork来复制一份它自己作为子shell,parent shell则wait,子shell去exec该命令,启动新程序并overlay子shell,新程序运行完后exit,exit code为0表示成功,非0表示失败($?变量)
kill命令加PID用来杀死进程