oldw
日常学习之路

麒麟和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  # 监听文件显示最新的内容
作用:查看文件开头的内容,默认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  #  切换面板布局
posted on 2025-01-30 16:22  oldw  阅读(158)  评论(0)    收藏  举报