欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

学习shell咯1 博客分类: Linux LinuxBashUbuntuSolarisUnix 

程序员文章站 2024-02-22 16:37:46
...
三大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用来杀死进程