学习shell

来源:互联网 发布:tunaproxy软件 编辑:程序博客网 时间:2024/06/05 16:12

一 vi文本处理器

vi文本处理器有三种模式:

1)  一般模式

2)  编辑模式

3)  命令行模式

常见命令见上一篇“vi常用命令”。

二Bash shell

1)  变量和变量的设定

变量是以一组文字或符号取代一些设定或一串数据。

l  echo:显示当前的PATH变量,命令格式如下:

[root @test root]# echo $PATH

l  env:读取当前系统中的主要变量

l  set:显示当前的环境变量和自定义变量

l  export:当取得一个bash之后,即得到了一个程序,但是若再次执行bash,那么将进入子程序,父程序中的变量设定将不继续存在,如果想让该变量内容继续在子程序中使用,要执行 export 变量

l  unset 直接取消该变量内容

自定义变量的两个原因:

l  路径名称

l  在脚本中

设定变量的规则如下:

l  变量与变量内容以等号“=”连接;

l  等号两边不能直接接空格符;

l  变量名称只能是英文字母与数字,其中数字不能是开头字符;

l  若有空格符,可以使用双引号或单引号将变量内容结合起来,但要特别留意,双引号内的特殊字符可以保留变量特性,单引号内的特殊字符则仅为一般字符;

l  必要时以跳转字符“\”将特殊符号(如Enter,$,\,空格符等)变成一般符号;

l  在一串指令中,还需要借助其他指令提供的信息,这时可以使用quote”`command”;

l  若该变量需要在其他子程序执行,则以export使变量可以动作,如export PATH;

l  通常大写字符为系统预设变量,自定义变量可以使用小写字符,方便判断;

l  取消变量的方法为:unset变量名称。

2)  命令别名与历史命令

alias与unalias

例如将ls –al | more简化为lm

[test @test test]alias lm= ‘ls –al | more’

 

History查询我们曾经输入的指令

3)  bash(Bourne Again Shell)的配置文件

l  系统设定值

默认的配置文件有下列几个:

/etc/profile

/etc/bashrc

/etc/man.config

l  个人设定值

/.bash_profile 定义了个人路径与环境变量的文件名称;

/.bashrc对于个人喜好的bash设定是最重要的;

/.bash_history用于将曾经用过的命令记录下来,而当再次以上下键搜寻或者直接以history搜寻时,就可以找到曾经用过的指令。

/.bash_logout:注销shell时,BASH做的事情。

4)  通配符与特殊符号

在shell中常用到一些通配符,这些通配符搭配一些特殊符号可以更好地利用指令。

5)  绝对路径与相对路径

l  绝对路径:将目录写全。

l  相对路径:系统默认是不主动搜寻当前目录下的执行文件。那么该如何执行当前目录下的执行文件?就是利用相对路径的概念。“..”是上层,而“.”是这一层。

6)  命令重定向

什么是重定向?就是将目前的所得数据转到其他地方。

l  <:由<的右边读入参数文件;

l  >:将原本由屏幕输出的正确数据输出到>右边的file或device;

l  >>:将原本由屏幕输出的正确数据输出到>>右边,与>不同的是,该文件将不会被覆盖,而新的数据将以累加方式添加到文件的最后面;

l  2>:将原本应该由屏幕输出的错误数据输出到2>的右边;

l  /dev/null:可以视为垃圾设备。

为何要使用命令输出重定向呢?

l  当屏幕输出的信息很重要,而且我们需要将它保存的时候;

l  背景执行中的程序,不希望它干扰屏幕正常的输出结果时;

l  一些系统的例行命令的执行结果,希望它可以保存下来时;

l  一些执行命令,我们已经知道可能的错误信息,所以想以2> /dev/null将它丢掉时;

l  错误信息与正确信息需要分别输出时。

7)  管线命令

如果一些数据必须经过几道手续之后才能得到我们想要的格式,需要用到管线命令。

常用管线命令:

cut:主要的用途在于将同一行里的数据进行分解。

sort:比较一些信息

wc:计算文件内容的工具

uniq:删除重复的行从而只显示一个

tee:将数据同时显示在屏幕上和文件中

三压缩指令与正规表示法

1)压缩解压指令

Linux中压缩文件后缀名大都是*.tar.gz,*.Z,*.bz2等类型。虽然linux中文件能不能执行与它的文件属性有关,与文件名的关系很小,为了帮助记忆,适当的文件名后缀名还是必要的:

*.Z:compress程序压缩的文件

*.bz2:bzip2程序压缩的文件

*gz:gzip程序压缩的文件

*.tar:tar程序打包的数据,没有经过压缩

*.tar.gz:tar程序打包的文件,且经过gzip压缩

l  compress与uncompress:压缩与解压缩后缀名为*.Z的指令。

l  bzip2,bzcat:bzip2是压缩解压缩指令,bzcat是读取压缩文件内容。

l  tar:tar是一个多用途的压缩指令,compress和gzip只适用在一个文件的压缩,但是如果要压缩一个目录,这时应该使用tar。

l  cpio:备份和还原。

2)正规表示法

正规表示法(Regular Express)使用的地方相当广泛。如grep指令

找出在/etc下文件内容含有*的文件名称?

执行:grep \* /etc/*

四脚本

下面用一个例子说明脚本的用法:

脚本的作用是检测主机的端口是否开启。

 

待续。

原创粉丝点击