关于linux中shell等知识的一些笔记(代码片段)

山河已无恙 山河已无恙     2023-01-15     704

关键词:

写在前面


  • 笔记是上课后整理的笔记,适合温习,不适合新手,希望对小伙伴有帮助
  • 笔记内容包括:Shell一些常见情境

傍晚时分,你坐在屋檐下,看着天慢慢地黑下去,心里寂寞而凄凉,感到自己的生命被剥夺了。当时我是个年轻人,但我害怕这样生活下去,衰老下去。在我看来,这是比死亡更可怕的事。--------王小波


一、Shell 基础知识

1.1 什么是 Shell

shell 是用户 与 Linux 内核之间的解释器

区分 shell 和 bash:shell是解释器的总称,bash是一类解释器。

Bash基本特性

查看当前在使用得解释器,不会显示临时切换的解释器,查看当前系统支持得解释器类型

[root@liruilong ~]$ echo $SHELL #查看当前在使用得解释器,不会显示临时切换的解释器
/bin/bash
[root@liruilong ~]$ cat /etc/shells #查看当前系统支持得解释器类型
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh

临时使用其他的解释器,查看设置用户得解释器类型

[root@liruilong ~]$ sh #临时使用其他的解释器
[root@liruilong ~]$ useradd zhangsan #创建用户
[root@liruilong ~]$ cat /etc/passwd | grep zhangsan #查看用户得解释器类型
zhangsan:x:1002:1002::/home/zhangsan:/bin/bash
[root@liruilong ~]$ usermod -s /bin/tcsh zhangsan #修改zhangsan得解释器
[root@liruilong ~]$ cat /etc/passwd | grep zhangsan
zhangsan:x:1002:1002::/home/zhangsan:/bin/tcsh
[root@liruilong ~]$ su - zhangsan #切换用户,验证用户得解释器类型
[zhangsan@liruilong ~]$ echo $SHELL
/bin/tcsh
[zhangsan@liruilong ~]$

Bash的优点

  • 快捷键、Tab键补齐
    • Ctrl + A #将光标移动到命令行首
    • Ctrl + E #将光标移动到命令行尾
    • Ctrl + C #中断正在执行的命令
    • Ctrl + L #清屏
    • Ctrl + W #从光标位置,往回删一个单词
    • Ctrl + U #从光标位置,往回删到开头
  • 命令历史 ( history )
[root@liruilong ~]$ history #查看历史记录
[root@liruilong ~]$ history -c #清空历史记录
[root@liruilong ~]$ vim /etc/profile #修改历史记录的数量
46 HISTSIZE=1000
  • 命令别名 (alias)
[root@liruilong ~]$ alias #查看当前用户可以使用的别名

[root@liruilong ~]$ vim /root/.bashrc #重开一个终端生效,针对root用户生效
alias ens33='cat /etc/sysconfig/network-scripts/ifcfg-ens33'
[root@liruilong ~]$ vim /etc/bashrc #重开一个终端生效,针对所有用户生效
alias ens33='cat /etc/sysconfig/network-scripts/ifcfg-ens33'

标准输入与输出的重定向 ( >、>>、2>、2>>、&> )

正确输出重定向覆盖,> 等同于 1>

##正确输出重定向覆盖,> 等同于 1>
[root@liruilong ~]$ ls /etc/passwd > /root/1.txt
[root@liruilong ~]$ cat /root/1.txt
/etc/passwd

正确输出重定向追加, 1>> 等同于 1>>

##正确输出重定向追加, 1>> 等同于 1>>
[root@liruilong ~]$ ls /etc/passwd >> /root/1.txt
[root@liruilong ~]$ cat /root/1.txt
/etc/passwd
/etc/passwd

错误输出重定向覆盖追加

