shell脚本

Linux

旧街凉风 提交于 2019-12-02 09:54:11
Linux终端 终端的概念( terminal ) 通常我们在使用 Linux 时,并不是直接与系统打交道,而是通过一个叫做 Shell 的中间程序来完成的,在图形界面下为了实现让我们在一个窗口中完成用户输入和显示输出, Linux 系统还提供了一个叫做终端模拟器的程序( Terminal ),下面是几个比较常见的终端模拟器: gnome-terminal , kconsole , xterm , rxvt , kvt , nxterm 和 eterm 。目前我们的实验中的终端程序是 xfce 桌面环境自带的 xfce-terminal 。不过要注意的是这里所说的终端( Terminal )和控制台( Console )是有区别的。 终端本质上是对应着 Linux 上的 /dev/tty 设备, Linux 的多用户登陆就是通过不同的 /dev/tty 设备完成的, Linux 默认提供了 6 个纯命令行界面的 terminal (准确的说这里应该是 6 个 virtual console s)来让用户登录。在物理机系统上你可以通过使用 [Ctrl] + [Alt] + [F1]~[F6] 进行切换,不过在我们的在线实验环境中可能无法切换,因为特殊功能按键会被你的主机系统劫持。当你切换到其中一个终端后想要切换回图形界面,你可以按下 [Ctrl] + [Alt] + [F7] 来完成

SHELL学习笔记三

这一生的挚爱 提交于 2019-12-02 06:05:38
SHELL学习笔记三 SHELL学习笔记一 SHELL学习笔记二 SHELL学习笔记三 for 命令 for var in list do commands done $ cat test1 #!/bin/bash # basic for command for test in Alabama Alaska Arizona Arkansas California Colorado do echo The next state is $test done $ ./test1 The next state is Alabama The next state is Alaska The next state is Arizona The next state is Arkansas The next state is California The next state is Colorado $ 读取列表中的复杂值 使用转义字符(反斜线)来将单引号转义; 使用双引号来定义用到单引号的值。 $ cat test2 #!/bin/bash # another example of how not to use the for command for test in I don\'t know if "this'll" work do echo "word:$test" done $ .

ansible学习总结

倖福魔咒の 提交于 2019-12-02 05:40:15
1 前言 Ansible是新出现的运维工具是基于Python研发的糅合了众多老牌运维工具的优点实现了批量操作系统配置、批量程序的部署、批量运行命令等功能。 ansible是基于模块工作的ansible本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块ansible只是提供一种框架。 2 ansible 的基本使用 2.1 安装 其实ansible的安装的方式有很多中,如下: 从源码运行 通过Yum安装最新发布版本 通过Apt (Ubuntu)安装最新发布版本 通过 Portage (Gentoo)安装最新发布版本 通过 pkg (FreeBSD)安装最新发布版本 通过 Homebrew (Mac OSX)安装最新发布版本 通过 Pip 安装最新发布版本 发行版的Tarball。 我这儿就只介绍在centos系统上通过yum来安装ansible 2.1.1 关闭防火墙和selinux # service iptables stop 可以看到防火墙已经关闭了 #setenforce 0 可以看到selinux已经关闭了 2.1.2 安装EPEL第三方yum源: # rpm -Uvh http://ftp.linux.ncsu.edu/pub/epel/6/i386/epel-release-6-8.noarch.rpm 2.1.3 安装Ansible # yum

expect 知识与示例说明

拥有回忆 提交于 2019-12-02 05:39:06
expect 知识与示例说明 2012/04/10 chenxin 2019/07/07 update Chenxin 参考 https://www.cnblogs.com/yinghao1991/p/6926125.html https://www.jellythink.com/archives/373 https://www.cnblogs.com/chengjian-physique/p/8254381.html https://core.tcl-lang.org/expect/index 概念与基础知识 目的 利用expect,则可以根据程序的提示,模拟标准输入提供给程序,从而实现自动化交互执行. 指令 命令 作用 send 用于向进程发送字符串.如果要发送Ctrl-C结束进程,可以通过send "\003" 实现。send \001(发送ctrl+a) 然后 send "d" (发送d)合起来相当于发送ctrl+a +d. expect 从进程接收字符串(等待一个进程的反馈,捕获后匹配) spawn 启动新的进程(spawn后的send和expect命令都是和使用spawn打开的进程进行交互). interact 进入用户交互(一般情况下使用spawn、send和expect就可以很好的完成任务;在特殊场合下需使用interact,用于退出自动化,进入人工交互

shell expect的简单实用

感情迁移 提交于 2019-12-02 05:31:05
一.在shell脚本中嵌入expect来实现密码输入 expect是一个自动交互功能的工具。expect是开了一个子进程,通过spawn来执行shell脚本,监测到脚本的返回结果,通过expect判断要进行的交互输入内容(send) 1.安装expect 需要先安装tcl:apt-get install tcl apt-get install expect 2.expect使用 2.1一个简单的输入密码操作 #!/usr/bin/expect set timeout 100 set password "123456" spawn sudo rm -rf zzlogic expect "root123456" send "$password\n" interact 说明: 第一行#!/usr/bin/expect表示使用expect的shell交互模式 set是对变量password赋值 set timeout 100:设置超时时间为100秒,如果要执行的shell命令很长可以设置超时时间长一些。expect超过超时时间没有监测到要找的字符串,则不执行,默认timeout为10秒 spawn在expect下执行shell脚本 expect对通过spawn执行的shell脚本的返回进行判断,是否包含“”中的字段 send:如果expect监测到了包含的字符串,将输入send中的内容,

