分享

Vim入门基础和Shell脚本

 书永夜 2013-11-17

一 本文目的

了解和掌握Linux编辑器的使用以及了解和掌握Shell脚本编辑的方法。


二 本文概要

1.初识ViVim

2.打开并新建Vim

3.Vim三种基本工作模式及转换

4.各模式下的基本操作命令

5.Shell的产生与发展

6.Shell的主要功能

7.管道与重定向

8.Shell的变量

9.Shell脚本


三 详细介绍

1.初识ViVim

Vi是“visual interface(虚拟界面)“的简称,它是Unix世界中最通用的全屏幕文本 编辑器,可以执行输出,删除,查找,替换,块操作等众多文本操作。而且用户 以根据需要对其进行定 制,这是其它编辑器程序所没有的。vi没有菜单,它通过 命令来对文本进行编辑操作。Vim vi improved,vi增强版,它兼容 有标准vi操作,并且由多窗口编辑,多风格显示等新功 能。


2.打开并新建vim

a.Ctr+Alt+F1启动

b.通过终端进入 如: vim filename

在已经打开的vim中新建 如: :e! Filename

在已经打开的vim中另存为 如: :w filename


3.vim三种基本工作模式及转换

a.命令模式:为中心模式,输入i,a,o,c,r,s进入输入模式,输入:进入末行模式。

b.输入模式:按下“Esc”进入命令模式,不可直接转入末行模式。

c.末行模式:按下“Esc”进入命令模式,不可直接转入末行模式。

Ps:退出vim,可在命令模式中键入: :q 或者键入: :wq(保存退出)


4.各模式的基本操作命令

a.命令模式下的操作命令

H 将光标移动到屏幕最上行

nH 将光标移动到屏幕的第n

2H 将光标移动到屏幕的第2

L 将光标移动到屏幕最下行

nL 将光标移动到屏幕的倒数第n

3L 将光标移动到屏幕的倒数第3

dd 删除光标所在行,并去除空隙

ndd 删除n行内容,并去除空隙

3dd 删除3行内容,并去除空隙

b.末行模式下的操作命令

:345 将光标移动至345

:345w file 将第345行写入文件

:3,5w file 将第3行至第5行写入文件

:1,.w file 将第1行至当前行写入文件

:.,$w file 将当前行至最后一行写入文件

:.,.+5w file 从当前行开始将6行内容写入文件

:1,$w file 将所有内容写入文件


w 将编辑的内容写入原始文件

:wq 将编辑的内容写入原始文件,并退出编辑器

:w file 将编辑的内容写入文件 保持原有文件不变

:a,bw file 将第a行至b行的内容写入文件

:r file 读取file文件的内容,插入当前光标所在行的后面

:e file 编辑新文件代替原有内容

:f file 将当前文件重命名

:f 打印当前文件名称和状态,如文件的行数,光标所在的 行号等

:/str 正向搜索,将光标移动到下一个包含字符串str的行

:?str 反向搜索,将光标移动到上一个包含字符串str的行


5.Shell的产生与发展

a.什么是Shell?

Shell是一个系统程序,但与一般在后台运行的系统程序不同,它位于前台提供 Linux系统与用户交互操作的界面,他接受用户键入的程序执行请求,分析命令和参 数,并将命令提交给内核 或适当的进程进行处理。命令处理完毕后,Shell接受后 台进程返回的结果,然后通过Shell 面返回给执行命令的用户。

b.Shell的发展

Bsh——Csh——Ksh——Bash


6.Shell的主要功能

a.命令与路径补全功能

方法:按下Tab键,自动补全命令和路径

b.命令历史

history 显示所有输入过的命令

history -c 清空历史命令

通过命令历史号来匹配 如:!293 即执行历史命令第293

通过字符串匹配来查找 如:!cl 即查找以cl开头的最近历史命令

ps:可通过方向键上下来查找历史命令。

c.命令别名

alias 列举所有别名

unalias ls 取消别名

alias ls='ls –color=auto' 别名的设置

ps:每次打开终端设置命令别名,下一次重启时又会消失,可以通过修改配置脚本文 件:~/.bashrc来保存命令别名。


7.管道与重定向

a.管道 格式: 命令1 | 命令2 第一个命令的输出通过管道传给第二个命令,作 为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,以此类推。

如: ls -al ./ | wc 统计当前目录下的行数,字数,字符数

b.重定向

Linux系统中对所有的设都通过文件的形式来引用,而每一个文件在Linux系统内 核中都分配 一个文件描述符(非负整数)来进行管理,固定的0号文件描述符分配 给标准输入文件,对应终 端键盘;1号文件描述符分配给标准输出文件,对应终端 屏幕。2号文件分配给标准错误输出文 件,也对应终端的屏幕。

