shell脚本

ansible常用模块介绍

喜你入骨 提交于 2020-01-08 03:13:22
1、ping   例:ansible agent -m ping 2、setup   例:ansible agent -m setup -a "filter= filter参数 " 1 ansible_all_ipv4_addresses:仅显示ipv4的信息 2 ansible_devices:仅显示磁盘设备信息 3 ansible_distribution:显示是什么系统,例:centos,suse等 4 ansible_distribution_major_version:显示是系统主版本 5 ansible_distribution_version:仅显示系统版本 6 ansible_machine:显示系统类型,例:32位,还是64位 7 ansible_eth0:仅显示eth0的信息 8 ansible_hostname:仅显示主机名 9 ansible_kernel:仅显示内核版本 10 ansible_lvm:显示lvm相关信息 11 ansible_memtotal_mb:显示系统总内存 12 ansible_memfree_mb:显示可用系统内存 13 ansible_memory_mb:详细显示内存情况 14 ansible_swaptotal_mb:显示总的swap内存 15 ansible_swapfree_mb:显示swap内存的可用内存 16

UNIX基础知识

ⅰ亾dé卋堺 提交于 2020-01-08 00:37:10
1 UNIX基础知识 1.1 UNIX体系结构 操作系统可定义为一种软件,它控制计算机硬件资源,提供程序运行环境,通常将这种软件称为内核(kernel)。UNIX操作系统的体系结构如下图所示,其中内核的接口被称为系统调用(system call图中阴影部分),公共函数库构建在系统调用接口之上,应用程序可调用公共函数库,也可以直接使用系统调用。shell是一种特殊的应用程序,为运行其他应用程序提供一个接口。 1.2 登录 (1) 登录名 用户在登录UNIX时,先键入登录名,然后键入口令。系统在其口令接口(Redhat 2.6.32-431.el6.x86_64在/etc/passwd下)中查看登录名。如下: 口令文件中的登录项是由7个以冒号分隔的字段组成,依次是:登录名、加密口令、数字用户ID、数字组ID、字段注释、起始目录以及shell程序。 (2)shell 用户登录后,系统通常先显示一些系统信息,然后用户可通过shell程序键入命令。shell是一个命令行解释器,可读取用户输入,然后执行命令。shell的用户输入通常来自于终端(交互式shell),有时则来自于文件(称为shell脚本)。UNIX系统中shell有多种,用得比较多的是Bash shell。 1.3 文件和目录 (1)文件系统 UNIX文件系统是目录和文件的一种层次结构,所有东西的起点是称为根(root)目录

SHELL用法一(基本概念)

风流意气都作罢 提交于 2020-01-07 21:58:50
1. SHELL 编程概念入门 1)一个完整 Linux 操作系统(Linux 内核),默认用户是不能直接操作 Linux 内核,需要借助第三方的程序或者软件去操作,例如桌面工具、命令行工具(SHELL)。 2)SHELL 是 Linux 操作系统的外壳,可以将 SHELL 程序理解为中间件,位于用户和 Kernel 之间的沟通桥梁,SHELL 主要是用于接收用户输入的指令,对指令进行解析,并且发送给 Linux 内核。 3)Linux 内核接收到指令之后,会进行处理,会将处理完成的数据信息返回给 SHELL,最终 SHELL 将数据进行解析展示(返回)给用户使用者。 4)SHELL 程序软件类似 Windows 系统的 CMD 命令行,SHELL 看成是命令解释器,用户输入指令,最终通过 SHELL 解释器返回数据。 5)大多数的 Linux 操作系统(Linux 内核),启动之后,启动默认的 SHELL 程序(解释器),CentOS、RHEL、Ubuntu 系统的 SHELL程序:/bin/bash,SHELL 种类比较繁多,不同的 SHELL 的集成的 命令不一样,使用界面各不相同。 6)SHELL 编程的概念?  SHELL 编程是在 SHELL 解释器中编写不同的指令,将不同的指令按照一定的逻辑关系和顺序堆积在文本文件中(SHELL 脚本),最终文本文件中的指令会在

