linux中shell的一些介绍

一级目录

二级目录

三级目录

在这里插入图片描述
shell本质就是一个命令解释器,实际上就是向内核做一些命令解释的东西。

shell其实就是讲命令,解释给Linux的内核去看得一个内容。

shell脚本执行权限

在这里插入图片描述

三种开启shell脚本方式
1…/绝对路径方式
在这里插入图片描述
这种方式往往权限不够,我们需要给sh加上一些权限,如果是用的相对路径的方法,那么还要给路径上所有文件加上权限。
在这里插入图片描述
加上权限之后,一般就可以使用了

2.使用sh的方法启动
sh + tt.sh

3.使用source 方法启动sh
source + sh
这样的方法可以启动

4.bash + sh文件

三种方法,各自有各自的优点和缺点,
但是前两种方法都会设计到要给问题

就是前两种方法都会开启一个新的线程,去执行tt.sh脚本里的东西

而source的方法,是直接用bash的方法去性质tt.sh脚本里的东西,并并没有开启新的线程。

路径使用绝对路径./fads/a.sh
这种方式需要给文件上,加上执行权限,而且要有,整个路径上的执行权限。
在这里插入图片描述

所以,在使用相对路径这个方式处理时候,一定要,要让沿途的文件夹都有读的权限,还要让sh自身有可执行的权限。
需要把文件读进内存里面去,所以对需要执行的文件要有读的权限和可以执行的权限。
在这里插入图片描述

举个例子
source相当于用我们自己的bash解释器去启动一个进程

相当于用我们自己的bash解释器,去启动
每登录一个用户就是一个bash记住
bash解释器就是讲你写的翻译成Linux内核可以看懂的东西。

另外几种方法,相当于用户自己开启的bash进程中建立一个新的子进程,新的子进程执行shell。soure方法相当于大佬亲自下厂了。
一个子进程相当于开了一个新的空间,亲自下场了,这种情况,进程和进程之间数据交互很困难,毕竟每个进程相当于自己有自己独立的一个空间,很难和别的空间进行一个数据共享,。

前两种的方式,缺点就是在于,当父进程有个变量时候,子进程没办法使用父进程的变量。

shell的本质

作者:大宽宽
链接:https://www.zhihu.com/question/35382632/answer/803711006
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

并没有那么神秘。操作系统对外提供的接口是“系统调用”,也就是一堆编程用的接口。这些接口一般以C函数的形式暴露给使用者。通过这些接口,开发者可以命令操作系统“启动一个进程”,“查找某个目录下的所有文件”,“将某个文件的权限配置为744”等等。 实际上我们平时编程用的是对系统调用的包装,比如libc里的那些库函数。但无论如何,你总是得写代码才能使用它们。问题是我们平时使用电脑,不能每次都编写程序,再编译,再运行得到结果吧。比如你想知道一个目录下的所有文件,你肯定不会去写一段C代码,调用系统调用“readdir” (见http://www.man7.org/linux/man-pages/man3/readdir.3.html),然后gcc编译,然后运行。真这么干,一个最简单的工作也要耗费很长时间。况且,一个函数的返回是“数据结构”,或者输出到stdout或文件之类的地方。你总得以某种形式把结果“画”到界面上(不管是画字符还是画图片),才能查看那个结果。这个格式化输出的工作量也很大。正常人的思路是先写好程序,然后弄个交互的界面方便使用这个程序。只要使用者敲一组字符串,就可以调用之前写好的程序完成工作。比如我们会在命令行里输入“ls -Rl”这种字符串。这个字符串被翻译成“ls”,“-R”,“-l”。“ls”帮我们找到那个之前写好的程序,并启动它;“-R”和“-l”被作为参数传给这个程序,告诉程序走“递归所有子目录”+“输出长格式”这部分代码。这个负责把用户输入的字符串转换到需要执行的程序,并把结果以某个形式画出来的东西,就叫做“Shell”,即帮你更方便使用操作系统接口的“壳”。这个词与操作系统内核(Kernel)对应。在Linux中,bash负责按照某种格式把用户的输出的字符串翻译,比如对于普通非空字符翻译为程序和参数,并尝试去PATH里找对应的程序;对“空格”翻译成分隔符;对“$XXX”尝试进行环境变量的替换;对“|”翻译为管道;对 “>”翻译为输出重定向;对一个指令末尾的“&”翻译为将程序转到后台执行…… 另一方面终端将stdout、stderr输出的东西画成我们可以看的一坨坨字符,包括字符、字体、颜色、换行、甚至响铃。【bash】 + 【终端】大概可以理解为一个以字符

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值