Linux命令行与Shell脚本编程(五)

Linux命令行与Shell脚本编程(五)

声明:本文为看书后的个人笔记,如有转载或引用请先跟作者说明用意。

5.2shell的父子关系(p88)

在CLI提示符输入/bin/bash命令或者其他等效的bash命令时,会创建一个新的shell程序。这个shell程序被称为子shell。

由此可以看出,输入bash之后一个子shell就出现了,而ps f -f 命令也是在子shell中执行的。

bash命令行参数

参数

描述

-c  string  -->从string中读取命令并进行处理

-i    -->启动一个能够接受用户输入的交互shell

-l    -->以启动shell的形式启动

-r   -->启动一个受限shell,用户会被限制在默认目录中

-s  -->从标准输入中读取命令

可以输入man bash 获得关于bash命令的更多帮助信息。

5.2.1进程列表(P91)

命令列表:只需要在命令之间加入分号(;)即可

进程列表:是一种命令分组,语法为{ command; }

环境变量: $BASH_SUBSHELL,如果该命令返回为0,就表明没有子shell。反之表明有子shell。

5.2.2别出心裁的子shell用法(P93)

探索后台模式

sleep命令:接受一个参数,该参数是你希望进程等待(睡眠)的秒数

将命令置入后台模式,可以在命令末尾加上字符(&)

例:sleep 3000&

jobs命令:显示出当前运行在后台模式中的所有用户的进程(作业)。

-l:可以得到更多相关信息。

协程:可以同时做两件事。它在后台生成一个子shell,并在这个子shell中执行命令。基本上就是将命令置于后台模式。

coproc命令:创建一个后台作业

例:coproc  my_job{ sleep 10; }    -->给进程起一个叫my_job的名字,并置于后台模式。

5.3理解shell的内建命令

5.3.1外部命令

外部命令有时也被称为文件系统命令,是存在与bash shell之外的程序。

外部命令程序通常位于/bin、/usr/bin 、/sbin、/usr/sbin中。

which:查找并显示给制定命令的绝对路径。

type:显示指定命令的类型,判断给出的指令是内部指令还是外部指令。

当外部命令执行时,会创建一个子进程,这种操作被称为衍生。

5.3.2内建命令

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

对于多种实现的命令,如果想要使用其外部命令实现,直接指明对应的文件就可以

例如:使用pwd ,可以输入/bin/pwd。

history命令:列出最近1000条指令

使用!!显示出从shell的历史纪录中唤回的命令。然后执行该命令。

命令历史纪录被保存在隐藏文件.bash_history中,它位于用户的主目录中。

history -a -->强制将命令历史纪录写入.bash_history中。

history  -n  -->强制重新读取.bash_history文件。

!20  -->将编号20的历史命令取出并执行。

 

命令别名:

alias:是另一个shell的内建命令,允许将命令创建另一个名称

alias  -p   -->查看当前可用的别名。

 

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值