shell和vi编辑器
一、Shell
1、什么时shell
Shell就是用户与操作系统内核之间的接口,起着协调用户和系统的一致性和用户在系统之间的交互作用.具体如下图:
2、shell的功能
Shell的重要的功能就是命令解释,从某种意义上来说,shell就是一个命令解释器.Linux中的所有的可执行文件都可以作为shell命令来执行.可执行文件的分类见下表:
类别
说明
Linux命令
存放在/bin、/sbin目录下
内置命令
出与效率考虑,将一些常用的命令程序构造在shell的内部
使用程序
存放在/usr/bin、/usr/sbin、/usr/local/bin等目录下.
用户程序
用户经过编译生成的可执行文件后,也可以作为shell命令运行
Shell脚本
由shell语言编写的批处理文件
当用户输入一个命令后,shell 判断是否为内部命令,如果是就通过shell内部的解释器进行解释将其结果交给内核来完成;如果是外部命令或使用的程序就试图在硬盘中查找其命令掉入内存,再将其解释为系统功能调用并转发给内核来执行.在查找该命令时有两种情况.
(1) 用户给出了命令的路径,shell就沿着用户给出的路径进行查找,若找到则掉入内存,或者给出提示信息.
(2) 用户没有给出命令的路径,shell就在环境变量PATH所制定的路径中依次的去查找,若找到就掉入内存,若没有找到就给出提示信息.命令的解释过程如下图:
另外shell还有一些其他的功能
1) Shell的环境变量
2) 正则表达式
3) 输入输出重定向与管道3、shell的环境变量
环境的变量是用户登陆时linux系统为用户预先设定好的一类shell变量.环境变量的功能是设置用户在当前的shell中的工作环境,包括用户的宿主目录,命令的查找路径,用户当前的目录等.
环境变量的特点:
1) 环境变量的名称通常由大写之母,数字和其他字符组成,而不使用小写字母
2) 环境变量在linux系统中拥有固定的含义,因此环境变量名称是固定的
3) 环境变量的初始值在用户登陆时已经存在,并可以被其他命令读取和使用
4) 环境变量的值通常由linux系统自动维护,无需人工设置
5) 环境变量中的值会随用户状态的改变而改变,用户可以通过读取环境变量了解自己的当前的状态.
Set命令 用于查看当前系统的shell变量
Echo命令用了显示变量的值. 命令格式 echo 变量名称
Linux常用的环境变量:
USRE:表示当前用户登陆的命令.与whoami结果一样
UID:表示当前用户的UID.与id –u 的命令结果一样
SHELL:表示当前用户登陆的shell,与passwd中shell字段一致
HOME:表示当前用户的登陆目录(宿主目录),与passwd文件中的home字段一样
PWD:表示用户当前所在的目录,该变量和pwd命令的结果一样.
PATH:表示当前用户的命令搜索路径,即用户不能指定全路径的时候,shell程序将在哪些
目录下去搜索这些命令的搜索路径.
PS1:表示当前用户的主提示符.
PS2:表示当前用户的辅助提示符.
4、环境变量的配置文件Linux中的用户的环境变量是在用户登录时设置完成的,环境变量的配置是通过配置文件来实现的,环境变量配置文件分为全局配置文件和用户配置文件两种.
环境变量的全局配置文件包括“profile”和“bashrc”两个文件,linux中的用户在的登录的时候都会按照全局配置文件的内容进行设置工作环境.Profile和bashrc两个文件在功能上各有分工.这两个配置文件分别位置在/etc目录中.
Profile文件负责设置全局的环境,并应用于所有的用户登录shell.
Bashrc文件用于定义全局的函数和别名,文件的内容除了为系统中所有登录用提供设置外,也使用于非交互shell和非登录shell.
全局配置文件只有root用户才有权限进行修改和设置,文件的内容是很严谨的.因此没有特殊的要求,不要去修改里面的内容.
用户配置文件位于用户的宿主目录中,文件名是“.bash_profile” 和“ |