shell入门

混江龙づ霸主 提交于 2020-01-07 20:56:10
前言 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。 Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。 常见的shell指令 echo命令用于向窗口输出文本。 使用变量:使用一个定义过的变量,只要在变量名前面加上$符号,还可以加上对变量加上花括号{},变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界。笔者建议,推荐给所有变量加上花括号,这是个好的编程习惯。 your_name=“qinjx” echo $your_name echo ${your_name} for skill in Ada Coffe Action Java; do echo “I am good at ${skill}Script” done 如果不给skill变量加花括号,写成echo “I am good at $skillScript”,解释器就会把$skillScript当成一个变量(其值为空),代码执行结果就不是我们期望的样子了。 删除变量:使用unset命令删除变量 变量被删除后不能再次使用,unset命令不能删除只读变量 只读变量:使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。 #!/bin/bash

shell变量详解

最后都变了- 提交于 2020-01-07 20:06:37
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> shell变量详解 1 shell变量基础 shell变量是一种很“弱”的变量,默认情况下,一个变量保存一个串,shell不关心这个串是什么含义。所以若要进行数学运算,必须使用一些命令例如let、declare、expr、双括号等。shell变量可分为两类:局部变量和环境变量。局部变量只在创建它们的shell中可用。而环境变量则可以在创建它们的shell及其派生出来的任意子进程中使用。有些变量是用户创建的,其他的则是专用shell变量。变量名必须以字母或下划线字符开头。其余的字符可以是字母、数字(0~9)或下划线字符。任何其他的字符都标志着变量名的终止。名字是大小写敏感的。给变量赋值时,等号周围不能有任何空白符。为了给变量赋空值,可以在等号后跟一个换行符。用set命令可以查看所有的变量,unset var命令可以清除变量var,var相当于没有定义过。readonly var可以把var变为只读变量,定义之后不能对var进行任何更改。对shell变量的引用方式很多,用这些方式可以方便的获取shell变量的值,变量值的长度,变量的一个字串,变量被部分替换后的值等等。shell变量常见引用方式如下: 2 环境变量 环境变量的定义方法如下: var=value export var

Bash shell 相关特性

萝らか妹 提交于 2020-01-07 19:45:05
bash 基础特性之:命令历史 命令历史:shell进程会在会话中保存此前用户提交执行过的命令; 查看历史命令: ~]# history 定制history的功能,可通过环境变量来实现; HISISIZE:shell进程可保留的命令历史条数; HISIFILE:持久保存命令历史的文件 (.bash_history); HISIFILESIZE:命令历史文件的大小; 用法: -c:清空当前历史命令; -a:将历史命令缓冲区中命令写入历史命令文件中; -r:将历史命令文件中的命令读入当前历史命令缓冲区; -w:将当前历史命令缓冲区命令写入历史命令文件中; -d:删除指定命令历史条目; 显示最近#条历史命令 (history #); 调用历史列表中的命令 ( ! number); 再次执行上一条命令 (!!); 再一次执行历史列表中最近一个以STRING开头的命令 (!STRING); 调用上一条命令的最后一个参数 (ESC+.、file !$、file alt+.); 控制命令历史的方法 环境变量:HISICONTROL 参数: ignorespace:忽略以空白字符开头的命令; ignoredups:忽略以空白字符开头的命令; ignoreboth:以上两者同时生效; echo $HISTCONTROL; 修改变量值 HISICONTROL=Ignorespace bash

Shell批量创建目录

