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 前言:公司最近来了很多应届实习生,看着他们充满信心但略带稚气的脸庞上,想到了去年的自己,那是的我是不是也和 现在的他们一 ...
随机推荐
- Servlet 使用介绍(2)
说明 本篇由于介绍Servlet容器回传请求方法service(ServletRequest req, ServletResponse res);传入参数用户请求参数request和请求返回参数res ...
- ABP入门教程15 - 小结
点这里进入ABP入门教程目录 效果预览 至此,ABP入门教程的CURD(增删改查)示例已完成,效果如下 登录 首页 查询课程 新增课程 修改课程 删除课程 阶段总结 关键步骤: 领域层创建实体基础设施 ...
- coalesce搭配nullif使用
with t1 as ( select NUll as col1, '' as col2, 'aaa' as col3 ) --关于COALESCE用法 当col1 为 Null时候返回 col2 依 ...
- linux 命令之touch
转自:http://www.maomao365.com/?p=2037 一.touch命令简介touch的命令功能说明: 1 可以通过touch新建一个文件; 2 可以修改文件的时间戳; 3 可以批量 ...
- Bazel 编译工具; tensorflow 编译
什么是bazel https://docs.bazel.build/versions/master/bazel-overview.html 使用 bazel 构建 c++ 工程 https://git ...
- GetPrivateProfileInt 使用方法
GetPrivateProfileInt =>从ini文件取得数值 <参数> lpApplicationName String,指定在其中查找条目的小节.注意这个字串是不区分大小写的 ...
- 5.jenkins 构建任务2--PHP项目
推送代码 PHP 项目 然后我们要做的就是将 .jenkins下面 workspace下的代码. 推送到我们的项目机器上面 就ok了. 我们可以在php的jenkins的 项目配置中选择使用shell ...
- np.unique( )的用法
该函数是去除数组中的重复数字,并进行排序之后输出. 换句话,我想从一个图片选取 1000个不同的点,随机采点经常遇到相同的点,造成重复.np.unique就是用来解决这个问题
- NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver ...
显卡驱动找不到解决方案:亲测有效 step1:sudo apt-get install dkms step2: sudo dkms install -m nvidia -v 390.129 nvi ...
- 小程序-小菊花loading
界面----交互 wx.showLoading() 显示loading提示框.需主动调用wx.hideLoading()才能关闭提示框 参数: 属性 类型 默认值 必填 说明 title string ...