##错误输出重定向覆盖
[root@liruilong ~]$ ls --helps 2> /root/2.txt
[root@liruilong ~]$ cat /root/2.txt
ls:无法识别的选项“--helps”
Try 'ls --help' for more information.
##错误输出重定向追加
[root@liruilong ~]$ ls --helps 2>> /root/2.txt
[root@liruilong ~]$ cat 2.txt
ls:无法识别的选项“--helps”
Try 'ls --help' for more information.
ls:无法识别的选项“--helps”
Try 'ls --help' for more information.

错误或正确的输出重定向覆盖追加

##错误或正确的输出重定向覆盖
[root@liruilong ~]$ ls /etc/shadow /root/fsdfs &> /root/3.txt
[root@liruilong ~]$ cat /root/3.txt
ls: 无法访问/root/fsdfs: 没有那个文件或目录
##错误或正确的输出重定向追加
[root@liruilong ~]$ ls /etc/shadow /root/fsdfs &>> /root/3.txt
[root@liruilong ~]$ cat /root/3.txt
ls: 无法访问/root/fsdfs: 没有那个文件或目录
/etc/shadow
[root@liruilong ~]$ cat /root/3.txt
ls: 无法访问/root/fsdfs: 没有那个文件或目录
/etc/shadow

管道 ( | )

##管道的应用
[root@liruilong ~]$ cat /etc/passwd | less
[root@liruilong ~]$ echo "123" | passwd --stdin zhangsan

Shell 执行命令的方式

  • 交互式 (命令行)
    • 人工干预
    • 逐条解释执行、效率低
  • 非交换式(脚本)
    • 需要提前设计
    • 批量执行、效率高
    • 修改用户的 Shell 解释器:/etc/shadow

二、脚本设计与运行

2.1 编写Shell 脚本

什么是 Shell 脚本
提前将可执行的命令语句写入一个文件
顺序执行
解释器逐行解释代码

第一个 Shell 脚本

编写一个 Hello Word脚本
新建文件
添加可执行语句 (命令)
给文件添加 x 执行权限
[root@liruilong ~]$ mkdir -p /root/shell/day01
[root@liruilong ~]$ vim /root/shell/day01/first.sh
echo "Hello World"

规范脚本的构成

一个合格规范的脚本应该包含以下这些内容
#! 脚本声明 (使用哪种解释器解释代码)
注释信息 (步骤、思路、用途等),以 #
可执行的语句
[root@liruilong ~]$ vim /root/shell/day01/first.sh
#!/bin/bash
#A test program for Shell.
echo "Hello World"

2.2 执行 Shell 脚本

方法一:需要为文件赋予可执行的权限
绝对路径执行
相对路径执行
[root@liruilong ~]$ chmod +x /root/shell/day01/first.sh #赋予执行权限
[root@liruilong ~]$ /root/shell/day01/first.sh #以绝对路径的方式运行脚本
Hello World
[root@liruilong ~]$ cd /root/shell/day01
[root@liruilong day01]# ./first.sh #以相对路径运行脚本,【.】只得是当前目录
Hello World
方法二:不需要文件有可执行的权限
sh 脚本文件名
source 脚本文件名 #不会启动子进程,通过pstree 查看进程树

[root@liruilong ~]$ chmod -x /root/shell/day01/first.sh #取消脚本的执行权限
[root@liruilong ~]$ ls -l /root/shell/day01/first.sh
-rw-r--r-- 1 root root 58 74 11:03 /root/shell/day01/first.sh
[root@liruilong ~]$ sh /root/shell/day01/first.sh #用开启子进程的方式运行脚本
Hello World

[root@liruilong ~]$ source /root/shell/day01/first.sh #运行脚本时不会开启子进程
Hello World
#!/bin/bash
echo "Hello World"
sleep 100 #休眠100秒
[root@liruilong ~]$ yum -y install psmisc #pstree的软件包
[root@liruilong ~]$ sh /root/hello.sh #终端A上运行脚本
[root@liruilong ~]$ pstree #终端B验证,查看进程树
├─sshd─┬─sshd───bash───sh───sleep
└─sshd───bash───pstree
[root@liruilong ~]$ source /root/hello.sh #终端A上运行脚本
[root@liruilong ~]$ pstree #终端B验证,查看进程树
├─sshd─┬─sshd───bash───sleep
└─sshd───bash───pstree