柔情痞子 提交于 2020-01-07 17:52:32
网站上传目录,一般要按hash值生成若干个子目录,仿制单目录文件数量太多导致IO性能下降问题,常见做法是计算目标的md5值,然后通过前缀作为子目录名,存放文件,目录可以在上传时动态创建,考虑到目录权限问题,可以提前创建好, 比如我们需要创建00 ... ff 这些目录,shell脚本 #!/bin/bash for i in 0 1 2 3 4 5 6 7 9 9 a b c d e f; do for j in 0 1 2 3 4 5 6 7 9 9 a b c d e f; do mkdir /mnt/www/www/upload/sku-thumbs/$i$j done done 来源: CSDN 作者: SuperAvalon 链接: https://blog.csdn.net/think2017/article/details/103877174

shell脚本demo

 ̄綄美尐妖づ 提交于 2020-01-07 16:21:11
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 数组定义mytest=(hello world) echo ${mytest[1]}输出world echo ${mytest[*]} hello world mytest[1]=nihao变为hello nihao 删除 unset mytest[1] 删除全部 unste mytest #!bin/bash通知shell以bash/shell来执行程序 echo命令可以使用单引号和双引号来将文本字符串圈起来, 如果在文本字符串用到他们的话,要在文本中使用其中一个引号 > echo "hello 'world'" hello 'world' > echo 'hello "world"' hello "world" 同一行显示一个字符串作为命令输出[两边空格] echo -n " the time and date are " 输入重定向 wc <123.txt 206 614 41406 内联输入重定向是双小于号<<[必须指定一个文本标记来划分数据的开始和结尾] wc <<EOF > test string 1 > test string 2 > test string 3 > EOF 3 9 42 数学运算 expr 1 + 5[中间空格] 6 expr 1 * 5 expr: syntax error

Shell 参数扩展及各类括号在 Shell 编程中的应用

本秂侑毒 提交于 2020-01-07 09:30:17
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 今天看有人总结了 shell 下的参数扩展,但不是很全,恰好以前整理过放在百度空间,但百度空间目前半死不活的情况下对 Google 非常不友好,索性一并转过来方便查阅。 1、bash 中的 大括号参数扩展 (Parameter Expansion) 假设我们定义了一个变量为: file=/dir1/dir2/dir3/my.file.txt 1.1 bash 下的 split 取“数组”的首、尾: ${file#*/}:拿掉第一条 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt ${file##*/}:拿掉最后一条 / 及其左边的字符串:my.file.txt ${file#*.}:拿掉第一个 . 及其左边的字符串:file.txt ${file##*.}:拿掉最后一个 . 及其左边的字符串:txt ${file%/*}:拿掉最后条 / 及其右边的字符串:/dir1/dir2/dir3 ${file%%/*}:拿掉第一条 / 及其右边的字符串:(空值) ${file%.*}:拿掉最后一个 . 及其右边的字符串:/dir1/dir2/dir3/my.file ${file%%.*}:拿掉第一个 . 及其右边的字符串:/dir1/dir2/dir3/my Tips: 记忆的方法为: #

Shell脚本入门-2

半腔热情 提交于 2020-01-07 08:38:36
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> (一)定义变量时,变量名不加美元符号($,PHP语言中变量需要) ,如: your_name="runoob.com" 注意, 变量名和等号之间不能有空格 ,这可能和你熟悉的所有编程语言都不一样。同时, 变量名的命名须遵循如下规则: 命名只能使用英文字母,数字和下划线, 首个字符不能以数字开头 。 中间不能有空格 ,可以使用下划线(_)。 不能使用标点符号。 不能使用bash里的关键字 (可用help命令查看保留关键字)。 有效的 Shell 变量名示例如下: RUNOOB LD_LIBRARY_PATH _var var2 无效的变量命名: ?var=123 user*name=runoob 除了 显式地直接赋值,还可以用语句给变量赋值 ,如: for file in `ls /etc` 以上语句将 /etc 下目录的文件名循环出来 。 (二)使用变量 使用一个定义过的变量,只要在变量名前面加美元符号即可,如: your_name="qinjx" echo $your_name echo ${your_name} 变量名外面的花括号是可选的,加不加都行,加花括号是为了 帮助解释器识别变量的边界 ,比如下面这种情况: for skill in Ada Coffe Action Java; do echo "I