输入重定向 命令 < 文件名

输出重定向 命令 > 文件名 如果符号后面的文件已经存在,那么这个文件将 被重写。

输出追加重定向 命令 >>文件名 把命令的输出结果追加到指定文件的最后,而 该文件原 有内容不被破坏。

标准错误输出重定向 命令 2>文件名

ps:2>>追加错误输出到文件;&>将标准输出和错误输出同时送到同一文件中。

8.Shell变量

a.本地变量:由用户自己定义,只作用于当前的Shell环境,对于在这个Shell环境 下启动的子shell进程,它将不能够被有效访问。

设置变量 变量名=变量值

ps:在给变量赋值时,等号两边一定不能留空格,若变量中本身包含了空格,则整个 字符串都要 用双引号括起来。如果一个变量设定为一个特定值后就不再改变它的值, 可以用readonly命令设置这个变量为只读,如: readonly 变量名 这样将不能对 该变量进行重新赋值或销毁,否 则将会报错。

引用变量 需要引用变量的值时,在变量名前加上符号$,如果要显示上面定 义的变量,则可以用echo命令 ,如: echo $变量名

清除变量 unset 变量名

查看所有的变量 set | more

b.环境变量(定义用户的工作环境,用户可以在当前Shell和任意子Shell中获得它 们的设置)

设置环境变量 等同于本地变量,但必须使用export命令导出,使之能够用于 全部的Shell环境

引用环境变量 echo $变量名

显示所有的环境变量 export

清除环境变量 unset 变量名

ps:常用的环境变量Shell在开始执行时就已经定义了一些与系统工作环境有关的变 量,用户可 以重新定义这些变量。

c.位置参数变量

shell程序执行过程中,Shell通过位置参数变量来获得用户在命令行上附加的参 数。位置参 数变量共有9各——$1-$9,它们分别标识了用户输入的整个命令行中以 空格分隔开的字符串,其中,$1标识第一个位置的参数,注:$0标识Shell 程序本身,但不是位置参数。Shell预定义变量$#标识参数的个数。如果参数变量 超过9个,在标准情况下,第九个及其以后的参数将被作为一个字符串赋值给 $9 变量。

shift命令把参数列表向前移动一位,即每运行一次shift命令,第一个参数就被挤掉, 而后面的参数依次前移一个位置。

d.预定以变量

预定以变量时Shell内部已经定义好的变量,它的值由Shell根据系统环境的变化自 动赋值,不能手工更改它的值。所有预定义变量都是由$符和另一个符号组成的,用 户通过它们可以获得当前脚本程序的运行信息。

$# 传递到脚本的参数数量

$* 以一个单字符串显示传递到脚本的所有参数内容

$? 命令执行后返回的状态,返回0表示成功执行,其它值则表示执 行错误

$$ 当前进程的进程号

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

$0 当前执行的进程号


9.Shell脚本

a.脚本的概念

脚本程序的内容以文本的形式存储,运行之前不需要编译,由解释程序解释执行,一 般可以运行 在除系统软件以外的各个领域。同二进制文件相比,它具有同样的运行 级别,并具有快速开发,实时修改,无需编译,缺点是运行速度慢,支持的数据类型 少,缺少广泛的基础库支持,主要用于系统管理和文件操作,能够方便自如地处理大 量重复行的系统工作,降低管理源敲击键盘和出现错误的机会。Shell脚本的解释程 序就是Shell本身,如bash脚本程序的解释程序就是/bin/bash。在脚本程序的首 行使用“#!”符号指定脚本程序的解释程序。

b.脚本程序的执行方法

1:./filename

2:bash filename

3:. filename

4:exec filename

c.条件测试

1.使用test 命令: test 条件表达式子

2.使用中括号 表达式 ] 提示:在条件表达式的两边都必须留有一个空格

d.流程控制

1.ifthen else语句

if 条件语句1

then 命令语句1

elif 条件语句2

then 命令语句2

else 命令语句3

fi

2.for循环

for 变量名 in 列表

do

命令

done


3.until循环

until 条件

do

命令

done

4.while循环

while 条件

do

命令

done

5.case语句

case in

模式1

命令1;;

模式2

命令2;;

模式3

命令3;;

esac

e.函数

函数的声明必须在调用之前。




四 本文扩展

两个命令:wccat one.sh | grep echo


五 本文总结

shell各种变量的使用,环境变量配置的更改以及shell脚本程序的编写都是本章难 点,需要慢 慢消化。



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多