文章 78
评论 0
浏览 8365
2-SHELL脚本编程进阶

2-SHELL脚本编程进阶

4 流程控制 4.1 循环 4.1.1 循环 while 格式: while COMMANDS; do COMMANDS; done while CONDITION; do 循环体 done 说明: CONDITION:循环控制条件;进入循环之前,先做一次判断;每一次循环之后会再次做判断;条件为“true”,则执行一次循环;直到条件测试状态为“false”终止循环,因此:CONDITION一般应该有循环控制变量;而此变量的值会在循环体不断地被修正 进入条件:CONDITION为true 退出条件:CONDITION为false 无限循环 while true; do 循环体 done while : ; do 循环体 done 范例: [11:03:16 root@centos8 ~]#sum=0;i=1;while ((i<=100));do let sum+=i;let i++;done;echo $sum 5050 范例:根据硬盘使用百分比来发送警告邮件 WARNING=80 while : ;do USE=`df | sed -rn '/^/dev/s#.* ([....

shell脚本利用循环调用expect在Centos和Ubuntu上批量创建用户

shell脚本利用循环调用expect在Centos和Ubuntu上批量创建用户

#!/bin/bash # #******************************************************************** #Author:zhangzhuo #QQ: 1191400158 #Date: 2020-12-29 #FileName:expect7.sh #URL: https://www.zhangzhuo.ltd #Description:The test script #Copyright (C): 2020 All rights reserved #******************************************************************** NET=192.168.10 user=root password=123456 IPLIST=" 71 102 " for ID in $IPLIST;do ip=$NET.$ID expect <<EOF set timeout 20 spawn ssh $user@$ip expect { "yes/no" { send ....

5-网络协议和管理配置

5-网络协议和管理配置

5 Ubuntu网络配置 5.1 主机名 修改主机名 [12:41:54 root@ubuntu20-04 ~]#hostnamectl set-hostname zhang [12:42:03 root@ubuntu20-04 ~]#su - [12:42:05 root@zhang ~]#cat /etc/hostname zhang [12:42:15 root@zhang ~]#echo $HOSTNAME zhang [12:42:25 root@zhang ~]#exit logout [12:42:35 root@ubuntu20-04 ~]#sudo -i [12:42:42 root@zhang ~]#echo $HOSTNAME zhang 5.2 网卡名称 默认ubuntu的网卡名称和 CentOS 7 类似,如:ens33,ens38等 修改网卡名称为传统命名方式 #修改配置文件为下面形式 [12:43:55 root@ubuntu20-04 ~]#vim /etc/default/grub GRUB_CMDLINE_LINUX="net.ifnames=0".....

4-网络协议和管理配置

4-网络协议和管理配置

4 网络配置 4.1 基本网络配置 将Linux主机接入到网络,需要配置网络相关设置 一般包括如下内容: 主机名 IP/netmask 路由:默认网关 DNS服务器 主DNS服务器 次DNS服务器 第三个DNS服务器 4.2 Centos 6之前版本网卡名称 接口命令方式:Centos 6 以太网:eth[0,1,2....] ppp:ppp[0,1,2...] 网络接口识别并命名相关的udev配置文件: /etc/udev/rules.d/70-persistent-net.rules 查看网卡 demesg | grep -i eth ethtool e1000 装载网卡驱动 modprobe e1000 4.3 网络配置命令 4.3.1 网络配置方式 静态指定 ifconfig,route,netstat ip:object{link,addr,route},ss,tc system-config-network-tui,setup 动态分配:DHCP 4.3.2 ifconfig命令 来自net-tools包,建议使用ip....

3-网络协议和管理配置

3-网络协议和管理配置

3 TCP/IP协议栈 3.1 TCP/IP标准 3.1.1 TCP/IP介绍 Transmission Control Protocol/Internet Protocol 传输控制协议/因特网互联协议 TCP/IP是一个Protocol Stack,包扣TCP、IP、UDP、ICMP、RIP、TELNET、FTP、SMTP、ARP等许多协议 最早发源于1969年美国国防部(缩写为DoD)的因特网的前身ARPA网项目,1983年1月1日,TCP/IP取代了旧的网络控制协议NCP,成为今天的互联网和局域网的基石和标准,由互联网工程任务组负责维护 国防部高级研究计划局DARPA与BBN技术公司、斯坦福大学和伦敦大学学院签约,在多个硬件平台上开发协议的操作版本。在协议开发过程中,数据包路由层的版本号从版本1进展到版本4,后者于1983年安装在ARPANET中。它被称为互联网协议版本4(IPv4)作为协议,仍在互联网使用,连同其目前的继承,互联网协议版本6(IPv6)。 RFC文档:https://www.ietf.org/rfc/rfc1180.html 3.1.2 TCP/IP分层 共定....

