鸟哥的Linux私房菜(三)Vim和Shell入门
Vim
所有Linux系统都会内置Vi编辑器,在没有图形界面的编辑器中,必能熟练操作文本是很痛苦的一件事。所以我们必须掌握基本的Vi操作。而Vim则是Vi的升级版,大部分功能一致
三种模式
Vi分为3种模式,分别是一般模式、编辑模式、命令行模式。
刚进入Vi的时候处于一般模式,当按下特定按键的生活,比如i,会进入编辑模式。
命令行模式是在一般模式下进行快捷命令操作的途径,例如保存文件命令:wq
常用命令
i 插入
w 移动光标到下一个单词开头.
e 移动光标到下一个单词结尾
b 移动光标到上一个单词.
0 移动光标到本行最开头.
^ 移动光标到本行最开头的字符处.
$ 移动光标到本行结尾处.
A 移动光标至行尾并处于“追加”状态,直接编辑
H 移动光标到屏幕的首行.
M 移动光标到屏幕的中间一行.
L 移动光标到屏幕的尾行.
gg 移动光标到文档首行.
G 移动光标到文档尾行.
:n 跳至第n行
:q 退出
:w 保存
:wq 保存并退出
掌握一些基本的 Vi命令后,我们就打下了使用Linux的基础,当然,离熟练操作还很远,需要长时间的反复练习
shell
了解Bash
bash 是一个为GNU计划编写的Unix shell。它的名字是一系列缩写:Bourne-Again SHell
bash是大多数Linux系统以及Mac OS X默认的shell,它能运行于大多数类Unix风格的操作系统之上,甚至被移植到了Microsoft Windows上的Cygwin系统中,以实现Windows的POSIX虚拟接口。
Bach有常见的几种类型:
sh:sh 由Steve Bourne开发,是Bourne Shell的缩写,sh 是Unix 标准默认的shell。
csh:csh 是Linux比较大的内核,它由以William Joy为代表的共计47位作者编成,共有52个内部命令。该shell其实是指向/bin/tcsh这样的一个shell,也就是说,csh其实就是tcsh。
ksh:ksh 是Korn shell的缩写,由Eric Gisin编写,共有42条内部命令。该shell最大的优点是几乎和商业发行版的ksh完全兼容,这样就可以在不用花钱购买商业版本的情况下尝试商业版本的性能了。
一般的,我们操作Linux,在没有图形界面的情况下,都是使用默认的Bash和Linux内核进行交互
Shell
Shell也是一种脚本语言,类似于众所周知的PHP和Python那样,并且Shell也几乎是专用于Linux类系统zhon
Shell有两种执行命令的方式:
交互式(Interactive):解释执行用户的命令,用户输入一条命令,Shell就解释执行一条。
批处理(Batch):用户事先写一个Shell脚本(Script),其中有很多条命令,让Shell一次把这些命令执行完,而不必一条一条地敲命令。
变量
Shell支持自定义变量。
定义变量时,变量名不加$符号:
variableName="value"
变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:
首个字符必须为字母(a-z,A-Z)。
中间不能有空格,可以使用下划线(_)。
不能使用标点符号。
不能使用bash里的关键字(可用help命令查看保留关键字)。
使用一个定义过的变量,只要在变量名前面加美元符号($)即可.
变量名外面的花括号是可选的,加花括号是为了帮助解释器识别变量的边界。
运算符
Bash 支持很多运算符,包括算数运算符、关系运算符、布尔运算符、字符串运算符和文件测试运算符。
常用命令
alias / unalias 设置、取消设置 一条命令的别名
history 读取执行的命令历史记录
数据流重定向
重定向符号可以算是非常常用的一个操作了,可以把向标准输出的内容转到输出文件,并可配合管道操作符等完成一系列操作,使用‘>’符号
例如
# 读取当前目录下列表并保存到文件 ls -la > 1.txt
管道
管道就是在输出留点 过程中,对数据进行处理的中间过程,使用‘|’符号
例如:
# 过滤出一个文件中的包含Hello的行 cat 1.txt | grep hello
#Linux#当前位置:P345页