学习shell咯1

三大Unix shell
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用来杀死进程

你可能感兴趣的:(linux,unix,ubuntu,Solaris,bash)