最新动态
shell
2025-01-03 10:02

定义:BashShell是一个命令解释器,主要负责用户程序与内核进行交互操作的一种接口,将用户输入的命令翻译给内核,由内核驱动硬件,最终将处理后的结果输出至BashShell屏幕[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kCo3xYPe-1690465877801)(shell.assets/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MDY2ODM3NA==,size_16,color_FFFFFF,t_70.png)]

定义:BashShell是一个命令解释器,主要负责用户程序与内核进行交互操作的一种接口,将用户输入的命令翻译给内核,由内核驱动硬件,最终将处理后的结果输出至BashShell屏幕[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YubvMjnI-1690465877802)(shell.assets/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MDY2ODM3NA==,size_16,color_FFFFFF,t_70.png)]

  • ctrl+a:光标移动到行首

  • ctrl+e:光标移动到行尾

  • ctlr+l:清屏(对应的命令clear

  • ctrl+c:结束当前的任务;非常常用

  • ctrl+k:删除光标以后的所有内容

  • ctrl+u:删除光标以前的所有内容

  • ctrl+w:按照单词进行删除,删除光标以前的内容

  • ctrl+d:退出当前的bash会话,并不影响服务器运行的后台程序

  • ctrl+左右:按照单词进行跳跃

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AF8e0CxA-1690465877803)(shell.assets/1.gif)]

 
  • -N: 显示历史记录中最近的N个记录
  • -c:清空当前历史命令
  • -a:将历史命令缓冲区中命令写入历史命令文件中
  • -r:将历史命令文件中的命令读入当前历史命令缓冲区
  • -w:将当前历史命令缓冲区命令写入历史命令文件中;
  • -d :删除历史记录中第offset个命令
  • -n :读取指定文件

对历史记录操作不会影响历史文件,历史记录存在历史文件里。如果历史文件改变,那么记录也会改变。

如想查询某个用户在系统上执行了什么命令,可以使用root用户身份登录系统,检查该用户目录下的文件,该文件记录了用户所使用的命令和历史信息。

 

**注:**alias的效力仅于该次登入的操作。若要每次登入是即自动设好别名,可在.bashrc中设定指令的别名。

  • unalias :删除别名

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r0bd9smb-1690465877803)(shell.assets/d0c50-linux2bfile2bsystem2bhierarchy.jpg)]