三、变量

3.1 自定义变量

以固定的名称,存放可以能有变化的值

定义变量

  • 定义变量的格式:变量名=变量值
  • 取消变量的格式:unset 变量名
注意事项:
= 两边不能有空格,不要使用关键字做变量名,如:ls、cd等;
如果变量名已经存在则覆盖之前的变量值;
变量名称有:字母/数字/下划线,不能以数字开始;

查看变量

  • 查看变量的语法格式: $变量名 $变量名
###脚本中得变量并不需要回收,运行完成后系统会自动回收变量
[root@liruilong ~]$ x=12 #给变量x赋值为12
[root@liruilong ~]$ var1=centos #给变量var1赋值为centos
[root@liruilong ~]$ _a=12 #变量名以下划线开头
[root@liruilong ~]$ a_0="hello world" #变量的值可以是字符串
[root@liruilong ~]$ echo $x #输出变量x的值
12
[root@liruilong ~]$ echo $_a #输出变量$_a的值
12
[root@liruilong ~]$ echo $a_0 #输出变量$_0的值
hello world
[root@liruilong ~]$ echo $var16.5 #输出变量 var1的值,为了区分,用var1表示
centos6.5
[root@liruilong ~]$ unset x #取消定义的变量x
[root@liruilong ~]$ echo $x #再次输出结果为空

3.2系统预设变量

变量类型
环境变量(变量名通常大写,有操作系统维护);
位置变量(bash内置变量,存储脚本执行时的参数);
预定义变量(bash内置变量,可以调用但是不能赋值或修改);
自定义变量(用户自主设置)

环境变量

环境变量
存储在 /etc/profile~/.bash_profile
命令 env 可以列出所有环境变量
常见环境变量:PATH、PWD、USER、UID、HOME、SHELL
[root@liruilong ~]$ echo $PATH #默认搜索路径
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@liruilong ~]$ echo $UID #当前用户对应得UID号
0
[root@liruilong ~]$ echo $USER #当前系统得登录用户
root
[root@liruilong ~]$ echo $HOME #当前登录用户得家目录
/root
[root@liruilong ~]$ cd /etc/sysconfig/network-scripts/
[root@liruilong network-scripts]# echo $PWD #显示当前用户得所在路径
/etc/sysconfig/network-scripts
[root@liruilong ~]$ [root@liruilong ~]$ echo $SHELL #显示当前用户使用得解释器
/bin/bash

位置变量

位置变量
存储脚本执行时的参数:
使用 $n 表示,n 为数字序列号
$1、$2、... 、$10、$11、...
[root@liruilong ~]$ vim /root/shell/day01/user.sh
#!/bin/bash
#test positional parameters.
echo $1
echo $2
echo $3
[root@liruilong ~]$ bash /root/shell/day01/user.sh aa 99 cc
aa
99
cc
  • 通过位置变量创建系统账户,配置密码
[root@liruilong ~]$ vim /root/shell/day01/user02.sh
#!/bin/bash
#read username and pass from positional parameters.
useradd "$1" #创建用户
echo "$2" | passwd --stdin "$1" #给用户设置密码
[root@liruilong ~]$ sh /root/shell/day01/user02.sh tom 123
更改用户 tom 的密码 。
passwd:所有的身份验证令牌已经成功更新。

预定义变量

预定义变量
用来保存脚本程序的执行信息
直接使用这些变量
不能直接为这些变量赋值

