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 前言:公司最近来了很多应届实习生,看着他们充满信心但略带稚气的脸庞上,想到了去年的自己,那是的我是不是也和 现在的他们一 ...
随机推荐
- 一个驱动导致的内存泄漏问题的分析过程(meminfo->pmap->slabtop->alloc_calls)
关键词:sqllite.meminfo.slabinfo.alloc_calls.nand.SUnreclaim等等. 下面记录一个由于驱动导致的内存泄漏问题分析过程. 首先介绍问题背景,在一款嵌入式 ...
- Git 在小团队中的管理流程
目标读者:了解 Git 的基本概念,能够使用 Git 进行基本的本地和远程操作. 有关 Git 的基础知识可以参见 知乎回答-怎样使用 GitHub?,天猪(刘勇)给出了一些很好的学习资料. 本文介绍 ...
- UML工具-1-StarUML下载及破解
UML工具-StarUML 下载地址 http://staruml.io/
- 2019-2020-1 20199305《Linux内核原理与分析》第二周作业
C程序的反汇编 (一)实验截图 复制所需要的C程序到"剪切板" 在虚拟机环境下粘贴过来 接下来进行反汇编,通过输入gcc -S -o main.s main.c -m32得到32位 ...
- 微信小程序图像增强img.superresolution接口
整体流程: 获得access_token 调用img.superresolution得到media_id 根据media_id下载图片 注:虽然以下的几个接口都是服务端API,但是我都是在客户端调用的 ...
- WPF 后台获得 数据模板里的内容控件(DataTemplate)
原文:WPF 后台获得 数据模板里的内容控件(DataTemplate) 假如 <Window.Resources> 里 有一个 Datatemplate 我想获得TextBlo ...
- 《大数据技术应用与原理》第二版-第三章分布式文件系统HDFS
3.1分布式文件 HDFS默认一个块的大小是64MB,与普通文件不同的是如果一个文件小于数据块的大小,它并不占用整个数据块的存储空间. 主节点又叫名称节点:另一个叫从节点又叫数据节点.名称节点负责文件 ...
- springboot+lucene实现公众号关键词回复智能问答
一.场景简介 最近在做公众号关键词回复方面的智能问答相关功能,发现用户输入提问内容和我们运营配置的关键词匹配回复率极低,原因是我们采用的是数据库的Like匹配. 这种模糊匹配首先不是很智能,而且也没有 ...
- python做中学(六)os.getcwd() 的用法
概述 os.getcwd() 方法用于返回当前工作目录. 语法 getcwd()方法语法格式如下: os.getcwd() 参数 无 返回值 返回当前进程的工作目录. 实例 以下实例演示了 getcw ...
- hibernate的对象/关系映射结果为空,exists查不到值的问题-20190823
1: hibernate的对象/关系映射 情景:在使用@onetotone/@manytonone时关联结果为空 原因:在使用这个注解的时候,默认的时crossjoin(交叉连接),在进行查询时以及排 ...