shell脚本实例

shell -- 交互输入

坚强是说给别人听的谎言 提交于 2019-11-28 19:42:12
交互输入与for语句(8-15) 交互输入 1、read的用法:read命令同时可以定义多个变量值,而输入的内容默认可以空格为分配符,将值输入到对应的变量中;如果默认值过多最后所有的值都会被赋予给最后一个变量 2、如果默认是过少,多余的变量则为空值。 3、实例 read a b c aa bb cc 4、Read如何输入:echo “请输入一个目录”(我们需要echo -n取消换行符号) Echo “请输入人一个目录:”read变量(请输入一个目录/etc) 5、常用参数:-p 例:read -p “请输入一个目录”变量 -t:定义超时时间 例:read -t 5 -p“请输入一个目录:”变量 6、脚本默认值: 练习: 输入一个设备文件,输出这个设备文件的基本信息。 1 2 3 4 5 6 7 8 9 10 11 12 #!/bin/bash #输入一个设备文件,输出这个设备文件的基本信息。 read -t 5 -p "请输入一个设备文件名:" devname [ -z $devname ] && devname=` fdisk -l` if [ -b /dev/ $devname ]; then fdisk -l /dev/ $devname exit 0 else echo "$devname不是设备文件" echo "Usage:'请输入一个设备文件,如sda'" fi

strive_tan shell编程实战2-分发系统

房东的猫 提交于 2019-11-28 18:58:40
1. expect的应用 1)传输文件 2)远程执行命令,无需交互,无需输入密码 3)上线的shell脚本(工具),核心是expect,即分发系统 2. expect的安装 yum install -y expect 3. expect语言实例1:自动远程登陆某台服务器 #! /usr/bin/expect set host "192.168.133.132" set passwd "123456" spawn ssh root@$host expect { "yes/no" { send "yes\r"; exp_continue} "password:" { send "$passwd\r" } } interact 4. expect语言实例2:自动远程登陆某台服务器后,并执行命令 #!/usr/bin/expect set user "root" set passwd "123456" spawn ssh $user@192.168.133.132 expect { "yes/no" { send "yes\r"; exp_continue} "password:" { send "$passwd\r" } } expect "]*" send "touch /tmp/12.txt\r" expect "]*" send "echo 1212 > /tmp/12.txt\r

shell-Startup-Files

天大地大妈咪最大 提交于 2019-11-28 16:47:01
shell-Startup-Files 1. 相关阅读 2. 主流shell 3. shell实例类型 4. Shell启动文件的必要元素 4.1 路径: 命令路径, 4.2 提示符 5. 主流shell的配置文件 6. 默认的bash 6.1 手册 6.2 bash启动文件 6.3 提示符 7. 友好的fish 7.1 简介 7.2 查看帮助文档 7.3 fish的配置 8. zsh 1. 相关阅读 https://www.cnblogs.com/sztom/p/11349159.html shell脚本 https://szosoft.blogspot.com/2019/07/console-terminal-tty-shell-kernel.html https://www.cnblogs.com/sztom/p/11247883.html Console-terminal-tty-shell-kernel Shell在计算机系统中的位置 http://hyperpolyglot.org/unix-shells 常用shell语法对照(Unix Shells: Bash, Fish, Ksh, Tcsh, Zsh) https://en.wikipedia.org/wiki/Comparison_of_command_shells https://opensource.com

Shell:

做~自己de王妃 提交于 2019-11-28 16:34:24
4个Shell小技巧,帮你提高机器学习生产效率 晓查 发自 凹非寺 量子位 报道 在机器学习的实践过程中,用好Shell能帮你很多节省时间。 最近,有位来自ETHZ的学生分享了一些Shell小技巧。对程序员来说,这些技巧更重要的是让你的思维从琐碎小事中解脱出来,大大提高了工作效率。 下面就是他分享的4个tips。由于本文中涉及到的shell脚本过多,你可以去文末地址中查看所有脚本的源代码。 抓取远程文件 当你在远程服务器上监视程序运行时,如果想把一个远程文件抓取到本地查看,通常你会怎么做? 记下文件路径,打开终端,用rsync之类的工具同步到本地,再到文件浏览器中查看。 实际上不必这么麻烦。只需要事先写好几个shell脚本,就可以避免重复的机械劳动。 在这里强烈推荐 iTerm 2 ,它比Mac自带的终端要强大得多,可以指定某个触发关键词执行某个相应的命令。 先在远程服务器上设置一个脚本 t 。当我们输入r awesome_video.mp4时,它会搜索awesome_video.mp4文件所在路径,并连同主机名以字符串rtransfer <host> <path>的形式打印出来。 rtransfer作为iTerm2的触发关键词,解析出主机和路径,然后调用另一个本地脚本 t2 。脚本t2将这个视频文件传输到临时目录,然后在该目录中打开Finder。 使用iTerm