[root@liruilong ~]$ ls /tmp/
[root@liruilong ~]$ echo $? #返回上一条命令的执行状态:0 为正确,非0 为错误
0
[root@liruilong ~]$ cat /root/sfsfsd
cat: /root/sfsfsd: 没有那个文件或目录
[root@liruilong ~]$ echo $? #上一条命令执行失败,返回一个非0值
1
[root@liruilong ~]$ vim /root/shell/day01/pre.sh
#!/bin/bash
echo $0 #输出当前得脚本名
echo $* #输出所有得位置变量
echo $# #输出位置变量得数量
echo $$ #输出脚本的进程号,每次运行脚本进程号不同
[root@liruilong ~]$ bash /root/shell/day01/pre.sh aa bb 88 qq
/root/shell/day01/pre.sh # $0执行结果
aa bb 88 qq # $*执行结果
4 # $#执行结果
3255 # $$脚本进程号
[root@liruilong ~]$

四、变量的扩展应用

4.1 各种引号

多种引号的区别

区别三种定界符
双引号 " "允许扩展,以 $ 引用其他变量;
单引号 ’ ’禁用扩展,即便 $ 也视为普通符号;
反引号 ``将命令的执行输出作为变量值,$() 与反引号等效;
[root@liruilong ~]# touch a b c #创建的是三个文件
[root@liruilong ~]# touch "a b c" #双引号让其代表一个文件
[root@liruilong ~]# touch 'b c d' #单引号作用这里是与双引号相同
[root@liruilong ~]# ls -l #查看
-rw-r--r-- 1 root root 0 76 09:36 a
-rw-r--r-- 1 root root 0 76 09:36 b
-rw-r--r-- 1 root root 0 76 09:36 c
-rw-r--r-- 1 root root 0 76 09:48 a b c
-rw-r--r-- 1 root root 0 76 09:48 b c d
[root@liruilong ~]# rm -rf "a b c" #删除时要引号引起来
[root@liruilong ~]# rm -rf 'b c d'
[root@liruilong ~]# echo $HOME #输出家目录路径
/root
[root@liruilong ~]# echo '$HOME' #只输出 $HOME 字符串,''屏蔽特殊符号的含义
$HOME
[root@liruilong ~]# echo '$USER id is $UID'
$USER id is $UID
[root@liruilong ~]# echo $USER id is $UID
root id is 0
[root@liruilong ~]# test=`grep root /etc/shadow`
[root@liruilong ~]# test01=$(grep root /etc/shadow)
[root@liruilong ~]# echo $test
root:$6$Uebh9/WEzEaQfT$8b0B6oBgWUTEmYojDW9.6PHOw0.jD7A.SENsHFD/YPwh/L9jRJK0yWAtRF4BEteYZETeMiInp72dTviSKmLZf.:18501:0:99999:7::: dockerroot:!!:18691::::::
[root@liruilong ~]#  echo $test01
root:$6$Uebh9/WEzEaQfT$8b0B6oBgWUTEmYojDW9.6PHOw0.jD7A.SENsHFD/YPwh/L9jRJK0yWAtRF4BEteYZETeMiInp72dTviSKmLZf.:18501:0:99999:7::: dockerroot:!!:18691::::::
[root@liruilong ~]#

4.2 read 命令定义变量

read 标准输入取值

read 标准输入取值
read 从键盘读入变量值完成赋值
格式:read [-p "提示信息"] 变量名
-p 可选-t 可指定超时秒数-s 设置是否在终端显示输入的内容

交互式定义变量

[root@liruilong ~]# read name #交互式定义变量
haha #输入名字
[root@liruilong ~]# echo $name #查看变量
haha
[root@liruilong ~]# read -p "请输入用户名:" name #交互式定义变量
请输入用户名:xixi
[root@liruilong ~]# echo $name #查看变量
xixi

从键盘读取用户名密码,创建用户并设置密码

