操作系统的一个主要任务就是从用户、服务与应用程序的角度运行进程。这些进程由内核中的一个进程进行跟踪。进程表包含了系统中每个进程的当前状态,并且系统调度器决定每个进程何时分配到一个 CPU,以及何时与 CPU 分离。

ps 命令可以查询进程表,并有一组开关用来调整从整个进程树中显示哪些信息。此外,利用 / proc 虚拟文件系统能进一步窥视正在运行的内核。进程表中的每个进程在 / proc 下都有一个目录。从进程的目录中可以找到进程的状态:当前目录与打开的文件。/proc 包含了直接读写内核状态的机制,包括网络设置、内存选项、硬件信息,甚至可以强制机器崩溃。

根据启动终端时是否需要登录,shell 可以分为两种:

  • login shell。取得 bash 时需要完整的登录流程,即需要输入用户名与密码。
  • non-login shell 。取得 bash 不需要重复登录。如在 X window 登录后,调出终端不需要重复登录,在 bash 中输入bash 也不需要输入用户名和密码。

不同类型的 shell,其读取的配置文件与顺序皆有所不同。

shell 有 4 种不同的命令提示符,分别是 PS1、PS2、PS3 与 PS4。PS 表示 Prompt String(提示字符串)。PS1 几乎总是被定义,而其他的几乎从不定义。

bash(GNU Bourne-Again Shell) 是大多数 Linux 系统以及 Mac OS X 默认的 shell,它能运行于大多数类 Unix 风格的操作系统之上,甚至被移植到了 Microsoft Windows 上的 Cygwin 系统中,以实现 Windows 的 POSIX 虚拟接口。此外,它也被 DJGPP 项目移植到了 MS-DOS 上。