- 博客(181)
- 收藏
- 关注
原创 shell 脚本控制与计划任务
shell 脚本控制与计划任务一、脚本优先级控制可以使用nice和renice调整脚本优先级避免出现不可控的死循环死循环导致CPU占用过高死循环导致死机fork炸弹:.(){.|.&};.二、捕捉信号捕获信号脚本的编写kill 默认会发送15号信号给应用程序ctrl + c 发送2号信号给应用程序9号信号不可阻塞# 信号脚本#!/bin/bash# 捕获15号信号trap "echo sig 15" 15# 捕获2号信号trap "echo sig
2021-01-02 21:19:50 792
原创 shell 函数的使用
shell 函数的使用自定义函数1.函数的使用:函数用于包含重复使用的命令集合。自定义函数语法:function fname( ) { 命令}函数的执行fname举个栗子:# 定义一个 cdls 函数[root@iZbp1e44zna0rzyna76eszZ lvhuiqi]# function cdls(){> cd /home/lvhuiqi/> ls> }# 执行cdls函数[root@iZbp1e44zna0rzyna76eszZ lvh
2021-01-02 17:08:48 468 1
原创 shell for与while循环
shell for与while循环一、使用for循环遍历命令的执行结果for 循环的语法:for 参数 in 列表do 执行的命令done 封闭一个循环# 循环遍历列表中0~9数字[root@iZbp1e44zna0rzyna76eszZ lvhuiqi]# for i in {0..9}; do echo "hello"; echo $i ; donehello0hello1hello2hello3hello4hello5hello6hello7hell
2021-01-02 15:44:41 434
原创 shell case语句的使用
shell case语句的使用case语句和select语句可以构成分支。case “$变量” in“情况1”)命令… ;;“情况2”)命令… ;;*)命令… ;;esac举个栗子:实现输入一个参数,进行匹配并打印#! /bin/bash# $1表示接收一个输入参数 case "$1" in # 如果输入start或者START,走这个分支 "start"|"START") echo $0 st
2021-01-02 12:22:22 838
原创 shell 使用if-elif-else语句
shell 使用if-elif-else语句一、使用if-then-else语句:If-then-else 语句可以在条件不成立时也运行相应的命令if [ 测试条件成立 ]then 执行相应命令else 测试条件不成立,执行相应命令fi 结束举个栗子,判断当前用户是root角色还是其它角色:#! /bin/bashif [ $USER = root ] ;then echo "root" echo $UIDelse echo "user" echo $UIDfi# 运
2021-01-02 11:47:49 10524 1
原创 shell 运算符
shell 运算符一、赋值运算符:赋值运算符**=,用于算数赋值和字符串赋值**默认认为是字符串[root@iZbp1e44zna0rzyna76eszZ lvhuiqi]# a=3+3[root@iZbp1e44zna0rzyna76eszZ lvhuiqi]# echo $a3+3使用unset取消变量的赋值=(等号)除了作为赋值运算符还可以作为测试操作符二、算数运算符:基本运算符:+:加-:减*:乘/:除**:乘方%:取余数使用e
2021-01-02 09:51:17 279
原创 shell 转义和引用
shell脚本的转义和引用一、特殊字符:特殊字符:一个字符不仅有字面意义,还有本意。# 注释:运行调试、提高代码阅读;分号:分割命令,较短的命令可以使用分号进行连接\转义符号:"和'双引号和单引号:二、转义:1.单个字符前的转义符号:\n \r \t单个字母的转义:\$ \" \\单个非字母的转义:# 使用 /转义符号,将" 进行转义输出[root@iZbp1e44zna0rzyna76eszZ lvhuiqi]# echo " abc"x"def "
2021-01-02 01:12:48 806
原创 shell 数组的简单使用
shell 数组的简单使用一、定义数组:IPTS=( 16.0.0.1 16.0.0.2 16.0.0.3 ),使用()进行定义,里面的元素都需要空格进行分割。[root@iZbp1e44zna0rzyna76eszZ lvhuiqi]# IPTS=( 16.0.0.1 16.0.0.2 16.0.0.3 )注意:如果直接获取ITPS变量,只能获取数组中第一个值[root@iZbp1e44zna0rzyna76eszZ lvhuiqi]# echo $IPTS16.0.0.1二、显示数组所
2021-01-02 00:52:49 247
原创 shell 变量赋值的详细使用
Shell 变量赋值的详细使用一、变量的定义:变量名的命名规则:命名的名字要有意义字母、数字、下划线不以数字开头二、变量的赋值:变量赋值的过程,称为变量替换。1.变量名=变量值:a=123# 将123数字赋值给a变量[root@iZbp1e44zna0rzyna76eszZ lvhuiqi]# a=123[root@iZbp1e44zna0rzyna76eszZ lvhuiqi]# echo $a1232.使用let为变量赋值:let a=10+20# 使用l
2021-01-02 00:34:32 40503 2
原创 shell 管道与重定向
Shell 管道与重定向一、管道与管道符:管道概念:管道和信号一样,也是进程通信的方式之一。管道符概念:也叫做匿名管道,是shell编程经常用到的通信工具,管道符是 “|”,将前一个命令执行的结果传递给后面的命令:执行命令:[root@iZbp1e44zna0rzyna76eszZ nginx]# cat nginx.conf | more查看 cat nginx.conf 配置文件的命令执行结果,传递给 | 后面的 more 命令,进行分页查看 nginx.conf 文件二、
2021-01-01 22:35:17 520 1
原创 shell 脚本执行命令 source 与 bash 的区别
shell 脚本执行命令 source 与 bash 的区别执行命令:bash ./filename.sh./filename.sh (使用SHA BANG 脚本文件#!开头格式)以上命令是开启一个新子进程去执行sh脚本。source ./filename.sh.filename.sh以上命令是在当前进程来进行运行。举个栗子:创建新的shell脚本:# 使用vim命令添加shell脚本vim test.sh# 编写shell脚本#! /bin/bash
2021-01-01 12:27:07 2916 2
原创 MySQL 索引讲解
MySQL索引索引是帮助MySQL高效获取数据的排好序的数据结构。索引的数据结构:二叉树红黑树Hash表B-Tree索引的节点存储的是key(索引列字段),value(行数据磁盘文件的地址指针)。从索引表中找的时候,都是从根节点去找。(二叉树的数据结构)二叉查找树:采取二分查找的思想,O(logN) 的复杂度就可以完成对数据的查找任务,查找所需的最大次数等同于二叉树的高度。它的特性:左子树上所有节点的值,小于或等于根节点的值右子树上节点的值,大于或等于根节点的值缺点:插
2020-10-17 12:11:56 361
原创 Shell脚本入门
shell脚本入门#!/bin/sh,它同样也可以改为 #!/bin/bash。#! 告诉系统其后路径所指定的程序即是解释此脚本文件的 Shell 程序。运行第一个shell脚本:#!/bin/bashecho "Hello World !"#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。echo 命令用于向窗口输出文本。注意:运行shell脚本时,需要将此文件变成可执行文件chmod +x ./test.sh #使脚本具有执行权限变量n
2020-08-19 09:26:17 295 1
原创 Ruby 入门基本语法(一)
Ruby 入门基本语法简介Ruby,一种为简单快捷面向对象编程(面向对象程序设计)而创的脚本语言,由日本人松本行弘(まつもとゆきひろ,英译:Yukihiro Matsumoto,外号Matz)开发,遵守GPL协议和Ruby License。特色完全面向对象,在Ruby语言中,任何东西都是对象,包括其他语言中的基本数据类型,比如整数变量没有类型,Ruby的变量可以保有任何类型的数据任何东西都有值,不管是数学或者逻辑表达式还是一个语句,都有值运算符重载自动垃圾回收弱类型(动态类型 | 标量变
2020-08-19 09:04:49 1037
原创 Java 内部类整理(静态内部类、成员内部类、局部内部类、匿名内部类)
Java 内部类整理(静态内部类、成员内部类、局部内部类、匿名内部类)一、内部类:在Java中,将一个类的定义放在另一个类的定义内部,这就是内部类。内部类本身就是一个类的属性。举个栗子:public class Outer { private int i = 1; private static int k = 2; public Outer(){ } // 定义内部类 class inner{ public voi
2020-06-10 15:28:41 865
原创 Java Cookie与Session 讲解
Java Cookie与Session 讲解一、Cookie与Session讲解:概念:一次会话中包含多次请求和响应;一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止;功能:再一次会话的范围内的多次请求间,共享数据;方式:客户端会话技术:Cookie;服务器端会话技术:Session;1.Cookie:概念:客户端会话技术,将数据保存到客户端;...
2020-04-10 23:10:57 313
原创 Java Servlet 中 Request、Response讲解
Java Servlet 中 Request、Response讲解一、request功能:1.获取请求消息数据:获取请求行数据:GET /day16/demo1?name=zhangsan HTTP/1.1获取请求方式:GETString getMethod()获取虚拟目录:/day16String getContextPath()获取Servlet路径...
2020-04-09 23:42:41 548
原创 Java 数据库连接池
Java 数据库连接池一、概念:数据库连接池:其实就是一个容器(集合),存放数据库连接的容器。当系统初始化后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。优点:节约资源;用户访问高效;实现:标准接口:DataSource javax.sql包下;方法:获取连接:getConnenc...
2020-04-08 18:57:11 328
原创 Java集合讲解
Java 集合的讲解一、为什么要学习集合?学习集合,有必要说一下数组,集合在某种程度上弥补了数组缺陷。先了解下数组的特点:长度固定,如果要加入的元素超过了数组的长度就需要重新定义;可以存储基本数据类型和引用类型;数组存储的数据类型是同一类型;二、什么是集合?Java是一种面向对象的语言,所以就需要一种容器来存放对象,因此,集合就产生了。我们把集合概括为存放对象的容器,它的特点如...
2020-04-06 19:11:31 304
原创 Go 语言 协程和管道讲解
Go 语言 协程和管道讲解一、进程和线程基本说明:进程是程序在操作系统中一次执行过程,是系统进行资源分配和调度的基本单位;线程是进程的一个执行实例,是程序最小单元,它是比进程更小的能独立运行的基本单位;一个进程可创建和销毁多个线程,同一个进程的多个线程可以并发执行;一个程序至少有一个进程,一个进程至少有一个线程;举个栗子:使用的迅雷客户端,打开迅雷就是开启了一个进程,而下载多...
2020-02-25 13:56:09 1474 1
原创 Go 语言 序列化、反序列化的使用
Go 语言 序列化、反序列化的使用一、结构体的操作:1. 结构体序列化:package mainimport ( "encoding/json" "fmt")// 定义一个结构体type Monster struct { Name string Age int Birthday string Sal float64}// 演示结构体进行序列化func test...
2020-02-24 13:05:52 1252
原创 Go 语言 文件操作
Go 语言 文件操作一、基本介绍:文件在程序中是以流的形式来操作的。流:数据在数据源(文件)和程序(内存)之间经历的路径。输入流(读文件):数据从数据源(文件)到程序(内存)的路径。输出流(写文件):数据从程序(内存)到数据源(文件)的路径。二、打开文件、关闭文件:使用案例:package mainimport ( "fmt" "os")func main () {...
2020-02-23 19:24:36 432
原创 Go 语言 map的使用
Go 语言 map的使用一、map 基本介绍:map 是 key-value 数据结构,又称为字段或者关联数组。(类似Python中的字典)基本语法:var map 变量名 map[keyType]valueType通常key的类型为:int,string,也可以为bool、数字、指针、channel、接口、结构体、数组;通常value的类型为:数字(整数、浮点数)、strin...
2020-02-07 19:19:46 623
原创 Go 语言 二维数组的使用
Go 语言 二维数组的使用一、二维数组快速入门:入门案例:0 0 0 0 0 00 0 1 0 0 00 2 0 3 0 00 0 0 0 0 0代码演示:package mainimport "fmt"func main() { // 二维数组的入门案例 /* 0 0 0 0 0 0 0 0 1 0 0 0 0 2 0 3 0 0 0 0 0 0 0 0...
2020-02-07 14:19:56 1903
原创 Go 语言 切片的使用
Go 语言 切片的使用一、切片的基本介绍:切片(slice)是数组的一个引用,因此切片是引用类型。在传递时,遵守引用传递机制。切片的使用和数组相似:比如:遍历切片、访问切片的元素、求切片的长度等等;切片是一个可以动态变化的数组。切片定义的基本语法:var 切片名 []类型比如:var sliceName []int定义切片名为sliceName 类型为...
2020-02-02 13:39:16 395
原创 Go 语言 数组的使用
Go 语言 数组的使用一、数组的介绍:数组可以存放多个同一类型的数据。数组也是一种数据类型,在Go 中,数组是值类型。举个简单栗子:package mainimport "fmt"func main() { // 数组的快速使用 // 1. 定义一个数组 var array [6]float64 // 2.给数组每个元素赋值, 元素下标是从0开始的 array[0] =...
2020-02-01 13:32:13 328
原创 Go 语言 错误处理机制
Go 语言 错误处理机制1.基本使用:Golang 没有结构化异常,使用panic 抛出错误,recover 捕获错误。异常的使用场景简单描述:Go 中可以抛出一个panic的异常,然后再defer中通过recover捕获这个异常,然后正常处理。举个程序异常的栗子:package mainimport ( "fmt")func main() { i := 100 j :=...
2020-01-30 20:17:43 555
原创 Go 语言时间和日期函数的使用
Go 语言时间和日期函数的使用时间和日期相关函数,需导入 time 包。1.获取当前时间:package mainimport ( "fmt" "time")func main() { // 获取当前时间 now := time.Now() fmt.Printf("当前时间为:%v\n类型为:%T", now, now)}// 输出结果:当前时间为:2020-01-...
2020-01-20 15:06:57 537
原创 Go 语言 常用字符串函数的使用
Go 语言 常用字符串函数的使用1.统计字符串的长度,按字节len(str):func main() {// 统计字符串的长度, 按字节统计len(str)// golang 的编码统一为 utf-8, 一个英文占1个字节、一个汉字占3个字节 var myStr string = "hello北京" fmt.Println("mystr的长度为:", len(myStr))}//...
2020-01-20 11:01:28 665 1
原创 Go 语言 函数defer的使用
Go 语言 函数defer的使用一、基本概念:在函数中,经常需要创建资源(比如:数据库的连接、文件、锁等),为了在函数执行完毕后,及时释放资源,go 提供了defer(延时机制)。举个栗子:package mainimport "fmt"// 当执行到defer 时, 暂时不会执行, 会将defer 后面的语句 压入到 栈中(特点:先进后出)// 当函数执行完毕后, 在从 栈中...
2020-01-18 18:52:40 276
原创 Go 语言 函数、init函数、匿名函数的使用
Go 语言 函数、init函数、匿名函数的使用一、函数:1.基本概念:完成某一个功能的程序指令(语句)的集合,称为函数。在 go 中,函数分为:自定义函数,系统函数。函数基本语法:func 函数名 (形参列表) (返回值列表) { 执行语句… return 返回值列表}简单栗子:将简单的计算器功能封装成一个函数;package mainimport...
2020-01-18 15:21:22 359
原创 Go 语言 for 循环、break、continue 讲解
Go 语言 for 循环、break、continue 讲解一、for 循环控制:1.基本概念:基本语法:for 循环变量初始化;循环条件;循环变量迭代 { 循环操作(语句)}简单使用:package mainimport ( "fmt")func main(){ for i := 1; i <=6; i++{ fmt.Println("输出结果:...
2020-01-16 17:17:29 2304
原创 Go 语言 switch 的使用
Go 语言 switch 的使用一、基本介绍:switch 语句 基于不同条件执行不同动作,每一个 case 分支都是唯一的,从上到下执行,直到匹配为止。匹配项后面不需要加 break。基本语法:switch 表达式 { case 表达式1,表达式2,…: 语句块1 case 表达式3,表达式4: 语句块2 default: 语句块3}switc...
2020-01-15 18:48:37 716
原创 Go 语言 进制的转换、位运算符的使用
GO 语言 进制的转换、位运算符的使用二进制:0,1,满 2 进 1;在 go 中,不能直接使用 二进制来表示一个整数。十进制:0-9,满 10 进 1;八进制:0-7,满 8 进 1。以数字 0 开头表示;十六进制:0-9 及 A-F,满 16 进 1。以 0x 或 0X 开头表示;A-F 不区分大小写举个栗子:package mainimport (...
2020-01-09 10:20:35 3753 5
原创 Go 语言 fmt.Scanln() 与 fmt.Scanf() 包使用
Go 语言 fmt.Scanln() 与 fmt.Scanf() 包使用需要接收用户输入的数据,就可使用键盘输入语句来获取。下面讲述两种方法的使用:fmt.Scanln()的使用:先声明需要的变量package mainimport ( "fmt")func main(){ // 需求: 从控制台接收用户信息【姓名, 年龄, 薪水, 是否拿到offer】 var nam...
2020-01-08 10:57:58 14177
原创 Go 语言 运算符
Go 语言 运算符运算符是一种特殊的符号,用表示数据的运算、赋值、比较等。一、算术运算符:算数运算符是对数值类型的变量进行运算的。运算符运算范例结果+正号+33-负号-4-4+加1+12-减2-11*乘2*36/除5/51%取模(取余)7%52++自增a=1 a++(a=a+1)...
2020-01-07 23:36:56 1042
原创 Go 语言 标识符的基本使用
Go 语言 标识符的基本使用一、标识符概念:Go 对各种变量、方法、函数等名命时使用的字符序列(字符串)称为标识符;自己可以起名的地方都可叫标识符;二、标识符的命名规则:由 26 个 英文字母大小写,0-9,_ 组成;数字不可以开头;var num int // 正确写法var 3num int // 错误写法go 中严格区分大小写;var num i...
2020-01-05 14:18:49 585
原创 Go 语言 值类型和引用类型的理解
值类型和引用类型讲解一、值类型:值类型包括,基本数据类型 int系列、float系列、bool、string、数组和结构体;值类型:变量直接存储值,内存通常在栈中分配;var num = 100如图所示:二、引用类型:引用类型包括,指针、slice切片、map、管道 chan、interface等;引用类型:变量存储一个地址,地址对应的空间才真正存储数据(值),内存通常在堆上分...
2020-01-05 12:32:15 447
原创 Go 语言 指针的使用
Go 语言 指针的使用一、基本介绍:基本数据类型,变量存的就是值,也叫值变量;获取变量的地址,用**&**;var in int ,获取 i 内存地址:&ipackage mainimport ( "fmt" _"strconv")// go 中 指针类型func main(){ // 基本数据类型内存布局 var i int = 66 /...
2020-01-05 11:37:03 309
原创 Go 基本数据类型相互转换
Go 基本数据类型讲解一、基本数据类型默认值:数据类型默认值整型0浮点型0字符串“”布尔型false在 go中,数据类型都有一个默认值,也叫零值。举个栗子:package mainimport ( "fmt")func main(){ var a int // 0 var b float64 // 0.00000 v...
2020-01-04 10:17:27 665
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人