• Linux学习笔记



    Linux基础篇


    Linux目录结构

    具体的目录结构(不用背,知道即可)

    • /bin [常用](/usr/bin、/usr/local/bin)是Binary的缩写,这个目录存放着最经常使用的命令
    • /sbin (/usr/sbin、/usr/local/sbin) s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
    • /home [常用]存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名
    • /root [常用]该目录为系统管理员,也称作超级权限者的用户主目录
    • /lib 系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库
    • /lost+found 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件
    • /etc [常用]所有的系统管理所需要的配置文件和子目录,比如安装mysql数据库 my.conf
    • /usr [常用]这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。
    • /boot [常用] 存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件
    • /proc[不能动] 这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息
    • /srv[不能动] service缩写,该目录存放一些服务启动之后需要提取的数据
    • /sys[不能动] 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统sysfs
    • /tmp 这个目录是用来存放一些临时文件的
    • /dev 类似于windows的设备管理器,把所有的硬件用文件的形式存储
    • /media[常用]linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下
    • /mnt [常用]系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里的内容了。
    • /opt 这是给主机额外安装软件所存放的目录。如安装ORACLE数据库就可放到该目录下。默认为空
    • /usr/local [常用]这是另一个给主机额外安装软件所安装的目录。一般是通过编译源码方式安装的程序
    • /var[常用]这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下。包括各种日志文件
    • /selinux[security-enhanced linux]SELinux是一种安全子系统,它能控制程序只能访问特定文件,有三种工作模式,可以自行设置。

    Linux远程链接

    • XShell:命令行运行

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3gWcXqQk-1666952158260)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20221026184853102.png)]

    • Xftp:文件传输
      在这里插入图片描述
    • 如何处理中文乱码
      在这里插入图片描述

    vi和vim各种模式的互相切换

    在这里插入图片描述

    快捷键使用练习

    1.拷贝当前行 yy,拷贝当前行向下的5行 5yy,并粘贴。[一般模式下]

    2.删除当前行 dd,删除当前行向下的5行5dd[一般模式下]

    3.在文件中查找某个单词[命令行下][/关键字 ,回车查找,输入n 就是查找下一个]

    4.设置文件的行号,取消文件的行号。[命令行下][显示一般模式:set nu和不显示一般模式:set nonu]

    5.编辑/etc/profile文件,使用快捷键到该文档的最末行[G]和最首行[gg]

    6.在一个文件中输入"hello",然后又撤销这个动作[一般模式下] [u]

    7.编辑 /etc/profile 文件,并将光标移动到 20行 shift+g [一般模式下]

    关机&重启命令

    • 注:
      • 不论是重启还是关闭系统,首先运行sync命令,把内存中的数据写到磁盘中;
      • 目前的shutdown/reboot/halt等命令均已经再关机前进行了sync,但小心一点总是好的。
    shutdown -h now # 立刻进行关机
    shutdown -1 now # 1mins后进行关机
    shutdown -r now # 现在重启计算机
    shutdown # 1mins后进行关机
    halt # 关机,作用和上面一样
    reboot # 现在重启计算机
    sync # 将内存拿数据同步到磁盘
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    用户管理

    添加用户

    • 用户创建成功后,会自动的创建和用户同名的家目录
    • 也可以通过useradd -d制定目录 新的用户名,给新创建的用户指定家目录
    useradd [-d [指定位置]] 新创建用户名
    
    • 1
    passwd 用户密码
    
    • 1

    删除用户

    删除用户时,一般会保留家目录。

    • 删除用户,保留家目录
    userdel 用户名
    
    • 1
    • 删除用户以及用户主目录
    userdel -r 用户名
    
    • 1

    查询用户信息

    id 用户名
    
    • 1

    切换用户

    su - 切换用户名
    
    • 1

    用户组

    介绍:类似狱中角色,系统可以对有共性的多个角色进行统一管理

    增加组

    groupadd 组名
    
    • 1

    删除组

    groupdel 组名
    
    • 1

    增加用户时直接加上组

    • 这个用户组需要存在,才能加入
    useradd -g 用户组 用户名
    
    • 1

    修改用户的组

    usermod -g 用户组 用户名
    
    • 1

    用户和组的相关文件

    • 掌握】用户信息配置文件(用户信息):/etc/passwd

      • 每行的含义:登录名:口令:用户标识号:组标识号:注释性描述:主目录(家目录):登录shell
        在这里插入图片描述
    • 掌握】组配置文件(组信息):/etc/group

      • 每行的含义:组名:口令:组标识号:组内用户列表
    • 口令配置文件(密码和登录信息,是加密):/etc/shadow

      • 每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

    实用指令

    指定运行级别

    init 级别
    
    • 1

    0:关机

    1:单用户【找回丢失密码】

    2:多用户状态没有网络服务

    3:多用户状态有网络服务

    4:系统未使用保留给用户

    5:图形界面

    6:系统重启

    常用运行级别是3和5,要修改默认的运行级别可改文件

    /etc/inittab的id:5:initdefault:这一行中的数字
    在这里插入图片描述

    面试题

    • 如何找回root密码
    • 思路:进入到单用户模式,然后修改root密码。进入单用户模式,root不需要密码就可以登陆。

    帮助指令

    • 获得帮助信息
    man [命令or配置文件] 
    
    • 1

    文件目录类

    • pwd

      • 显示当前目录的绝对路径
    • ls

      • 查看当前目录文件信息

      • ls [选项] [目录或是文件]
        
        • 1
    • cd

      • 切换到指定目录

      • cd ~ 和 cd 相同,都是切换到家目录
        
        • 1
    • mkdir

      • 用于创建目录

      • mkdir [选项] 要创建的目录
        
        • 1
      • 常用选项:-p 创建多级目录

    • rmdir

      • 删除空目录

      • rmdir [选项] 要删除的空目录
        
        • 1
      • 目录是非空的无法删除

      • 删除非空目录,需要使用rm -rf 要删除的目录删除非空目录

    • touch

      • 创建空文件,可以一次性创建多个文件

      • touch 文件名称1 [文件名称2] [文件名称3] ...
        
        • 1
    • cp

      • 拷贝文件到指定目录

      • cp [选项] 源文件目录 目标文件目录 # 若目标目录下存在的相同文件,则会提示是否确认覆盖,需要三次确认
        
        • 1
      • 常用选项:-r 递归复制整个文件夹

      • cp [选项] 源文件目录 目标文件目录 # 若目标文件目录不存在,会自动创建
        
        • 1
      • \cp [选项] 源文件目录 目标文件目录 # 强制覆盖目标目录下的已存在的相同文件
        
        • 1
    • rm

      • 移除文件或目录
      • 常用选项
        • -r :递归删除整个文件夹
        • -f:强制删除不提示
      • 使用细节
        • 强制删除不提示的方法:带上-f参数即可
    • mv

      • 移动文件与目录或重命名

      • mv 旧文件名 新文件名 # 重命名
        
        • 1
      • mv 文件名 文件路径 # 移动文件
        
        • 1
    • cat

      • 查看文件内容,只能浏览不能修改,只读

      • cat [选项] 要查看的文件路径
        
        • 1
      • 常用选项-n:显示行号

      • 小技巧:与more结合使用,分页显示

        cat [选项] 要查看的文件[路径] | more
        
        • 1
    • more

      • 一个基于VI编辑器的文本过滤器,他以全屏幕的方式按页显示文本文件的内容。

      • more指令内置了若干快捷键。

      • more 要查看的文件
        
        • 1
      • 操作功能说明
        空格代表向下翻【一页】
        Enter代表向下翻【一行】
        q代表立刻离开 more,不再显示该文件内容。
        Ctrl+F向下滚动一屏
        Ctrl+B返回上一屏
        =输出当前行的行号
        :f输出文件名和当前行的行号
    • less

      • 用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容对于显示大型文件具有较高的效率

      • less 要查看的文件[路径]
        
        • 1
      • 操作功能说明
        空格向下翻动一页
        [pagedown]向下翻动一页
        [pageup]向上翻动一页
        /字串向下搜寻【字串】的功能;n:向下查找,N:向上查找
        ?字串向上搜寻【字串】的功能;n:向上查找,N:向下查找
        q离开less这个程序
    • >

      • 输出重定向:会将文件原内容覆盖
    • >>

      • 追加:不会覆盖文件原内容

      • ls -l > 文件 # 功能描述:列表的内容覆盖写入文件中(文件不存在则创建文件)
        
        • 1
      • ls -al >> 文件 # 功能描述:列表的内容追加到文件中(文件不存在则创建文件)
        
        • 1
      • cat 文件1 > 文件2 # 功能描述:将文件1的内容覆盖到文件2
        
        • 1
      • echo "内容" > 文件 # 将内容直接写入文件
        
        • 1
    • echo

      • 输出内容到控制台

      • echo [选项] [输出内容]
        
        • 1
        • echo $PATH # 输出当前环境变量路径
          
          • 1
    • head

      • 用于显示文件的开头部分内容,默认显示前10行内容

      • head 文件 # 显示文件前10行内容
        
        • 1
      • head -5[-n 5] 文件 # 显示文件前5行内容
        
        • 1
    • tail

      • 用于显示文件的尾部内容,默认显示后10行内容

      • tail 文件 # 显示文件后10行内容
        
        • 1
      • tail -5[-n 5] 文件 # 显示文件后5行内容
        
        • 1
      • tail -f 文件 # 实时追踪该文档的所用更新
        
        • 1
    • ln(这个是LN,不是IN

      • 软连接也叫符号链接,类似于Windows里的快捷方式,主要存放了链接其他文件的路径

      • ln -s [源文件或目录] [软连接名] # 给源文件创建一个软连接,类似于创建一个快捷方式
        
        • 1
      • rm -rf [软连接名] # 删除软连接
        
        • 1
      • 删除软连接的时候软连接名称不要带/,举例:

        • rm -rf SOFTLINK/ # 错误
          rm -rf SOFTLINK # 正确
          
          • 1
          • 2
    • history

      • 查看已经执行过的历史命令,也可以执行历史指令

      • history 数字 # 显示[数字]个指令
        
        • 1
      • history !数字 # 显示历史编号为[数字]的指令
        
        • 1

    时间日期类

    • date

      • 显示当前时间

      • date +[时间格式字符串] # 显示当前时间,格式为时间格式字符串
        
        • 1
      • 例子:date "+%Y-%m-%d %H:%M%S"
        
        • 1
      • 设置日期

        • date -s "2022-11-01 12:45:45" # 将系统时间设置为2022-11-01 12:45:45
          
          • 1
    • cal

      • 查看日历

      • cal [选项] # 选项为年份,即显示某一年的整年日历
        
        • 1

    搜索查找类

    • find

      • find [搜索范围] [选项]
        
        • 1
      • 常用指令

        选项功能
        -name<查询方式>按照指定的文件名查找模式查找文件
        -user<用户名>查找属于指定用户名所有文件
        -size<文件大小>按照指定的文件大小查找文件
      • 查找文件大小大于20兆的文件

        • find / -size +20M # +n 文件大小大于n;-n 文件大小小于n;n 文件大小等于n
          
          • 1
      • 查找/目录下,所有带有.txt的文件

        • find / -name *.txt # 支持通配符
          
          • 1
    • locate

      • 可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。Locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻。

      • 特别说明:

        • 由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate。
      • updatedb
        locate hello.txt
        
        • 1
        • 2
    • grep 和 管道符号|

      • 过滤查找,管道符,将前一个命令的处理结果输出传递给后面的命令处理。

      • grep [选项] 查找内容 源文件
        
        • 1
      • 常用选项

        • 选项功能
          -n显示行号
          -i忽略字母大小写
        • 在这里插入图片描述

    压缩和解压类

    • gzip/gunzip

      • gzip:压缩文件

        • 文件压缩后,不会保留原文件

        • gzip 文件名 # 会自动将文件后缀添加为.gz
          
          • 1
      • gunzip:解压文件

        • gunzip 文件.gz
          
          • 1
    • zip/unzip

      • zip:压缩文件

        • zip [选项] xxx.zip 将要压缩的内容(路径)
          
          • 1
        • 常用选项:-r 递归压缩,即压缩目录

      • unzip:解压文件

        • unzip [选项] xxx.zip 
          
          • 1
        • 常用选项:-d 目录:制定解压后文件的存放目录

    • tar

      • 打包指令:打包目录,压缩后的文件格式:.tar.gz

      • tar [选项] XXX.tar.gz 打包的内容
        
        • 1
      • 选项说明

        • 选项功能
          -c产生.tar打包文件
          -v显示详细信息
          -f指定压缩后的文件名
          -z打包同时压缩
          -x解包.tar文件
      • 将多个文件打包压缩

        tar -zcvf test.tar.gz test1.txt test2.txt ...
        
        • 1
      • 将某个目录下的文件压缩

        tar -zcvf test.tar.gz /home/
        
        • 1
      • 将 test.tar.gz 解压到当前目录

        tar -zcvf test.tar.gz
        
        • 1
      • 将 test.tar.gz 解压到 /home/temp目录下,若目录不存在,不会自动创建,会报错

        tar -zcvf test.tar.gz -c /home/temp
        
        • 1

    组管理和权限管理

    Linux组的基本介绍

    在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念。

    • 所有者
    • 所在组
    • 其它组
    • 改变用户所在的组

    文件/目录 所有者

    查看文件所有者
    • ls -ahl
      
      • 1
    • 文件所有者,并不一定在文件所在组
      在这里插入图片描述

    修改文件所有者
    • chown 用户名 文件名
      
      • 1

    组的创建

    • groupadd 组名
      
      • 1

    文件/目录所在组

    修改文件所在的组
    • chgrp 组名 文件名
      
      • 1

    其他组

    • 除文件的所有者和所在组的用户外,系统的其他用户都是文件的其他组

    改变用户所在组

    • 在添加用户时,可以指定将该用户添加到哪个组中,同样的用root的管理权限可以改变某个用户所在的组。

    • usermod -g 组名 用户名
      usermod -d 目录名 用户名 改变该用户登陆的初始目录
      
      • 1
      • 2

    权限的基本介绍

    rwx权限讲解【重点】

    ls -l中显示的内容如下

    -rwxrw-r-- 1 root root 1212 Feb 2 09:39 abc
    
    • 1
    • 0-9位说明:
      • 可用数据表示为:
        • r=4
        • w=2
        • x=1
        • 因此,rwx = 4+2+1 = 7
      • 第0位确定文件类型:
        • d(目录)
        • -(文件)
        • l(链接,即软连接)
        • c(
        • b
      • 第1-3位确定所有者(该文件的所有者)拥有该文件的权限。–User
      • 第4-6位确定所属组(同用户组的)拥有该文件的权限。—Group
      • 第7-9位确定其他用户拥有该文件的权限。–Other
    • 1
      • 文件:硬连接
      • 目录:子目录数量
    • 第一个root:用户
    • 第二个root:组
    • 1212:文件大小(字节),如果时文件夹,显示4096字节
    • Feb 2 09:39 :文件最后一次修改时间
    • abc:文件名or目录名
    rwx作用到文件
    • [r]代表可读(read):可以读取,查看。

    • [w]代表可写(write):可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件。

    • [x]代表可执行(execute):可以被执行。

    rwx作用到目录
    • [r]代表可读(read):可以读取,Is查看目录内容
    • [w]代表可写(write):可以修改,目录内创建+删除+重命名目录
    • [x]代表可执行(execute):可以进入该目录

    权限管理

    • 修改文件or目录权限

      chmod
      
      • 1
    第一种方式:+、-、=变更权限
    • 字母含义:

      • u:所有者
      • g:所有组
      • o:其他人
      • a:所有人(u、g、o的总和)
    • chmod u=rwx,g=rx,o=x # 文件目录名
      chmod o+w # 文件目录名
      chmod a-x # 文件目录名
      
      • 1
      • 2
      • 3
    第二种方式:通过数字变更权限
    • r=4,w=2,x=1

      • rwx=4+2+1=7

      • 相当于

        chmod 751
        
        • 1
    修改文件所有者
    chown newowner file # 改变文件的所有者
    chown newowner:newgroup file # 改变用户的所有者和所有组
    
    • 1
    • 2
    • 案例演示:请将/home/kkk目录下所有的文件和目录的所有者都改成tom

      • 提示:应该使用root用户操作

      • chown -R tom kkk/
        
        • 1
    修改文件所在组
    chgrp newgroup file # 改变文件的所有组
    
    • 1
    最佳时间-警察土匪游戏
    • police组

      • jack,jerry
    • bandit组

      • xh,xq
    • 创建组:

      • groupadd police
        
        • 1
      • groupadd bandit
        
        • 1
    • 创建用户

      • useradd -g police jack
        useradd -g police jerry
        useradd -g bandit xh
        useradd -g bandit xq
        
        • 1
        • 2
        • 3
        • 4
    • 指定密码

      • passwd jack # 123
        passwd jerry # 123
        passwd xh # 123
        passwd xq # 123
        
        • 1
        • 2
        • 3
        • 4
    • jack创建一个文件,自己可以读写,本组人可以读,其他组没任何权限

      • chmod 640 jack01.txt
        
        • 1
    • jack修改该文件,让其他组人可以读,本组人可以读写

      • chmod o=r,g=rw jack01.txt
        
        • 1
    • xh投靠警察,看看是否可以读写

      • usermod -g police # root用户修改
        
        • 1
      • id xh # xh没有权限
        
        • 1
      • chmod g=rx /jack # 修改jack目录同组权限
        
        • 1
      • xh在修改权限过后需要重新登陆才可以
        
        • 1
    课后练习一
    • 建立两个组(神仙,妖怪)
    • 建立四个用户(唐僧,悟空,八戒,沙僧)
    • 设置密码
    • 把悟空,八戒放入妖怪;唐僧,沙僧在神仙
    • 用悟空建立一个文件(monkey.java该文件要输出i am monkey)
    • 给八戒一个可以rw的权限
    • 八戒修改monkey.java加入一句话(i am pig)
    • 唐僧沙僧对该文件没有权限
    • 把沙僧放入妖怪组
    • 让沙僧 修改 该文件 monkey,加入一句话(“我是沙僧,我是妖怪”)
    课后练习二
    • 用root登录,建立用户mycentos,自己设定密码
    • 用mycentos登录,在主自录下建立目录test/t11/t1
    • 在t1中建立一个文本文件aa,用vi编辑其内容为ls -al
    • 改变aa的权限为可执行文件[可以将当前日期追加到一个文件],运行该文件./aa
    • 删除新建立的目录test/t11/t1
    • 删除用户mycentos及其主自录中的内容
    • 将linux设置成进入到图形界面的
    • 重新启动linux或关机

    Linux磁盘分区、挂载

    分区基础知识

    • gtp分区比mbr优越:
      • 分区更多
      • 容量更大

    Linux分区

    原理

    • Linux来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分。
    • Linux采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。
    • 挂载:磁盘分区加载到Linux文件系统下的方式
    • 卸载:Linux文件系统下的磁盘分区移除
    • 示意图:在这里插入图片描述

    硬盘说明

    • Linux 硬盘分 IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘

    • 对于IDE硬盘,驱动器标识符为“hdx-”,其中“hd”表明分区所在设备的类型,这里是指IDE硬盘了。“x"为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),“~”代表分区,前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑分区。例,hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区。

    • 对于SCSI硬盘则标识为“sdx-”,SCSI硬盘是用“sd”来表示分区所在设备的类型的,其余则和IDE硬盘的表示方法一样。

    • 使用lsblk指令查看当前系统的分区情况:在这里插入图片描述

    查看所有设备挂载情况

    lsblk 
    lsblk -f
    
    • 1
    • 2

    挂载的经典案例

    • 需求:给我们的Linux系统增加一个新的硬盘,并挂载到/home/newdisk

    • 步骤一:在这里插入图片描述

    • 步骤二:

      • 查看分区:lsblk
        
        • 1
      • 分区命令 fdisk /dev/sdb

      • 开始对/sdb分区

        • m 显示命令列表
        • p 显示磁盘分区同fdisk -|
        • n 新增分区
        • d 删除分区
        • w 写入并退出
      • 说明:开始分区后输入n,新增分区,然后选择p,分区类型为主分区。两次回车默认剩余全部空间。最后输入w写入分区并退出,若不保存退出输入q

    • 格式化磁盘:

      • 分区命令:mkfs -t ext4 /dev/sdb1
        
        • 1
      • 其中ext4是分区类型

    • 挂载:

      • mount 设备名称 挂载目录
        
        • 1
      • 例如:

        mount /dev/sdb1 /newdisk
        
        • 1
      • 卸载

        umount 设备名称or挂载目录
        
        • 1
        • 例如:
        umount /dev/sdb1
        umount /newdisk
        
        • 1
        • 2
    • 永久挂载

      • 通过修改文件etc/fstab实现

        • vim etc/fstab
          
          • 1
        • /dev/sdb1 /home/newdisk ext4 defaults 0 0
          
          • 1

        在这里插入图片描述

    磁盘情况查询

    • 查询系统整体磁盘使用情况

      • df -h
        
        • 1
      • 在这里插入图片描述
    • 查询指定目录的磁盘占用情况

      • du -h /目录 # 默认为当前目录
        
        • 1
      • 选项含义
        -s指定目录占用大小汇总
        -h带计量单位
        -a含文件
        –max-depth=1子目录深度
        -c列出明细的同时,增加汇总值
      • 应用实例

        • 统计/home文件夹下文件的个数

          • ls -l /home | grep "^-" | wc -l # wc 统计个数
            
            • 1
        • 统计/home文件夹下目录的个数

          • ls -l /home | grep "^d" | wc -l
            
            • 1
        • 统计/home文件夹下文件的个数,包括子文件夹里的

          • ls -lR /home | grep "^-" | wc -l # -R 递归统计
            
            • 1
        • 统计/home文件夹下目录的个数,包括子文件夹里的

          • ls -lR /home | grep "^d" | wc -l
            
            • 1
        • 以树状显示目录结构

          • tree
            
            • 1
          • 没有tree,使用yum安装

            yum tree
            
            • 1

    网络配置原理

    原理图(含虚拟机)

    • 目前我们的网络连接是NAT模式,网络环境:
      • 在这里插入图片描述

    查看网络IP和网关

    查看虚拟网络编辑器

    在这里插入图片描述

    修改IP地址

    查看网关

    在这里插入图片描述

    查看Windows环境中的VMnet8网络配置(ipconfig指令)

    • 使用ipconfig查看
    • 从网络适配器中查看

    Linux网络环境配置

    指定固定的IP地址

    • 直接修改配置文件来指定IP,并可以链接到外网,编辑vim /etc/sysconfig/network-scripts/ifcfg-ens33
      • 要求:将IP地址配置为静态的
    • 在这里插入图片描述
    • 修改后要重启服务service network restart(重启机器reboot也可以)

    进程管理

    进程的基本介绍

    • 每个执行的程序(代码)都成为一个进程,每个进程都分配一个ID号。

    显示系统执行的进程

    • 查看进程使用的指令:ps,一般来说使用的参数是ps -aux

      • ps指令详解

        字段说明
        PID进程识别号
        TTY终端机号
        TIME此进程所消耗CPU时间
        %CPU正在执行的命或进程名
        %MEM占用内存情况
        VSZ使用的虚拟内存大小(单位:KB)
        RSS使用的物理内存大小(单位:KB)
        STAT进程的状态:S->休眠;R->运行;Z->僵死进程
        COMMAND进程执行时的命令行,过长会被截断
        USER用户名
        STARTED进程的启动时间
        [PPID]父进程识别号
    • ps -a:显示当前终端的所有进程信息

    • ps -u:以用户的格式显示进程信息

    • ps -x:显示后台进程运行的参数

    • ps -ef | more # 查看父进程,以全格式显示当前所有的进程
      
      • 1
      • -e:显示所有进程
      • -f:全格式

    终止进程kill和killall

    • kill [选项] 进程号 # 通过进程号杀死进程
      
      • 1
    • killall 进程名称 # 通过进程名杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用
      
      • 1
    • 应用实例

      • 终止非法用户

        • ps -aux | grep sshd # sshd 查看远程登陆的用户
          kill 进程号
          
          • 1
          • 2
      • 终止远程登陆服务sshd,在适当时候再次启动sshd

        • ps -aux | grep sshd # sshd 查看远程登陆的用户
          kill [sshd进程的进程号]
          
          • 1
          • 2
        • service start sshd # 重启sshd
          
          • 1
        • 在这里插入图片描述

      • 终止多个gedit编辑器

        • killall gedit # gedit是进程名
          
          • 1
      • 强制终止进程

        • 终端对应的文件名是/bin/bash

        • kill -9 [进程号]
          
          • 1

    查看进程数pstree

    pstree -p # 树状形式显示进程PID
    pstree -u # 树状形式显示进程的所属用户ID
    
    • 1
    • 2

    服务管理

    • 服务(service)本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysql,sshd 防火墙等),因此我们又称为守护进程,是Linux中非常重要的知识点。【原理图】

    • systemctl [start|stop|restart|reload|status] 服务名
      
      • 1
    • 使用案例:

      • 关闭防火墙:

        systemctl [start|stop|restart|reload|status] firewalld
        
        • 1
    • 注:这种方式是临时生效,重启后,回到原来的设置;

    • 如果希望永久关闭,or自启动,需要使用chkconfig指令

    查看服务名

    • 查看/etc/init.d文件

    运行级别

    • 详见实用指令-指定运行级别

    开机的流程说明

    在这里插入图片描述

    chkconfig指令

    • 介绍:通过 chkconfig 命令可以给每个服务的各个运行级别设置自启动/关闭

    • 基本语法:

      • 查看服务:

        • chkconfig --list | grep xxx 
          
          • 1
        • 在这里插入图片描述
      • chkconfig 服务名 --list
        
        • 1
        • 在这里插入图片描述
      • chkconfig --level 5 服务名 on/off # 请将sshd服务在运行级别为5的情况下,不要自启动
        
        • 1
        • 在这里插入图片描述

    动态监控进程

    • topps命令很相似。它们都用来显示正在执行的进程。Top 与 ps 最大的不同之处,在于 top 在执行一段时间可以更新正在运行的的进程。

    • top [选项]
      
      • 1
    • 选项说明 :

      • 选项功能
        -d 秒数指定top命令每隔几秒更新,默认是3秒在top命令的交互模式当中可以执行的命令。
        -i使top不显示任何闲置或者僵死进程
        -p通过指定监控进程ID来仅仅监控某个进程的状态
    • 交互操作:

      • 操作功能
        P以CPU使用率排序,默认就是此项
        M以内存的促用率排序
        N以PID排序
        U监控某个指定用户
        q退出top

    查看系统网络情况

    • netstat [选项]
      
      • 1
      • 选项说明:
        • -an:按一定顺序排列输出
        • -p 显示哪个进程在调用
    • netstat -anp # 查看所有网络服务
      
      • 1
    • netstat -anp | grep sshd # 查看名为sshd的网络服务
      
      • 1

    RPM(RedHat Package Manager)包管理

    简单查询指令

    • rpm -qa | grep xx # 查询已安装xx软件的rpm列表
      
      • 1
      • noarch:表示软件是x86等版本通用的

    其他查询指令

    • -qa:查询所安装的所有rpm软件包
    • -q 软件包名:查询软件包是否安装
    • -qi 软件包名:查询软件包信息
    • -ql 软件包名:查询软件包中的文件
    • -qf 文件全路径名:查询文件所属的软件包

    卸载rpm包

    • rpm -e xxx # 卸载名为xxx的软件包
      
      • 1
    • rmp -e --nodeps xxx # 强制删除名为xxx的软件包
      
      • 1

    安装apm包

    • rmp -ivh [RPM包全路径名称]
      
      • 1
      • i:install 安装
      • v:verbose 提示
      • h:hash 进度条

    YUM

    基本介绍

    ​ Yum 是一个Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包

    使用yum的前提是可以联网。

    默认是安装最新的版本。

    基本指令

    • yum list | grep xxx # 查询yum服务器是否有需要安装的xx软件
      
      • 1
    • yum install xxx # 安装指定xxx软件的yum包
      
      • 1
  • 相关阅读:
    InfluxDB时序数据库
    上帝视角一览大数据开发体系
    红海竞争下,「社交+」在中东泛娱乐 App 市场的出海新机遇
    Blazor Hybrid 实战体验:那些你可能没预料到的坑没预料到的坑
    SpringBoot简单入门
    用C语言随机读写二进制文件
    汇编语言快速回顾(以x86_64为例)
    前后端分离项目,vue+uni-app+php+mysql订座预约系统设计与实现(H5移动项目)
    请实现一个函数,输入一个整数数组和一个目标值,在数组中找到两个数使得它们的和等于目标值。
    小学生python游戏编程arcade----可旋转的坦克的发射子弹
  • 原文地址:https://blog.csdn.net/qq_40691970/article/details/127576662