linux shell执行原理】的更多相关文章

shell简介 Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口.它接收用户输入的命令并把它送入内核去执行. 运行背景 a 一个基本的linux系统结构 b.由上图可以看出,shell 在系统中是处于中间层次的.他为用户和kernel的交互提供了一种方式,方案. c.关于分层结构的众多优势: 1.开发人员可以只关注整个结构中的其中某一层:2.可以很容易的用新的实现来替换原有层次的实现:3.可以降低层与层之间的依赖:4.有利于标准化:5.利于各层逻辑的复用. 缺点: 1.降低了系…
linux shell执行有两种方式 shell脚本以#!/bin/bash开头,执行shell时先检查首行,在内部以下列方式执行: $/bin/bash script.sh 1. 使用sh执行. $sh script.sh #脚本位于当前目录下 或者 $sh /home/path/script.sh #使用完整路径 2. 独立运行脚本. 需要具备可执行权限,可以通过下面的方式设置 $chmod a+x script.sh 或者 $chmod 755 script.sh 然后可以通过下列方式执行…
1.shell命令搜索顺序 在linux shell 中输入一个命令,如果有多个同名指令,shell需要按照一定规则去取优先级高的一个执行,shell命令的搜索顺序为: 1.别名,使用alias创建的命令. 2.关键字,如if,for. 3.函数 4.内置命令,如cd,pwd等 5.外部命令,在PATH路径中寻找 2.指定执行某类命令 builtin :指定执行内置命令 command :指定 PATH 下的命令 3.其他相关指令 type:查看命令类型,分别是内置还是外部命令或其他 enabl…
Linux系统提供给用户的最重要的系统程序是Shell命令语言解释程序.它不属于内核部分,而是在核心之外,以用户态方式运行.其基本功能是解释并执行用户打入的各种命令,实现用户与Linux核心的接口.系统初启后,核心为每个终端用户建立一个进程去执行Shell解释程序.它的执行过程基本上按如下步骤: ()读取用户由键盘输入的命令行. ()分析命令,以命令名作为文件名,并将其它参数改造为系统调用execve( )内部处理所要求的形式. ()终端进程调用fork( )建立一个子进程. ()终端进程本身用…
最近写自动安装脚本遇到redis-server安装的时候,需要输入3个回车,对此尝试无果,最后google比较满意的解决办法: shell 脚本需要交互,比如输入回车,输入YES/NO Y/N之类进行选择 Linux 中shell脚本运行时经常需要进行交互,比如安装软件的过程中对license声明的确认,需要输入yes,回车之类的确认信息.这个在自动化安装的时候就会是个问题. 1.通常对于这个问题比较灵活的解决方法就是TCL的Expect.但Expect还需要另外安装,平台通用性不高,比较麻烦.…
(1)在每个命令之间用:(分号)隔开. (2)在每个命令之间用&&隔开. &&表示:若前一个命令执行成功,才会执行下一个.这样,可确保所有的命令执行完毕后,其执行过程都是成功的 这种执行方法,经常运用在自动安装的Script中. 例如:自动安装Apache及PHP的Script文件: #! /bin/bash # 解压 tar xvzf httpd-2.2.tar.gz && tar xvzf php-5.3.tar.gz && #设定Apa…
我在本地的shell脚本中,想要直接执行远程服务器的一个shell脚本: ssh -l root 192.168.1.1 "/data/t.sh" 记得提前给远程服务器的 /data/t.sh 执行: chmod +x t.sh…
前不久入职实习生,现在在帮着组里面dalao们跑Case,时不时要上去收一下有木有Dump,每次敲命令太烦人于是逼着自己学写Shell脚本.一开始真的是很痛苦啊,也没能搞到书,只能凭网上半真半假的消息照葫芦画瓢!废话少说,上正文! =========================我是分割线========================= clear echo "Check_dump is a tool help you check dumps" numberOfSPs= comma…
在开发的过程中可能Linux环境不一致需要适应本地环境的HOME目录,可以通过脚本来修改配置文件内容,写一个test.sh的脚本 在脚本里写入以下命令 sed -i “s#ftfts_com_serverpa_path=.*#ftfts_com_serverpa_path= $HOME#g” test.properties 该命令的基本语法如下 sed -i “s/要替换的内容/替换后的内容/g” 文件名 使用#代替/能够适应替换内容中含有/的内容,不需要转译.不然还要使用//转译!.*是匹配所…
大数据平台下经常建立设计多个节点的集群需要统一部署,这就设计到守护进程或者部署脚本在不同节点执行,如果能在master机器上,统一执行脚本,一次性启动整个集群的服务,感觉很nice.因为,分享如下内容: 前提条件: 配置ssh免密码登陆 对于简单的命令: 如果是在远端节点执行几个命令,则: ssh user@remoteNode "cd /home ; ls" 注意点: 双引号,必须有.如果不加双引号,第二个ls命令在本地执行 分号,两个命令之间用分号隔开 对于远端执行脚本的方式: 有…