Shell脚本常用命令及如何通过shell脚本实现服务器上文件的上传和下载

您所在的位置:网站首页 脚本编辑器怎么用 Shell脚本常用命令及如何通过shell脚本实现服务器上文件的上传和下载

Shell脚本常用命令及如何通过shell脚本实现服务器上文件的上传和下载

#Shell脚本常用命令及如何通过shell脚本实现服务器上文件的上传和下载| 来源: 网络整理| 查看: 265

Shell脚本常用命令

简介

1、什么是shell: Shell 是一个用 C 语言编写的应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Shell 脚本(shell script),是一种为 shell 编写的脚本程序,扩展名为.sh。 2、如何编写shell脚本: 文本编辑器(可以使用 vi/vim 命令来创建文件),新建一个文件 test.sh,扩展名为 sh(sh代表shell)如: #!/bin/bash echo “Hello World !” 3、常用的运行shell脚本方法: 将上面的代码保存为 test.sh,并 cd 到相应目录: chmod +x ./test.sh #使脚本具有执行权限 ./test.sh #执行脚本 详见:https://www.runoob.com/linux/linux-shell.html 二、常用命令 1、echo命令 echo string #输出字符串,双引号可以省略,效果一致 2、read命令 read默认就是从键盘读取用户输入的数据;如果进行了重定向,那么可以从文件中读取数据。 read -p “Please enter some information >” name url echo “网站名字: n a m e " e c h o " 网址: name" echo "网址: name"echo"网址:url” 3、test命令 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。 1)、数值测试 num1=100 num2=100 if test ${num1} -eq ${num2} then echo ‘两个数相等’ else echo ‘两个数不相等!’ fi 运行结果: 2)、字符串测试 str=“shell” if test -z ${str} then echo ‘字符串为空’ else echo ‘字符串不为空!’ fi 运行结果: 3)、文件测试 cd E:/zs if test -e ./test then echo ‘文件存在!’ else echo ‘文件不存在!’ fi 运行结果: 4、expr求值命令 a=10 b=20 val=expr $a + $b echo “a+b:$val” 运行结果: 注意:表达式和运算符之间要有空格;完整的表达式要被   包含,注意这个字符不是常用的单引号,在 Esc 键下边。 5、文件和目录操作 1)、创建空文件:touch filename 2)、删除文件:rm filename 3)、创建目录:mkdir directoryname 4)、删除空目录:rmdir directoryname 5)、删除非空目录:rm -rf directoryname 6)、复制文件或目录:cp source destination -a:保留链接和文件属性,递归拷贝目录 -i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行 -p:连同文件的属性一起复制过去,而非使用默认属性(备份常用) -r:递归持续复制,用於目录的复制行为 -v:显示复制进度 Eg:复制test目录到1目录,覆盖询问,显示进度。 7)、文件重命名:mv file1 file2(file1改名为file2) 6、查看文件内容 1)、cat:由第一行开始显示文件内容 2)、tac:从最后一行开始显示,可以看出 tac 是 cat 的倒着写 3)、nl:显示的时候,顺道输出行号 4)、more:一页一页的显示文件内容 5)、less 与 more 类似,但是比 more 更好的是,他可以往前翻页 6)、head:只看头几行,默认显示10行,-n后面接数字,代表显示几行 7)、tail:只看尾巴几行,与head用法相似 7、结构化命令 1)、if-then语句: a=10 b=20 if [ $a == $b ] then echo “a 等于 b” elif [ $a -gt $b ] then echo “a 大于 b” elif [ $a -lt $b ] then echo “a 小于 b” else echo “没有符合的条件” fi 运行结果: 2)、for循环 for 变量 in 值集合 do 命令 done for((a;b;c)) a:初始化循环体;b:判断条件;c改变循环体变量值 do 命令 done 3)、while int=1 while(( $intlog.txt #从data.txt读取读取内容,然后将输出不覆盖写入到log.Txt中。 9、管道 管道符|将命令与命令连接起来,用第二个命令来接收第一个命令的输出 cat data.txt | while read str do echo $str done 10、获取计算机相关信息 #!/bin/bash ip=ifconfig eth0 |grep "inet" |awk '{print $2}'| grep 192.168 cpu_info=cat /proc/cpuinfo|grep "model name"|tail -l |cut -d: -f 2 |sed 's/^//g'|awk '{print $1,$3,$4,$NF}'|uniq cpu_num=cat /proc/cpuinfo|grep "physical id"|sort|uniq -c|wc -l disk_info=fdisk -l|grep "Disk"|grep -v "identifier"|awk '{print $2,$3,$4}'|sed 's/,//g' mem_info=free -m |grep "Mem" |awk '{print "Total",$1,$2"M"}' load_info=uptime|awk '{print "current Load:" $(NF-2)}'|sed 's/,//g' function host_info(){ echo -e “\033[32m ############# get host info list###########\033[0m” echo “ip: i p " e c h o " c p u i n f o : {ip}" echo "cpu_info: ip"echo"cpui​nfo:{cpu_info}” echo “cpu_num: c p u n u m " e c h o " d i s k i n f o : {cpu_num}" echo "disk_info: cpun​um"echo"diski​nfo:{disk_info}” echo “mem_info: m e m i n f o " e c h o " l o a d i n f o : {mem_info}" echo "load_info: memi​nfo"echo"loadi​nfo:{load_info}” } host_info echo “ip地址,cpu信息, cpu个数, 硬盘信息, 内存信息 ,负载信息” >> host_info.csv echo “ i p , {ip}, ip,{cpu_info}, c p u n u m , {cpu_num}, cpun​um,{disk_info}, m e m i n f o , {mem_info}, memi​nfo,{load_info}” >> host_info.csv 11、获取随机字符串或数字 echo $RANDOM|md5sum |cut -c 1-8 #随机获取8位字符串 echo KaTeX parse error: Expected 'EOF', got '#' at position 30: …cut -c 1-8 #̲随机获取8位数字 **12、检…(curl -o /dev/null --connect-timeout 3 -s -w “%{http_code}” $1 ) if [ $HTTP_CODE -ne 200 ]; then echo “Warning: $1 Access failure!” else echo “网站正常” fi } check_url www.baidu.com 13、从FTP服务器下载文件 #!/bin/bash ftp=ftp.cocos.org username=QA-test password=Test123456 dir=‘/QATeam/3D-Demo/3.2.0’ file=‘F:\test’ ftp -n -v



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3