系统启动必须

  • **/boot:**存放的启动Linux 时使用的内核文件,包括连接文件以及镜像文件。

  • /etc存放所有的系统需要的配置文件和**子目录列表,**更改目录下的文件可能会导致系统不能启动。

  • /lib:存放基本代码库(比如c++库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。

  • /sys: 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中

指令集合

  • **/bin:**存放着最常用的程序和指令

  • **/sbin:**只有系统管理员能使用的程序和指令。

外部文件管理

  • **/dev :**Device(设备)的缩写, 存放的是Linux的外部设备。**注意:**在Linux中访问设备和访问文件的方式是相同的。

  • /media:类windows的**其他设备,**例如U盘、光驱等等,识别后linux会把设备放到这个目录下。

  • /mnt:临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。

临时文件

  • /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。

  • /lost+found:一般情况下为空的,系统非法关机后,这里就存放一些文件。

  • /tmp:这个目录是用来存放一些临时文件的。

账户

  • /root:系统管理员的用户主目录。

  • /home:用户的主目录,以用户的账号命名的。

  • /usr:用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。

  • **/usr/bin:**系统用户使用的应用程序与指令。

  • **/usr/sbin:**超级用户使用的比较高级的管理程序和系统守护程序。

  • **/usr/src:**内核源代码默认的放置目录。

运行过程中要用

  • /var:存放经常修改的数据,比如程序运行的日志文件(/var/log 目录下)。

  • /proc:管理**内存空间!**虚拟的目录,是系统内存的映射,我们可以直接访问这个目录来,获取系统信息。这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件来做修改。

扩展用的

  • /opt:默认是空的,我们安装额外软件可以放在这个里面。

  • /srv:存放服务启动后需要提取的数据**(不用服务器就是空)**

FQ/abc/test 和 abc/test 是一样的吗

  • 如果现在在根目录下两者一样,因为/代表根目录
  • 如果现在在别的目录前者就是根目录下的abc,而后者是现在目录下的abc

**创建文件:**touch

  • 创建多个有规律的文件 touch {A…Z}

**创建目录:**mkdir

  • -p:递归创建
  • 创建多个有规律的目录 mkdir {A…Z}

**删除文件或者目录:**rm

  • -r:递归删除子目录

**复制文件或者目录:**cp

  • -r:递归

  • 如果有重复文件,cp是原生指令不会提示覆盖,而cp别名为cp -i会提示是否覆盖

  • 一次拷贝多个文件目录,最后一个如果是目录必须存在

  • -p:保持复制的文件与源文件一样的属性,所属组一样

**移动文件或者目录:**mv

  • cat:-n 带行号查看
  • less,more:分页查看
    • ctrl+f:下一页
    • ctrl+b:上一页
    • more:有百分比显示
  • head,tail
    • tail -f(tailf: 实时追踪尾部变化
  • which:查找命令绝对类路径
  • whereis
    • -b:查看二进制文件
  • wget,curl:从网络下载资源

    • wget -O:下载文件并重命名

       
    • curl -o:下载文件并重命名

  • sz:Linux下载到Windows。不能超过4g,不支持断点续传,不能下载文件夹。

  • rz:Windows上传到Linux。

  • sort

    • -t:以哪个字符分割,默认为空格
    • -k:分割后第几列
      • m.n:第几列.第几个字符
    • -n:按照number方式排列
    • -r:反转
     
  • uniq:去重复

    • -c:统计出现次数
  • wc:统计行数

    • -l:统计行数
  • 基本正则表达式BRE集合

    • :转义字符,匹配特殊含义的字符,还原本意
    • :用于模式的最左侧。如yu,匹配以yu单词开头的行
    • ,匹配以yu单词结尾的行
    • ^前面什么也没写,也表示空
    • .:匹配任意一个且只有一个字符,不能匹配空行。如.ab,匹配xab字符
    • *:匹配一个字符(连续出现)0次或1次以上,重复0次代表空,即匹配所有内容,如a* 表示匹配a,0次或多次
    • .*:匹配任意长度的任意字符
    • ^.*:匹配任意多个字符开头的内容
    • .*$:匹配任意多个字符结尾的内容
    • [abc]:匹配[]集合内的任意一个字符,a或b或c,可以写成[a-c]
      • [a-z]匹配所有小写单个字母
      • [A-Z]匹配所有单个大写字母
      • [a-zA-Z]匹配所有的单个大小写字母
      • [0-9]匹配所有单个数字
      • [a-zA-Zo-9]匹配所有数字和字母
    • [abc]:匹配除了后面的任意字符,a或b或c,^表示对[abc]的取反
  • 扩展正则表达式ERE集合:必须用grep -E才能生效

    • +:匹配前一个字符1次或多次
    • [😕]+:匹配括号内的":“或者”/"字符1次或多次 [ab]+
    • ?:匹配前一个字符0次或1次
    • |:表示或者,同时过滤多个字符串
    • ():分组过滤,被括起来的内容表示一个整体
    • a{n,m}:匹配前一个字符最少n次,最多m次
    • a{n,} :匹配前一个字符最少n次
    • a{n}:匹配前一个字符正好n次
    • a{,m}:匹配前一个字符最多m次
  • grep:过滤行

     
      
    • 例子

      • grep -v “ftp” pass:匹配除了包含ftp的内容,其他全部打印

      • grep -n “.” /var/log/secure:显示行号

         
      • grep -n -A 2 “Failed” /var/log/secure:匹配/var/log/secure文件中Failed字符串打印本行以及它的下2行

      • grep -n -B 2 “Failed” /var/log/secure:匹配/var/log/secure文件中Failed字符串,并打印本行以及它的上2行

      • grep -n -C 2 “Failed” /var/log/secure:匹配/var/log/secure文件中Failed字符串,并打印本行以及它的上下2行

  • sed:替换字符串

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8fHO1o1a-1690465877804)(shell.assets/webp.webp)]

     
      
    • sed匹配范围

      • 空地址:全文处理

         
      • 单地址:指定文件某一行

      • /pattern/:被模式匹配到的那一行

      • 范围区间:例如:10,20表示十到二十行;10,+5第10行向下5行

      • 步长:例如,12,表示1、3、5、7、9行;22,表示2、4、6、8、10

    • 内置命令字符:sed的内置命令字符用来对文件进行不同的操作功能,如对文件增删改查

      • a:append,对文本追加,在指定行后面添加一行/多行文本

         
      • d:delete,删除匹配行

      • i:insert,表示插入文本,在指定行前添加一行/多行文本

      • p:print,打印匹配行的内容,通常p与-n一起用

         
      • s/正则/替换内容/g:匹配正则内容,然后替换内容(支持正则,结尾g代表全局匹配

        • s///g,s###g,s@@@g一样
         
  • awk:查找行列

     
      
    • awk内置变量

      • $n:指定分隔符后,当前记录的第n个字段,也就是第n列

         
      • $0:打印所有内容

      • FS:输入字段分隔符,默认为空白字符

         
      • OFS:输出字段分隔符,默认为空白字符

         
      • NF:分割后,统计字段数

         
         
      • NR:行数,可以大于,小于,不等于等等条件

         
         
      • RS:输入记录分隔符(输入换行符,指定输入时的换行符

         
      • ORS:输出记录分隔符(输出换行符,输出时用指定符号代替换行符

      • FNR:多个文件分别计数的行号

      • FILENAME:当前文件名

         
      • ARGC:命令行参数的个数

      • ARGV:数组,保存的是命令行所给定的各参数

    • awk自定义变量

       
    • printf格式化输出

      • %c:显示字符的ASCII码
      • %d,%i:十进制整数
      • %e,%E:科学计数法显示数值
      • %f:显示浮点数
      • %g,%G:以科学计数法的格式或浮点数的格式显示数值
      • %s:显示字符串
      • f1a;无符号整数
      • %%:显示%自身
      • -:左对齐,例如:%-25s表示-左对齐25个字符长度
      • +:显示数值符号,例如:printf “%+d”
       
    • awk模式

      • BEGIN模式是处理文本之前需要执行的操作
      • END模式是处理完所有行之后执行的操作

在Linux中,一个文件数据可分为两大类数据元数据

  • 数据:泛指普通文件中的实际数据
  • 元数据:用来描述一个文件的特征的系统数据

在Linux中,一个文件的存储也会被分为两部分inodeblock

  • inode:用来存储文件的元数据
  • block:用来存储文件的真实数据,一个block空间是4k
 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z1iLbR5m-1690465877805)(shell.assets/image-20230420133604372.png)]

文件类型

  • 当为 d 则是目录(directory)

  • 当为 - 则是普通文件

  • 若是 l 则表示为链接文档(link File)

  • 若是 b 则是设备文件(block块设备文件)和存储相关的设备,举例:硬盘,U盘,磁盘分区

  • 若是 c 则表示为设备文件(char字符设备文件)和字符相关的设备,举例:打印机,终端

  • 若是 s 则表示为socket安全套接字文件,网络编程(同一个服务器两个进程通信

  • 若是 p 则表示为pipe管道文件,父进程与子进程之间的通信文件

     

硬链接:硬链接和原文件对应一个inode,就是对应一个文件,可以理解成一个文件有几个别名。

  • ln 源文件 链接名

软链接:软链接可以理解成快捷方式,和原文件的inode号不一样,它和Windows下的快捷方式的作用是一样的,软链接数据块中记录的亦是相对路径指向。

  • ln -s 源文件 链接名

注意:链接的源文件路径要写绝对路径,否则会报错

硬链接与软链接区别

  • 目录不能创建硬链接,并且硬链接不可以跨越分区系统。
  • 目录软链接特别常用,并且软链接支持跨越分区系统。
  • 硬链接文件与源文件的inode相同,软链接文件与源文件inode不同。
  • 删除软链接文件,对源文件及硬链接文件无任何影响。
  • 删除文件的硬链接文件,对源文件及链接文件无任何影响。
  • 删除链接文件的源文件,对硬链接无影响,会导致软链接失效。
  • 删除源文件及其硬链接文件,整个文件会被真正的删除。
 
 
 
 
 
 
 
 
 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3qtA6ZZz-1690465877805)(shell.assets/image-20230421140455358.png)]

 
 
 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TI3dTKCA-1690465877806)(shell.assets/下载.png)]

 
 