[root@liruilong ~]# vim /root/shell/day01/user03.sh
#!/bin/bash
##read 从键盘读取用户名密码,创建用户并设置密码
read -p "请输入一个用户名:" name
read -p "请输入密码:" pass
useradd $name
echo "$pass" | passwd --stdin $name
##脚本测试
[root@liruilong ~]# source /root/shell/day01/user03.sh
请输入一个用户名:nana
请输入密码:123456
更改用户 nana 的密码 。
passwd:所有的身份验证令牌已经成功更新。

read 从键盘读取用户名密码,创建用户并设置密码,要求不显示输入密码

[root@liruilong ~]# vim /root/shell/day01/user03.sh
#!/bin/bash
##read 从键盘读取用户名密码,创建用户并设置密码,要求不显示输入密码
read -p "请输入一个用户名:" name
read -p "请输入密码:" -s pass
useradd $name
echo "$pass" | passwd --stdin $name
##脚本测试
[root@liruilong ~]# source /root/shell/day01/user03.sh
请输入一个用户名:haha
请输入密码:更改用户 haha 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@liruilong ~]# vim /root/shell/day01/user03.sh
#!/bin/bash

不输入就会自动退出:如果后面不加秒数,则不会自动退出

##read 从键盘读取用户名密码,创建用户并设置密码,要求不显示输入密码
##-t 多少秒不输入就会自动退出:如果后面不加秒数,则不会自动退出
read -p "请输入一个用户名:" name
read -p "请输入密码:" -s -t 3 pass
useradd $name
echo "$pass" | passwd --stdin $name
##脚本测试
[root@liruilong ~]# source /root/shell/day01/user03.sh
请输入一个用户名:lisi
请输入密码:更改用户 lisi 的密码 。 #超过3秒退出
passwd: 鉴定令牌操作错误

4.3 全局变量 or 局部变量

变量的作用范围

变量的作用范围
局部变量新定义的变量默认只是在当前 Shell 环境中有效,无法在子 Shell 环境中使用
全局变量系统中的任何 Shell 环境中都有效
####开启两个终端,A和B来测试
#终端A上操作
[root@liruilong ~]# x=11 #定义局部变量
[root@liruilong ~]# sh #进入sh子进程
sh-4.2# echo $x #无此变量,输出为空
#终端B上操作
[root@liruilong ~]# pstree #查看进程树
......
├─sshd─┬─sshd───bash───sh
│ └─sshd───bash───pstree
......

使用 export 定义全局变量

#终端A上操作
[root@liruilong ~]# export x=12 #定义全局变量
[root@liruilong ~]# sh #开启sh子进程
sh-4.2# echo $x #新的解释器里变量也生效
12
sh-4.2# bash #开启bash子进程
[root@liruilong ~]# echo $x #新的解释器里变量也生效
12
[root@liruilong ~]# pstree #查看进程树
......
├─sshd─┬─sshd───bash───sh───bash
└─sshd───bash───pstree
......

五、Shell 中的运算

5.1 整数运算

基本运算法则

基本运算法则
四则运算
加法:num1 + num2
减法:num1 - num2
乘法:num1 * num2
整除:num1 / num2
取余数运算
求模:num1 % num2

$[] 算式替换

  • 使用 $[ ]$(( )) 表达式
    • 格式:$[整数1 运算符 整数2…]
    • 计算结果替换表达式本身,可结合 echo 命令输出
