shell脚本实例

shell脚本实例

落爺英雄遲暮 提交于 2020-01-01 08:38:43
1.打印形状 1 #!/bin/bash 2 # 打印等腰三角形 3 read -p "Please input the length: " n 4 for i in `seq 1 $n` 5 do 6 for ((j=$n;j>i;j--)) 7 do 8 echo -n " " 9 done 10 11 for m in `seq 1 $i` 12 do 13 echo -n "* " 14 done 15 echo 16 done 来源: https://www.cnblogs.com/kumunotes/p/12128204.html

Android Debug Bridge(adb)

有些话、适合烂在心里 提交于 2019-12-28 17:39:44
Adb google官方文档翻译,源文档地址如下 https://developer.android.google.cn/studio/command-line/adb Android Debug Bridge(adb) Android调试桥(adb)是一种多功能的命令行工具,可让您与设备进行通信。adb命令可促进各种设备操作,例如安装和调试应用程序,并提供对Unix shell的访问,您可使用该shell在设备上运行各种命令。它是一个客户端服务器程序,包括三个组件: 客户端 ,发送命令。客户端在您的开发计算机上运行。您可以通过发出adb命令从命令行终端调用客户端。 守护程序(adbd) ,它在设备上运行命令。守护程序在每个设备上作为后台进程运行。 服务器 ,管理客户端和守护程序之间的通信。服务器在开发计算机上作为后台进程运行。 adb 包含在Android SDK平台工具包中。您可以使用 SDK Manager 下载该软件包,然后将其安装在 android_sdk/platform-tools/ 。或者,如果您需要独立的Android SDK平台工具包,则可以 在此处下载 。 有关连接设备以在ADB上使用的信息,包括如何使用连接助手解决常见问题的信息,请参阅 在硬件设备上运行应用程序 。 adb 如何工作 启动adb客户端时,客户端首先检查是否已在运行adb服务器进程。如果没有

shell脚本中if的“-e,-d,-f”