添加用户useradd username

需求:创建用户,UID为,基本组,附加组,注释信息,登陆shell为

 

修改用户usermod username

 

删除用户userdel username

 
 
  1. 超级管理员
    • 随意修改任何人的密码,密码强度可以随意
  2. 普通用户执行
    • 仅修改自己的密码,不可以修改其他人,密码强度必须满足8个字符及以上
 
 

系统创建用户参考的两个配置文件

  • /etc/login.defs

    •  
  • /etc/default/useradd

    •  

创建组groupadd

 

修改组groupmod

 

删除组groupdel

  • 组中存在成员怎么办

    • 如果组是附加组

      • 如果附加组中只有附加组成员,直接删除,而用户附加组信息会自动被移除
      • 如果附加组中有附加组成员和基本组成员,需要先从基本组中删除该成员,然后再直接删除该附加组
    • 如果组是基本组

      • 只有移除基本组中最后一个用户,该组才可以删除

预备知识

  1. Linux Shell主要分为如下几类
    • 交互式shell,等待用户输入执行的命令(终端操作,需要不断提示
    • 非交互式shell,执行shell脚本,脚本执行结束后shell自动退出
    • 登陆shell,需要输入用户名和密码才能进入Shell,日常接触的最多的一种
    • 非登陆shell,不需要输入用户和密码就能进入Shell,比如运行bash会开启一个新的会话窗口
  2. bash shell配置文件介绍(文件主要保存用户的工作环境
    • 个人配置文件
    • 全局配置文件
    • profile类文件,设定环境变量,登陆前运行的脚本和命令
    • bashrc类文件,设定本地变量,定义命令别名
    • 注意:如果全局配置和个人配置产生冲突,以个人配置为准
  3. 登陆系统后,环境变量配置文件的应用顺序
    • 登录式shell配置文件执行顺序: → → → →
    • 非登陆式shell配置文件执行顺序: → →

su 切换身份

  • su UserName相当于非登陆式shell,配置文件少,不推荐 ❌

  • su - Username相当于登录式shell ✔

  • 在root用户下直接借助Username用户身份去运行命令

    • 有些程序不支持root直接启动,必须是普通用户。所以普通用户不需要登录系统,只是用来完成服务的启动,通过 su - username -c “command” 来完成服务的启动。

       

sudo 提取权限

 

权限与用户关系

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mDpuoB6X-1690465877806)(shell.assets/image-20230423152750425.png)]

rwx对文件和目录影响