[root@liruilong ~]# echo $[1+2]
3
[root@liruilong ~]# echo $[2*3]
6
[root@liruilong ~]# x=15;y=3 #定义两个临时变量x,y
[root@liruilong ~]# echo $[x+y] #加法运算
18
[root@liruilong ~]# echo $[x-y] #减法运算
12
[root@liruilong ~]# echo $[x*y] #乘法运算
45
[root@liruilong ~]# echo $[x/3] #除法运算
5
[root@liruilong ~]# echo $[x%3] #取余运算(除尽)
0
[root@liruilong ~]# echo $[x%2] #取余运算(未除尽)
1
[root@liruilong ~]# x=15;y=3 #定义两个临时变量x,y
[root@liruilong ~]# echo $((x+y)) #加法运算
18
[root@liruilong ~]# echo $((x-y)) #减法运算
12
[root@liruilong ~]# echo $((x*y)) #乘法运算
45
[root@liruilong ~]# echo $((x/y)) #除法运算
5
[root@liruilong ~]# echo $((x%y)) #取余运算(除尽)
0
[root@liruilong ~]# echo $((x%y)) #取余运算(未除尽)
1
[root@liruilong ~]# x=2 #定义变量x=2
[root@liruilong ~]# echo $[x+=4] #输出x值,x=x+4
6
[root@liruilong ~]# echo $x #输出x值
6

变量的自增/减等操作

[root@liruilong ~]# echo $[x+=1] #输出x值,x=x+1
7
[root@liruilong ~]# echo $x #输出x值
7
[root@liruilong ~]# echo $[x*=3] #输出x值,x=x*3
21
[root@liruilong ~]# echo $x #输出x值
21
[root@liruilong ~]# echo $[x++] #输出x+1前的值
21
[root@liruilong ~]# echo $x #这是x+1后的值
22
[root@liruilong ~]# echo $[x--] #输出x-1前的值
22
[root@liruilong ~]# echo $x #输出x-1后的值
21

let 指定算术运算

####let 用于指定算术运算
[root@liruilong ~]# let i=2*3 #将算术运算 2*3 赋予变量 i
[root@liruilong ~]# echo $i
6
[root@liruilong ~]# let i=3*6 #将算术运算 3*6 赋予变量 i
[root@liruilong ~]# echo $i
18
[root@liruilong ~]# b=2 #定义变量
[root@liruilong ~]# let b+=2 #变量赋值,b=b+2
[root@liruilong ~]# echo $b
4
[root@liruilong ~]# let b*=3 #变量赋值,b=b*3
[root@liruilong ~]# echo $b
12
[root@liruilong ~]# x=2
[root@liruilong ~]# let x++;echo $x # ;用来区分两条命令
3
[root@liruilong ~]# let x++;echo $x # ;用来区分两条命令
4
[root@liruilong ~]# let x+=3;echo $x # ;用来区分两条命令
7

5.2 小数运算

bc计算器

Bash 内建机制仅支持整数运算,不支持小数运算