shell-【技术干货】工作中编写shell脚本实践

和自甴很熟 提交于 2019-11-28 14:28:37
在公司项目的开发过程中,需要编写shell脚本去处理一个业务,在编写过程中发现自身对shell脚本的知识不够完善,顾整理一下,本文章主要内容来自 菜鸟教程 , 也添加了一些知识点 看完这边文章应该就可以独立完成大部分脚本得编写 shell脚本? 在说什么是shell脚本之前,先说说什么是shell。 shell是外壳的意思,就是操作系统的外壳。我们可以通过shell命令来操作和控制操作系统,比如Linux中的Shell命令就包括ls、cd、pwd等等。总结来说,Shell是一个命令解释器,它通过接受用户输入的Shell命令来启动、暂停、停止程序的运行或对计算机进行控制。 shell 是一个应用程序,它连接了用户和 Linux 内核,让用户能够更加高效、安全、低成本地使用 Linux 内核,这就是 Shell 的本质。 shell 本身并不是内核的一部分,它只是站在内核的基础上编写的一个应用程序。 那么什么是shell脚本呢? shell脚本就是由Shell命令组成的执行文件,将一些命令整合到一个文件中,进行处理业务逻辑,脚本不用编译即可运行。它通过解释器解释运行,所以速度相对来说比较慢。 shell脚本中最重要的就是对shell命令的使用与组合,再使用shell脚本支持的一些语言特性,完成想要的功能。 注释 “# ”开头的就是注释,被编译器忽略 单行注释: # 多行注释: :<

grep find shell 基础

老子叫甜甜 提交于 2019-11-28 14:12:53
1,定义一个对所有用户都生效的命令别名,例如:lftps='172.168.0.1/pub' echo "alias lftps='172.168.0.1/pub'" >> /etc/bashrc && source /etc/bashrc 2,显示/etc/passwd 文件中所有不以/bin/bash结尾的行 grep -v "/bin/bash$" /etc/passwd 3,找出/etc/passwd文件中,包含二位数字或者三位数字的行 grep "\<[0-9]\{2,3\}\>" /etc/passwd 4,显示/proc/meminfo文件中大小写s开头的行,用三种方式 grep -i '^s' /proc/meminfo grep '^[sS]]' /proc/meminfo grep -E '^(s|S)' /proc/meminfo 5, 使用echo输出一个绝对路径,使用egrep取路径名 类型执行dirname /etc/passwd的结果 echo "/a/b/c/d" | egrep -o '.*/' 6 找出 ifconfig中的ip地址,要求结果只显示ip地址 ifconfig | egrep -o 'inet (addr:)?([0-9]*\.){3}[0-9]*' | egrep -o '([0-9]*\.){3}[0-9]*' | head

Shell编程(1)

天大地大妈咪最大 提交于 2019-11-28 10:15:31
1.shell简介 2. shell分类 3. 查看shell 4. 第一个shell脚本 5. shell编程常用命令 5.1 grep 5.2 cut 5.3 sort 5.4 uniq 5.5 seq 5.6 tr 6. 课后作业 前言 什么是脚本? 脚本简单地说就是一条条的文字命令(一些指令的堆积),这些文字命令是可以看到的(如可以用记事本打开查看、编辑)。 常见的脚本: JavaScript(J S ,前端) ,VBScript, ASP, JSP,PHP(后端) ,SQL(数据库操作语言),Perl, Shell ,python,Ruby,JavaFX, Lua等。 为什么要学习和使用shell? Shell属于内置的脚本 程序开发的效率非常高,依赖于功能强大的命令可以迅速地完成开发任务(批处理) 语法简单,代码写起来比较轻松,简单易学 1.1 Shell 简介 Shell 是一个 C 语言编写的脚本语言,它是用户与 Linux 的桥梁,用户输入命令交给 Shell 处理, Shell 将相应的操作传递给内核(Kernel),内核把处理的结果输出给用户。 下面是流程示意图: Shell 既然是工作在 Linux 内核之上,那我们也有必要了解下 Linux 相关知识。 Linux 是一套免费试用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX

