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 �Cu 的命令结果一样

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” 和“.bashrc”这两个文件。这两个文件名称都是以“.”开始的,在linux中系统作为默认的隐藏文件。用户可以通过修改“.bash_profile” 和“.bashrc”文件来更改自己的环境变量。

/etc/skel目录中保存了初始化的用户配置文件的模板,当用户对自己的配置文件进行错误的设置后,可以直接将“/etc/skel”中的模板文件复制到自己的目录,可以恢复正确的配置。

5、位置变量

位置变量于shell脚本程序执行时所对应的命令参数相对应,命令行中的参数按照从左到右的顺序赋值给位置变量。位置变量的名称的格式是“$n”,其中n是参数的位置序号,n是从1-9.例如:$1, $2, $3, $4分别表示命令的第一个参数、第二个参数、第三个参数和第四个参数。

在bash中的环境变量中有单引号(‘)、双引号(“)、和反引号(・)三种表示字符串用不同的功能。其中单引号(’)中的字符串不进行任何的变量替换,保持字符串中的原有的数据;双引号(”“)中的变量会引用变量的值来替换,并作为字符串的一部分来;反引号(・)用于进出命令的替换,引号中命令的执行结果将替换命令本身作为字符串。

6、预定义变量

预定义变量是linux系统中已经定义好的变量,用户只能使用预定义变量,而不能创建或赋值预定义变量。所有的预定义变量都是又 $和一个符号组成的,常用的shell预定义变量有:

$#:表示位置参数的数量

$*:表示所有位置参数是内容

$?:表示抿了执行后返回的状态,用于检查上一个命令的执行是否正确;在linux中命令退出状态为0表示命令正确执行,任何非0表示命令执行错误。

$$:表示当前进程的进程号

$!:表示后台运行的最后一个进程号

$0:表示当前进程执行的进程号

7、用户自定义变量

用户自定义变量是用户自己定义的变量,只在用户自己的shell中有效。

(1)自定义变量是设置格式:

变量名=变量值

(2)自定义变量的引用:echo $变量名(如上图)

Set命令可以显示系统中的所有变量,包括用户自定义变量:

(3) 自定义变量的输出

用户在当前shell中定义了某个变量后,只能在本shell中有效,对于当前shell的子shell是无效的。为了在用户的子shell也可以使用用户定义的变量,可以将其输出为全局变量。其命令格式如下:

Export [nf] [name[=value]………]

(4)自定义变量的清除

命令格式:nuset [-f] [-v] [name………]

二、bash的功能

1、 光标的移动

使用方向键可以任意的移动。

2、 退格键于删除键。

3、 定位命令到行首和行尾。

Home和end

4、 行内快速删除命令。

Ctrl+u组合键用于删除当前光标到行首的内容。

Ctrl+k组合键用于删除当前光标到行尾的内容。

5、 历史文件

History查看历史命令。

History �Cc清除历史命令。

6、 命令别名

命令别名的格式:alias name=value…..

Alias不加任何参数的时候显示当前shell的所有定义的别名

命令别名的取消:unalias [-a] name [name…..]

-a:表示删除当前shell中的所有定义的别名

三、shell的脚本

1、shell脚本的概念和特点

Shell脚本是使用shell命令编写的可执行程序,具有以下特点:

a) Shell脚本类似于dos中的批处理文件,是shell命令语句的集合,用于实现特定的功能。

b) Shell脚本程序保存在文本文件中,可以使用文本处理程序进行阅读和编辑。

c) Shell脚本程序是由shell环境解释执行的,不需要在执行前进行编辑。

d) 执行shell程序的时候,shell脚本文件需要具有可执行的权限。

2、基本脚本的编程

建立一个完整可运行的脚本需要经过以下几个步骤:

a) 建立shell文件。

b) 脚本中包含的内容。

1) 脚本运行环境设置

Shell脚本文件的首行内容是指定当前脚本运行需要的环境。通常以#!开始,后面需要使用的shell程序的全路径。

2) 注释的使用

在注释可以说明程序的功能,版本信息等。通常以“#“开始,后面跟注释的内容。

3) 脚本语言

脚本语言是脚本程序的重要的组成部分,是真正需要在shell程序中解释执行的部分。

c) 设置脚本文件为可执行。

2、脚本的运行

使用shell命令程序执行脚本

其命令的格式如下:bash [option] [file]

使用“.“命令执行脚本

其命令格式:.filename [argunents]

