目录
2.2、如何消除操作系统的缓存(buffer和cache),告诉linux系统内核去清除缓存
3、如何生成一个一亿行的文件?(用vim对bigfile.py进行编程)
5、用cat -n +大文件 查看大文件,是否真的很消耗cpu和内存?
17.4、> 覆盖输出到文本,> +文件 可以清空文件的内容
内容总览(图片)
=======================================================================
推荐的书籍
GOOGLE SRE运维解密
kubernetes权威指南 第5版
==================================================================
1、cat
图片解释:concatenate 连结,拼接 standard output 标准输出:linux里的标准输出是输出到屏幕,另standard input 标准输入:linux里的标准输入是从键盘输入
1.1、cat -n
cat -n +文件可以用来给行标记编号(空行也给编号)
[root@fttsaxf script]# cat -n if.sh
1 read -p "请输入你的名字:" name
2 while :
3 do
4 if [[ $name == "root" ]]
5 then
6 echo "welcome to login"
7 #break # 这个是退出当前循环
8 exit # 这个是退出整个程序
9 else
10 echo "请输入正确的用户名"
11 fi
12 done
13
14 echo "欢迎使用"
1.2、cat -n和nl的区别
nl 也可以用来给行标记编号,但是空行不给编号
[root@fttsaxf script]# nl if.sh
1 read -p "请输入你的名字:" name
2 while :
3 do
4 if [[ $name == "root" ]]
5 then
6 echo "welcome to login"
7 #break # 这个是退出当前循环
8 exit # 这个是退出整个程序
9 else
10 echo "请输入正确的用户名"
11 fi
12 done
13 echo "欢迎使用"
2、top
可以查看cpu和内存使用情况
图片解释:·
2.1、buffer和cache的知识
2.2、如何消除操作系统的缓存(buffer和cache),告诉linux系统内核去清除缓存
[root@fztsaxf lianxi]# echo 3 >/proc/sys/vm/drop_caches
2.3、 free -m
用free可以显示内存,用 -m 可以转化为兆(MB)
3、如何生成一个一亿行的文件?(用vim对bigfile.py进行编程)
3.1、生成大文件2.0版本
4、du -sh +文件
会显示文件内存
5、用cat -n +大文件 查看大文件,是否真的很消耗cpu和内存?
答:不是特别消耗cpu,但是会在慢慢消耗缓存空间,对内存还是有消耗的。时间长了还是会消耗很多内存的。
5.1、用vim +大文件,查看大文件呢?
答:测试发现,vim是真的一次性消耗非常多的内存,将磁盘里文件读取到内存里,特别消耗内存,文件有多大,就消耗多少内存。
5.2、time python3 bigfile.py
可以统计Python3 bigfile.py程序运行花了多少时间
生成一个大文件的时候,是非常消耗cpu和内存的。
6、关于ip的问题
6.1、ip add 可以查看ip地址
图片解释:
ens33 -->linux里的网络接口的名字 -->相当于windows里的本地连接
inet 192.168.29.128/24 --》 inet internet 互联网 192.168.29.128是我们的ip地址 /24表示子网掩码是255.255.255.0
6.2、什么是ip地址
IP地址是网络通信使用的而地址,类似手机里的电话号码,每台电脑必须有ip地址。ip(internet protocol)
WLAN -->wireless local area network,无线网卡的连接
6.4、chu
7、cat /etc/centos-release
可以查看当前linux的版本
7.1、重启网络服务
service network restart
7.2、禁用和启用网卡ens33
ifdown ens33 --》禁用网卡ens33接口;ifup ens33 --》启用网卡ens33接口,去获得IP地址
7.3、NAT模式
图片解释:
NAT模式:是你的虚拟机通过你的真实机器上网的,只要你的真实的机器可以上网,它就可以上网
8、ip route
查看路由表(网关) 网关:网络的关卡,上网的时候路由器的接口的ip地址
[root@fttsaxf script]# ip route
default via 192.***.**.2 dev ens33 proto static metric 100
192.***.**.0/24 dev ens33 proto kernel scope link src 192.***.**.128 metric 100
9、手工配置静态IP地址
9.1、进入网卡配置目录
[root@sc-chenlu ~]# cd /etc/sysconfig/network-scripts/
9.2、编辑ifcfg-ens33网卡的配置文件
[root@sc-chenlu network-scripts]# vim ifcfg-ens33
BOOTPROTO=none #设置网卡静态配置ip地址 none 静态配置(手工指定ip) dhcp 表示虚拟机动态获得ip地址
NAME=ens33 #网卡的设备名为ens33
DEVICE=ens33 #网卡的设备名为ens33
ONBOOT=yes #开机自动启用网卡--》自动激活网卡
IPADDR=192.168.*.*** #ip地址
PREFIX=24 #子网掩码
#NETMASK=255.255.255.0 #子网掩码
GATEWAY=192.168.0.1 #网关
DNS1=114.114.114.114 #指定首选DNS服务器
9.3、刷新网络服务
更改ip地址之后进行下列这些命令
---》centos7:
方法一: service network restart
方法二: ifdown ens33;ifup ens33
---》centos8:
方法一:使用ifup ens33;ifdown ens33
方法二:nmcli c down ens33;nmcli c up ens33
9.4、再次查看ip地址和网关
ip add 查看ip地址
ip route 查看路由器表,可以看到默认网关是多少
9.5、查看dns服务器 的地址
[root@sc-chenlu network-scripts]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 114.114.114.114
"""
ifcfg-ens33 文件里的DNS1=114.114.114.114 会修改/etc/resolv.conf文件里的nameserver的配置
ifcfg-ens33 文件决定了/etc/resolv.conf文件里的ip地址
resolve 解析--》dns域名解析
"""
9.6、测试ping百度,能否上网
ping www.baidu.com
按ctrl+c 强行终止
# 成功的样子如下图
[root@fttsaxf script]# ping www.baidu.com
PING www.a.shifen.com (14.215.177.39) 56(84) bytes of data.
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=1 ttl=128 time=27.4 ms
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=2 ttl=128 time=28.9 ms
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=3 ttl=128 time=27.4 ms
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=4 ttl=128 time=27.1 ms
^C
10、当vim编辑时,不能使用小键盘的解决方法
11、head +文件
默认显现出文本的前十行
11.1、head -n +文件(n为一个数字)
显现出文本的前n行
12、tail
默认显现出文本的后十行(加 -n 作用和head一样)
13、less + 文件
回车:一行一行的显示
空格:一页一页的显示--》下一页
b :上一页
q :退出
less显示完最后的内容后,不会自动退出
14、more + 文件
回车 : 一行一行的显示
空格: 一页一页的显示 --》下一页
b : 上一页 back
q: 退出
more显示完最后的内容后,会自动退出
15、ps aux
显示当前linux系统里的进程的信息(ps 是命令,aux是选项)
16、如何产生10以内的随机数?
varname=$(( 运算公式 )) 将运算公式的结果赋值给varname变量
10-1=9
抽奖
图片解释:name.txt 是一个有10个名字的文件
17、<<<、<< 、<、>、>>的作用
17.1、<<<部分匹配某个字符串
17.2、<< 标准输入重定向
17.3、< 将后面文件作为前面命令的输入
17.4、> 覆盖输出到文本,> +文件 可以清空文件的内容
[root@fttsaxf rough_book]# cat new
[root@fttsaxf rough_book]# echo 1234 >new
[root@fttsaxf rough_book]# cat new
1234
[root@fttsaxf rough_book]# echo 5678 >new
[root@fttsaxf rough_book]# cat new
5678
[root@fttsaxf rough_book]# >new
[root@fttsaxf rough_book]# cat new
关于清空文件内容的还有这个,>/dev/null, 把文件丢到这个里边,文件就清空。
17.5、>>追加到文本(就是在>基础上不覆盖)
[root@fttsaxf rough_book]# cat new
1234
[root@fttsaxf rough_book]# echo 567 >>new
[root@fttsaxf rough_book]# cat new
1234
567
18、命令替换
19、1>、1>>、2>、2>>和$?
19.1、1>、1>>、2>、2>>
19.2、echo $?
查看上一条命令的返回值
19.2.1、关于echo $?的一些特殊情况
如果执行的代码中定义的返回值为n,则echo $?得到的值就是为n
但是我们必须遵循编写代码的规则,所以这种不正常改变返回值的方法是不好的。
20、if的使用
21、判断文件是否存在且是否为文件
[ -f + 文件 ] 。-f,表示文件;注意:[]与中间的内容之间,两边都有有空格。
test -d或者-f + 文件
[root@fttsaxf script]# ll
-rw-r--r--. 1 root root 189 2月 7 14:57 casev2.sh
drwxr-xr-x. 2 root root 108 2月 6 11:36 create_dir
[root@fttsaxf script]# [ -f casev2.sh ]
[root@fttsaxf script]# echo $?
0
[root@fttsaxf script]# [ -f create_dir/ ]
[root@fttsaxf script]# echo $?
1
[root@fttsaxf script]# test -f casev2.sh
[root@fttsaxf script]# echo $?
0
21.1、判断文件夹是否存在且是否为目录文件
[ -d + 文件 ] 。-d,表示文件
[root@fttsaxf script]# ll
-rw-r--r--. 1 root root 189 2月 7 14:57 casev2.sh
drwxr-xr-x. 2 root root 108 2月 6 11:36 create_dir
[root@fttsaxf script]# [ -d casev2.sh ]
[root@fttsaxf script]# echo $?
1
[root@fttsaxf script]# [ -d create_dir/ ]
[root@fttsaxf script]# echo $?
0
[root@fttsaxf script]# test -d create_dir
[root@fttsaxf script]# echo $?
0
21.2、判断文件是否为空
21.3、判断文件或者文件夹是否存在
[-e +文件或者文件夹名字]
22、vim编辑器中的各种命令
22.1、vim命令中查看行号
:set number 显示行号
23、\ 转义字符
23、$$ 表示当前终端的进程号
24、|| 和&&
25、sed
是文本替换和删除的命令,可以直接在文件里删除和替换文本
-i 直接在原文件里进行操作 d是sed里的命令,执行删除
25.1、sed -i "n d" 文件
就是删除文件中的第n行
[root@fttsaxf rough_book]# cat new
1234
567
[root@fttsaxf rough_book]# sed -i "1 d" new
[root@fttsaxf rough_book]# cat new
567
25.2、sed -i "/^name$/ d" + 文件
就是删除文件中叫做name这个字符串,没有^...$,就是把含有name的都删掉
[root@fttsaxf rough_book]# sed -i "/^李$/ d" new
[root@fttsaxf rough_book]# cat new
范二
李一
angle
黄三
[root@fttsaxf rough_book]# sed -i "/^李一$/ d" new
[root@fttsaxf rough_book]# cat new
范二
angle
黄三