权限文件目录读取权限(r)具有读取,阅读文件内容权限具有浏览目录及子目录写入权限(w)具有新增,修改文件内容的权限具有增加和删除目录内的文件执行权限(x)具有执行文件的权限具有访问目录的内容(取决于目录中文件权限
  • 总结
    • 文件rwx权限只能读,写,执行。如果想要删除,移动,复制文件需要该目录有rwx权限才行
    • 文件r权限, 只给用户查看,无其他操作
    • 文件rw权限, 可以查看和编辑文件内容
    • 文件rx权限, 允许查看和执行文件、但不能修改文件----->(脚本文件、命令文件
    • 文件rwx权限, 能读,能写,能执行,但不能删除,因为删除需要看上级目录的权限有没有w----->(谨慎赋予
    • 目录rx权限, 允许浏览目录内文件以及子目录, 不允许在该目录下创建文件、删除文件
    • 目录rw权限, 能查看目录,能往目录写入文件,但无法进入目录----->(使用的情况太少
    • 文件的x权限小心给予,通常设定的权限是644
    • 目录的w权限小心给予,通常设定的权限是755

变更属主和属组

 
  • 变更属主和属组的场景
    • www最开始没有访问index的资格,需要修改属主,属组和权限才能访问

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B0CVfZLG-1690465877807)(shell.assets/image-20230423183618706.png)]

注意:如果原来x位置上有权限则为小写,如果没有为大写

setuid(4

  • 增加权限:或者

  • 取消权限:或者

  • setuid(suid:不可以对目录执行,他只针对二进制文件(命令

  • 例子1:当普通用户oldxu执行passwd命令会发生什么变化

    1. 由于passwd命令拥有suid特殊权限(在命令属主权限位有一个s

    2. 所以passwd命令在执行的过程中,会以命令的属主身份(也是root身份)去运行该命令

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WKmjXKhm-1690465877807)(shell.assets/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNDc5NDMy,size_16,color_FFFFFF,t_70.png)]

  • 例子2:jack通过cat如何查看/etc/shadow文件

    • jack执行cat命令查看/etc/shadow。cat是由jack运行的,能不能查看,取决于jack用户对/etc/shadow有没有权限,/etc/shadow默认任何人都无权限,所以查看失败,提示 Permission denied

    • 解决

       

setgid(2

  • 增加权限:或者

  • 取消权限:或者

  • 命令赋予setgid后,任何用户在执行命令时,以这个命令的属组身份去运行

  • 目录赋予setgid后,所有该目录下创建的文件,都按照属组的身份来

  • 场景:假设系统中有两个账号,分别是与,这两个人除了自己群组之外还共同支持一个名为的组。假设这两个用户需要共同拥有目录的开发权,互相之间能修改彼此的文件,且该目录不允许其他人进入查阅,请问该目录的权限设定应为何

    1. 创建组,以及用户

       
    2. 创建项目目录,分配权限。禁止其他人访问该目录,同时还要保证user1,user2能正常读写执行

       
    3. 给目录增加sgid

       
    4. user1创建文件,测试user2能否正常修改,并且属组没有变化

       

setbit(1

  • Sticky粘滞位目前只对目录有效,作用如下:目录一旦被赋予了粘滞位,除了root 可以删除所有文件,普通用户对该目录就算拥有 w 权限,也只能删除自己建立的文件,而不能删除其他用户建立的文件。
  • 增加权限:或者
  • 取消权限:或者

特殊属性:加特殊属性chattr,查看特殊属性lsattr

  • 作用
    • 加特殊属性后,它不允许被修改、移动、删除、包括root都不行。适合/etc/passwd文件
    • 加特殊属性后,只希望往文件里面追加数据,不允许修改、移动、删除。适合sudo审计日志
  • 命令格式:chattr [±=] [选项] 文件或目录名
    • =是设置为指定的属性,而忽略原有的属性设置,±为在原有参数的基础上,操作
    • a:可对文件进行追加内容
    • i:锁定文件,不允许其他操作

umask

  • 定义:umask设置了用户创建文件的默认权限,它与chmod的效果刚好相反,umask设置的是权限“补码”。

    • 一般在/etc/profile、$ [HOME]/.bash_profile或$[HOME]/.profile中设置umask值。
  • 例子

     

**重定向:**将原本要输出到屏幕的数据信息,重新定向到某个指定的文件中,或者定向到黑洞中

名称文件描述符标准输入(STDIN)0标准输出(STDOUT)1(可省略不写)错误输出(STDERR)2文件名称(filename)3+
 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UuEL66OO-1690465877809)(shell.assets/image-20230425124910396.png)]

类型操作符用途标准覆盖输出重定向>将程序输出的正确结果输出到指定的文件中,会覆盖文件原有的内容标准追加输出重定向标准追加输出重定向>>将程序输出的正确结果以追加的方式输出到指定文件,不会覆盖原有文件错误覆盖输出重定向2>将程序输出的错误结果输出到执行的文件中,会覆盖文件原有的内容错误追加输出重定向错误追加输出重定向2>>将程序输出的错误结果以追加的方式输出到指定文件,不会覆盖原有文件标准输入重定向<<将命令中接收输入的途径由默认的键盘更改为指定的文件或命令

案例1:正确输出到文件,错误输出到屏幕

 

案例2:正确错误都输出到一个文件中

 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I2x6oif9-1690465877810)(shell.assets/image-20230425132106500.png)]

案例3:输出到/dev/null。是一个特殊的设备文件,它相当于一个黑洞,任何写入它的数据都会被丢弃。因此,不会占用额外的空间。

管道:输出变成下一个输入,但是只能把标准输出,输入到下一个进程中

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VDtD3WvE-1690465877810)(shell.assets/image-20230425134022181.png)]

  • 管道中tee:在输出屏幕的同时可以把内容存入到文件中

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LNTyj1VI-1690465877811)(shell.assets/image-20230425135240261.png)]

  • xargs:把前面内容变成我这条命令的参数

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xQPqfSe1-1690465877811)(shell.assets/image-20230425135937883.png)]

    • xargs -nx:分组,每行x个
  • 按照文件类型搜索

     
  • 按照文件名搜索

     
  • 按照文件大小搜索

    • -size[±]大小:按照指定大小搜索文件
      • "+"的意思是搜索比指定大小还要大的文件
      • “-” 的意思是搜索比指定大小还要小的文件
     
  • 按照修改时间搜索

    • -5:代表5天内修改的文件
    • 5:代表前5~6天那一天修改的文件
    • +5:代表6天前修改的文件

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fIdh94uk-1690465877811)(shell.assets/2-1P930143J9411.jpg)]

     
  • 按照所有者和所属组搜索

     
  • 按照权限搜索

     
  • 逻辑运算符

    • -a:and逻辑与
    • -o:or逻辑或
    • -not:not逻辑非
  • 执行动作

    动作含义-print打印查找到的内容(默认)-Is以长格式显示的方式打印查找到的内容-delete删除查找到的文件(仅能删除空目录)-ok后面跟自定义shell命令(会提示是否操作,写法同-еxес)-еxес后面跟自定义 shell命令(标准写法 -exec 命令x {}
    • “-exec"选项的作用是把 find 命令的结果放入”{}"中,再由命令x 直接处理。
  • gzip
 
  • bzip2

     
  • zip/unzip

     
  • tar

     
      
    • 打包

       
    • 解压

       
    • 排除文件:–exclude=

       
          
      • 排除多个文件:X指定从哪个文件中读取要排除的文件名称

         

Linux常见软件包

系统平台包类型工具自动解决依赖RedHat/CentosRPMrpmyumUbuntu/Debiandebdpkgapt

安装软件常见方法

分类安装版本rpm包预先编译打包,安装简单软件版本偏低源码包手动编译打包,安装繁琐软件版本随意二进制包解压即可使用,安装简单不能修改源码yum安装软件最常用方法

RPM软件包命名规则

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eSO0NT8Z-1690465877812)(shell.assets/image-20230506203305582.png)]

 
  • RPM安装

     
  • RPM查询

     
  • RPM升级

     
  • RPM卸载

     
  • RPM检验

     
 

配置其他服务源

  1. 书写配置文件
  2. 下载安装对应的源的软件包,例如:xxx-release.rpm(包含repo文件),安装后就有对应repo文件了
  3. yum下载软件时会自动从所有可用的源中选择最快的一个下载。如果您想要指定从某个特定的源下载软件,可以使用yum命令的–enablerepo选项。例如,如果您想要从nginx源下载软件,可以使用以下命令:yum --enablerepo=nginx install nginx。
 
 
 
 

服务端:自己的yum仓库,每一个客户端只能上内网,所以只能局域网yum安装

客户端:配置服务端的yum

 
 
 