shell编程(2)

喜夏-厌秋 提交于 2019-11-28 10:15:23
1. shell变量简介 2. 定义变量 3. 使用变量 4. 修改变量的值 5. 单引号和双引号的区别 6. 将命令的结果赋值给变量 7. 删除变量 8. 变量类型 9. 特殊变量列表 10. 退出状态 11. shell表达式与运算符 11.1 条件表达式 11.2 整数比较符 11.3 字符串比较符 11.4 文件测试 11.5 布尔运算符 11.6 逻辑判断符 11.7 整数运算 11.8 其他运算工具 11.9 shell括号用途总结 shell变量简介 变量是任何一种编程语言都必不可少的组成部分,变量用来存放各种数据。脚本语言在定义变量时通常不需要指明类型,直接赋值就可以,Shell 变量也遵循这个规则。 在 Bash shell 中,每一个变量的值都是字符串,无论你给变量赋值时有没有使用引号,值都会以字符串的形式存储。 这意味着,Bash shell 在默认情况下不会区分变量类型,即使你将整数和小数赋值给变量,它们也会被视为字符串,这一点和大部分的编程语言不同。 定义变量 Shell 支持以下三种定义变量的方式: variable=value variable='value' variable="value" variable 是变量名,value 是赋给变量的值。如果 value 不包含任何空白符(例如空格、Tab缩进等),那么可以不使用引号;如果 value

Shell编程(3)

戏子无情 提交于 2019-11-28 10:15:11
1. shell流程控制 2. for语句 3. while语句 4. break和continue语句 5. case语句 6. shell编程高级实战 shell流程控制 流程控制是改变程序运行顺序的指令。linux shell有一套自己的流程控制语句,其中包括条件语句(if),循环语句(for,while),选择语句(case)。下面我将通过例子介绍下,各个语句使用方法 if语句 格式: 格式:if list; then list; [ elif list; then list; ] ... [ else list; ] fi 1.1 单分支 if 条件表达式; then 命令 fi 实例: #!/bin/bash N=10 if [ $N -gt 5 ]; then   echo yes fi # bash test.sh yes 1.2 双分支 if 条件表达式; then   命令 else   命令 fi 实例1: #!/bin/bash N=10 if [ $N -lt 5 ]; then   echo yes else   echo no fi # bash test.sh no 实例2:判断crond进程是否正在运行 -v: 表示取反 -c: 即count,取代通常的输出,显示行数 #!/bin/bash NAME=crond NUM=$(ps aux |

shell

吃可爱长大的小学妹 提交于 2019-11-28 07:24:53
Shell Shell脚本入门 Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件, Shell就是一个命令行解释器,Shell本身是一个用C语言编写的程序, Shell既是一种命令语言,又是一种程序设计语言(就是你所说的shell脚本)。shell脚本脚本文件通常以.sh作为后缀名,第一行以#!开头指定执行脚本的程序: #!/usr/bin/bash #是shell脚本中的行注释符。 这里我们来使用最常用的bash 1. 新建文件hello_shell $ vi hello_shell 2. 输入Shello命令 #! /bin/bash echo "Hello Shell!" 3 、保存 echo是一个输出命令,就是输出一句话 4. 赋权限 我们要让系统知道我们刚才新建的文件是可执行的,所以我们要赋给其可执行的权限 现在我们的文件是不可执行的,只有读写权限: 下面是赋权 $ chmod 711 hello_shell 5. 执行 ./ 表示再当前目录查找命令,如果什么都不加的话,系统默认会在PATH里寻找,而的当前目录通常不在PATH里,所以找不到命令。 通常有三种执行脚本的方式: 1、sh start.sh: 在终端中创建一个sh子进程执行脚本, 执行者需要拥有脚本的读权限