Shell4
ssh 192.168.4.5
>提示continue,连接过的主机不会提示
>连接过的主机 文件存放位置:/root/.ssh/known_hosts
#####################################################################
字符串的截取:
# X=1383838438
# echo $X
1383838438
# echo ${X}
1383838438
# echo ${#X}
10
第一种
${var:起始位置:长度},从第0位开始
${X:0:4}
${X:3:6}
${X::4}
对下面的数随机取一为做随机密码:
# X=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
# n=$[RANDOM%62] 26小写字母+26大写字母+10个数字=62
# echo ${X:$n:1}
X=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
pass=''
for i in {1..6}
do
n=$[RANDOM%62] #26小写字母+26大写字母+10个数字=62
tmp=${X:$n:1}
pass=${pass}$tmp
done
echo $pass
第二种
expr substr $变量 开始位 长度
# X=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
# expr substr $X 2 3 #从第1位开始数,没有第0位
bcd
# expr substr $X 1 3
abc
第三种
echo $变量|cut -b 开始位置-结束位置
echo $X |cut -b 2-5
echo $X |cut -b 3,8,11
########################################################################
vim 替换
:s/old/new
# X=1383838438
# echo ${X/3/#} /表示替换一个数,这里代表将第一个3替换成#
1#83838438
# echo ${X//3/#} //表示替换所有的数,这里代表将所有的3替换成#
1#8#8#84#8
注意这种替换并不改变X变量的值
# echo $X
1383838438
掐头、去尾
${变量#} 掐头
${变量%} 去尾
# X=`head -1 /etc/passwd`
# echo $X
root:x:0:0:root:/root:/bin/bash
# echo ${X#*:} 一个#代表最短的*:内容 掐掉开头
x:0:0:root:/root:/bin/bash
# echo ${X##*:} 两个##代表最长的*:内容 掐掉开头
/bin/bash
# echo ${X%:*} 一个%代表最短的*:内容 去掉尾巴
root:x:0:0:root:/root
# echo ${X%%:*} 两个%%代表最长的*:内容 去掉尾巴
root
##############################################################
echo ${变量:开始:长度} 截取
echo ${变量/old/new} 替换
echo ${变量#} 掐头
echo ${变量%} 去尾
echo ${变量:-} 初始化
touch {a、b、c、d、e、f}.txt
批量重命名:将.txt改为.doc
for i in `ls *.txt`
do
mv $i ${i%.*}.doc
done
###############################################################
数组:一个变量存多个值
X=(11 22 33 aa bb cc)
# echo ${X[0]}
11
# echo ${X[1]}
22
# echo ${X[4]}
bb
# echo ${X[*]}
11 22 33 aa bb cc
##############################################################
非交互式发送邮件
echo "内容" |mail #不需要文件
mail < 文件 #需要另外一个文件,内容可以很复杂
yum -y install expect 非交互的工具expect
vim test.sh
mail -s error root << EOF end of life
内容
内容
内容
......
EOF
#############################################################
#!/bin/bash
rm -rf /root/.ssh/known_hosts #所有已经连接过的主机存储为这个位置,删掉后会>提示未连接过的主机,要不要继续远程登录
expect << EOF
spawn ssh 172.25.0.10
expect "continue" {send "yes\n"}
expect "passwd" {send "redhat\n"}
expect "#" {send "touch /a.txt\n"}
expect "#" {send "exit\n"}
EOF
3个问题
1、continue的问题
rm -rf /root/.ssh/known_hosts #所有已经连接过的主机存储为这个位置,删掉后会>提示未连接过的主机,要不要继续远程登录
2、超时问题
set timeout
3、最后一行不执行
####################################################################################
正则表达式:使用特殊符号去表达的一种方式
^ 开始
$ 结尾
[] 集合、取之一
[abcdef56789]==[a-f,5-9]==[5-9,a-f]
[abc]==[cba]==[bac]==[bca]==[cab]==[acb]
[^] 对集合内容取反
. 任意单个字符,同?
* 匹配前一个字符出现了任意次
.* 匹配任意长度的任意所有
\{n,m\} 匹配前一个字符出现了n到m次
\{n,\} 匹配n个以上的(包括n个)
\{n\} 匹配n个
grep a\{3,5\} 匹配3到5个a; grep a\{3,\} 匹配3个以及3个以上的a; grep a\{3\} 匹配3个a
#####################################################################################
unset 变量 #清除变量的值
[a-Z]==[a-z,A-Z]
扩展正则表:(简化基本,扩展新的)
{2,5\}----------------->{2,5}
(\) ()
*任意次 ? 前面的字符出现0次或1次
+ 前面的字符出现至少1次
()整体 (abc)+
abc abccc abccccc...
|或者 (test|taste)
扩展正则:写的简单,兼容性差(支持正则的不一定支持扩展)
基本正则:写的麻烦,兼容性强(几乎所有支持正则的都支持)
grep不支持扩展正则
egrep支持扩展正则
grep -E 扩展正则 用grep调用egrep来支持扩展正则
egrep "\bthe\b" txt #\b代表单词边界
###################################################################################
\(\) 保留(复制)
() 保留(复制)
\1 将保留的第一个复制出来
vim a.txt
abcdefabcdefabcdefabcdef
grep "(abcdef)\1\1\1" a.txt 将()里面的保留内容复制粘贴3遍 所有的字母都变红
vim a.txt
abcdefabcdeffqwerfqwer
grep "(abcdef)\1(fqwer)\2" a.txt 将第一()里面的保留内容复制粘贴1遍;将第二()里面的保留内容复制粘贴1遍 所有字母都变红
vim a.txt
hello the world
ni hao ya
san li tun jian
把第一个字母和最后一个字母对调
sed -r 's/^(.)(.*)(.)$/\3\2\1/' a.txt
Shell4的更多相关文章
- shell--4.echo和printf
1. echo (1) echo ,显示普通字符串 echo "HelloWorld" 打印:HelloWorld (2) \ ,显示转义字符串 echo "\" ...
- 自学Linux Shell4.1-监测程序ps top kill
点击返回 自学Linux命令行与Shell脚本之路 4.1-监测程序ps top kill 1. PS命令 linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的 ...
- 自学Linux Shell4.2-监测磁盘空间mount umount df du
点击返回 自学Linux命令行与Shell脚本之路 4.2-监测磁盘空间mount umount df du 1. 挂载存储媒体mount 移除存储媒体umount ls命令用于显示文件目录列表, ...
- 自学Linux Shell4.3-处理数据文件sort grep gzip tar
点击返回 自学Linux命令行与Shell脚本之路 4.3-处理数据文件sort grep gzip tar ls命令用于显示文件目录列表,和Windows系统下DOS命令dir类似.当执行ls命令时 ...
- shell-4.bash的变量:用户自定义变量
目录 内容
- Linux 数组
200 ? "200px" : this.width)!important;} --> :介绍 在shell4.0之后支持普通数组和关联数组,普通数组只能使用整数作为索引,关 ...
- Atitit.木马 病毒 免杀 技术 360免杀 杀毒软件免杀 原理与原则 attilax 总结
Atitit.木马 病毒 免杀 技术 360免杀 杀毒软件免杀 原理与原则 attilax 总结 1. ,免杀技术的用途2 1.1. 病毒木马的编写2 1.2. 软件保护所用的加密产品(比如壳)中,有 ...
- [转]Windows Shell 编程 第三章 【转自:http://blog.csdn.net/wangqiulin123456/article/details/7987901】
第三章 操作文件 我依然清楚地记得,Windows95 的贝塔版出现的情形,它在朋友之间和学院中传播,好酷,全新的文件管理器,一种全图标,全彩色可客户化的界面,以及活泼的动画标识使得在文件拷贝和删除方 ...
- [转]Windows Shell 编程 第九章 【来源:http://blog.csdn.net/wangqiulin123456/article/details/7987969】
第九章 图标与Windows任务条 如果问一个非程序人员Windows最好的特色是什么,得到的答案应该是系统最有吸引力的图标.无论是Windows98现在支持的通用串行总线(USB)还是WDM(看上去 ...
随机推荐
- sql的分页
public static string GetPageSql(string sql, int start, int end) { return string.Fo ...
- mysql的安裝
记得上学的时候,“研究”过一次mysql,找了篇文章,在课堂上念了.至今已经10余年,居然没再碰过数据库,自以为做嵌入式不用数据库,回头一看,却已经out许久... 上网下到最新的mysql5.5,从 ...
- sql-主键、外键、索引
SQL的主键和外键的作用: 外键取值规则:空值或参照的主键值. (1)插入非空值时,如果主键表中没有这个值,则不能插入. (2)更新时,不能改为主键表中没有的值. (3)删除主键表记录时,你可以在建外 ...
- 1、jQuery操作Dom
1.添加元素 <code> <script language="JavaScript">$().ready(function(){$("input ...
- [转载]真正的inotify+rsync实时同步 彻底告别同步慢
原文链接http://www.ttlsa.com/web/let-infotify-rsync-fast/ 背景我们公司在用inotify+rsync做实时同步,来解决分布式集群文件一致性的问题.但当 ...
- PHP定时任务实现(计划任务 vs node.js)
PHP自动任务(单线程) 一.计划任务实现 :最终需要在服务器(windows)上 设置计划任务 1.写好php任务文件 auto.php:链接数据库 判断条件操作数据库 2.创建bat文件 例:ru ...
- (转)SQL Server 2012 手动安装帮助文档+排错
逆天SQL Server 2012装的不要不要的,最后发现...竟然没帮助文档...汗啊!原来它跟vs一样要自己装帮助文档...好吧,官网一下载,妹的...报错...然后就让我们还原这个安装过程以及逆 ...
- (1.3)学习笔记之mysql体系结构(C/S整体架构、内存结构、物理存储结构、逻辑结构)
目录 1.学习笔记之mysql体系结构(C/S架构) 2.mysql整体架构 3.存储引擎 4.sql语句处理--SQL层(内存层) 5.服务器内存结构 6.mysql如何使用磁盘空间 7.mysql ...
- Spring Cloud注册中心高可用搭建
Spring Cloud的注册中心可以由Eureka.Consul.Zookeeper.ETCD等来实现,这里推荐使用Spring Cloud Eureka来实现注册中心,它基于Netfilix的Eu ...
- Redis Sentinel 高可用方案
redis 主从复制的问题 Redis主从复制可将主节点数据同步给从节点,从节点此时有两个作用: 1,一旦主节点宕机,从节点作为主节点的备份可以随时顶上来. 2,扩展主节点的读能力,分担主节点读压 ...