2-网络协议和管理配置

2-网络协议和管理配置

2 局域网Local Area Network 2.1 概述 2.1.1 特点 网络为一个单位所拥有 地理范围和站点数目均有限 2.1.2 主要功能 资源共享和数据通信 2.1.3 优点 能方便的共享昂贵的外部设备、主机以及软件、数据。从一个站点可以访问全网 便于系统的扩展和逐渐演变,各设备的位置可灵活的调整和改变 提高系统的可靠性、可用性和易用性 2.1.4 标准 IEEE于(国际电子电气工程师协会)1980年2月成立了局域网标准委员会(简称IEEE802委员会),专门从事局域网标准化工作,并制定了IEEE802标准。802标准所描述的局域网参考模型只对应OSI参考模型的数据链路层与物理层,它将数据链路层划分为逻辑链路层LLC子层和介质访问控制MAC子层 LLC子层负责向其上层提供服务 MAC子层的主要功能包括数据帧的封装/卸装,帧的寻址和识别,帧的接收与发送,链路的管理,帧的差错控制等。MAC子层的存在屏蔽了不同物理链路种类的差异性。 局域网标准 (1) IEEE 802.1标准 局域网体系结构、网络互连、以及网络管理和性能测试 (2) IEEE 802.2标准 逻辑....

1-网络协议和管理配置

1-网络协议和管理配置

1 网络基础 1.1 网络概念 计算机网络是一组计算机或网络设备通过有形的线缆或无形的媒介如无线,连接起来,按照一定的规则,进行通信的集合。 网络功能和优点 数据和应用程序 资源 网络存储 备份设备 作用范围分类: 广域网(WAN,Wide Area Network) 城域网(MAN,Metropolitan Area Network) 局域网(LAN,Local Area Network) 1.2 常见的网络物理组件 1.3 网络应用程序 1.3.1 各种网络应用 Web浏览器(Chrome、IE、Firefox等) 即时消息(QQ、微信等) 电子邮件(Outlook、foxmail等) 协作(视频会议) web网络服务(apache,nginx,IIS) 文件网络服务(ftp、nfs) 数据库服务(mysql,mariadb等) 中间件服务(tomcat,JBoss) 安全服务(Netfilter) 1.3.2 应用程序对网络的要求 批处理应用程序 FTP、TFTP、库存更新 无需直接人工交互 带宽很重要,但并非关键因素 交互式应用程序 库存查询、数据....

磁盘存储和文件系统-8

磁盘存储和文件系统-8

1 磁盘结构 1.1设备文件 一切皆文件:open(),read(),write(),close() 设备文件:关联至少一个设备驱动程序,进而能够跟与之对应硬件设备进行通信 设备号码: 主设备号:major number,标识设备类型 次设备号:minor number,标识同一类型下的不同设备 #实例: [01:22:56 root@localhost ~]#ll /dev/null crw-rw-rw-. 1 root root 1, 3 Nov 22 01:12 /dev/null # 1,3 1是主设备号 3是次设备号 范例:创建一个跟/dev/zero一样的文件 [01:23:04 root@localhost ~]#mknod /root/zero c 1 5 [01:27:23 root@localhost ~]#ll total 8 -rw-------. 1 root root 1301 Nov 21 23:55 anaconda-ks.cfg -rwxr-xr-x. 1 root root 1596 Nov 21 23:57 reset.sh crw-r--r-......

apache2.4.46源码自动安装centos

apache2.4.46源码自动安装centos

#!/bin/bash # #******************************************************************** #Author:zhangzhuo #QQ: 1191400158 #Date: 2020-12-19 #FileName:apache_install.sh #URL: https://www.zhangzhuo.ltd #Description:The test script #Copyright (C): 2020 All rights reserved #******************************************************************** if [ -z $1 ];then echo -e "\e[1;31m请在执行脚本后面跟源码包名称!\e[0m" exit else if [ -e $1 ];then tar xvf $1 2>/dev/null if [ $? = 0 ];then if [ -d `echo $1 | sed -nr 's/(.*)....

软件管理-7

软件管理-7

