了解shell

系统启动shell程序取决于用户id配置,通过 /etc/passwd  查看

了解shell_第1张图片

 shell文件存放在 /bin/bash中(是一个可执行文件)

 由于系统默认为 bash shell,但也可以自己启动和退出shell

  •  /bin/bash    输入即可开启 bash shell
  • exit               输入即可退出 shell

shell的父子关系;

因为运行系统后  shell会运行,可以使用 ps-f 来查看进程

一共有两个进程 ,一个为 -bash进程,一个为ps-f 指令的进程,输入bush 然后再输入 ps-f

了解shell_第2张图片

PID为进程号  PPID为父进程号 

出现两个bash的解释:输入bash后生成一个子shell,图中可以看出第二行的bash的父进程为-bush

 了解shell_第3张图片

多次输入bash   就会继承多次bash

了解shell_第4张图片

进程列表:

进程列表是一种命令分组( command grouping )。另一种命令分组是将命令放入花括号中,
并在命令列表尾部加上分号(;)。语法为 { command; } 。使用花括号进行命令分组并不会像进程列表那样创建出子shell

例子:

   pwd ;ls ;cd /etc/passwd         (不会生成子shell)

进程列表:(pwd ;ls ;cd /etc/passwd)(会生成子shell)

了解shell_第5张图片

 查看是否存在子shell: echo $BASH_SUBSHELL

  • 0 为不含有子shell
  • 》=1 则含有子shell

了解shell_第6张图片

sleep 休眠(不能输入指令)

sleep  x    (休眠x秒)

后台模式:

在命令后面加&:把命令置入后台模式,执行后会给出进程号

了解shell_第7张图片

 jobs  查看后台作业休息

jobs [选项] 

-l 显示出命令的PID

 

 将进程列表置入后台:

 

协程:

协程可以同时做两件事。它在后台生成一个子shell,并在这个子shell中执行命令。

除了会创建子shell之外,协程基本上就是将命令置入后台模式。

  • coproc  命令
  • coproc  协程名称   {   命令; }    给协程修改名称

修改名称格式:

  1. {   前后要有空格       名  {   命令
  2. 命令需要带  ;
  3. 需要有空格

例如:coproc    my_coproc  {  sleep 500;  }

shell的内建命令

外部命令

外部命令也称为文件系统命令,并不是 bash shell程序的一部分,外部命令存放在 /bin或/sbin文件中,执行外部命令,会生成一个子进程称为 衍生。

当进程必须执行衍生操作时,它需要花费时间和精力来设置新子进程的环境。所以说,外部
命令多少还是有代价的。

内建命令

内建命令不需要使用子进程来执行,已经和shell编译成了一 体,作为shell工具的组成部分存在。不需要借助外部程序文件来运行。

type  查看是否内建

type  -a    查看是否内建并显示文件位置

 

 

alias命令

是另一个shell的内建命令。命令别名允许你为常用的命令(及其参数)创建另一个名称

你可能感兴趣的:(linux,运维)