Shell 其实就是一个解释执行命令的程序,
所谓shell编程其实就是用一定的语法将各种基本的命令组合起来,让shell程序去解释执行。
如果对windows的dos有了解,可以这样理解,其实shell脚本文件和.bat批处理文件差不多。
然而linux下的shell比起windows的dos强大很多,呵呵。
为了安全起见,创建一个普通的账号进行学习
]# useradd 17rumen
]# passwd 17rumen
然后使用 17rumen 这个用户登陆linux
bash只是其中的一个shell,还有其他的shell ,例如: sh ,tcsh, ksh 等等
查看当前使用使用的shell
echo $SHELL
我现在使用 centos 5.5 linux 默认就是使用 bash shell
Ubuntu10.10同样使用 bash ,以前的 redhat 9.0 应该也是的
//=====================================================
如何编写一个 shell脚本 ? 使用 vi/vim 编辑器,
vi my_01.sh
echo "hello,开始学习shell脚本编程"
保存退出 :wq ,要输入中文汉字,在putty设置 UTF-8 即可
但是这个脚本没有权限执行,我们需要对这个文件添加一个权限
[17rumen@localhost ~]$ ./my_01.sh
-bash: ./my_01.sh: Permission denied
给当前用户添加一个执行的权限
chmod u+x my_01.sh
bash my_01.sh
这样就指定使用bash shell 来执行脚本
不过我们一般不这样做, 我们一般在脚本文件最开头指定 #!/bin/bash
//=====================================================
关于 PATH设置当前路径 , 修改之前建议大家先做一个备份
[17rumen@localhost ~]$ my_01.sh
-bash: my_01.sh: command not found
[17rumen@localhost ~]$ echo $PATH
/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/17rumen/bin
echo $PATH
ls /bin
PATH=$PATH:.
这只是临时的修改, 一旦重启,重新登陆 就无效。
要永久性的修改, 就要对一个文件进行修改
vi /etc/profile 在最后添加下面两行
PATH=$PATH:.
export PATH
保存退出
使用 source 命令, 让profile马上生效
source /etc/profile
学习内容: vi/vim 操作使用
直接输入 vi 可以看到 版本信息
重点: [INSERT]输入模式 和 命令模式 的切换
VIM - Vi IMproved
version 7.0.237
按 [Esc]键 切换到 命令模式
:w mytest.txt 保存文件名
:q 退出
:q! 强制退出
---------------------------------
我们新建一个文件 并且进行编辑
一般使用 vi + 一个文件名
编辑完毕就 :wq 保存并且退出
-------------------------------
在网上看到一些命令大全 , 我这里只演示一下 我常用的
输入模式和命令模式的切换,配合一般键盘上的功能键,
例如 方向键、[Delete]键 等等,基本上可以操作 vi
对于要求不高的用户,并不需要用太多一些命令。
对于我们学习shell脚本的来说, 一些简单常用操作 已经足够了,
如果以后发现不够用的话,可以查vi相关文档。
插入文本类命令
i 在光标前
I 在当前行首
a 光标后
A 在当前行尾
删除命令
x 删除当前光标所在的字符
dd 删除当前整行
搜索命令
/pattern 从光标开始处向文件尾搜索pattern
?pattern 从光标开始处向文件首搜索pattern
n 在同一方向重复上一次搜索命令
N 在反方向上重复上一次搜索命令
屏幕翻滚类命令,上一页 下一页的显示
Ctrl+f: 向文件尾翻一屏
Ctrl+b: 向文件首翻一屏
显示行号
:set nu
取消
:set nonu
//====================================================
对于不同用户设置不同的vim配置, 可以修改 ~/.vimrc 如果没有这个文件,可以创建一个。
例如我想关闭语法高亮显示,还有显示行号 然后加入下面两行
syntax off
set nu
搜索时候的高亮显示:
set hlsearch
加上下面的语句就不会有高亮显示:
set nohlsearch