内容概述: 软件运行环境 软件包基础 rpm包管理 yum和dnf管理 定制yum仓库 编译安装 Ubuntu软件管理 1 软件运行和编译 1.1 软件相关概念 1.1.1 ABI ABI:Application Binary Interface Windows与Linux不兼容 ELF(Executable and Linkable Format) PE(Portable Executable) 库级别的虚拟化: Linux:WINE Windows:Cygwin 1.1.2 API 系统级开发 汇编语言 C C++ 应用级开发 java Python go php perl ruby bash 1.2 C语言程序的实现过程 C程序源代码——预处理——编译——汇编——链接 C语言的程序编译主要经过四个过程: 预处理:(Pre-Processing) 将所有的#define删除,并且展开所有的宏定义 处理所有的条件预编译指令,比如#if #ifdef #elif等 处理#include预编译指令,将被包含的文件插入到该预编译指令的位置 删除所有注释 添加行号....

文件处理三剑客之sed-6

文件处理三剑客之sed-6

1 文件处理三剑客之sed 1.1 sed工作原理 sed即Stream EDitor,和vi不同,sed是行编辑器 sed是从文件或者管道中读取一行,处理一行,输出一行;在读取一行,在处理一行,在输入一行,直到最后一行。每当处理一行时,把当前处理的行存储在临时缓冲区中,称为模式空间(Pattern Space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓存区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。一次处理一行的设计模式使得sed性能很高,sed在读取大文件时不会出现卡顿现象。如果使用vi命令打开几十M上百M的文件,明显会出现有卡顿的现象,这是因为vi命令打开文件是一次性将文件加载到内存,然后在打开。sed就避免了这种情况,一行一行的处理,打开速度非常快,执行速度也很快 参考网站:http://www.gnu.org/software/sed/manual/sed.html 1.2 sed基本用法 格式: sed [option]... 'script;script;...' inputfile... 常用选项: -n 不输出模式空间内容到屏幕,即不自......

文件查找和压缩-5

文件查找和压缩-5

内容概述 locate find xargs compress和uncompress gzip和gunzip bzip和bunzip xz和unxz zip和unzip tar cpio 1 文件查找 在文件系统上查找符合条件的文件 文件查找: 非实时查找(数据库查找):locate 实时查找:find 1.1 locate locate查询系统上预建的文件索引数据库/var/lib/mlocate/mlocate.db 索引的构建是在系统较为空闲时自动进行(周期性任务),执行updatedb可以更新数据库 索引构建过程需要遍历整个根文件系统,很消耗资源 locate和updatedb命令来自于mlocate包 工作特点: 查找快速 模糊查找 非实时查找 搜索的是文件的全路径,不仅仅是文件名 可能只搜索用户具备读取和执行权限的目录 格式: locate [OPTION]... [PATTERN]... 常用选项 -i 不区分大小写的搜索 -n N只列举前N个匹配项目 -r 使用基本正则表达式 范例: #搜索名称或路径中包含conf的文件 [10:15:54 root....

1-SHELL脚本编程基础

1-SHELL脚本编程基础

shell脚本编程基础 内容概述 编程基础 脚本基本格式 变量 运算 条件测试 配置用户环境 循环 1 编程基础 Linus:Talk is cheap,show me the code 1.1 程序组成 程序:算法+数据结构 数据:是程序的核心 数据结构:数据在计算机中的类型和组织方式 算法:处理数据的方式 1.2 程序编程风格 面向过程语言 做一件事,排出个步骤,第一步干什么,第二步干什么,如果出现情况A,做什么处理,如果出现情况B,做什么处理 问题规模小,可以步骤化,按部就班处理 以指令为中心,数据服务于指令 C,shell 面向对象语言 一种认识世界、分析世界的方法论。将万事万物抽象为各种对象 类是抽象的概念,是万事万物的抽象,是一类事物的共同特征的集合 对象是类的具象,是一个实体 问题规模大,复杂系统 以数据为中心,指令服务于数据 java,C#,python,golang等 1.3 编程语言 计算机:运行二进制指令 编程语言:人与计算机之间交互的语言。分为俩种:低级语言和高级语言 低级编程语言: 机器:二进制的0和1的序列,称为机器指令。与自然语言差异太....

文本处理工具和正则表达式-4

文本处理工具和正则表达式-4

内容概述 文本编辑工具VIM 各种文本工具 基本正则表达式和扩展正则表达式 文本处理三剑客之grep 1 文本编辑工具之VIM 1.1 vi 和 vim简介 在Linux中我们经常编辑修改文本文件,即由ASCII,Unicode或其他编码的纯文字的文件。 文本编辑种类: 全屏编辑器:vi,vim...... 行编辑器:sed vi visual editor,文本编辑器,是Linux必备工具之一,功能强大,学习曲线较陡峭,学习难度大。 vim Visual editor iMproved,和vi使用方法一致,但功能更为强大,最小化安装时不是必安装软件,需要自行安装 官网:https://www.vim.org/ 1.2 使用 vim 初步 1.2.1 vim 命令格式 vim [option]... FILE... 常用选项: +# #打开文件后,让光标处于第#行的行首,+默认行尾 +/PATTERN #让光标处于第一个被PATTERN匹配到的行行首 -b file #二进制方式打开文件 -d file1 file2... #比较多个文件,相当于vimdiff -m fil....

批量创建用户

批量创建用户

#!/bin/bash # #******************************************************************** #Author:zhangzhuo #QQ: 1191400158 #Date: 2020-12-07 #FileName:useradd.sh #URL: https://www.zhangzhuo.ltd #Description:The test script #Copyright (C): 2020 All rights reserved #******************************************************************** set -u set -e read -p "How many users are added? " num read -p "What is the user name prefix? " username for i in seq $num ;do useradd ${username}${i} &> /dev/nul......

用户、组和权限,ACL权限-3

用户、组和权限,ACL权限-3

内容概述: Linux的安全模型 用户和组相关文件 用户和组管理命令 理解并设置文件权限 默认权限 特殊权限 文件访问控制列表 1.Linux安全模型 资源分派: Authentication:认证,验证用户身份 Authorization:授权,不同的用户设置不同权限 Accouting|Audition:审计 当用户登录成功时,系统会自动分配令牌token,包括:用户标识和组成员等信息 1.1 用户 Linux 中每个用户是通过User id (UID)来唯一标识的 管理员:root,0 普通用户:1-60000 自动分配 系统用户:1-499(centos6以前),1-999(centos7以后) 对守护进程获取资源进行权限分配 登录用户:500+(centos6以前),1000+(centos7之后) 给用户进行交互式登录使用 1.2 用户组 Linux 中可以将一个或多个用户加入用户组中,用户组是通过Group ID(GUID)来唯一标识的。 管理员组:root,0 普通组: 系统组:1-499(centos6以前),1-999(centos....

Linux文件管理和IO重定向-2

Linux文件管理和IO重定向-2

主要内容: 文件系统目录结构 创建和查看文件 复制、转移和删除文件 软和硬链接 IO重定向和管道 1.文件系统目录结构 1.1 文件系统的目录结构 文件和目录被组织成一个单根倒置树结构 文件系统从根目录下开始,用“/”表示 跟文件系统(rootfs):root filesystem 标准Linux文件系统(如:ext4),文件名称大小写敏感,例如:MAIL,Mail 以 . 开头的文件为隐藏文件 路径分割的 / 文件名最长255个字节 包括路径在内的文件名称最长4095个字节 蓝色-->目录 绿色-->可执行文件 红色-->压缩文件 浅蓝色-->链接文件 灰色-->其他文件 除了斜杆和NULL,所有字符都有效,但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引号来引用 每个文件都有俩类相关数据:元数据:metadata,即属性,数据:data,即文件内容 Linux的文件系统分层结构:FHS Filesystem Hierarchy Standard 参考文档:https://www.pathname.com/fhs/ 1.2常见的文件系统....

linux基础入门-1

linux基础入门-1

1.Linux 基础 1.1 用户类型 root用户 一个特殊的管理员账户 也被称为超级用户 root已接近完整的系统控制,对系统损害几乎有无限的能力 普通(非特权)用户 除非必要,不要登录为root 权限有限 造成损害的能力比较有限 是什么用户是由用户uid来决定 ,查看方法 id -u 1.2 终端 terminal 1.2.1 终端类型 控制台终端:/dev/console 串行终端:/dev/ttys# 虚拟终端:tty: /dev/tty# 图形终端:startx,xwindows 伪终端:tpy:/dev/pts/# 如:ssh远程连接 1.2.2 查看当前终端设备:tty 范例: [20:00:11 root@localhost ~]#tty /dev/pts/0 1.2.3 查看所有的登录终端:who | w [20:14:12 root@localhost ~]#who root pts/0 2020-11-25 08:37 (192.168.10.1) root pts/1 2020-11-25 20:14 (192.168.10.1) w命令也能看到其....

生而为人