在linux系统中 通过使用shell,linux系统中的shell和vi编辑器应用详细介绍相关推荐

  1. linux中vi写java,Linux编辑器vi使用方法详细介绍

    摘要:vi编辑器是全部Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令.因为对Unix及Linux系统的任何版本,vi编辑器是 ...

  2. Linux编辑器vi使用方法详细介绍

    vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于对Unix及Linux系统的任何版本,vi编辑器是完全相 ...

  3. Linux操作系统——vi使用方法详细介绍

    转载请联系作者并注明出处:http://blog.csdn.net/woshizisezise/article/details/78052312 vi编辑器是所有Unix及Linux系统下标准的编辑器 ...

  4. Linux的编译器vi之最详细介绍

    01. vi 简介 1.1 学习 vi 的目的 在工作中,要对 服务器 上的文件进行 简单 的修改,可以使用 ssh 远程登录到服务器上,并且使用 vi 进行快速的编辑即可 常见需要修改的文件包括: ...

  5. shell 文本后几行_Shell和Vi编辑器

    一. 操作目的: 1. 熟悉shell的各项功能: 2. 掌握Linux系统终端方式使用的编辑器vi: 3. 学习vi的启动.存盘.文本输入.现有文件的打开.光标移动.复制/剪贴.查找/替换等命令. ...

  6. delphi中richedit中光标如何定位到最后_嵌入式开发之Linux系统中Vi编辑器的使用

    请大家关注点赞,已经完成物联网相关开发,会从硬件层,硬件中间层,传输层,软件中间件(物联网云平台),APP开发相关博文.首先从嵌入式开发博文开始!上一节关于<>.本节关于Linux系统中V ...

  7. Linux shell脚本基础学习详细介绍(完整版)2

    详细介绍Linux shell脚本基础学习(五) Linux shell脚本基础前面我们在介绍Linux shell脚本的控制流程时,还有一部分内容没讲就是有关here document的内容这里继续 ...

  8. linux中vi编辑器(转载)

    三种模式相互切换 在命令终端输入vi进入vi编辑器. 命令模式:进入编辑器即进入命令模式, 输入模式:在命令模式下输入"i "进入输入模式: 末行模式:按":" ...

  9. Linux中什么命令显示vi缩写,Linux命令(八)——vi编辑器的使用

    vi编辑器是linux系统下的标准正文编辑器,有三种基本模式:命令行模式.插入模式和底行命令模式. 1.命令行模式:控制屏幕光标的移动,字符.字或行的删除,移动复制某区段及进入插入模式或底行命令模式下 ...

最新文章

  1. Cocoa之NSWindow常用总结
  2. MySQLdb的安装
  3. 结构专业规范大全_1.2万篇 建筑行业规范大全套!速来!
  4. polycube--基于ebpf/xdp的网络套件(网桥,路由器,nat,负载平衡器,防火墙,DDoS缓解器)
  5. Java 中isEmpty和null、 的区别
  6. ListView优化
  7. 选项卡切换 内容也跟着变 微信小程序
  8. IAST安全扫描原理
  9. 从福彩官网抓取 双色球历史数据
  10. ftp客户端工具,几款优秀的ftp客户端工具
  11. 【强烈推荐】ProxyPool-快速构建免费代理池
  12. 前端登陆之cookie篇
  13. 移动硬盘在mac上无法显示 读不出来
  14. C语言 将整数n分解为若干质数(素数)之积
  15. Atomic类如何保证原子性
  16. matlab怎么输入列表,在MATLAB中具有灵活的有序/无序和标记/未标记输入列表的函数...
  17. 【狂神说笔记——JVM入门】
  18. 【慧河网络安全组】Web基础题解培训
  19. cmd mvn compile报错_Apex英雄下载超慢还各种报错?我终于把这些问题给解决了
  20. 在uniapp 中使用百度统计 【精华版】

热门文章

  1. Rosetta中文教程(二)
  2. 【专题】“莓日一介”之(BlackBerry 7100t)
  3. 使用Eviews做简单线性回归
  4. 【Python随记】:curses 库的快速入门
  5. 回归模型---一次函数与高次函数
  6. U6 3.2盘点单管理1.01
  7. Linux 下 ss 命令使用示例
  8. 清华大学计算机科学与技术专业课程
  9. 集装箱货物装箱3D模型
  10. 基于纷享销客开放平台,实现纷享CRM与金蝶云星空系统数据同步