adb shell am instrument 命令详解

一个人想着一个人 提交于 2019-12-02 05:04:10
adb指令启动测试脚本 adb shell am instrument -w com.netease.open.airbase/android.support.test.runner.AndroidJUnitRunner 1 Instrument是什么? instrument为am命令的一个子命令。用于启动一个Instrumentation测试。首先连接手机或者模拟器,通过adb shell命令,进入shell层进行操作。 2 命令格式及参数解读(来自官网) 格式:i nstrument [options] component 目标 component 是表单 test_package/runner_class,在UiAutomator2.0中,目标 component为:测试包名/android.support.test.runner.AndroidJUnitRunner(即运行器固定:AndroidJUnitRunner类是一个JUnit测试运行器,允许运行JUnit 3或JUnit 4测试类在 Android 设备上,包括那些使用Espresso和UI Automator框架。) 各项参数: -r:以原始形式输出测试结果;该选项通常是在性能测试时与[-e perf true]一起使用。 -e name value:提供了以键值对形式存在的过滤器和参数。例如:-e

Linux常用命令简写和全称

拈花ヽ惹草 提交于 2019-12-02 04:55:25
su:Swith user 切换用户,切换到root用户 cat: Concatenate 串联 uname: Unix name 系统名称 df: Disk free 空余硬盘 du: Disk usage 硬盘使用率 chown: Change owner 改变所有者 chgrp: Change group 改变用户组 ps:Process Status 进程状态 tar:Tape archive 解压文件 chmod: Change mode 改变模式 umount: Unmount 卸载 ldd:List dynamic dependencies 列出动态相依 insmod:Install module 安装模块 rmmod:Remove module 删除模块 lsmod:List module 列表模块 alias :Create your own name for a command bash :GNU Bourne-Again Shell linux内核 grep:global regular expression print httpd :Start Apache ipcalc :Calculate IP information for a host ping :Send ICMP ECHO_Request to network hosts reboot:

Linux SHELL环境初始化顺序总结

眉间皱痕 提交于 2019-12-02 04:51:55
以ubuntu server 11.10 为例, 1) 当服务器启动时,SHELL环境的初始化过程如下: /etc/environment –> /etc/default/ 中的配置脚本 2)当一个用户登录SHELL的时候 /etc/profile --> $HOME/.profile 如果是BASH SHELL , 则是 /etc/profile –> /etc/bash.bashrc --> $HOME/.profile --> $HOME/.bashrc 3) 如果一个用户打开一个BASH SHELL 或 使用su 切换用户身份时, 则 /etc/bash.bashrc –> $HOME/.bashrc 其中: /etc/environment 设置全局环境变量, 重启服务器生效 /etc/default/目录中的配置脚本 设置特定的全局环境变量 /etc/profile 当用户重新登录时,该文件被执行. 并依次调用/etc/profile.d目录中的所有脚本。如果是初始化BASH SHELL , 还会调用/etc/bash.bashrc /etc/bash.bashrc 每次启动一个BASH SHELL时都会执行该脚本 $HOME/.profile 作用等同/etc/profile $HOME/.bashrc 作用等同/etc/bash.bashrc $HOME/.bash

Jmeter中的Bean shell

落花浮王杯 提交于 2019-12-02 04:51:46
一、什么是Bean Shell BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法; BeanShell是一种松散类型的脚本语言(这点和JS类似); BeanShell是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器,具有对象脚本语言特性,非常精简的解释器jar文件大小为175k。 BeanShell执行标准Java语句和表达式,另外包括一些脚本命令和语法。 官网: http://www.BeanShell.org/ 二、Jmeter有哪些Bean Shell 定时器:  BeanShell Timer 前置处理器:BeanShell PreProcessor 采样器:  BeanShell Sampler 后置处理器:BeanShell PostProcessor 断言:   BeanShell断言 监听器:  BeanShell Listener 三、BeanShell的用法   在此介绍下BeanShell PreProcessor的用法,其它的beahshell可以类推。在此我们使用beahshell调用自己写的工具类,工具类实现了密码的加、解密功能: 1、在eclipse写好代码,然后把该类打成jar包(在类上点击右键->Export->jar file) 2、把jar包放到jmeter目录

Shell 脚本语法

怎甘沉沦 提交于 2019-12-02 04:47:31
语法: 1. echo "Hello World !" //echo 命令用于向窗口输出文本 2.your_name="runoob.com" //变量名定义,变量名和等号之间不能有空格 命名规则: 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。 中间不能有空格,可以使用下划线(_)。 不能使用标点符号。 不能使用bash里的关键字(可用help命令查看保留关键字) 3.使用变量 加$ ,加花括号是为了帮助解释器识别变量的边界 echo ${your_name} 4.只读变量 readonly readonly myUrl 5.删除变量 unset ,不能删除只读变量 unset your_name 6.变量类型 1) 局部变量 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。 2) 环境变量 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。 3) shell变量 shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行 二 字符串 1.单引号 双引号区别 双引号内可以引用变量 双引号内可以出现转义字符 2.获取字符串长度 string="abcd