Linux 理解shell

一、启动与退出shell

1.修改启动的shell在/etc/passwd 第七个字段修改

2.启动shell 可以通过在命令行中输入 /bin/bash

3.exit退出shell

二、shell的父子关系

1.打开终端时产生的shell称为父shel,提示符下输入/bin/bash产生的shell 称为子shell

   可通过ps -f 命令或 ps --forest 显示二者关系 , 子shell 也可以产生自己的子shell,此时自己相当于父shell

2.父shell部分环境变量会复制到子shell

三、进程列表

1. pwd ; ls ; cd /etc ; pwd ; cd ; pwd ; ls 称为命令刘表,命令中间用 ’ ;‘分隔,命令顺序执行

2.(pwd ; ls ; cd /etc ; pwd ; cd ; pwd ; ls) 称为进程刘表,外面多了圆括号,是作业分组

3.进程列表生成了一个zishell来执行对应命令,命令列表由父shell执行

4.命令列表外面加大括号是另一种作业分组,不需要父shell创建子shell

5.echo $BASH_SUBSHELL 返回0表示没有生成子shell,返回非零表示生成了,数字表示嵌套的shell个数。可以放在这些列表中检测

四、后台模式 : 运行命令的同时不占用shell继续输入执行其他命令

1.将命令执行转入后台模式   command&  例如sleep 10&

2. 后台作业,第一个数字是后台作业号,第二个是PID

3.显示后台作业  jobs  , 可以显示作业的命令和执行情况(例如运行) 选项 : -l 长列表显示

   + 表示正在运行, - 表示准备运行

4.进程列表可以放入后台模式 例 (sleep 2 ; echo $BASH_SUBSHELL ; sleep 2)&

5.协程:后台创建子shell并在其中执行命令  coproc 【processname】  command

   例 coproc My_Job { sleep 10; }  此为扩展语法,注意命令与大括号之间有空格,且命令后跟;

五、shell内建命令与外部命令

1.外部命令 , 也称文件系统命令,存在于shell之外的程序 , 位于/bin , /usr/bin,/sbin,/usr/sbin中

2.内部命令是shell程序的一部分

3.which command 输出外部命令的位置 type -a command 也可以输出外部命令位置

4.外部命令执行时会创建子进程,称为衍生

5.内建命令不需要使用子进程,是shell工具的组成部分 例 cd   exit , type -a command判断是否内建

六、便捷命令

1.history  显示历史命令 , 保存在.bash_history中,shell退出时存入 , 退出前使用history -a强制写入

   history -n 强制读取更新历史列表

2 !! 唤出刚刚使用的命令执行  ,!number唤出历史列表命令中的一条

3.命令别名alias   ,   alias -p显示所有别名 ; 创建别名 alias text=‘command’

   例  alias li='ls -li'  , 仅在本shell及启动的脚本中有效

发布了5 篇原创文章 · 获赞 3 · 访问量 4236

猜你喜欢

转载自blog.csdn.net/weixin_42686673/article/details/104600715