[root@liruilong ~]# echo $[12.2+23]
-bash: 12.2+23: 语法错误: 无效的算术运算符 (错误符号是 ".2+23"

我们可以通过计算器软件bc 实现小数运算

我们没有该软件则需要使用yum安装; bc支持交换式和非交换式两种计算scale=n可以约束小数位,quit退出交互式计算

[root@liruilong ~]# yum -y install bc #安装bc软件包
###使用bc进行交互运算
[root@liruilong ~]# bc
12+23 #加法运算
35
23.43*1.243 #乘法运算
29.123
23/2 #除法运算
11
23%3 #取余运算
2
quit #退出命令
[root@liruilong ~]# echo "1.2+3.3" | bc
4.5
[root@liruilong ~]# echo "1.2+3.3;3.8*2.7" | bc #同时进行多个运算
4.5
10.2
[root@liruilong ~]# echo "scale=2;10/2" |bc #scale=2 结果小数位保留两位
5.00
[root@liruilong ~]# echo "scale=2;17/2" |bc
8.50
[root@liruilong ~]# echo "scale=2;17.34/2" |bc #scale=2 结果小数位保留两位

小数的比较

  • bc 支持的比较操作符:>、>=、<、<=、==、!=
  • 表达式成立则返回1,否则返回0
[root@liruilong ~]# echo "1>2" | bc #比较错误,1小于2,结果为0
0
[root@liruilong ~]# echo "5>2" | bc #比较正确,5大于2,结果为1
1
[root@liruilong ~]# echo "2==2" | bc #比较正确,2等于2,结果为1
1
[root@liruilong ~]# echo "2!=2" | bc #比较错误,2等于2,结果为0
0
[root@liruilong ~]# echo "12.34 < 8.8" | bc #比较错误,12.34 大于 8.8,结果为0
0
[root@liruilong ~]# echo "12.34 != 8.8" | bc #比较正确,12.34不等于8.8
[root@liruilong ~]# echo "hello world" #echo 默认会换行
hello world
[root@liruilong ~]# echo -n "hello world" #-n 取消 echo 命令的默认换行
hello world
[root@liruilong ~]#

六、综合案例

6.1 监控脚本之显示硬件信息

echo回显

  • -n选项:不换行
  • -e选项:支持扩展属性

改变echo输出的文本颜色

  • echo -e “\\033[文字颜色m 文字 \\033[0m”
  • 文字颜色:30 ----------- 37

30:黑 34:蓝色
31:红 35:紫色
32:绿 36:深绿
33:黄 37:白色

[root@liruilong ~]# echo -e "\\033[32m天气预报\\033[0m" #0m还原文字颜色,让颜色只作用
于当前字体
hello #32绿色字

监控硬件信息

显示服务器硬件信息

###最小化安装需要安装查看IP的软件包
[root@liruilong ~]# which ifconfig
/usr/sbin/ifconfig
[root@liruilong ~]# rpm -qf /usr/sbin/ifconfig
net-tools-2.0-0.22.20131004git.el7.x86_64
[root@liruilong ~]# vim /root/shell/day01/info.sh
#!/bin/bash
##显示服务器硬件信息
echo -e "\\033[34m----------服务器硬件信息----------\\033[0m"
查看详情  

关于linux中监控方面的一些笔记(代码片段)

写在前面笔记是学习后整理的,适合温习,不适合新手。蹭着国庆长假整理了一份,希望对小伙伴有帮助.生活加油,天天开心!博文主要围绕以几个方面:监控的基本知识zabbix的安装部署教程,多节点监控... 查看详情

关于linux性能调优中网络i/o的一些笔记(代码片段)

写在前面和小伙伴分享一些Linux网络优化的笔记,内容很浅,可以用作入门博文内容结合《Linux性能优化》读书笔记整理涉及内容包括常用的优化工具(mii-tool,ethtool,ifconfig,ip,sar,iptraf,netstat)使用Demo及对应的输出解释具体的调优策... 查看详情

关于linux性能调优中网络i/o的一些笔记(代码片段)

写在前面和小伙伴分享一些Linux网络优化的笔记,内容很浅,可以用作入门博文内容结合《Linux性能优化》读书笔记整理涉及内容包括常用的优化工具(mii-tool,ethtool,ifconfig,ip,sar,iptraf,netstat)使用Demo及对应的输出解释具体的调优策... 查看详情

关于linux中网络连接配置(networkmanager)的一些笔记(代码片段)

写在前面嗯,准备RHCA,学习整理这部分知识NetworkManager其实是RHCAS的内容博文内容为常见的配置操作回顾:NetworkManager简述命令行的方式配置网络连接修改配置文件的方式配置网络连接谁有权限修改网络连接配置傍晚... 查看详情

关于linux中keepalived高可用热备自动化部署的一些笔记(代码片段)

写在前面今天和小伙伴们分享一些Keepalived相关笔记博文内容涉及:vrrp协议由来Ansible方式Keepalived安装部署Keepalived脚本方式配置服务检查Keepalived自动化部署Ansible角色编写食用方式:需要Linux、Ansible基础知识理解不足小伙... 查看详情

关于linux中keepalived高可用热备自动化部署的一些笔记(代码片段)

写在前面今天和小伙伴们分享一些Keepalived相关笔记博文内容涉及:vrrp协议由来Ansible方式Keepalived安装部署Keepalived脚本方式配置服务检查Keepalived自动化部署Ansible角色编写食用方式:需要Linux、Ansible基础知识理解不足小伙... 查看详情

linux服务器安装git等知识的一些笔记(代码片段)

写在前面嗯,Git一般都用平台上的,自己用Githup,Gitee,公司用的Gitlab,服务端的没搞过,基本用的都是客户端。之前实习分了一个项目做组长,所以自己在阿里云上面搭了SVN的服务端,折腾了大半夜... 查看详情

linux服务器安装git等知识的一些笔记(代码片段)

写在前面嗯,Git一般都用平台上的,自己用Githup,Gitee,公司用的Gitlab,服务端的没搞过,基本用的都是客户端。之前实习分了一个项目做组长,所以自己在阿里云上面搭了SVN的服务端,折腾了大半夜... 查看详情

关于linux中安全方面的一些笔记(代码片段)

写在前面笔记是学习整理的,大都老师讲课内容,适合温习,不适合新手。整理了一份,希望对小伙伴有帮助.生活加油,天天开心!博文主要围绕以几个方面:Linux基本防护:账户安全、文件系统安全、... 查看详情

关于linux运维中监控方面的一些笔记(代码片段)

写在前面笔记是报班学习后整理的,适合温习,不适合新手。蹭着国庆长假整理了一份,希望对小伙伴有帮助.生活加油,天天开心!博文主要围绕以几个方面:监控的基本知识zabbix的安装部署教程,多节点... 查看详情

关于linux中使用use(使用率/饱和度/错误)方法分析系统性能的一些笔记(代码片段)

写在前面今天和小伙伴们分享通过USE方法对系统进行性能分析和性能调整博文内容涉及:什么是USE方法,以及USE的使用建议具体的USE指标采集分析食用方式:需要Linux基础知识理解不足小伙伴帮忙指正傍晚时分,你坐在... 查看详情

关于linux中批量配置ssh免密的一些笔记(代码片段)

写在前面今天和小伙伴们分享批量配置SSH免密的一些笔记传统的运维场景可以通过Ansible等运维工具处理在安装使用一些运维工具,比如Ansible,或则一些pass组件,需要配置ssh免密,sudo免密的操作今天和小伙伴分享... 查看详情

关于linux中批量配置ssh免密的一些笔记(代码片段)

写在前面今天和小伙伴们分享批量配置SSH免密的一些笔记传统的运维场景可以通过Ansible等运维工具处理在安装使用一些运维工具,比如Ansible,或则一些pass组件,需要配置ssh免密,sudo免密的操作今天和小伙伴分享... 查看详情

关于linux中批量配置ssh免密的一些笔记(代码片段)

写在前面今天和小伙伴们分享批量配置SSH免密的一些笔记传统的运维场景可以通过Ansible等运维工具处理在安装使用一些运维工具,比如Ansible,或则一些pass组件,需要配置ssh免密,sudo免密的操作今天和小伙伴分享... 查看详情

关于linux中作业调度crond和systemd.timer使用场景的一些笔记(代码片段)

...我们承受所有的不幸,皆因我们无法独处------叔本华关于systemd.timer的一些介绍crond这里不多介绍,小伙伴们应该都接触过。所以直接来 查看详情

关于linux性能调优中磁盘io调优的一些笔记(代码片段)

写在前面和小伙伴分享一些Linux磁盘IO优化的笔记,内容很浅,可以用作入门博文内容结合《Linux性能优化》读书笔记整理涉及内容包括使用vmstat统计系统内磁盘分区I/O属性的性能使用iostat分析磁盘分区的饱和度,利用率... 查看详情

关于linux中控制群组cgroup(资源管理)的一些笔记(代码片段)

写在前面学习遇到容器资源限制的处理问题,所以研究下。博文内容涉及:容器中cgroup的应用控制群组部分属节译,介意小伙伴请看原文。原文链接:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html-single/reso... 查看详情