Linux shell --初探bash

  • 什么是shell?

   简单的说,shell就是一个命令解析器,是正跑在操作系统上的一个程序 。在linux系统shell一般体现为两种:文字接口shell和图形界面shell,文字接口shell就是解析字符所构成的命令,而图形界面shell则是依据鼠标的点击的命令去进行解析。

  • shell的位置,shell有什么用?

   shell处于操作系统的最外层,shell直接与系统核心沟通,然后系统核心控制硬件工作。

   当存储到磁盘中的可执行程序想要在运行在机器上时,那么最初要怎么做?例如:pwd命令,我们知道pwd命令存在在/bin目录下,这是存在在磁盘上的一段数据,当我们想执行pwd命令时也就是说想让这段数据在机器上跑一遍时我们需要做什么?

  1.    敲入pwd到bash中
  2.    敲下回车

  就是这样两个步骤。我们来分析一下这两个步骤:

  为什么我们要把pwd敲入到shell中而不是别处的,这就是上面所说的shell是正在操作系统上跑的程序,当1,2步骤执行完后,bash这个程序接受到这个参数,然后进行分析,把程序数据读入内存,把系统当前的执行权限交给pwd(到此shell当前的工作已经基本结束了)。然后就是pwd跑在机器上,跑完之后,输出结果,又将执行权交还给bash(shell又开始工作了)。在此过程应该注意的是pwd为什么会执行(例如:为什么在记事本中写入pwd,在敲回车,程序并不会执行),而不是pwd执行时。

  • bash

  bash是linux下的shell之一(很重要),bash的全称是Bourne Again SHell,这是一个文字接口的shell,bash的功能很强大(具体怎么强大后面有介绍)。

  •   bash的加载,加载时配置的修改

      当我们一以纯文本方式启动linux时,启动之后输入用户名和密码之后系统会给一个默认的shell提供我们使用,这个默认的shell一般都是bash,这个默认的shell是可以修改的,在/etc/passwd这个文件中可以修改。

      这里的重点在于登录用户名和密码之后系统怎么取得bash的?取得shell时都做了些什么配置?

      由于登录方式不同取得shell的方式也不同

  •       login shell:取得bash时需要完整的登入流程。例如:由tty1-tty6登入时,需要用户名和密码
  •       non-login shell :取得bash的方法不需要重复登入的举动。例如:在bash中再次下达bash命令;图形化界面的shell中打开一个终端接口。

       login shell 时:在输入密码结束后,操作系统到/etc/passwd 文件中匹配用户信息,在用户信息的最后面会取得一个shell(默认会执行/bin/bash这个shell),然后会读取两个配置文件:/etc/profile(系统整体设定,最好不要改动)  ~/.bash_profile(使用者个人设定,可以自由修改),对bash的很多参数就行配置(环境变量就在其中)。

      non-login shell 时只会读取~/.bashrc (使用者的个人设定,例如:别名命令alias)

      上面的配置文件修改后可以重新登入刷新配置,也可以用"source 文件名"来就行配置刷新。

  • bash的功能

  1. 命令编修能力
  2. 命令与文件名补全能力
  3. 命令别名设置能力
  4. 通配符
  5. 程序脚本化 
  6. 数据流重定向等

      

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值