麒麟和ubt安装插件
麒麟:yum install -y 目标
ubt:apt install -y 目标
linux的操作系统
Kylin v10sp3
Ubuntu 22.04.4
centos 7.6
centos 7.9
常用符号定义
~ 表示家目录(root)
. 表示当前目录
.. 表示上一级目录
- 表示上一次所在位置 su 切换用户,不更新环境变量;su - 切换用户,更新环境变量
{} 生成序列,或表示一个序列,属于通配符,之一
| 管道,实现2个及以上命令同时执行,命令的拼接
* 任意字符,可以替代任意字符,包括数字,字母,符号等
# 注释或者命令提示符中的用户提示符 表示管理员 ~表示普通用户
$ 获取变量内容 echo $PATH awk取列 普通用户命令提示符
! 强制执行 wq! q
; 命令的分隔符,不管前面的命令是否执行成功,都继续向后执行
&& 前面的命令必须执行成功,才会往后执行
|| 前面的命令必须执行失败,才会往后执行
> 标准输出正确重定向 1> 先清空后追加
2> 标准错误输出重定向
>> 标准正确输出追加重定向 1>>
2>> 标准错误输出追加重定向
`` 执行命令,优先级,优先执行``命令,把命令显示的东西留下,在执行其他命令
$() 执行命令,优先级,优先执行()命令,把命令显示的东西留下,在执行其他命令
"" 双引号和不加引号可以解析变量内容
'' 所见即所得,不能解析变量
[] 查找序列
? 表示任意单个字符
< 将文件内容作为输入重定向
`` 优先执行
正则表达式特殊符号含义
^ # 以什么开头
$ # 以什么结尾
^$ # 空行
. # 任意单个字符
* # 前一个字符出现0次及0次以上
.* # 文件中所有内容
[] # 表示任意单个字符串,还原带含义的特殊符号 .^$ 之类,支持序列
\ # 撬棍 转移字符 脱掉马甲打回原形
[^a] # 表示对a取反
+ # 表示前面的字符出现一次或一次以上
{} # 出现至少n次最多m次
| # 或者
() # 当做一个整体
其他常用词汇及命令
reboot #直接重启
poweroff #直接关机
init0 #直接关机
init6 #直接重启
hostnamectl #查看主机信息
hostnamectl set-hostname 修改后主机名字 #修改主机名 临时+永久
hostname #查看主机名,不显示其他内容
ip a或ifconfig或ip add #查看IP
uname -a #查看所有信息包括内核姓名之类,有关内核的
uname -r #只查看内核信息
df -h #查看磁盘信息
sed -n ’xp‘ 文件 #只显示文件的第x行,x为任意数字
chmod 444 文件 #设置文件为只读模式
telent 网站(www) x #检查网站x端口是否开启,不适用于麒麟,可用于ubt
du -sh 文件或目录 #查看文件或目录所占大小
ln -s 被创建软链接目录 创建到 #创建软链接到
stat 文件 #查看文件对应时间,以及文件权限的详细信息
which 命令 #可查找命令所在位置,仅限没有删除命令,即清空PATH的时候
/bin/find / -type f -name 命令 #查找命令所在位置,在清空PATH的时候使用,-type f是文件,-type d是目录,默认命令是文件
passwd 用户名 #给用户设置密码
su - 用户名 #切换到用户名下,环境变量会跟着更新
su 用户名 # 切换到用户名下,一些环境变量没有更新
whoami #查看当前用户是谁
id #查看用户uid,gid,查看用户是否存在,用户属于那些组
w #查看谁登录了,在干什么,以及负载信息等
last #查看用户登录情况
lastlog #查看所有用户登录情况
wegt 文件 目标 #下载文件到目标
alias 别名='命令或脚本' #给命令起别名,只有同时修改/etc/profile才可以永久使用,不然都是临时的
route -n #查看网关,查看路由条目信息
echo ‘新的密码’ | passwd --stdin 用户名 #passwd红帽系列,非交互改密码
cat 文件名| chpasswd或 echo '密码' | chpasswd #Debian和ubt非交互改密码
usermod #对已有的用户修改信息,参数与useradd几乎差不多
md5sum -- check 文件名 #校验该文件是否发生了变化,-c相当于--check
ss -lntup #检查系统正在使用的端口号
sl #跑小火车
cowsay “想表达的” #小牛说话
animalasy “想表达的” #麒麟的动物世界说话
df -i #查看系统中所有inode的使用情况
date -s 时间 #修改系统时间为想要的时间
ntpdate ntp1.aliyun.com #同步阿里云时间,ntp1可以换成ntp2,ntp3等
date #查看系统当前时间
clock #查看硬件时间
date +%F-%H-%M-%S #格式化查看时间
echo $LANG # 查看当前默认使用的语言字符集
clock -w #将系统时间同步给硬件时间
top -bnk # top表示时时进程 b表示以批次的方式执行,n表示需要进行几次
free -h # 查看内存使用清况,h表示以人类可读的方式
free -m #查看内存使用清况 ,m表示以mb业单位显示
文件名-`date +%F` #修改文件名为 文件名-日期 F是年月日 A是周几
crontab -e # 编辑用户定时任务配置文件
crontab -l # 查看用户定时任务
systemctl stop postfix # 关闭邮件服务
fdisk -l # 查看磁盘清况
mount /dev/磁盘 /data # 将磁盘挂载到data目录
umount /data # 卸载磁盘
blkid # 查看UUID
mkfs.xfs -f /dev/磁盘 #直接格式化磁盘 -f表示强制执行
timedatectl # 查看时区
timedatectl set-timezone 时区 # 调整时区
ifdown ens33 # 关闭网卡 kylin
ifup ens33 # 重启网卡 kylin
kill 进程 # 杀死进程
kill -9 进程 # 强制杀死进程
!命令 # 执行上一次(最后一次)执行该命令
partprobe # 通知系统磁盘的分区信息变化 更新内核的硬盘分区表信息
dd if=/dev/zero of=路径 bs=1M count=想要的大小 # 指定创建多大的文件
mkswap 路径 # 格式化成swap类型
swapon 路径 # 挂载使用swap
swapon -s # 查看swap分区组成
lsof # 查看进程
ip add # 查看网卡是否正常
runlevel # 查看当前运行级别
lscpu # 查看CPU信息
uptime # 查看系统负载信息
hostname 主机名 # 临时修改主机名,需重连xshell
ps -auxf # 查看当前进程状态 静态
top # 查看当前进程状态 动态
jobs # 查看后台运行程度
screen -S 名称 # 进入该名称的bash中
screen -list # 查看正在运行的screen任务
screen -r 名称 # 进入到正在执行screen任务中
百度 输入ip回车 # 可以查看当前所在公网ip地址 Windows
输入ip138.com # 可以查看当前所在公网ip地址 Windows
curl cip.cc # 查看当前所在公网ip地址 linux
netstat -rn # 查看网关以及路由条目信息
ping # 测试连通性
nslookup # 查看使用那个DNS解析
dig 网站 +trace # 查看访问该网站的DNS解析流程
echo “* - nofile 65535” >> /etc/security/limits.conf # 加大文件描述符,即进程的最大打开文件数
source 文件 # 运行文件
netstat -tnulp # 查看所开放端口号
mount -t # 指定挂载参数
showmount -e ip # 查看该ip所共享的目录
umount -f # 强制卸载
sh xx.sh # 运行xx.sh,xx.sh是脚本
ssh-keygen # 生成秘钥对
ssh-copy-id ip地址 # 将秘钥对的公钥拷贝到ip地址上
nginx -v # 查看nginx版本号
nginx -t # 检查nginx的配置文件是否有问题
splist -b # 按照大小切割
splist -l # 按照行切割
systemctl mask tmp.mount # 永久卸载tmp挂载
yum localinstall *.rpm # 批量安装rpm包
Linux常用文件路径
主机名:/etc/hostname 或hostnamectl #存储主机名称
系统版本信息:/etc/os-release 或uname -a或uname #存储系统版本信息 centos是: /etc/redhat-release
网卡地址(网卡配置文件):/etc/sysconfig/network-scripts/ifcfg-ens33 #存储,eg:IP地址等信息
登录和退出日志:/var/log/secure(麒麟,红帽系统)
/var/log/auth.log(Debian,ubt) #存储用户登录情况
服务日志(系统日志):/var/log/messages(麒麟,红帽系统)
/var/log/syslog(Debian,ubt)
配置环境变量,别名:/etc/profile
开机自启动:/etc/rc.local
不小心删了,恢复环境变量:[root@oldboyedu ~]# export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin #export是用来修改环境变量的
将环境变量存放到指定位置:[root@oldboyedu ~]# export PATH=指定路径:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin
#指定路径可以放到前面,也可以放到后面,记得加:
CPU信息:/proc/cpuinfo或lscpu
内存信息:/proc/meminfo或free -h
系统负载信息:/proc/loadavg
系统磁盘挂载信息:/proc/mounts
用户信息:/etc/passwd
密码信息:/etc/shadow
查看DNS服务器:/etc/resolv.conf
ip与域名的关系,给ip以及命令起别名(本地DNS解析):/etc/hosts
开机后显示欢迎信息:/etc/motd
开机前显示欢迎信息(只能在VMware上看到):/etc/issue
用户组信息:/etc/group
用户组密码信息:/etc/gshadow
远程连接端口配置:/etc/ssh/sshd_config
存放软件仓库的配置:/etc/yum.repos.d/ 麒麟
/etc/apt/sources.list Ubuntu
Ubuntu查看默认下载链接地址:apt-cache policy
存放字符集配置:/etc/locale.conf
系统定时任务配置文件:/etc/crontab
定时任务日志:/var/log/cron centos和kylin
/var/log/syslog ubuntu
用户定时任务配置文件:/var/spool/cron/root
邮件存放位置:/var/spool/postfix/maildrop
开机自启动挂载信息:/etc/fstab
开机设置默认运行级别配置文件:/etc/inittab
用户权限信息:/etc/sudoers
nfs配置文件:/etc/exports
查看nfs服务启动参数:/var/lib/nfs/etab
无法远程连接排查思路
1、检查ip地址是否正确
2、检查Windows的vmnet8网卡配置是否是10.0.0段
3、检查虚拟交换机的网段配置
1、优先ping自己ip地址,看是否通
2、检查虚拟交换机的网段配置,即子网ip,子网掩码
3、查看Windows是否有vmnet8,打开此电脑,在此电脑搜索网络连接,查看vmnet8的ipv4的地址和子网掩码
这些都没问题,还是连接不上,下载cc清理工具(ccleane),先卸载VMware,然后使用cc清理,然后重启系统,重装VMware,还不行,只能重装电脑windows系统了
xshell远程连接排错:(企业应用)
Connecting to 10.0.0.101:22...
Could not connect to '10.0.0.101' (port 22): Connection failed.
PS:以上提示信息,表示xshell远程工具远程连接失败
步骤一: 测试网络端口连通性
在windows主机上,利用xshell工具进行测试:
ping 10.0.0.100
-- 如果连通测试有问题:(网络工程师)
01 需要确认地址是否正确
02 确认服务器地址是否修改
03 确认网络设备配置是否正确
步骤二:测试网络端口连通性
在windows主机上,利用xshell工具进行测试:
telnet 10.0.0.100 22
-- 如果连通测试有问题:(网络工程师 系统管理员)
01 确认网络设备配置是否正确 网络工程师
02 确认远程服务端口号信息 系统管理员
03 确认系统中防火墙设置 系统管理员
步骤三:确认远程服务是否开启 (系统管理员)
需要开启远程服务 (kali系统默认会关闭远程)
systemctl start sshd -- 开启远程服务
systemctl enable sshd -- 自动开启服务(随着系统启动)
systemctl status sshd -- 查看服务状态
/etc/init.d/sshd start -- 开启远程服务
/etc/init.d/sshd status -- 查看服务状态
ss -lntup -- 查看远程服务端口是否存在(默认查看22端口信息是否有)
无法连接外网排查思路
1、检查ip地址
2、检查网关
3、Windows可以上网
4、检查Windows的NAT服务是否开启
5、检查dns配置
使用route -n 可以看网关信息
检查VMware编辑下的nat设置 检查网关的配置段
检查Windows的nat服务是否在运行 此电脑-右键-管理-服务
检查dns配置 运行cat /etc/resolv.conf
排场dns故障:先ping baidu.com ,在ping 公网域名,前通后不通,表示dns有问题
man
作用:查看帮助手册
语法结构: man Linux命令
eg:[root@oldboyedu ~]# man touch
![]()
help
作用:查看Linux命令帮助信息
语法结构:Linux命令 --help
eg:touch --help #查看touch命令的用法
shutdown
作用:关机
语法结构:shutdown 回车 #默认一分钟后关机
shutdown 参数
参数:shutdown -c #取消关机
shutdown -h now #立刻关机 halt关机
shutdown -h 5 #5分钟后关机 -h 后面的数字可以按需求进行更改
shutdown -r #1分钟后重启系统
shutdown -r 10 #10分钟后重启系统 -r 后面的数字可以按需求进行更改 reboot 重启
pwd
作用:查看当前所在的路径 print working directory
语法结构:pwd #直接回车 查看当前所在路径
cd
作用:切换目录 change directory
语法结构:cd #直接回车 快速回家
cd [参数选项] #可选择项 不同参数表示不同功能
cd 目录/路径的目录 #进入到指定目录
cd .. #返回上一级目录
cd ../.. #返回上两级目录(使用/分割指令,该命令为【返回上一个目录/返回上一个目录】(返回上两级目录))
cd - #返回上一次所在位置(刚连接和重启用了没效果)
cd ~ #快速回家
(目录后加不加根都可,进的去的是目录,进不去的是文件,写了目录名,按tab键,会自动补齐根)
按tab键会自动补齐没有写全的单词,只有一个直接出,好几个开头一样,按两次tab键,会把该目录下所有以该开头一致的列举出来
. #表示当前目录(暂时没什么用,拷贝的时候会用到)
.. #表示上一级目录
ls
作用:查看文件信息(显示文件) 查看目录内容
语法结构:ls #直接回车 查看当前目录下的所有文件
ls 目录/路径目录 #查看目录/路径目录下的文件
ls 参数
ls 参数 目录/路径目录 #查看指定路径下的文件信息
ls 文件 #查看文件是否存在
ls -l=====ll #查看文件详细信息
参数选项:-l #显示文件的详细信息 long
-a #显示所有的文件及目录,包括隐藏的
-h #常与-l和-s一起使用,表示以易于阅读的格式输出文件大小,即按文件大小输出
-t #按时间进行排序
-r #逆序排序
-i #显示每个文件的inode号,类似身份证号
-d #只显示目录本身的信息,常与ll搭配使用,不显示目录里的内容,查看该目录是否存在
touch
作用:创建普通文件 如果文件存在则修改时间不影响文件内容
语法结构:touch 文件名称 #在当前目录下,直接创建该文件,文件存在,更新时间,不影响内容
touch /目录/文件名称 #在指定目录下创建文件,目录必须存在,不然创建不成功
touch 文件1 文件2 #同一目录下,创建多个文件
touch 文件1 /目录/文件2 #在不同目录下创建不同的文件,当前目录下创建文件1,目录下,创建文件2
touch 目录/{文件1,文件2} #在所选目录下同时创建文件1和文件2
touch 文件{01..10} #在当前目录下创建文件01,文件02,。。。,文件10
注释:文件前若无指定位置则默认在当前目录下创建,使用绝对路径时若路径不存在会创建失败。
cat
作用:查看文件内容
语法结构:cat 文件 #查看该文件内容
cat /目录/文件 #查看指定目录下文件的内容
cat 文件1 文件2 #查看多个文件内容
cat 文件1 文件2 > 文件3 #将文件1与文件2合并为文件3(内容做加法,若无文件3,则自动创建)
参数选项:-n #显示文件行数
-A #在文件末尾显示$,可以得知文件是以什么结尾的
cat向文件中写内容
标准写法:cat >> 文件 << EOF #退出输入EOF
其他写法:cat >> 文件 << a #退出输a,要首尾呼应
mkdir
作用:创建目录 make directory 如果目录存在提示目录已存在
语法结构:mkdir 目录名称 #在当前目录下创建目录
mkdir 目录名1 目录名2 #创建多个目录
mkdir 路径/目录名a 路径/目录名b #在不同路径下同时创建其他目录
mkdir 目录/{目录1,目录2} #在所选目录下创建目录1和目录2
mkdir 目录{01..10} #在当前目录下创建目录01,目录02,。。。,目录10
参数选项:-p #递归创建目录 目录存在不提示
tree
作用:树形结构显示目录和文件
语法结构:tree 目录 #查看当前目录下所有文件和目录
参数选项:-L n #显示n级目录下所有文件 n表示任意数字
-d # 只显示目录
-f # 只显示文件
echo
作用:输出指定内容到屏幕
语法结构:echo 内容 #输出内容到屏幕
一般与> >>搭配使用
> #重定向符号(标椎输出重定向),先清空文件内容,然后在写入内容
>> #追加重定向符号(标椎输出追加重定向),把内容追加到文件末尾(类似复制内容到文件)
语法结构:echo 内容 >/目录/文件 #使用重定向把内容写入文件,若文件有内容,会清空原有内容,写入指定内容
echo 内容 >>/目录/文件 #把内容复制到文件,只增加内容,不影响原有内容
#因为echo是输出内容到屏幕,因此echo和>和|,不可同时使用,不然没效果
参数选项:-e # 激活特殊符号
{} # 生成序列
{}
作用:生成序列(内容可以是数字,也可以是字母)
一般和touch以及mkdir搭配使用,实现批量创建
语法结构:命令 {数字..数字}
命令 内容{数字..数字}
命令 内容{数字..数字}内容
echo{}批量看效果 touch{}批量创建文件 mkdir{}批量创建目录
cp
作用:复制 至少含有两个参数,即cp 源(从哪里来) 目标(到哪去)
结构用法:cp 需要复制的内容(可以是文件,也可以是目录) 复制到的地方
参数:-r 递归复制 (eg:复制文件夹)用于复制目录以及目录中的文件
-p 保持属性不变(保持属性不变,只修改时间)
-d 与软连接相关
-a 等同于-pdr(分不清各个属性含义,一律用-a)
-t 反向拷贝
mv
作用:move 移动,相当于Windows系统中的剪切和粘贴功能,也可以给文件或目录重命名
语法结构:mv 被移动文件或目录 移动目的地 #将被移动文件移动到移动目的地
mv 文件或目录 文件或目录新名字 #通过文件原地移动的方式实现重命名(需要保证移动路径一致)
\mv # 取消默认的-i,不提示是否覆盖
rm
作用:remove 删除文件或目录
语法结构:rm 文件/目录 #删除当前目录下的文件或目录
rm /路径/目录或文件 #指定删除的目录或文件
参数:-r 递归删除 删除目录,挨个提示是否删除
-f 强制删除 不提示是否确定删除
-rf 删除目录 直接删除目录,不挨个提示是否删除该文件
替代rm方案,使用mv或书写脚本(回收站脚本)后面未来shell部分解决
因为liunx没有回收站,删除即永远删除,因此使用需慎重
使用mv替代该功能,防止误删
vi/vim
作用:编辑文件或查看文件
在整体上,vi和vim基本用法一致
vi Linux会默认安装 vim,可能没有该功能
vi是基础版本编辑器 vim是进阶imporve提升
语法结构:vim 文件或目录 #将文件内容,准备编辑
参数选项:-r # 恢复修改后内容
+n # 进入文件光标停留在第n行
编辑文件全流程
1.复制网卡配置文件到当前目录
[root@oldboyedu ~]# cp /etc/sysconfig/network-scripts/ifcfg-ens33 .
2.vim打开文件
[root@oldboyedu ~]# vim ifcfg-ens33
3.进入编辑模式
按i进入编辑模式(insert插入,及编辑模式)
4.退出编辑模式
按esc退出编辑模式
5.保存并退出
:wq #write保存 quit 退出
:q #退出不保存
:q! #强制退出不保存
6.查看文件内容
[root@oldboyedu ~]# cat ifcfg-ens33
vi/vim快捷键
作用:加速操作
测试快捷键环境:[root@oldboyedu ~]# cat /etc/services /etc/sysconfig/network-scripts/ifcfg-ens33 > vim.txt
(>之前的必须写对,不然会报错,>后的文件没有的话,会自动创建)
在不进入编辑模式的情况下:
快速达到文件最后一行:G shift+g
快速达到文件的第一行:gg
快速到达文件的某一行:eg:第3行 3gg或3G或:3
搜索:/ eg:搜索ssh /ssh 搜索包含ssh的行 继续查找该词n(向下),N(向上)
复制:yy
粘贴:p
删除(剪切):dd
撤销:u
显示行号: :set nu :set nonu #number行号
下一页:ctrl+f
上一页:ctrl+b
光标快速到行首:shift+^ fn+home 0
光标快速到行尾:shift+$ fn+end
跳转至所在行尾部:$
跳转至所在行首部:^
删除当前光标下所有行:dG
删除当前光标及光标以后的内容: D
删除当前光标依次往后的内容: x
删除当前光标依次往前的内容:X
另存为:w
按原格式粘贴::set paste
删除并进入编辑模式:C
删除当前一个单词:dw
在上一行插入:O
在下一行插入:o
退出编辑模式:
:wq #保存并退出
:q #不保存退出
:q! #不保存强制推出
vim批量注释
ctrl + v 进入可视块模式
然后上下键选择
然后按大写I 进入编辑模式
然后输入内容
完成后按两次ESC键即可
vim中的替换
:s/root/oldboy/g #只替换光标所在行的所有root
:%s/root/oldboy/g #将文件中所有的root替换成oldboy
tail
作用:查看文件结尾的数据,默认查看文件末尾10行
语法结构:tail 文件/目录 # 查看该文件或目录末尾
参数:-数字/-n数字 # 查看文件末尾指定行数,n可以省略
-f # 查看文件末尾实时更新(通过新开窗口,追加内容实现)
-F # 监听文件显示最新的内容
head
作用:查看文件开头的内容,默认10行
语法结构:head 目录/文件 #查看该文件或目录开头
参数:-n # 指定查看文件开头第n行
-c # 显示开头几个字母
less,more
两者都按页查看文件内容
less
用法:less 文件 #按页查看该文件内容
快捷键:下一页:空格或Ctrl+f
上一页:Ctrl+b 或b
第一行:g
最后一行:G
快速到某一行:ng
搜素:/ n查找下一个 N查找上一个
退出:q
显示行号:-N
#Ctrl+f和Ctrl+b也适用于vim
more快捷键没那么多,到文件末尾会自动退出,用法和less差不多
grep
作用:过滤参数,即只出现含有想要的词的内容,过滤字符串
用法:grep ‘目标’ 目录/文件 #在目录或文件中过滤含有目标的内容
grep ‘^m’ 文件 #过滤以m开头的行
grep ‘$m’ 文件 #过滤以m结尾的行
grep ‘^$’ 文件 #过滤空行
grep ‘.’ 文件 #过滤单个字符,.表示任意单个字符
grep ‘8*’ 文件 #过滤8出现0次及0次以上,*前一个字符出现0次及0次以上
grep ‘.*’ 文件 #过滤文件中所有内容,.*表示文件中的所有内容
# 贪婪匹配 .* 所有符号 任何符号 会匹配连续出现的字符 有多少匹配多少,因此成为贪婪匹配
grep ‘[abc]’ 文件 #不是过滤abc字符串,而是过滤或a或b或c的行
grep ‘[a-z]’ 文件 #过滤a-z区间的所有字母
grep ‘[0-9]’ 文件 #过滤0-9区间的所有数字
grep ‘[a-Z0-9.^$-]’ 文件 #过滤a-Z区间的所有字母或0-9区间的所有数字或.或^过$或-,切记^不能写在开头,不然就成过滤以什么开头的行了,-不能写在中间,不然表示区间,只能a-Z,不能A-z,当过滤a-Z报错,A-z不报错,表示字符集写错了,把UTF写成了UFT
grep ‘[\.]’ 文件 #过滤文件中的. 还原符号\ \撬棍 转义字符 脱掉马甲打回原形 \n 回车换行 \t tab键
grep ‘[^a]’ 文件 #对a取反
egrep ‘8+’ 文件 #过滤8出现一次及一次以上的行 + 表示前面的字符出现一次或一次以上
egrep ‘[0-9]{18}’ 文件 #过滤联系出现的18个数字
egrep ‘8{2,3}’ 文件 #过滤8出现的次数,至少2次,最多3次 优先匹配后面的数字 {n,m}表示出现至少n次最多m次
egrep ‘^$|^#’ 文件 #匹配文件的空行和以井号开头的,经常用来过滤文件生效的行数,需要-v取反 | 或者
egrep ‘qq|test’ 文件 #查找出包含qq的行货包含test的行 | 或者
egrep ‘lizhe(u|n)ya’ 文件 #过滤出包含lizhenya的行或lizheuya的行 ()当做一个整体
参数:--color #加颜色,给需要的目标字体添加颜色
-i #不区分大小写,会把已大写或小写开头的都过滤出来
-n #显示行号,显示所过滤出来的内容在文件的第几行
-v #取反,排除,排除含有目标的内容
-o #显示过滤的过程
-r #递归过滤文件内容 企业常用,当访问网站被篡改
-w #过滤的内容两边必须是空格,可以用来查找某一个单词
-E #支持扩展正则 ===egrep
-c #统计某个单词出现的行
-A n #过滤内容往下n行
-B n #过滤内容往上n行
-C n #过滤内容上下各n行
###扩展 边界符 \b 或者 \<内容\>
[root@oldboyedu ~]# egrep '\b[0-9]{17}[0-9A-Z]\b' 1.txt
夏 222113859123487192
赵 37142518322922103X
[root@oldboyedu ~]# egrep '\<[0-9]{17}[0-9A-Z]\>' 1.txt
夏 222113859123487192
赵 37142518322922103X
wc
作用:统计文件的行数
用法:wc 参数 目录/文件
参数:-l #统计该文件或目录的行数
-c #统计字节数
-m #统计字符数
-L #显示最长行的长度
-w #统计单词计数
#wc一般搭配管道和其他命令一起使用
#可以用作初步统计功能
|
作用:管道,符号|,前一个命令执行后输出,通过管道符号,传递给下一个命令使用。简单来说,就是同时执行2个及以上的命令功能
用法:命令 | 命令 #同时执行这两个命令
lrzsz
作用:上传文件
安装lrzsz
[root@oldboyedu backups]# yum install -y lrzsz #麒麟
#ubt,Debian使用root用户
sudo su -
apt update
apt install -y lrzsz
#命令说明
rz 上传 rz回车即可或拖拽 #将Windows的文件上传到linux
sz 下载 sz /etc/hostname 下载指定的文件 #将linux的文件下载到Windows
zip/unzip
unzip
作用:解压
用法: unzip 压缩包 #把该压缩包解压到当前目录
参数: -d #解压到指定目录
#如果提示命令找不到或command not found
检查该压缩包:
[root@oldboyedu backups]# ll -h 文件
#-h是人类可读,即mb,kb之类的
zip
作用:压缩
用法:zip -rq 压缩到路径及压缩包名称 被压缩路径
参数:-r #递归打包
-q #不显示打包的详细信息
#ubt下载zip与unzip
apt-get install unzip zip
sort
作用:排序
用法:sort 文件 #给当前文件排序
sort 参数 文件
参数:-r #逆序排序
-n #按照数字形式排序,即数字大小
-kn #n为数字,按照指定n列排序
-rnkn #第二个n为任意数字,按照数字的形式给第n列逆序排序
-d #按字母顺序排序 不加参数,默认按字母排序
-t分隔符 #指定分隔符 eg:-t. 表示以.作为分隔符
-o # 保存到文件中
uniq
作用:去重,一般与sort搭配使用,单用uniq,是合并相邻两行相同内容
用法: uniq 文件 #合并相邻两行内容,从而做到去重
uniq 参数 文件 #合并相邻两行,并统计其出现的次数
sort 文件 | uniq -c #因其只能合并相邻两行的,故常与sort搭配使用,先给文件排序,在进行去重,统计次数
参数: -c #统计重复行的次数
awk
作用:取列,取行,模糊过滤,字符串比对,数字比对,格式化输出,支持if,for,while,数组等
用法:awk ‘模式’ 文件 #默认就是输出 不需要添加动作
awk ‘模式+动作’ 文件
awk ‘NR==n’ 文件 #取出文件的第n行 NR awk的内置变量 存储着每行的行号
awk ‘NR==n,NR==m’ 文件 #同时取出文件第n行和第m行
awk ‘NR==n||NR==m’ 文件 #取出文件的第n行或第m行
awk ‘NR>n&&NR<m’ 文件 #取出文件中大于n并且小于m的行
awk ‘//’ 文件 #模糊查找文件中的字符串
awk ‘//,//’ 文件 #模糊查找文件中的区间范围
awk ‘/root/’ 文件 #查找包含root的行
awk ‘/^a/’ 文件 #查找以a开头的行 支持正则
awk ‘/root|adm/’ 文件 #查找文件中包含root或adm的行
awk ‘/^[bs]/’ 文件 #查找出文件中以s或以b开头的行
awk '{print $n}' 文件 #取出文件的第n列 默认按照空格或者tab键分隔成列 如果没有空格或tab键,awk会将整行看成一列
#在awk中一切在动作中的字符串都被看做是变量,加上双引号则视为普通的字符串
awk '{print $NF}' 文件 #取出文件最后一列,取倒数几列就是NF-(n-1),切记要加小括号
awk ‘{print $n,$m}’ 文件 #取出文件中的第n列和第m列 也可以是awk ‘{print $n“ ”$m}’ 文件或awk ‘{print $n“,”$m}’ 文件
#""还原特殊字符原本的含义
#awk支持数值的运算,即加减乘除
awk '{print "a"}' 文件 #执行结果是文件有几行,就输出几行a
awk '{print 10+1}' 文件 #执行结果是文件有几行,就输出几行11
awk -F: '{print $n}' 文件 #指定冒号为分隔符,并取出文件第n列,也可以这样写awk -F ":" '{print $n}' 文件
#如果指定了分隔符,默认的空格和tab键分隔符会失效
awk -F: '{print $n"\t"$m}' 文件 #以冒号为分隔符,取出文件的第n列和第m列,或者awk -F: '{print $n,$m}' 文件也可以
awk -F ":/" '{print $n}' 文件 #指定:/为分隔符,取出第n列 适用正则
awk -F ":|/" '{print $n}' 文件 #指定:或/为分隔符,取出第n列
awk -F "[:/]" '{print $n}' 文件 #指定:或/为分隔符,取出第n列
awk -F "[:/]+" '{print $n}' 文件 #指定:或/为分隔符出现一次或一次以上进行分隔,即出现:分隔,初中/分隔,初中:/分隔,取出第n列
awk ‘NR==n{print $m}’ 文件 #取出文件的第n行的第m列内容
awk ‘NR>n{print $m}’ 文件 #取出文件大于n行的第m列内容
awk ‘NR>n{print $m,$n}’ 文件 #取出文件大于n行的第m列和第n列内容
awk -F: ‘NR==n{print $m}’ 文件 #指定:为分隔符,取出第n行第m列内容
awk -F: '/什么/{print $n}' 文件 #指定分隔符,查找包含什么的第n列
awk ‘$n=="root"’ 文件 #查找第n列等于root的行
awk ‘$n~"^r"’ 文件 #查找第n列以r开头的行
awk ‘$n!="root"’ 文件 #对第n列root的行取反
awk ‘$n==0’ 文件 #查找第n列等于0的行
awk ‘BEGIN{print n}’ #输出n 因为awk必须接文件,这样表示在文件开始输出n,可以支持加减乘除的运算,不需要加文件
awk ‘BEGIN{print }{}END{print }’ 文件 #在文件的开头输出什么,在文件的结尾输出什么
NR的符号:== 等于第几行
> 大于第几行
>= 大于等于第几行
< 小于第几行
<= 小于等于第几行
!= 不等于第几行
&& 并且 类似于sed的1,3
|| 或者
awk内置变量:$0 #表示整行
, #表示空格
NF #表示每一行的最后一列的列号
参数选项:-F #指定分隔符
tar
作用:打包压缩解压,使用最多
用法:#打包压缩
tar zcf 压缩到路径及压缩包名称 被压缩路径
#查看压缩包内容
tar tf 压缩包路径
#解压,默认当前
tar xf 压缩包路径
#指定解压路径
tar xf 压缩包路径 -C 解压地方
参数:zcvf==zcf #打包压缩
ztvf==tf #显示压缩包内容
zxvf==xf #解压(默认解压当当前目录)
-C #解压到指定目录
创建压缩包提示:tar: 从成员名中删除开头的“/”
原因:出现这个提示是因为tar命令的安全机制,把绝对路径转换为相对路径,解压到当前目录,避免解压成绝对路径,覆盖对应文件目录,造成损失
gzip
作用:原地压缩,不常用
用法:#压缩
gzip 文件
#解压
gzip -d 压缩包
useradd
作用:增加
语法:useradd 用户名 #增加用户,麒麟
useradd -s 命令指示器 -m 用户名 #增加用户。ubt,Debian
参数:-s #指定命令解释器
-m #创建家目录
-M #不创建家目录
-u #指定uid
-c #添加用户的增加说明信息
-g #替换默认的组,指定gid
-G #追加组,属于多个组
userdel
作用:删除
语法:userdel 用户名 #删除用户,默认不删除家目录
参数:-r #删除用户与家目录
chown
作用:修改文件的属主属组
语法结构:chown 属主名 文件 #只修改文件的属主
chown .属组名 文件 #只修改文件的属组
chown 属主名.属组名 文件 #同时修改文件的属主属组
参数选项:-R #递归修改目录下的所有文件的属主属组
#切记,修改的属主和属组是必须存在的,不然修改不成功,属组和属主名只能是英文字母,不可以是数字,rwx的位置是固定的,rwx=421
chmod
作用:修改文件的权限
语法结构:chmod +权限 文件 #增加文件的权限,仅适用于r和z
chmod -权限 文件 #减少文件的权限,仅使用与r和z
chmod g+权限 文件 #授权属组位增加权限
chmod u=权限 文件 #使用等于号清空文件的属主位,并重新给属主位赋值
chmod a+权限 文件 #给所有位增加权限
#属主 使用u表示 user
#属组 使用g表示group
#陌生 使用o表示other
参数选项:-R #递归授权,比较危险,别用来修改目录
#使用chmod +r,是所有位均增加r,使用chmod -r,是所有位均减少r;使用chmod +w,只有属主位增加,其他位无变化,使用chmod -w,只有属主位减少,其他位均无 变化;使用chmod +x,是所有位均增加x,使用chmod -x,是所有位均减少x
###使用数字的方式授权
r # 4
w # 2
x # 1
语法结构: chmod 三位数字 文件 #授权文件为三位数字的权限
###经常使用到的授权数字
644 rw-r--r--
755 rwxr-xr-x
600 rw-------
隐藏权限位
语法结构:lsattr 文件 #查看文件的隐藏权限位
chattr -权限 文件 #减少文件的权限
chattr +权限 文件 #增加文件的权限
参数选项:a #只能追加内容到文件中,并查看文件
i #无敌,除了查看啥都不能干
#在企业中发现文件可能没有隐藏权限,但是还是无法操作,是因为第三方安全软件对文件做了保护措施
;
作用:命令的分隔符
语法结构:命令;命令;命令 #不管前面命令执行成功与否,都会继续往后执行
&&
作用:命令分隔符
语法结构:命令 && 命令 #前面命令执行成功,才会往后执行
||
作用:命令分隔符
语法结构:命令 || 命令 #前面命令必须执行失败,才会执行后面的命令
>或1>
作用:命令分隔符 > 或者1> 标准正确输出重定向,只接受正确的结果
语法结构:命令 > 文件 #将命令输出到屏幕上的结果重定向到文件
##并不是只有echo才可以往文件中追加内容,cat ls都可以,>重定向符号,表示把输出到屏幕上的东西输出到文件中,>表示先清空,在写入,哪怕指令是错误的,也是先清空文件原有内容
>>或1>>
作用:命令分隔符 >> 或者 1>> 标准正确追加输出重定向,只接受正确的结果
语法结构:命令 >> 文件 #将命令输出到屏幕上的结果重定向追加到文件
#并不是只有echo才可以往文件中追加内容,cat ls都可以,>>追加重定向符号,表示把输出到屏幕上的东西追加到文件中,>>表示对文件原内容无影响
2>
作用:命令分隔符 2> 标准错误输出重定向,只要错误的结果
语法结构:命令 > 文件 #将命令输出到屏幕上的结果重定向到文件
2>>
作用:命令分隔符 2>> 标准错误追加输出重定向,只要错误的结果
语法结构:命令 >> 文件 #将命令输出到屏幕上的结果重定向追加到文件
###同时接收正确与错误的结果 因为重定向是先清空再写入,因此一般用的是追加重定向,两个用法一致
>> 文件 2>> 文件 #可以同时输出同一个文件中,也可以是不同文件
>> 文件 2>&1 #>&1 这表示跟屁虫,是固定搭配,表示跟着前面的走
&>>文件 #是最简单的一种,不过结果如何都往同一个文件写
sed
作用:取行,删除行,替换行,增加内容,后向引用
语法结构:sed ‘模式+动作’ 文件 #直接处理文件 效率比较高
其他命令的结果 | sed 对显示到屏幕上的内容进行处理
模式:找谁,按照行 模糊过滤查找文件内容
动作:找到后干什么 显示 删除 替换 增加内容
sed -n ‘np’ 文件 #n为数字 p为print输出结果 查找文件的第n行
sed -n ‘$p’ 文件 #查找文件最后一行
sed -n ‘n,mp’ 文件 #查找文件第n到m行
sed -n ‘n,$p’ 文件 #显示文件的第n行到最后一行
sed -n ‘np;mp’ 文件 #取出文件的第n行和第m行
sed -n ‘/root/p’ 文件 #模糊过滤查找包含root的行
sed -n ‘//,//p’ 文件 #模糊过滤区间范围的字符串 经常用来过滤日志中的时间范围
sed -n ‘/^r/p’ 文件 #查找以r开头的行
sed -n ‘/h$/p’ 文件 #查找以h结尾的行
sed -rn ‘/^[ra]/p’ 文件 #查找文件中以r或a开头的行
sed -n ‘/bin/,/adm/p’ 文件 #查找bin和adm之间的行
#注意:如果有两个结尾则只匹配到第一个,如果找不到结尾则树池从开始查找的内容到文件末尾的所有内容,如果是承对出现的,会显示两个从开始到结尾
sed ‘/nd/’ 文件 #指定删除第n行,默认临时删除并输出到屏幕上,不修改源文件,修改源文件,需要加-i
sed ‘/n,md/’ 文件 #区间范围删除,即删除从第n行到第m行直接的内容
sed ‘/root/d’ 文件 #删除包含root的行
sed ‘/n$/d’ 文件 #删除以n结尾的行
sed ‘/^a/d’ 文件 #删除以a开头的行
sed ‘/root/,/adm/d’ 文件 #删除从root开始到adm开始之间的行
sed -r ‘/root|adm/d’ 文件 #删除包含root或包含adm的行
sed ‘na’ 文件 #在第n行下添加内容,即成为第四行
sed ‘ni’ 文件 #在第n行上添加内容,即成为第三行
sed ‘nc’ 文件 #将第三行完全替换
sed ‘nw 其他文件’ 文件 #将第n行内容保存到其他文件中 会先清空其他文件原有内容
sed ‘n,mw 其他文件’ 文件 #将第n行到第m行的内容保存到其他文件中
sed ‘/root/,/adm/w 其他文件’ 文件 #将从root行到adm行的内容,保存到其他文件
#可以使用>和>>符号搭配查找行来把内容追加到其他文件中
sed ‘s#替换谁#替换成谁#g’ 文件 #替换文件中的某些内容,格式还有,sed ‘s///g’ 文件,sed ‘s@@@g’ 文件,sed ‘sAAAg’ 文件等,只要s和g中间的符号类型一致即可,全局替换,所有的都替换
sed ‘s###’ 文件 #只替换每行第一个出现需要替换的
sed ‘s#:# #g’ 文件 #将文件中的:替换成空格 符号也适用
sed -r ‘s#[:/]# #g’ 文件 #将文件中的:或/替换为空格 正则也适用
sed ‘s#[a-z]##g’ 文件 #相当于删除文件中含有a-z之间的任意字符
sed ‘s#[^a-z]##g’ 文件 #删除文件中除了a-z之间的其他字符
sed ‘ns###g’ 文件 #将文件中第n行的什么替换成什么
sed ‘n,ms###g’ 文件 #将文件中的第n行到第m行的什么替换成什么
sed ‘//s###g’ 文件 #查找文件中包含什么的行,将什么替换成什么
sed ‘$#(正则)#\ng’ 文件 #获取第n个括号中的内容
参数选项:-n #取消默认输出 有n就有p,有p就有n,无p无n,无n无p
-r #支持扩展正则
-i #修改源文件
yum
前提:必须保证可以联网
特点:安装位置是默认的,我们不能定义位置
自动解决依赖问题 依赖:某个软件依赖于另一个软件
语法结构:yum -y install 软件名 # 安装软件
yum -y remove 软件名 # 卸载软件
yum search 命令 #搜索命令属于那个包
yum provides 命令 #查看命令属于那个包
yum list #查看仓库中所有可用的软件包
yum update #更新仓库,有需要时在使用,因为耗时较长
yum -y reinstall 软件名 # 重新安装,类似Windows的覆盖安装,余姚命令无法正常使用又无法卸载的情况,使用该命令
yum clean all # 清理仓库缓存 无法正常下载软件的时候尝试清理缓存
# 如果是centos需要将默认的仓库地址更改为国内的仓库地址,麒麟系统不需要修改
1、备份默认的仓库
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2、下载新的新的仓库到配置目录下
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
# 我们如何知道安装的命令属于那个包
1、百度一下你就知道 # 建议使用的
2、yum search 命令 # 搜素命令属于那个包,有一些bag
3、yum provides 命令 # 查看命令属于那个包,也存在一些bag
rpm
特点:1、必须先下载.rpm包
2、不需要联网
3、不能自动解决依赖问题,需要手动解决
语法结构:rpm -ivh xx.rpm #使用rpm安装rpm包,类似于Windows下载.exe的安装文件 要求必须是.rpm结尾的 需手动安装
rpm -e xx.rpm # 卸载软件
yum localinstall *.rpm # 批量安装rpm包
参数选项:-i # install 安装
-v # verbose 显示过程
-h #显示进度
-qa # 当后面不加东西,即 rpm -qa 是,表示查看系统已经安装了那些软件,当后面加软件名,表示查看该软件是否安装
--downloadonly #只下载不安装
--downloaddir=目录 #将下载的包存放到指定目录下
-ql #查看软件安装了那些文件
-qc #查看软件的配置文件位置
apt,dpkg
Ubuntu安装软件
语法结构:apt -y install 软件名 #安装软件
apt update # 更新软件仓库
apt -y remove 软件名 # 卸载软件
dpkg -i xx.deb #ubt安装类似于centos的rpm包
dpkg -l 软件名 # 查看软件是否安装
find
作用:根据不同的文件类型查找出想要的文件
1、查找大文件
2、查找小文件多的
inode号,一个文件至少占用一个inode号和一个block
相当于一本书的索引,一本书的目录是有限制的 比如200个
3、模糊查找
4、按照时间查找
文集类型:f #表示普通文件
d #表示目录
l #表示链接文件
c #表示字节设备
b #表示块设备 /dev/sda 磁盘 光驱
三种时间:atime #访问时间
mtime #文件修改时间
ctime #文件属性修改时间
语法结构:find 在哪里找 找什么类型的
find 目录 -type 文件类型 #按照文件类型查找,默认递归查找
find 目录 -name “文件名” #按照文件名称查找
find 目录 -iname “文件名” #按照文件名查找,不区分大小写
find 目录 -inum inode号 #按照inode号查找
find 目录 -size 10M #查找出等于10M的文件
find 目录 -size +10M #查找出大于10M的文件
find 目录 -size -10M #查找出小于10M的文件
find 目录 -mtime +n #n天前修改过得文件
find 目录 -mtime -n #n天内修改过得文件
find 目录 -mtime 0 #24小时内被修改过得文件
参数选项:-o #or 或者 不可省
-a #and 并且 默认就是并且关系 可省略
-maxdepth n #表示按照第n级查找,即深度等级查找
xargs
作用:将前面的命令执行的结果甩到所有命令的最后面
可以格式化输出,默认以空格分隔
语法格式:xargs -nx #按照x列的方式输出
xargs 命令 #执行该命令
xargs -i #指定前一命令输出内容到{}中
systemctl
systemctl restart 文件 #重启文件
systemctl disable --now firewalld #红帽,关闭防火墙
systemctl disable --now ufw #Ubuntu firewalld,关闭防火墙
systemctl 动作 服务名称
动作:start # 启动 运行
stop # 停止
restart # 重启
status # 查看服务的状态
enable # 开机自动运行此服务
disable # 开机禁止启动此服务
reload # 重新加载配置
网卡配置文件
[root@oldboyedu ~]#cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet # 网卡类型 以太网
BOOTPROTO=none # ip地址的配置方式 none或者static表示手动配置ip地址 DHCP自动获取ip地址
NAME=ens33 # 网卡系统显示的名称
UUID=da57cf91-e62b-454e-bbef-be8c0f08c8d4 # 设备的唯一标识 类似每个设备都有一个身份证,可以删除
DEVICE=ens33 # 网卡硬件的名称
ONBOOT=yes # 开机自动启动网卡
IPADDR=10.0.0.200 # ip地址 局域网内唯一
PREFIX=24 # 子网源码 决定了局域网内可用的ip地址数量 10.0.0.1-10.0.0254
GATEWAY=10.0.0.2 # 网关 去往不同网段的必经之路
DNS1=223.5.5.5 # 域名解析 将域名解析成ip地址的过程
7个运行级别
init
0 # 表示关机
1 # 表示单用户模式,忘记root密码 可以直接修改root密码
2 # 表示多用户模式,缺少很多功能比如NFS nfs共享
3 # 表示完全多用户 默认的级别
4 # 保留待开发
5 # 桌面模式 需要安装DESKTOP包
6 # 重启
系统优化
1、修改默认yum仓库为国内
2、优化ssh服务修改默认的端口号,禁止root登录,使用普通用户登录
3、关闭selinux
4、优化防火墙,开放需要开放的端口80 443 ssh 端口
5、时间同步
6、加大文件描述符
7、内核参数优化 网络
8、字符集优化
9、安装常用系统命令
磁盘分区
MBR格式 小于2T的磁盘使用fdisk分区
GPT格式 大于2T的磁盘使用parted分区
开机自动挂载每列含义
第一列:设备的名称或者UUID 第二列:挂载点 第三列:文件系统类型 第四列: 挂载的参数 第五列:是否备份 第六列: 是否>自检
/dev/sdb1 /data xfs defaults 0 0
磁盘阵列
RAID级别 硬盘数量 可用容量 安全性 性能 使用场景
0 至少一块 磁盘总和 不安全 读写最快 要求速度不要安全
1 只能2块 一半 可以坏1块 写慢,读凑合 要求安全,速度一般的场景
5 至少3块 n-1块 坏1块 0和1的折中 业务流量较稳定的场景
10 至少4块 一半 坏1半 读写速度快 高并发场景
kill
作用:杀死进程
语法结构:kill 进程
kill 参数 进程
参数选项:1 # 重新加载配置文件
9 # 强制杀死进程
15 # 终止进程 默认kill使用该信号
ps
作用:查看当前进程状态(静态)
语法结构:ps 参数 | grep 文件名
参数选项:-a # 显示所有终端机下执行的进程,除了阶段作业领导者之外
-u # 以用户为主的格式来显示进程状态
-x # 显示所有进程,不以终端机来区分
-f # 用ASCII字符显示树状结构,表达进程间的相互关系
ps -auxf 常用组合方式查看进程、PID、占用CPU百分比,占用内存在粉笔,状态、执行的命令等
OSI七层模型
应用层 表示层 会话层 传输层 网络层 数据链路层 物理层
应用层协议介绍
FTP 21 明文协议,文件传输协议,基于TCP
TFTP 69 简单文件传输协议,基于UDP
SSH 22 安全外壳协议,远程连接,加密
Telnet 23 明文协议,远程连接 # 连接路由器交换机常用
SNMP 161/162 简单网络管理协议,基于UDP
SMTP 25 简单邮件传输协议,基于TCP
HTTP 80 超文本传输协议
HTTPS 443 超文本传输安全协议
DHCP 67/68/546 动态主机设置协议,C(67),S(68),546(V6)
DNS域名解析
1、访问浏览器缓存,有返回ip,没有去本地hosts
2、本地hosts,有返回ip没有去本地DNS
3、本地DNS有返回ip,没有去访问根域
4、根域服务器没有对应ip,但是有顶级域,返回顶级域给本地DNS
4、本地DNS去顶级域,顶级域没有对应,但是有权威域,返回权威域给DNS
5、本地DNS去权威域,权威域返回A记录 A记录解析对应的服务器ip
6、本地DNS缓存一份A记录,在把A记录返回给浏览器
TCP三次握手
小帅向小美说 我想和你搞对象,并送给你一个礼物 SYN=1,seq=x
小美向小帅说 我收到你的礼物,也想和你搞对象,给你一个礼物,你下从该给我第二个礼物了 ACK=1,SYN=1,seq=y,Ack=x+1
小帅向小美说 我收到你的礼物了,给你第二个礼物,你该给我第二个礼物 ACK=1,seq=x+1,Ack=y+1
TCP四次挥手
小帅向小美说 我要和你分手 FIN
小美向小帅说 我知道了 ACK
小美向小帅说 我也要和你分手 FIN
小帅向小美说 知道了 ACK
tcpdump
作用:抓包,常用于网络分析和问题排查
参数选项:-i # 监听哪一个网卡
-n # 不把ip解析成主机名
-nn # 不把端口解析成应用层协议
-c # 指定抓包的数量
-S # 不把随机序列和确认序列解析成绝对值
-w # 将流量保存到文件中,文件中的信息是无法直接查看的
-r # 读取文件中的内容
-v # 输出一个稍微详细的信息,例如ip包中可以包括ttl和服务类型的信息
-vv # 输出详细的报文信息
ping
作用:检测网络的连通情况和分析网络速度
参数选项:-t # 持续ping,不中断。不加该选项只ping4个包。 Windows
-n # ping的包数,默认是4个。 windows
-c # ping包的个数,默认持续ping,linux
-w # 多长时间ping一次。linux 延时1s
-f # 极速ping。 linux
nc
作用:监听 nc是netcat的简写,有着网络界的瑞士军刀美誉。因为它短小精悍、功能实用,被设计为一个简单、可靠的网络工具
参数选项:-l # 用于指定nc将处于侦听模式
-u # 指定nc使用UDP协议,默认为TCP
-v # 输出交互或出错信息,新手调试时尤为有用
-w # 超时秒数,后面跟数字
-z # 表示zero,表示扫描时不发送任何数据
nmap
作用:在远程机器上探测网络,执行安全扫描,网络审计和搜寻开放端口。
参数选项:-p # 指定端口号
-p22 # 单个端口
-p22,80 # 多个端口
-p1-1000 # 1到1000之间的端口
-n # 扫描所开放端口
telnet
作用:检查某个主机是否开启某个端口 默认23端口
#用法 主要功能链接路由器、交换机 telnet 192.168.13.1
netstat
作用:查看当前系统中运行了哪些服务端口
参数选项:-l # 只显示监听套接字
-n # 不做名字解析
-t # 显示tcp端口
-u # 显示udp端口
-p # 显示pid和程序名字
-r # 显示路由表
-a # 显示所有的套接字
-an # 查看某端口状态
ss
跟netstat命令差不多。
参数选项:-l # 只显示监听套接字。
-n # 不做名字解析
-t # 显示tcp端口
-u # 显示udp端口
-p # 显示pid和程序名字
-r # 解析主机名
-a # 显示所有的套接字
traceroute
作用:检查去往该地经过多少路由
语法结构:traceroute -n -I www.baidu.com # 查看去往百度经历多少路由
参数选项:-n #禁止把IP解析为对应的域名(主机名)
iftop
作用:显示当前所用流量情况
参数选项:-i # 设定监测的网卡
-B # 以bytes为单位显示流量(默认是bits)
-n # 使host信息默认直接都显示IP
-p # 使host信息及端口信息默认就都显示
-m # 设置界面最上边的刻度的最大值,刻度分五个大段显示
q # 退出监控
iotop # 监控磁盘i/o命令
istat # Mac 系统的状态监控
rsync
作用:远程拷贝(增量)
语法格式:rsync 参数 源文件/目录 用户@ip地址:路径 # 将文件文件推送到ip地址用户下
rsync 参数 用户@IP地址:源文件路径 本地存放路径 # 将ip地址用户下的文件拉取到本地
rsync 参数 源文件/目录 用户@ip地址::模块名称 # 守护进程模式,将文件或目录推送到IP地址用户的模块下
rsync 参数 用户@ip地址::模块名称 本地存放位置 # 守护进程模式,将ip地址用户下的文件拉取到本地
# 注意rsync的目录后加/表示拷贝目录下的文件 不加/表示拷贝目录及下所有的内容
参数选项:-a # 归档模式输出,等于-tropgDl
-v # 详细模式输出,打印速率,文件数量等
-z # 传输时进行压缩以提高效率
-r # 递归传输目录及子目录,即目录下的所有目录都同样传输
-t # 保持文件时间信息
-o # 保持文件属主信息
-p # 保持文件权限
-g # 保持文件属组信息
-l # 保持软链接
-P # 显示同步的过程及传输时的进度等信息
-D # 保持设备文件信息
-L # 保留软连接指向的目标文件
-e # 使用的信道协议,指定替代rsh的shell程序
--exclude=PATTERN # 指定排除不需要传输的文件模式
--exclude-from=file # 指定排除文件名所在的目录文件
--bwlimit=100 # 限速传输 1 表示1MB/s
--partial # 断点传输
--delete # 让目标目录和源目录数据保持一致
--password-file=xxx # 使用密码文件
-avzP # 查看传输速率 常用-avz
scp
作用:远程拷贝(全量)
语法结构:scp 文件 用户@ip地址:路径 # 将文件远程拷贝到ip地址下
scp 参数 目录 用户@ip地址:路径
scp 用户@ip地址:路径 本机路径 # 将IP地址用户下的文件加载到本地
参数选项:-r # 拷贝目录
-P # 指定端口号
ssh
作用:远程连接
语法结构:ssh IP # 远程连接该ip地址
ssh 用户@ip # 远程连接该ip地址用户
ssh -p ip # 远程连接该ip指定的端口
# 注意,所有目录的权限必须正确 根目录555 家目录550 .ssh存放公钥和秘钥的目录700 存放公钥的文件必是600
tmux
作用:在单个终端窗口中创建多个虚拟终端会话,并能保持这些会话在后台运行
语法结构:tmux # 直接敲,产生新会话,在会话中按Ctrl+b d,会退出当前会话(会话默认在后台运行,命令执行完成,会话不会自动消失,进程依旧存在)
# 会话管理
tmux new -s <name> # 创建名为 name 的新会话
Ctrl+b d #分离当前会话(会话继续后台运行)
tmux ls # 列出所有会话
tmux attach -t <name> # 重新连接到指定会话
Ctrl+b $ # 重命名当前会话
Ctrl+b s # 切换会话
# 窗口管理
Ctrl+b c # 创建新窗口
Ctrl+b & # 关闭当前窗口
Ctrl+b n # 切换到下一个窗口
Ctrl+b p # 切换到上一个窗口
Ctrl+b <number> # 切换到指定编号的窗口
Ctrl+b , # 重命名当前窗口
# 面板管理
Ctrl+b % # 垂直分割当前面板
Ctrl+b " # 水平分割当前面板
Ctrl+b <arrow> # 在面板间移动焦点
Ctrl+b x # 关闭当前面板
Ctrl+b z # 最大化/恢复当前面板
Ctrl+b Space # 切换面板布局