编译环境:gcc、make
依赖环境:pcre、openssl

 

三部曲

  • 第一步:https://blog.csdn.net/yy549159265/article/details/configure(定制组件 配置
    • 指定安装路径,编译安装默认路径 /usr/local/ ,例如 --prefix=/app/web/nginx-1.18.0
    • 启用或禁用某项功能, 例如 --enable-ssl
    • 和其它软件关联,例如–with-pcre
    • 检查安装环境,例如是否有编译器 gcc,是否满足软件的依赖需求
    • 检测通过后生成Makefile文件
  • 第二步:make(源代码编译—>二进制命令
    • 执行make命令进行编辑, 可以使用-j指定CPU编译
    • -J 并发执行编译安装
    • -j 以cpu核心总数一致
    • 按Makefile文件进行编译, 编译成可执行二进制文件
    • 生成各类模块和主程序
  • 第三步:make install(安装
    • 按Makefile定义好的路径拷贝至安装目录中

RAID0

  • 将多块磁盘组合在一起形成一个大容量的存储。当我们要写数据的时候,会将数据分为N份,以独立的方式实现N块磁盘的读写,那么这N份数据会同时并发的写到磁盘中,因此执行性能非常的高。
  • RAID0 的读写性能理论上是单块磁盘的N倍(仅限理论,因为实际中磁盘的寻址时间也是性能占用的大头
  • 但RAID0的问题是,它并不提供数据校验或冗余备份,因此一旦某块磁盘损坏了,数据就直接丢失,无法恢复了。因此RAID0就不可能用于高要求的业务中,但可以用在对可靠性要求不高,对读写性能要求高的场景中。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wK60weeS-1690465877813)(shell.assets/image-20230522192605197.png)]

RAID1

  • RAID1 是磁盘阵列中单位成本最高的一种方式。因为它的原理是在往磁盘写数据的时候,将同一份数据无差别的写两份到磁盘,分别写到工作磁盘和镜像磁盘,那么它的实际空间使用率只有50%了,两块磁盘当做一块用,这是一种比较昂贵的方案。
  • RAID1其实与RAID0效果刚好相反。RAID1 这种写双份的做法,就给数据做了一个冗余备份。这样的话,任何一块磁盘损坏了,都可以再基于另外一块磁盘去恢复数据,数据的可靠性非常强,但性能就没那么好了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i1zSxbKE-1690465877813)(shell.assets/image-20230522192818102.png)]

RAID5

  • 把校验码信息PARITY分布到各个磁盘上。例如,总共有N块磁盘,那么会将要写入的数据分成N份,并发的写入到N块磁盘中,同时还将数据的校验码信息也写入到这N块磁盘中(数据与对应的校验码信息必须得分开存储在不同的磁盘上)。一旦某一块磁盘损坏了,就可以用剩下的数据和对应的奇偶校验码信息去恢复损坏的数据。
  • 最少需要三块磁盘来组建磁盘阵列,允许最多同时坏一块磁盘。如果有两块磁盘同时损坏了,那数据就无法恢复了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yPxsxtKT-1690465877814)(shell.assets/image-20230522192840604.png)]

RAID10

  • RAID10兼备了RAID1和RAID0的有优点。首先基于RAID1模式将磁盘分为2份,当要写入数据的时候,将所有的数据在两份磁盘上同时写入,相当于写了双份数据,起到了数据保障的作用。且在每一份磁盘上又会基于RAID0技术讲数据分为N份并发的读写,这样也保障了数据的效率。
  • 但也可以看出RAID10模式是有一半的磁盘空间用于存储冗余数据的,浪费的很严重,因此用的也不是很多。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kwevAebu-1690465877814)(shell.assets/image-20230522192853661.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tHb62N4l-1690465877814)(shell.assets/image-20230522193548924.png)]

**mbr分区表:**主引导记录,还可以叫做主引导扇区。它的运行机制存在于硬件的基础之上,它存储在硬盘的第一个扇区上。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XJoTiJMX-1690465877815)(shell.assets/image-20230525220136831.png)]

  • 主分区:数量至少1个,最多4个(如果存在扩展分区,则最多3个)。主分区可以直接使用,主分区本身不能继续分区,一个主分区就是一个逻辑磁盘。
  • 扩展分区: 为了突破这最多四个主分区的限制,Linux系统引入了扩展分区。0个或1个,会占用一个主分区号,不能直接使用,必须在其上建立逻辑分区后才能用。 其实就是把1个主分区拿过来进行分区扩展了。
  • 逻辑分区:扩展分区的容量是所有逻辑分区容量之和。
gptmbr主分区数量不限主分区最多4个,扩展分区1个可以额外支持大容量硬盘2tb以上只能支持2tb以内硬盘

使用率

 
 
 

当前读写速度

 
 

磁盘分区

磁盘分区命令fdisk支持mbr分区格式,2tb以内磁盘parted支持mbr,gptgdiskfdisk升级版,gpt disk (仅支持gpt格式)
  • fdisk磁盘分区
 
  • parted磁盘分区
 

**格式化:**创建文件系统make file system mkfs

 

挂载

 
 

磁盘空间不足

  • block满了一

    • 原因: 磁盘有大量的文件占用空间,导致空间不足

       
  • block满了二

    • 原因: 删除大文件时,大文件有其他使用者访问(进程未清除,或者硬链接还有

       

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-foDNvpSQ-1690465877815)(E:运维学习shell.assetsimage-20230529221131450.png)]

  • inode满了

    • 原因: 磁盘上面有大量小文件,占用了大量的inode,最终磁盘空间不足

       

内存不足占用

  • swap交换分区:内存不足的时候临时充当内存

    • 增加swap方法

      1. 通过创建文件增加swap

         
      2. 磁盘分区作为swap

         
    • 永久增加swap方法

      1. swapon /tmp/swap 放入/etc/rc.local。同永久挂载

      2. 写入到 /etc/fstab

         

buffer:写缓冲区,目的是加速写入的速度
cache:读缓存区,目的是加速读取的速度