假如想象 提交于 2019-12-28 05:56:30
文件表达式 -e filename 如果 filename存在,则为真 -d filename 如果 filename为目录,则为真 -f filename 如果 filename为常规文件,则为真 -L filename 如果 filename为符号链接,则为真 -r filename 如果 filename可读,则为真 -w filename 如果 filename可写,则为真 -x filename 如果 filename可执行,则为真 -s filename 如果文件长度不为0,则为真 -h filename 如果文件是软链接,则为真 filename1 -nt filename2 如果 filename1比 filename2新,则为真。 filename1 -ot filename2 如果 filename1比 filename2旧,则为真。 整数变量表达式 -eq 等于 -ne 不等于 -gt 大于 -ge 大于等于 -lt 小于 -le 小于等于 字符串变量表达式 If [ $a = $b ] 如果string1等于string2,则为真 字符串允许使用赋值号做等号 if [ $string1 != $string2 ] 如果string1不等于string2,则为真 if [ -n $string ] 如果string 非空(非0),返回0(true) if [

Linux上安装MySQL

别说谁变了你拦得住时间么 提交于 2019-12-28 05:39:59
1.1. 准备工作 Linux 使用的版本是 centos 7, 为方便起见,先把防火墙关闭,配置好网络,在安装部分,会分成两部分讲,首先讲单实例安装,也就是一台服务器上就装一个 mysql ,接下来就多实例安装,在一个服务器上安装 2 个甚至多个 mysql. 1.2. 单实例安装 cp /soft/mysql-5.7.9-linux-glibc2.5-x86_64.tar.gz /usr/local/ 解压 mysql 到 /usr/local 目录 解压: tar -zxvf mysql-5.7.9-linux-glibc2.5-x86_64.tar.gz 安装需要的依赖 yum install -y libaio 具体安装 shell> groupadd mysql shell> useradd -r -g mysql mysql shell> cd /usr/local shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz shell> ln -s full-path-to-mysql-VERSION-OS mysql shell> cd mysql shell> mkdir mysql-files shell> chmod 770 mysql-files shell> chown -R mysql . shell> chgrp

ansible学习

假如想象 提交于 2019-12-27 01:49:58
ansible 与salt对比 相同 都是为了同时在多台机器上执行相同的命令 都是python开发 不同 agent(saltstack需要安装、ansible不需要) 配置(salt配置麻烦,ansible基本不用配置) 学习路线(salt比较陡峭,ansible比较平缓) 第三方工具(salt比较少) 开源社区的对接(salt比较少) 现有用户(salt还是ansible少一些) 二次开发扩展的能力(ansible比较差,尤其是2.0以后) 大规模并发(200以内一样,200以上salt会好一些,当然我们也可以对ansible做一些配置使其在200以上追上salt) Windows的支持(salt会好很多) 安装 yum install -y ansible 查看ansible生成的命令,用到的命令 ansible ansible-doc ansible-galaxy(下载第三方插件) ansible-playbook 查看ansible 安装生成的 rpm -ql ansible |more /etc/ansible /etc/ansible/ansible.cfg #配置文件 /etc/ansible/hosts #主要文件 hosts文件详解 cat /etc/ansible/hosts # This is the default ansible 'hosts' file

三剑客、shell脚本

天涯浪子 提交于 2019-12-27 01:07:28
一、三剑客(sed,awk,grep) (一)三剑客-sed sed定义 :字符流编辑器:stream editor sed功能与版本: ①处理纯文本文件,日志,配置文件等==》linux ②增加、删除、修改、查询 ③sed --version,GNU sed version 4.2.1 (1)sed语法格式: sed 【选项】【sed指令】【输入文件】 sed -i.bak 's#oldboy#oldgirl#g' oldboy.txt i :sed命令的参数 s:sed命令/指令 g:--小尾巴/修饰 (2)sed执行过程: ①把第一行读取到内存中(模式空间) ②判断是否是我要的这一行是否满足条件(如果不是,重新读取) ③执行sed里面命令s,d,i。 ④sed命令会默认显示/输出当前内存,默认输出--》显示到屏幕 ⑤继续读取下一行直到读取到文件的最后一行。 (3)sed常用功能之p(print) 查看某一行内容: [root@oldboy-01 oldboy]# sed -n '1p' person.txt 101,oldboy,CEO [root@oldboy-01 oldboy]# sed '1p' person.txt #如果不带参数n,显示全部内容 101,oldboy,CEO 101,oldboy,CEO 102,zhangyao,CTO 103,Alex,COO

简单聊一聊Ansible自动化运维

故事扮演 提交于 2019-12-26 14:44:24
一、Ansible概述 Ansible是今年来越来越火的一款开源运维自动化工具,通过Ansible可以实现运维自动化,提高运维工程师的工作效率,减少人为失误。Ansible通过本身集成的非常丰富的模块可以实现各种管理任务,其自带模块超过上千个。更为重要的是,它操作非常简单,即使小白也可以轻松上手,但它提供的功能又非常丰富,在运维领域,几乎可以做任何事。 1、Ansible特点 Ansible自2012年发布以来,很快在全球流行,其特点如下: Ansible基于Python开发,运维工程师对其二次开发相对比较容易; Ansible丰富的内置模块,几乎可以满足一切要求; 管理模式非常简单,一条命令可以影响上千台主机; 无客户端模式,底层通过SSH通信; Ansible发布后,也陆续被AWS、Google Cloud Platform、Microsoft Azure、Cisco、HP、VMware、Twitter等大公司接纳并投入使用; 二、Ansible的角色 使用者:如何使用Ansible实现自动化运维? Ansible工具集:Ansible可以实现的功能? 作用对象:Ansible可以影响哪些主机? 1、使用者 如下图所示:Ansible使用者可以采用多种方式和Ansible交互,图中展示了四种方式: CMDB:CMDB存储和管理者企业IT架构中的各项配置信息

一、Shell 教程

ぐ巨炮叔叔 提交于 2019-12-26 09:08:01
Shell 教程 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。 Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。 Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。 Shell 在线工具 Shell 脚本 Shell 脚本(shell script),是一种为 shell 编写的脚本程序。 业界所说的 shell 通常都是指 shell 脚本,但读者朋友要知道,shell 和 shell script 是两个不同的概念。 由于习惯的原因,简洁起见,本文出现的 "shell编程" 都是指 shell 脚本编程,不是指开发 shell 自身。 Shell 环境 Shell 编程跟 java、php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。 Linux 的 Shell 种类众多,常见的有: Bourne Shell(/usr/bin/sh或/bin/sh) Bourne Again Shell(/bin/bash) C Shell(/usr/bin/csh) K Shell(/usr/bin/ksh) Shell for Root(

Shell脚本之四 内建命令

匆匆过客 提交于 2019-12-25 18:12:52
所谓 Shell 内建命令,就是由 Bash 自身提供的命令,而不是文件系统中的某个可执行文件。 可以使用 type 来确定一个命令是否是内建命令: [root@localhost ~]# type cd cd is a Shell builtin [root@localhost ~]# type ifconfig ifconfig is /sbin/ifconfig 由此可见, cd 是一个 Shell 内建命令,而 ifconfig 是一个外部文件,它的位置是 /sbin/ifconfig 。 还记得系统变量 $PATH 吗? $PATH 变量包含的目录中几乎聚集了系统中绝大多数的可执行命令,它们都是外部命令。 通常来说,内建命令会比外部命令执行得更快,执行外部命令时不但会触发磁盘 I/O,还需要 fork 出一个单独的进程来执行,执行完成后再退出。而执行内建命令相当于调用当前 Shell 进程的一个函数。 接下来的几节我们将重点讲解几个常用的 Shell 内置命令。 一、Shell alias命令 使用 alias 命令自定义别名的语法格式为: alias new_name='command' 比如,一般的关机命令是 shutdown-h now ,写起来比较长,这时可以重新定义一个关机命令,以后就方便多了。 alias myShutdown='shutdown -h now

Shell(2)—数组

若如初见. 提交于 2019-12-25 14:01:03
Shell(2)—数组 常用的 Bash Shell 只支持一维数组,不支持多维数组。 一、概念 Shell 并且没有限制数组的大小,理论上可以存放无限量的数据。Shell 数组元素的下标也是从 0 开始计数。 1、Shell 数组的定义 在 Shell 中,用括号 ( ) 来表示数组,数组元素之间用 空格 来分隔。由此,定义数组的一般形式为: array_name=(ele1 ele2 ele3 ... elen) 注意 ,赋值号 = 两边不能有空格,必须紧挨着数组名和数组元素。 下面是一个定义数组的实例: nums=(3 13 23 33 43 53) Shell 是 弱类型 的,它并不要求所有数组元素的类型必须相同,例如: arr=(3 30 "小小") 第三个元素就是一个“异类”,前面两个元素都是整数,而第三个元素是字符串。 Shell 数组的长度不是固定的,定义之后还可以增加元素。 例如,对于上面的 nums 数组,它的长度是 6,使用下面的代码会在最后增加一个元素,使其长度扩展到 7: nums[6]=88 此外,你也 无需逐个元素地给数组赋值 ,下面的代码就是只给特定元素赋值: ages=([3]=24 [5]=19 [10]=12) 以上代码就只给第 3、5、10 个元素赋值,所以数组长度是 3。其它位置都是取不到值的。 2、获取数组元素 获取数组元素的值