以替换s
均在末行模式下使用:s语法
:起始,结束s/旧/新/ 默认查找替换第一次出现的 加g表示全局替换
:点,$ 表当前行至行尾 点表示当前行
思考题:文件中有个baseurl=ftp://192.168.0.254/pub/server中的ftp://192.168.0.254/pub替换成/var/yum
将其/反义表达下用反斜杠表示: :%s/ftp://192.168.0.254/pub
命令行扩展
1 ~ 用户的家目录
2 {} 路径扩展(能实现将逗号隔开字符依次的展开) 比如一个命令创建x,x/y,x/z mkdir –pv {y,z} 一个命令创建m,m/n,m/p,m/n/z mkdir –p m/{n/z,p}
3 ` $()反引号命令取反将反引号内的命令的执行结果返还给外部命令调用:例如echo "it is $(date '' %T'')"或echo "it is `date '' %T''`"在英文模式下手动输入
echo –e选项 n 换行
echo查看变量内容但需要加$
变量是命名的存储空间,是以一组文字或符号,来替换一些设置或是一串保留的数据
整数,浮点,布尔,字符
Bash特征:把所有的变量都是字符
1,不区分变量类型
2,不用事先声明,直接使用
${}引用变量的当变量还有内容时 加{}
如何给变量命名
1字母或者下划线开头 2 名字中一般包含字母数字下划线不要包含特殊字符
3建议使用大写字母
变量类别:本地变量(只对本shell生效)
拥有帝国一切,皆有可能。欢迎访问phome.net 环境变量(当前shell和子shell) 特殊变量(bash内置) 位置变量
查看内部系统环境变量:printenz export
在变量引用中单引号和双引号的区别:单引号属于强引用,单引号内只是一般字符;双引号是弱引用,双引号内可以保持变量内容
反引号:使用命令本事时
Vimtutor教程
声明一标量:“变量名=....”例如:#MYHOME=/user/username 引用是“$变量名”如echo $MYHOME
set命令声明变量,可省略,撤销变量:unset 撤销和赋值时不加$符号
bash打开子shell,exit退出
声明环境变量:export
已经声明一本地变量使之成为环境变量:直接在本地变量前加export
$USER 当前用户 $SHELL当前使用的shell $HISTSIZE缓存大小 PATH二进制环境变量
echo $USER 显示当前的用户 echo $SHELL显示当前用户所用的shell
保存执行命令的文件:~/.bash_history
which 命令显示一个命令的完整的路径
hash 查看所执行过的命令及所在的位置
PS1定义显示的格式
命令别名:alias
定义alias 别名=原名 例如alias dir=ls 相当于执行dir就是执行ls一样
撤销:unalias 名称
单独的alias显示系统所有的别名
使用命令本身是:命令
shell脚本的编译
编译型语言:静态语言需要与库向连接(c,c ,java,c#)
1,执行效率高2代码维护成本高
脚本型语言:动态语言(shell,perl,python,ruby)
解释执行
脚本就是命令的罗列
例子:
Vim myfirstshell.sh 编辑用户
#! /bin/bash 解释器
# 以#号开头是注释
echo “Add a user user6:”
useradd user6 增加用户
echo “set password for user6:”
echo “123456” |passwd --stdin user6 加密码
echo “The id of user6:”
id user6
拥有帝国一切,皆有可能。欢迎访问phome.net 显示信息
执行脚本: ./myfirstshell.sh
例子:1,显示当期系统日期 时间 用户shell
1 #! /bin/bash
2 echo "the current date is:`date '' %D''`"
3 echo "the current date is:`date '' %T''`"
4 echo "the current user is: $USER and shell is $SHELL"
bash –n 脚本 检查脚本语法
环境配置文件
全局配置文件 |