root密码忘记

  1. 开机的时候,选择第1个,按e编辑

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jHUYpwYs-1690465877816)(E:运维学习shell.assetsimage-20230531121009720.png)]

  2. 然后找到linux16的行,在这一行的最后添加rw init=/bin/sh,按ctrl+x

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X2H6LKDZ-1690465877816)(E:运维学习shell.assetsimage-20230531121106893.png)]

  3. 重新设置root密码,重启系统

  • 故障:救援模式修改密码之后,无法进入系统,读条的时候卡住:selinux没关闭

     

Linux7系统的开机启动过程如下:

  1. 开机自检(检查硬件

  2. MBR/GPT引导系统启动

  3. GRUB菜单,多个内核选择哪个启动

  4. 加载内核选项

  5. 内核初始化使用systemd进程(启动的Linux系统的第1个进程 systemd

  6. 读取运行级别(桌面模式,命令行模式)/etc/systemd/system/default.target

  7. 初始化系统(挂载,启动网络,主机名,…)/usr/lib/systemd/system/sysinit.target

  8. 根据运行级 别、并行启动服务(网络服务,ssh服务,定时任务服务…

  9. 关机重启其他shutdown -h 10shutdown -r 10shutdown -h now/0shutdown -r now/0halt (关闭系统,手动断电)rebootpoweroffinit 0 #centos 6常用init 6 #centos 6常用systemctl halt/poweroffsystemctl reboot

    poweroff:关机同时关闭电源,会发送一个ACPI信号通知系统关机

    half:关机但是不关闭电源,需要手动关闭电源

    shutdown:关机同时关闭电源,只有拥有root权限的用户才可以执行

    可用撤回的开关机

    运行级别
    centos6叫做runlevelsystemd目标名称作用0poweroff.target关机1rescue.target单用户模式级别。root 权限,用于系统维护(或修复系统,或重置系统密码信息,禁止远程登录2multi-user.target多用户模式级别。该级别下没有NFS和网络的支持3multi-user.target完整的多用户文本模式级别。登录后进入到控制台命令行模式4multi-user.target预留级别。该级别系统未使用5graphical.target图形化模式级别。登录后进入图形GUI模式6reboot.target重启
     
    

    修改系统运行级别

     
     
    

    systemd相关配置文件

     
    

    systemd管理服务相关命令

     
    

    systemctl服务状态

    服务状态状态说明loaded服务单元的配置文件已经被处理,配置放在了/usr/lib/systemd/system/active(running)服务的一个或多个进程在运行中最常见的状态 startactive(exited)一次性运行的服务成功被执行并退出(服务运行后完成任务,相关进程会自动退出)active(waiting)服务已经运行但在等待某个事件inactive服务没有在运行 stopenabled服务设定为开机运行disabled服务设定为开机不运行static服务会随着系统的启动而启动,并且会一直运行,直到系统关闭或服务被手动停止

    systemctl的日志

     
     
    

    进程正常处理流程:

    • 子进程在处理任务代码时,父进程会进入等待状态中…
    • 子进程在处理任务代码后,会执行退出,然后唤醒父进程来回收子进程的资源。
    • 如果子进程在处理任务过程中异常退出,而父进程没有回收子进程的资源,会导致子进程虽然运行实体已经消失,但仍然在内核中的进程表中占据一条记录,长期下去对系统中资源是一个浪费。(僵尸进程
    • 如果子进程在处理任务过程中,父进程退出了,子进程没有退出,那么子进程就没有父进程来管理了,由系统的system进程管理。(孤儿进程
     
     
    
     
    

    ps -aux解释

     
    

    STAT解释

    STAT基本状态描述STAT状态符号描述R(running)进程运行s进程是控制进程,Ss进程为父进程S可中断进程处于等待状态(可以随时停止)<进程运行在高优先级上,S<优先级较高的进程T(terminate)进程被暂停(挂起)N进程运行在低优先级上,SN优先级较低的进程D不可中断进程(IO+当前进程运行在前台,R+该表示进程在前台运行Z僵尸进程l(小写L)进程是多线程的,Sl表示进程是以线程方式运行
     
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NzIJTPhn-1690465877816)(E:运维学习shell.assetsimage-20230605184233085.png)]

    参数

     
     
    
     
     
    
     
     
    

    **平均负载:**单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数

    • 可运行状态进程:指正在使用 CPU 或者正在等待 CPU 的进程,也就是我们ps 命令看到处于 R 或 S 状态的进程
    • 不可中断进程:系统中最常见的是等待硬件设备的 I/O 响应,也就是我们 ps 命令中看到的 D 状态(也称为Disk Sleep)的进程。
     
    

    平均负载案例分析

    **stress:**是 Linux 系统压力测试工具,这里我们用作异常进程模拟平均负载升高的场景
    **mpstat:**是多核 CPU 性能分析工具,用来实时查看每个 CPU 的性能指标,以及所有 CPU 的平均指标
    **pidstat:**是一个常用的进程性能分析工具,用来实时查看进程的 CPU、内存、I/O 以及上下文切换等性能指标

    场景一:CPU 密集型进程

     
    

    场景二:I/O 密集型进程

     
    

    **总结:**平均负载提供了一个快速查看系统整体性能的手段,反映了整体的负载情况。但只看平均负载本身,我们并不能直接发现,到底是哪里出现了瓶颈。

    • 平均负载高有可能是 CPU 密集型进程导致
    • 平均负载高还有可能是 I/O 更繁忙
    • 当发现负载高的时候,使用 mpstat、pidstat 等工具,辅助分析负载的来源
    • w/uptime, 查看负载
    • ps aux/top 看看 cpu百分比, iowait或者是内存占用的高? (三高cpu,io,内存)
    • top检查具体是哪个进程,找出可疑进程
    • 追踪这个进程使用情况,做什么的?
    • 看看对应日志是否有异常
      • 系统日志: /var/log/messages(系统通用日志) /var/log/secure(用户登录情况)
      • 服务软件的日志

    配置文件位置:/etc/crontab

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UbDh5R1P-1690465877817)(E:运维学习shell.assetsimage-20230606190229685.png)]

    符号含义*每(每小时 每天 每周 每月)/每隔(表示每隔多久执行一次),独立的时间(例如:7点,6点,9点)-范围(10-30,20-55之类
     
    
    参数含义crontab -e edit编辑定时任务crontab -l list查看当前用户的定时任务crontab -r remove清空/删除当前用户的所有定时任务crontab -u user编辑user的定时任务,配置文件对应/var/spool/cron/user下

    笔记

    1. 在root用户下 执行crontab -e -u aaa 和在aaa用户下执行crontab -e -u aaa 有什么区别吗

      • 当以root用户身份执行"crontab -e -u aaa"时,可以编辑aaa用户的crontab文件,因为root用户具有最高权限。

      • 而当以aaa用户身份执行"crontab -e -u aaa"时,只能编辑自己的crontab文件

    2. crontab -e 会自动更新配置文件,所以每次写入新任务不用重新加载服务的配置文件

    1. 每2分钟输出oldboy追加到/tmp/oldboy.txt

       
    2. 使用root用户每分钟执行一次时间同步

       
    1. 给定时任务注释

    2. 将需要定期执行的任务脚本中,避免直接使用命令无法执行的情况

      • 需要使用转义,但是写入脚本就不用转义,直接定时这个sh脚本就行
    3. 定时任务的结尾一定要有 或者 将结果追加到文件

     
    
    1. 注意有些命令是无法成功执行的 echo “123” >>/tmp/test.log &>/dev/null

    2. 如果一定要是用命令,命令必须使用绝对路径

       
    3. crond备份

      • 备份日志,通过查找中执行的记录,去推算任务执行的时间
      • 定时的备份配置{username}的文件
    4. crond拒绝某个用户使用

       
    1. 增加频率
      • 调整任务每分钟执行的频率, 以便做后续的调试。
      • 调整系统时间
    2. 执行脚本输出到文件(排查错误)
      • 如果使用cron运行脚本,请将脚本执行的结果写入指定日志文件, 观察日志内容是否正常。
    3. 命令使用绝对路径, 防止无法找到命令导致定时任务执行产生故障。
    4. 通过查看/var/log/cron日志,以便检查我们执行的结果,方便进行调试。
    1. 手动执行命令,然后保留执行成功的结果

    2. 编写脚本

      • 统一路径:脚本需要统一路径/scripts
      • 复制:脚本内容复制第一步执行成功的命令(减少每个环节出错几率)
      • 简单粗暴:脚本内容尽可能的优化,使用一些变量或使用简单的判断语句
      • 定向到空:脚本执行的输出信息可以重定向至其他位置保留或写入/dev/null
    3. 执行脚本

      • 使用bash命令执行,防止脚本没有增加执行权限(/usr/bin/bash)
      • 执行脚本成功后,复制该执行的命令,以便写入cron
    4. 编写计划任务

      • 加注释:加上必要的注释信息
      • 改时间:设定计划任务执行的周期
      • 去粘贴:粘贴执行脚本的命令(不要手敲)
    5. 调试计划任务增加任务频率测试

      • 检查环境变量问题:使用命令绝对路径
      • 看日志:检查crond服务日志
      • 看结果

    交换机:实现同一个局域网通信工具,用于连接多个计算机或网络设备,并在它们之间传输数据

    • 交换机能够根据目的地址在不同端口之间转发数据包
    • 基于MAC地址、IP地址或虚拟局域网(VLAN)来进行转发
      • MAC地址:唯一

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nlwpKJmJ-1690465877817)(E:运维学习shell.assetsimage-20230616193124878.png)]

    路由器:实现多个网段数据传输

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VTPiPcmI-1690465877817)(E:运维学习shell.assetsimage-20230616193217776.png)]

    网关:实现不同网段之间通讯需要经过一条必经之路。 (交换机,路由器)默认的出口/入口

    网络追踪命令

     
    

    网络层次结构

    • 核心层:主要部署路由器设备,用于连接外网线路,还要具备冗余能力
    • 汇聚层:主要部署三层交换设备,用于相应安全访问控制 进行链路汇聚
      • 链路聚合是把两台设备之间的多条物理链路聚合在一起,当做一条逻辑链路来使用,可以增加带宽,负载分担
    • 接入层:主要部署二层交换设备,用于终端设备接入

    网络七层

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CDpSNytq-1690465877818)(E:运维学习shell.assetsimage-20230616230622638.png)]

    含义涉及协议或内容应用层应用软件,接口,各种协议http https dns smtp …表示层会话层传输层数据如何传输到对端tcp udp 端口网络层网络路由和寻址IP 3层路由器数据链路层通过mac地址识别设备,进行传输mac 2层交换机物理层数据转换为010101010,通过网络介

    数据封包解包过程

    • 封包

      • 应用层:原始数据被转换成二进制数据
      • 传输层:二进制数据被分割成小的数据段,并封装TCP头部 (数据段(TCP头部的关键信息–端口号
      • 网络层:传输层传来的数据被封装上IP头部 (数据包(IP头部的关键信息–IP地址
      • 数据链路层:网络层传来的数据被封装上MAC头部 (数据帧(MAC头部的关键信息–MAC地址
      • 物理层:二进制数据组成的比特流转化为电信号在网络中传输 (比特流

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ai9dxa2Y-1690465877818)(E:运维学习shell.assetsimage-20230617195706240.png)]

    • 解包

      • 物理层:将电信号转化为二进制数据,并将其送至数据链路层
      • 数据链路层:查看MAC地址,地址是自己,就拆掉MAC头部,继续传输地址不是自己,就丢弃数据
      • 网络层:查看IP地址,地址是自己,就拆掉IP头部,继续传输地址不是自己,就丢弃数据
      • 传输层:查看TCP头部,判断应该传到哪里,然后重组数据,传输到应用层
      • 应用层:二进制转化为原始数据

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m1SoueX3-1690465877819)(E:运维学习shell.assetsimage-20230617195842029.png)]

    本地IP阿里云服务器IP222.27.64.1747.93.18.99

    握手

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qouDpOph-1690465877819)(E:运维学习shell.assetsimage-20230617215221702.png)]

    • 第一次

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DCSNn6Ca-1690465877819)(E:运维学习shell.assetsimage-20230617215847584.png)]

    • 第二次

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uRQjrWhT-1690465877819)(E:运维学习shell.assetsimage-20230617220302439.png)]

    • 第三次

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kiTXrNU4-1690465877820)(E:运维学习shell.assetsimage-20230617220818468.png)]

    挥手

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IkHgT7Ed-1690465877820)(E:运维学习shell.assetsimage-20230617215305072.png)]

    总结

    • ack为上一次握手/挥手的seq+1:确认接收端的请求或回应
    • seq为上一次握手/挥手的ack:保证数据的有序传输和确认的准确性
    • 定义:将IP地址解析为MAC地址,维护映射的缓存
    • 划分网络:子网的引入可以将一个大型网络划分为更小的子网,有助于管理和组织网络。每个子网可以独立地进行管理,简化网络结构。
    • 控制广播范围:在没有子网的情况下,广播消息将在整个局域网中传播,导致广播风暴和带宽浪费。通过子网,可以限制广播消息的范围在子网内部,减少广播对整个网络的影响。
    • 提高网络性能:当网络中有大量设备时,所有设备发送请求到同一个网关可能导致网关负载过高。通过子网,可以将设备分散到不同的子网中,减轻了每个子网的负载,提高了整体网络性能。
    • 安全性增强:子网可以通过实施子网间的访问控制列表(ACL)和防火墙规则来增强网络的安全性。不同子网之间的通信可以受到限制,有助于保护敏感数据和资源的安全。
    • A记录是"Address"记录的缩写,用于将域名解析为IPv4地址。当用户输入一个域名时,DNS服务器会查询该域名的A记录,返回与之对应的IPv4地址。这样,用户的计算机就能够通过该IPv4地址与目标服务器建立连接。
    • CNAME记录是"Canonical Name"记录的缩写,用于创建域名的别名。CNAME记录将一个域名指向另一个域名,实现域名之间的关联。当用户查询一个使用CNAME记录的域名时,DNS服务器会返回与之关联的目标域名的A记录。这样,用户的计算机就可以通过目标域名的A记录找到目标服务器的IPv4地址。
     
     
    
     
    
    1. :指定网络接口设备的名称,这里是 ,表示以太网卡设备的第一个接口。
    2. :指定接口的启动协议,常见取值有 、、 等。 表示不使用任何协议, 表示使用静态 IP 地址, 表示使用 DHCP 协议从 DHCP 服务器获取 IP 地址。
    3. :指定静态 IP 地址,当 设置为 时生效。
    4. :指定子网掩码,用于确定网络中 IP 地址的网络部分和主机部分。
    5. :指定默认网关的 IP 地址,用于将网络流量转发到其他网络。
    6. :指定首选和备用 DNS 服务器的 IP 地址,用于解析域名到 IP 地址。
    7. :指定网络接口是否在系统启动时自动激活,常见取值有 和 。
    8. :指定网卡设备的硬件 MAC 地址。
    9. :指定网络接口的网络前缀长度,用于确定网络部分的位数。例如,如果网络前缀是 24,则表示前 24 位用于网络部分,后 8 位用于主机部分。
    10. :指定网络接口的类型,常见取值有 、 等,表示不同类型的网络接口设备。
    11. :指定是否使用从 DHCP 服务器获取的 DNS 服务器配置。如果设置为 ,则使用从 DHCP 服务器获取的 DNS 服务器;如果设置为 ,则不使用 DHCP 提供的 DNS 服务器配置。
    12. :指定是否启用 IPv6 支持。如果设置为 ,表示启用 IPv6;如果设置为 ,表示禁用 IPv6。
     
     
    

    ![](E:运维学习shell.assetsout (1)-16877082738067.jpg)

    • 网络命令

       
    • 排查

      • 检查 路径是否通畅
        • ping
        • traceroute/tracert
      • 检查服务是否开启
        • 检查端口
          • telnet ip 端口
          • nmap -p端口 ip
          • nmap -p端口x-端口y ip
          • nmap -p端口 ip/网段
        • 检查进行
          • ps -ef
            DEVICEens33`,表示以太网卡设备的第一个接口。
    1. :指定接口的启动协议,常见取值有 、、 等。 表示不使用任何协议, 表示使用静态 IP 地址, 表示使用 DHCP 协议从 DHCP 服务器获取 IP 地址。
    2. :指定静态 IP 地址,当 设置为 时生效。
    3. :指定子网掩码,用于确定网络中 IP 地址的网络部分和主机部分。
    4. :指定默认网关的 IP 地址,用于将网络流量转发到其他网络。
    5. :指定首选和备用 DNS 服务器的 IP 地址,用于解析域名到 IP 地址。
    6. :指定网络接口是否在系统启动时自动激活,常见取值有 和 。
    7. :指定网卡设备的硬件 MAC 地址。
    8. :指定网络接口的网络前缀长度,用于确定网络部分的位数。例如,如果网络前缀是 24,则表示前 24 位用于网络部分,后 8 位用于主机部分。
    9. :指定网络接口的类型,常见取值有 、 等,表示不同类型的网络接口设备。
    10. :指定是否使用从 DHCP 服务器获取的 DNS 服务器配置。如果设置为 ,则使用从 DHCP 服务器获取的 DNS 服务器;如果设置为 ,则不使用 DHCP 提供的 DNS 服务器配置。
    11. :指定是否启用 IPv6 支持。如果设置为 ,表示启用 IPv6;如果设置为 ,表示禁用 IPv6。
     
     
    

    ![](E:运维学习shell.assetsout (1)-16877082738067.jpg)

发表评论
0评