Shell类
例子: 显示文件名称脚本
./show.sh file1.txt
cat show.sh
#!/bin/bash echo $1
例子 : 脚本会复制文件(arg1) 到目标地址(arg2)
./copy.sh file1.txt /tmp/
cat copy.sh
#!/bin/bash cp $1 $2
V1="Hello"
V2="World"
V3=${V1}${V2}
echo $V3
输出
HelloWorld
A=5 B=6 echo $(($A+$B))
echo $[$A+$B]
expr $A + $B
echo $A+$B | bc
awk 'BEGIN{print '"$A"'+'"$B"'}'
for i in $(ls);
do
echo item:$i
done
#!/bin/bash
COUNTER=0
while [ $COUNTER -lt 10 ];
do
echo The counter is $COUNTER
let COUNTER=COUNTER+1
done
#!/bin/bash
COUNTER=20
until [ $COUNTER -lt 10 ];
do
echo COUNTER $COUNTER
let COUNTER-=1
done
- & - 希望脚本在后台运行的时候使用它
- && - 当前一个脚本成功完成才执行后面的命令/脚本的时候使用它
- ' - 当我们不希望把变量转换为值的时候使用它。
- " - 会计算所有变量的值并用值代替。
- ${variable:-10} - 如果之前没有给 variable 赋值则输出 10;如果有赋值则输出该变量
- ${variable: -10} - 输出 variable 的最后 10 个字符
for i in {0..100..3};
do
echo $i;
done
或
for (( i=0; i<=100; i=i+3 ));
do
echo "Welcome $i times";
done
- [ $a == $b ] - 用于字符串比较
- [ $a -eq $b ] - 用于数字比较
- = - 用于为变量赋值
- == - 用于字符串比较
- [[ $string == abc* ]] - 检查字符串是否以字母 abc 开头
- [[ $string == "abc" ]] - 检查字符串是否完全等于 abc
- $* - 以一个字符串形式输出所有传递到脚本的参数
- $@ - 以 $IFS 为分隔符列出所有传递到脚本中的参数
/usr/bin/expect << EOD
spawn rsync -ar ${line} ${desthost}:${destpath}
expect "*?assword:*"
send "${password}\r"
expect
eof
EOD
#!/bin/bash
i=1
while[ $i -le 100 ];do
ret=1
for(( j=2;j<$i;j++ ));do
if [ $(($i%$j))-eq 0 ];then
ret=0
break
fi
done
if[ $ret -eq 1 ];then
echo-n "$i "
fi
i=$((i+1))
done
#!/bin/bash
fileinfo=$(du ./*)
length=${#fileinfo[@]}
for((i=0;i<$length;i=$((i+2 ))));do
if[ ${fileinfo[$i]} -le 10 ];then
mv ${fileinfo[$((i+1 ))]} /tmp
fi
done
/sbin/iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 192.168.2.1:8080
/sbin/iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to 8080
echo "1 6-12/2 * 11 * root /usr/bin/httpd.sh >> /etc/crontab"
psaux | grep | cut -f? 得到pid
cat/proc/pid
killpid
find / -name abc.txt
touch ~/newfile.txt
awk -F "," '{if($2>56789){print $0}}' file.txt
sed -n "1p;3p;5p;7p;10p;15p" file.txt
awk 'NR==1||NR==3||NR==5||…||NR=15{print $0}' file.txt
sed -i "s#\t#\|#g" file.txt
#!/bin/bash
str=`find ./ -name \*.sh`
for i in $str
do
mv $i ${i%sh}shell
done
#!/bin/bash
for((i=1;i<=50;i++));do
userdel stud$i
done
/sbin/iptables -A input -p tcp -dport 22 -s 10.1.8.179 -j ACCEPT
/sbin/iptables -A input -p udp -dport 22 -s 10.1.8.179 -j ACCEPT
/sbin/iptables -A input -j DROP
1)查询file1里面空行的所在行号
grep -n ^$ file1
2)查询file1以abc结尾的行
grep abc$ file1
3)打印出file1文件第1到第三行
head -n3 file1
sed "3q" file1
sed -n "1,3p" file1
1)将shutdown字符串全部替换成reboot
:%s/shutdown/reboot/g
2)清空所有字符
:%d
3)不保存退出
q!
#!/bin/bash
j=0
for((i=1;i<=100;i++));do
j=$[j+i]
done
echo $j
/bin/sh /bin/bash /bin/ash /bin/bsh /bin/csh /bin/tcsh /sbin/nologin
for while until
/sbin/iptable -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 192.168.1.11-192.168.1.12
#!/bin/bash
file=`find / -size +50k -size -100k`
for i in $file;do
rm -rf $i
done
#!/bin/bash
file=`ls dir[123]/file[123]`
for i in $file;
do
mv $i ${i%/*}/${i%%/*}_${i##*/}
done
#!/bin/bash
file=`ls [ABC]/A[123]`
for i in $file;
do
mv $i ${i%/*}/A${i#*/}
done
Shell类的更多相关文章
- Flask script 内的Shell 类 使用
1.集成Python shell 每次自动shell会话都要导入数据库实例和模型,很烦人.为了避免一直重复导入,我们可以做些配置让Flask-Script的Shell命令自动导入特定的对象.若想把对象 ...
- Xamarin.FormsShell基础教程(9)Shell相关类体系
Xamarin.FormsShell基础教程(9)Shell相关类体系 在Shell中,最为主要的类是Shell类.Shell类实现了大多数应用程序所需的基本UI功能的页面.除此以外,常用的类还有Sh ...
- 关于SWT的容器类之----面板Composite类和Group类
1.Comosite类谱系图. Composite的用法: 格式:Composite(Composite parent,int style) 用法:Composite composite = new ...
- SHELL编程入门简介
一.SHELL软件概念和应用场景 1) 学习Linux技术,不是为了学习系统安装.命令操作.用户权限.配置IP.网络管理,学习Linux技术重点:基于Linux系统部署和维护各种应用软件.程序(Apa ...
- SHELL编程概念&变量剖析
一.shell软件概念和应用场景 1) 学习Linux技术,不是为了学习系统安装.命令操作.用户权限.配置IP.网络管理,学习Linux技术重点:基于Linux系统部署和维护各种应用软件.程序(Apa ...
- Java类的继承与多态特性-入门笔记
相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特 ...
- HDFS简介【全面讲解】
http://www.cnblogs.com/chinacloud/archive/2010/12/03/1895369.html [一]HDFS简介HDFS的基本概念1.1.数据块(block)HD ...
- 全局程序集GlobalAssemblyInfo.cs进行版本控制(引)
原文出自:http://blog.csdn.net/oyi319/article/details/5753311 1.全局程序集GlobalAssemblyInfo.cs 我们编写的一个解决方案,通常 ...
- (转)Android学习进阶路线导航线路(Android源码分享)
转载请注明出处:http://blog.csdn.net/qinjuning 前言:公司最近来了很多应届实习生,看着他们充满信心但略带稚气的脸庞上,想到了去年的自己,那是的我是不是也和 现在的他们一 ...
随机推荐
- 微信小程序支付功能 C# .NET开发
微信小程序支付功能的开发的时候坑比较多,不过对于钱的事谨慎也是好事.网上关于小程序支付的实例很多,但是大多多少有些问题,C#开发的更少.此篇文档的目的是讲开发过程中遇到的问题做一个备注,也方便其他开发 ...
- oracle数据库自动生成数据库表结构文档(亲测有效)
import java.awt.Color; import java.io.FileOutputStream; import java.sql.Connection; import java.sql. ...
- s3c2440裸机-UART编程(一、UART硬件介绍及传输原理)
1.uart硬件介绍 UART的全称是Universal Asynchronous Receiver and Transmitter(异步收发器). uart主要用于: 1.打印调试 2.数据传输 串 ...
- 007.MongoDB特殊成员
一 MongoDB成员 1.1 常见特殊member Secondary存在一些特殊的成员类型: Priority 0 #不能升为主,可以用于多数据中心场景 Hidden #对客户端来说是不可见的,一 ...
- 005.MongoDB索引及聚合
一 MongoDB 索引 索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录. 这种扫描全集合的查询效率是非常低的,特别在处 ...
- Codeforces Round #588 (Div. 2)
传送门 A. Dawid and Bags of Candies 乱搞. Code #include <bits/stdc++.h> #define MP make_pair #defin ...
- 8. java 面向对象
一.面向对象特征 1. 封装 方法就是一种封装 关键字private也是一种封装 封装就是讲一些逻辑细节信息隐藏起来,对于外界不可见:外界只需调用我即可: 一旦使用了private进行修饰,那么本类当 ...
- 7.jenkins 按标签发布
jenkins 如果要按标签发布,需要安装下, Git Parameter Plug-In 的 插件. 之前我们的jar包项目. 我们运行的时候是以下内容. 现在我们对这个jar进行小范围修改. ...
- CF1244F Chips
题目链接 problem 有一个长度为\(n\)个点连成的环.每个点为黑色或白色.当一个点和与他相邻的两个点颜色不同时.该点的颜色就会改变. 问改变\(K\)次后每个点的颜色. solution 发现 ...
- Linux服务器下配置Java环境、JDK
前言 可以解决问题有/etc/profile与~/.bashrc环境文件区别 文件权限问题,只读readonly Java环境搭建 一.下载JDK包 地址:jdk1.8提取码:gx0b 把文件放到Li ...