Linux

hsp


1.远程登陆到linux服务器

  1. 为什么要远程?——->小组公网共享linux服务器
  2. 远程操作的软件:xshell(远程登陆),xftp(远程文件上传下载)
  3. 如何连接?:linux 的ifconfig命令
  4. xshell可以实现远程进行linux命令操作,xftp远程文件的windows和xftp互传

2.linux vi和vim编辑器

linux系统内置的vi文本编辑器(相当于windows的记事本)

vim是vi的增强版,有程序编辑能力

2.1常用的三种模式:

  1. 正常模式:用vim打开文档就直接进入的默认模式,可以上下左右移动光标,可以删除字符删除整行
  2. 插入模式:输入i/I
  3. 命令行模式:读取,存盘,替换,离开vim,显示行号。从插入模式进入命令行模式—->先输入esc,再输入冒号(:

2.2vi/vim的快捷键:

  1. vi/vim的各种模式的切换:输入vim filename打开文件(默认模式),输入i/I进入编辑模式 按esc回到默认模式,在默认模式输入:或者 / 进入命令模式 按下esc键退出。在命令模式下:wq(保存退出),q(退出,不保存),q!(强制退出,不保存)
  2. 拷贝当前行:yy,若要拷贝当前行向下5行(包括当前行) 5yy(选中几行)然后输入p(粘贴)
  3. 删除当前行:dd,若要删除当前行向下5行(包括当前行) 5dd
  4. 查找关键字:要在命令行下进行操作:进入命令行,然后输入**/关键字**,回车查找,输入n是查找下一个
  5. 设置文件行号:set nu(设置),set nonu(取消文件行号)
  6. 跳转文件首尾行:默认模式下,G就是文件尾行,gg是文件首行。
  7. 撤销动作:默认模式下,输入u
  8. 快速定位到某一行:默认模式下,输入20(定位到20行),再输入shift+g
  9. 其他…看hsp文档

2.3.关机重启

  1. shutdown -h(halt的意思:停止) now 立刻进行关机
  2. shutdown -h 1,提醒用户一分钟之后关机,与直接输入shutdown的效果一致
  3. shutdown -r(reboot的意思) now 现在重启计算机
  4. halt 关机
  5. reboot 重启计算机
  6. sync 把内存数据同步到磁盘:目前的shutdown/reboot/halt命令都会在关机前自动执行sync命令

2.3.1用户登陆或注销

  1. 切换管理员账户 su root 细节:su - rootsu root :前者用户是root(在root家),后者用户还是原用户(在ahao家),只是有了root权限
  2. logout注销当前用户:注意必须是在 非图形运行级别(在shell下才行,退出当前用户),并且在 运行级别为3 下才有效。

2.4.用户管理

  1. linux是多用户操作系统,若要进行操作,首先要向系统申请用户账号。
  2. 添加用户: useradd 用户名 ,添加谁就会自动创建该用户的家目录,在/home/用户名 中。
  3. useradd -d 指定目录 用户名 在指定目录下(没有可以自动创建),创建用户名同名文件夹。
  4. passwd 用户名 给用户指定密码,若不写用户名则默认给当前用户设置。
  5. 显示当前用户所在的目录 pwd
  6. 删除用户:userdel 用户名 (会保留家目录),userdel -r 用户名(会连带家目录一起删除),但是两者都不能继续登陆了。
  7. 一般情况下建议保留家目录:工作资料要保留。

2.4.1 用户管理2

  1. 查询用户信息指令:id 用户名,可以查询uid,gid和当前组
  2. 切换用户su - 用户名 注意:从权限高的用户切换到权限低的用户不需要输入密码,反之需要。切换回原来:exit/logout
  3. 查看当前用户:whoami(当前用户名)/who am i(首次登陆的用户)

2.4.2 用户组

  1. 给权限相同的组进行分组
  2. groupadd 组名 进行添加,groupdel 组名 进行删除
  3. linux特点:没有消息就是好消息。当默认创建一个用户时,系统会自动将用户分配给与用户名相同的组。
  4. 将用户指定组名进行添加:useradd -g 用户组 用户名
  5. 将用户切换到另外的组:usermod -g 用户组 用户名
  6. 用户组和相关文件:
  • /etc/passwd文件:用户配置文件,记录各种信息。每行含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shll
  • /etc/shadow文件:口令配置文件,每行含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
  • /etc/group文件:记录linux包含的组的信息,每行含义:组名:口令:组标识号:组内用户列表
  • shell的作用:将口令进行解释,输入linux内核操作。

3.实用指令

3.1运行级别

  1. 0关机,1单用户(可以找回丢失的密码),2多用户状态下没有网络服务,3多用户状态下有网络服务(2 4用的少,这个用的多),4系统未使用保留给用户,5图形界面,6系统重启

  2. 常用3和5,init指令切换不同的运行级别:init 3切换至3

  3. 修改默认运行级别,在centos7以前,etc/inittab文件中的

    multi-user.target:analogous to runlevel 3 graphical.target:analogous to runlevel 5 这两句话中

  4. 之后(centos7)用systemctl get-default命令查看当前用户级别
    systemctl set-default TARGET.target(用户级别)命令修改当前用户级别

3.2找回root密码

  1. 不同版本不同
  2. 以7之后为例:在开机界面按“e”,速度要快。
  3. 看老韩文档照抄就行。

3.3帮助指令

  1. man+指令:获取帮助信息,如man ls查看ls指令的帮助信息(ls -a列出包括 . 开头的隐藏文件,linux的隐藏文件以 . 开头)
  2. help+指令

3.4文件目录指令

  1. pwd:显示当前所在的绝对路径。相对路径:从当前目录开始找。
  2. ls显示文件:-l是以列表形式,-lh是以单位显示文件大小。
  3. cd切换:cd ~回到家目录,cd ..回到上一目录
  4. mkdirmkdir 选项 要创建的目录 如-p:可以创建多级目录,mkdir -p /home/animal/dog,相应的目录都会创建
  5. rmdir:删除空目录,rmdir 选项 要删除的空目录,若要删除非空目录:rm -rf 要删除的目录:该命令会递归删除文件夹下所有的文件。(跑路指令rm -rf /*)
  6. touch:创建一个空文件,touch 文件名称
  7. cpcp 选项 source dest:复制从源文件夹source到目标文件夹dest,-r:递归整个文件夹。第二次执行会覆盖,系统会提示。强制覆盖且不提示\cp 反斜杠cp
  8. rm指令rm 选项 要删除的目录或者文件:-r:递归删除整个文件夹,-f:强制删除不提示,-rf:递归删除且不提示
  9. mv指令:移动文件与目录或者重命名。mv 老文件 新文件(重命名)mv 老文件位置 新位置(将文件移动到这个位置去),还可以移动并且重命名。mv 老文件名 新路径/新名称,对文件夹也是相同的操作
  10. cat指令:查看文件内容,cat 选项 要查看的文件 常用选项:-n,显示行号。对于重要的文件推荐使用cat,因为这个指令只能读不能改。为了方便浏览,一般会带上管道命令 | more(将前一个指令的结果交给后面more的指令进行交互,如可以翻页等)
  11. more指令:是基于vi编辑器的文本过滤器,以全屏幕的方式按页显示文本文件的内容。可以和cat配合使用,也可以单独使用。more指令中的快捷键:空格键(向下翻页),enter键(向下一行),q(离开文件,并且不再显示内容),ctrl+f(向下滚动一屏),ctrl+b(返回上一屏),**=(输出当前的行号),:f**(输出文件名和当前行号)。
  12. less指令:与more类似,但比more更加强大,支持各种显示终端。less文件显示内容,并不是一次性全加载,而是根据显示需要加载,对大型文件效率更高。空格键:向下翻页,PageDown和PageUp:向上向下翻页。**/字串:n:向下查找,N:向上查找。q**:离开less这个程序。
  13. echo指令:输出内容到控制台,echo 选项 输出内容
  14. head指令head 文件名默认查看文件的头十行内容。head -n 5 文件名 -n指定查看文件头几行内容
  15. tail指令:与head相反,默认查看尾10行的内容,-n用法相同,tail -f 文件名实时追踪该文档的所有更新。
  16. 箭头>和>>指令:输出重定向和>>追加,echo和>配合:将要输出的指令写在指定的文件中。>会覆盖文件中的原内容,>>追加内容,原先的内容不会覆盖。如果没有这个文件,则会自动创建。
  • 基本语法:
  • ls -l > 文件 ls(列表)出来的内容写入文件中(覆盖)。
  • ls -al >> 文件列表出来的内容追加到文件的末尾。
  • cat 文件1 > 文件2文件1内容覆盖文件2内容
  • echo "内容" >> 文件 将要在控制台输出的内容追加到文件
  1. ln指令
  • 软链接,也称为符号链接,类似于windows里面的快捷方式。主要存放了链接其他文件的路径。
  • 说白了就是访问一个已经链接好的,就相当于访问那个被链接的文件,相当于创建桌面快捷方式来访问程序的意思。
  • 语法:在当前目录下创建一个软链接到哪儿ln -s 原文件或目录 软连接名(自定义软链接名,可以加路径,就是自定义的软链接创建到哪儿)
  • 删除的话直接rm删除软链接名
  1. history指令:查看已经执行过的历史命令。history 10:查看历史执行过的10条指令。!5:执行曾经执行过的第五条指令。

3.5时间日期指令

  1. date指令:显示当前日期:
  • date:显示当前时间
  • date +%Y :显示当前年份
    date +%m:显示当前月份
    date +%d:显示当前是哪一天
    date"+%Y-%m-%d%H:%M:%S”:显示年月日时分秒,按照固定格式
  • date -s 字符串时间,可以设置当前系统时间。
  • cal 选项:不加选项直接显示当前月的日历,cal 2022:显示2022年整年的日历。

3.6查找指令

  1. find指令:
    • find 文件夹名 -name 文件名:根据名称查找
    • find 文件夹名 -user 文件名:按拥有者查找
    • find 文件夹名 -size 200M:按文件大小查找(+是大于,-是小于,不写n是等于,我这个例子就是等于。还有单位有k,M,G)
    • 文件夹名写/就是查全部
  2. locate指令:查找速度特别快,无需遍历整个文件系统,是建立locate数据库。第一次运行前,必须使用updatedb指令创建。
  3. which指令:可以查看指令在哪个目录下
  4. grep指令:grep过滤查找也就是只查找这一个,往往和管道符号|结合使用,表示将前一个命令的处理结果输出传递给后面的命令处理。
    • -n显示匹配行和行号
    • -i忽略字母大小写
    • 例子:cat a.txt | grep "hello"会显示hello所在行,后面还可以继续加管道符cat a.txt | grep "hello" | ...。示意图:image-20230113154857708

3.7压缩和解压

  1. gzip/gunzip指令:gzip用于压缩文件,gunzip用于解压文件

    • gzip 文件:压缩文件为*.gz文件
    • gunzip 文件.gz:解压缩gz文件
  2. zip/unzip:往往用于文件夹压缩,项目打包发布。

    • zip 选项 压缩成.zip 要压缩的内容

    • unzip 选项 文件名.zip

    • zip -r:递归压缩,即压缩目录:将某一个文件夹以及下面的内容压缩。注意压缩目录必须用这个命令。

    • unzip -d 路径 要解压的文件.zip:将文件解压到哪儿,要解压的文件前可加此文件的路径,更精确。

  3. tar指令:是打包指令,没有untar一说。最后打包的指令是.tar.gz文件。

    • 语法:tar 选项 xxx.tar.gz(是打包以后的文件名) 打包的内容,打包目录和文件都行。

    • -c:产生.tar打包文件。

      -v:显示详细信息

      -f:指定压缩后的文件名

      -z:用gzip对文档进行压缩或解压

      -x:解包.tar文件

    • Linux只能压缩一个文件,而多个文件要先对多个文件进行打包才能压缩。image-20230113162300399


4.linux组的介绍

  1. 每个用户必须属于一个组,不能独立于组外。
  2. 每个文件都有,所有者,所在组,其他组的概念。
  3. 文件属于哪一个用户创建的,就属于这个用户所在组,组内成员对这个文件有一定的权限,其他组成员没有。

4.1所有者

  1. 文件/目录的所有者:一般来说,谁创建了该文件/目录,谁就是所有者。
  2. 查看文件所有者命令:ls -ahl :查看当前目录下文件的所有者。
  3. 修改文件的所有者:chown 要改成的用户名 文件名

4.2所在组

  1. 创建组,groupadd 组名
  2. 添加用户 useradd -g 组名 用户
  3. 所在组:当用户创建了文件以后,文件所在组就是用户所在组。
  4. 查看文件/目录所在组指令:ls -ahl:第一个是用户名,第二个是组名。
  5. 修改文件所在组:chgrp 组名 文件名

4.3其他组

  1. 除文件的所有者和所在组的用户外,系统的其他用户都是文件的其他组:说白了就是除去操作的组就是其他组
  2. 在添加用户时,可以指定将该用户添加到哪个组中,同样的用root的管理权限可以改变某个用户所在的组。
    • 添加:usermod -g 新组名 用户名
    • 修改:usermod -d 目录名 用户名 改变该用户登陆的初始目录:修改时必须要有进入新目录的权限

5.权限

5.1rwx权限

  1. 举例:-rwxrw-r--1 root root 1213 Feb 2 09:39 abc

    • 前十位-rwxrw-r--1
    • 第零位-:第0位确定文件类型(d,-,I,c,b),-就是没有
      I是链接,相当于windows的快捷方式
      d是目录,相当于windowsl的文件夹
      c是字符设备文件,鼠标,键盘
      b是块设备,比如硬盘
    • 第1-3位rwx确定所有者(该文件的所有者)拥有该文件的权限。–User
    • 第4-6位rw-确定所属组(同用户组的)拥有该文件的权限,-Group
    • 第7-9r--位确定其他用户拥有该文件的权限-Other
    • image-20230114150440911
  2. rwx权限:

    • 文件:
    • [r]代表可读(read:可以读取,查看
    • [w]代表可写(wite:可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件
    • [x]代表可执行(execute):可以被执行
    • 目录:
    • [r]代表可读(read):可以读取,Is查看目录内容
    • [w]代表可写(wite:可以修改,对目录内创建+删除+重命名目录
    • [x]代表可执行(execute):可以进入该目录
  3. rwx举例:

    • -rwxrw-r--1 root root 1213 Feb 2 09:39 abc

    • -(文件类型)rwx(文件拥有者的权限是读写执行)rw-(与文件拥有者同在一个组的权限是读写)r--(其他组成员对文件的权限是读)1(文件:硬连接数。 如果是目录:子目录数) root(用户) root(所在组) 1213(文件大小(字节),如果是文件夹,显示4096字节) Feb 2 09:39(最后修改日期) abc(文件名)

    • 在linux中也可以用数字来代表相应的权限:可用数字表示为:r=4,W=2,x=1因此rwx=4+2+1=7

5.2 chmod

  1. 修改文件/文件夹权限:

    • 第一种方式:+、-、=变更权限。u:所有者,g:所有组,o:其他人,a:所有人(u、g、o的总和)

      1
      2
      3
      1)chmod u=rwx,g=rx,o=x 文件/目录名 			我要给后面的文件/目录的所有者rwx,所在组的成员rx,其他人x权限
      2)chmod o+w 文件/目录名 给其他用户赋予w的权限
      3)chmod a-x 文件/目录名 给所有人剔除x权限
    • image-20230114164150498变绿说明可执行

    • image-20230114164027869

    • 第二种方式:通过数字变更权限 r=4 w=2 x=1
      rwx=4+2+1=7
      chmod u=rwx,g=rx,o=x 文件目录名
      相当于chmod 751 文件目录名

5.3 chown

  1. 修改文件拥有者
    • chown newowner(所有者名字) 文件/目录:改变所有者
    • chown newowner:newgroup(所有者名字:所有者所在组) 文件/目录:改变所有者和所在组
    • -Rchown -R 所有者 目录 如果是目录则使其下所有子文件或目录递归生效

5.4 chgrp

  1. 修改文件/目录所在组
    • chgrp newgroup(新组名) 文件/目录改变所有组

6.crond任务调度

6.1 概述

  1. 任务调度:是指系统在某个时间执行的特定命全或程序。
  2. 任务调度分类:
    • 系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等
    • 个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份。

6.2 crontab

定时任务设置

  1. 基本语法:crontab 选项
  2. 常见选项:image-20230114171722099
  3. 举例说明:image-20230114172412947
  • ls -l /etc/ > /tmp/to.txt:指令的意思是将/etc/路径重定向(覆盖)到/tmp/to.txt路径

  • 如:*/1**** ls -l /etc/ > /tmp/to.txt意思说每小时的每分钟执行ls-/etc/>/tmp/to.txt命令。*/1就是每一分钟都执行

  • 占位符说明:image-20230114172636865

  • 特殊符号说明:image-20230114172927835

  • 举例:image-20230115121240679

6.3at定时任务

  1. at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行。

  2. 默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业。

  3. at命令是一次性定时计划任务,执行完一个任务后不再执行此任务了。

  4. 在使用at命令的时候,一定要保证atd进程的启动,可以使用相关指令来查看:ps -ef | grep atdps -ef:检测当前正在运行的指令有哪些。

  5. at命令格式:at [选项] [时间]

  6. Ctrl+D结束at命令的输入

  7. 图例:image-20230115121923169

  8. at时间定义:

    • at指定时间的方法:
      1. 接受在当天的hh:mm(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。例如:04:00
      2. 便用midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4点)等比较摸糊的词语来指定时间。
      3. 采用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午。例如:12pm。
      4. 指定命令执行的具体日期,指定格试为month day(月日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年),指定的日期必须跟在指定时间的后面。例如:04:00 2021-03-1。
      5. 使用相对计时法。指定格式为:now+count time-units,now就是当前时间,time-units是时间单位,这里能够是minutes(分钟)、hours(小时)、days(天)、weeks(星期)。count是时间的数量,几天,几小时。例如:now+5 minutes。(五分钟以后)
      6. 直接使用today(今天)、tomorrow(明天)来指定完成命令的时间。

7.linux挂载,磁盘分区

  1. 原理介绍:Linux来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分。
  2. Linux采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。
  3. 示意图:进入到一个目录就是访问某个分区了,就是逻辑存储和物理存储之间的映射。image-20230115124729203
  4. 查看所有设备挂载的情况:lsblk或者lsblk -f,-f:有分区情况,uuid分区唯一标识符,mountpoint挂载点。
  5. 如果硬盘一满了导致/home不够用了,可以加一块硬盘挂载到/home,达到扩容的效果,其他同理。

7.1 linux分区介绍

  1. 硬盘说明:

    • Linux硬盘父IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘。
    • 对于IDE硬盘,驱动器标识符为“hdx”,其中“hd”表明分区所在设备的类型,这里是指IDE硬盘了。”×”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),“”代表分区前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑分区。例,hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区。
    • 对于SCSI硬盘,则标识为“sdx~”,SCSI硬盘是用”sd”来表示分区所在设备的类型的,其余则和IDE硬盘的表示方法一样。
  2. 磁盘情况查询:

    • df -h查询系统整体磁盘使用情况image-20230115130725796

    • du -h查询指定目录的磁盘占用情况,默认为当前目录。

      • -s 指定目录占用大小汇总
      • -h 带计量单位
      • -a 含文件
      • –max-depth=1 子目录深度
      • -c 列出明细的同时,增加汇总值
    • 实用指令:image-20230115131809552

8.Linux网络配置

8.1 NAT网络原理图

  1. image-20230115134604109

  2. 网络配置指令:

    • windows查看VMnet8网络配置:ipconfig指令
    • linux查看网络配置:ifconfig
    • ping:测试主机之间网络的连通性
  3. linux网络配置:

    • 自动获取ip,缺点是每次获取的ip都不一样。image-20230115135137314

    • 指定ip:直接修改配置文件来指定ip,并可以连接到外网(程序员推荐)编辑vi /etc/sysconfig/network-scripts/ifcfg-ens33要求:将ip地址配置的静态的,比如:ip地址为192.168.200.130。

    • ifcfg-ens33 文件说明

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      DEVICE=eth0		#接口名(设备,网卡)
      HWADDR=00:0C:2X:6x:0x:Xx #MAC地址
      TYPE=Ethernet #网络类型(通常是Ethemet)
      UUID=926a57ba-92c6-4231-bacb-f27e5e6a9f44 #随机id
      #系统启动的时候网络接口是否有效(yes/no)
      ONBOOT=yes
      #IP的配置方法[none|static|bootpdhcp](引导时不使用协议|静态分配IP|BOOTP协议|DHCP协议)
      BOOTPROTO=static
      #IP地址
      IPADDR=192.168.200.130
      #网关
      GATEWAY=192.168.200.2
      #域名解析器
      DNS1=192.168.200.2

      image-20230115135802523

    • 在vm的虚拟网络编辑器配置上也要修改image-20230115140355847

8.2 主机名和hosts映射

  1. 设置主机名

    • 为了方便记忆,可以给Linux系统设置主机名,也可以根据需要修改主机名vim /etc/hostname
    • 指令hostname:查看主机名
    • 修改文件在/etc/hostname指定
    • 修改后,重启生效
  2. 设置hosts映射

    • windows:在C:\Windows\System32\drivers\etc\hosts 文件指定即可
      案例:192.168.200.130 hspedu100
    • linux:在/etc/hosts文件 指定
      案例:192.168.200.1 ThinkPad-PC
    • 通过ping 主机名来测试连通性。
  3. 主机名解析过程分析(Hosts、DNS)

    • Hosts是什么:一个文本文件,用来记录IP和Hostname(主机名)的映射关系
    • DNS:
      1.DNS,就是Domain Name System的缩写,翻译过来就是域名系统
      2.是互联网上作为域名和P地址相互映射的一个分布式数据库
  4. 举例:当用户输入一个网站

    • 浏览器先检查浏监器缓存中有没有该域名解析IP地址,有就先调用这个IP完成解析;如果没有检查操作系统DNS解析器缓存,如果有直接返回IP完成解析。这两个缓存,可以理解为本地解析器缓存。
    • 一般来说,当电脑第一次成功访问某一网站后,在一定时间内,浏览器或操作系统会缓存他的P地址(DNS解析记录)如在cmd窗口中输入ipconfig /displaydns //DNS域名解析缓存还有ipconfig /flushdns //手动清理dns缓存
    • 如果本地解析器缓存没有找到对应映射,检查系统中hosts文件中有没有配置对应的域名IP映射,如果有,则完成解析并返回。
    • 如果 本地DNS解析器缓存 和 hosts文件 中均没有找到对应的IP,则到域名服务DNS进行解析域。
    • image-20230115152314390

9.进程管理

  1. 进程,就比如windows任务管理器里面的进程。程序运行起来就是一个进程。在LINUX中,每个执行的程序都称为一个进程。每一个进程都分配一个ID号(id,进程号)=>windows =linux。
  2. 每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
  3. 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。

9.1ps指令

  1. ps命令是用来查看目前系统中,有哪些正在执行,以及它们执行的状况。可以不加任何参数。

  2. image-20230115170111273

  3. image-20230115170120847

  4. 进程的相关信息:image-20230115170351257

    image-20230115170433074

    可以结合管道命令来过滤信息,比如我想看看有没有sshd服务:ps -aux | grep sshd

9.2父子进程

  1. 如果把父进程kill掉,子进程也都将消失

    image-20230115192241187

  2. 举例:

    image-20230115192335286image-20230115195248091

    分析结果:

    image-20230115195308917

9.3终止进程

  1. kill和killall:若是某个进程执行一半需要停止时,或是已消了很大的系统资源时,此时可以考虑停止该进程。使用killall命令来完成此项任务。

  2. kill [选项] 进程号(功能描述:通过进程号杀死/终止进程)
    killall 进程名称(功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)

  3. 常用选项

    -9:表示强迫进程立即停止

9.4查看进程树

  1. 基本语法:pstree [选项],可以更加直观的来看进程信息
  2. 常用选项:
    • -P:显示进程的PID
    • -u:显示进程的所属用户

9.5服务管理

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

  2. service管理指令:

    • service 服务名 [start|stop|restart|reload|status]
    • 在CentoS7.0后很多服务不再使用service,而是systemctl(后面专门讲)
    • service指令管理的服务在/etc/init.d查看image-20230115201702190
  3. 查看服务名:

    • 方式1:使用setup -> 系统服务 就可以看到全部。带星号的为自启动

      image-20230115213631215

    • 方式2:/etc/init.d 看到service指令管理的服务ls -l /etc/init.d

  4. 服务的运行级别:

    • image-20230115214059807
    • image-20230115213954919
    • image-20230115214229161
  5. checkconfig指令

    • image-20230115215035794
    • image-20230115215341848
    • 语法:
      • 查看服务chkconfig --list [|grep xxx]
      • chkconfig 服务名 --list
      • chkconfig --level 5 服务名 on/off
    • 使用细节:chkconfig重新设置服务后自启动回或关闭,需要重启机器reboot生效。
    • 案例:image-20230115215531159
  6. systemctl管理指令

    • 基本语法:systemctl [start|stop|restart|status] 服务名

    • systemctl指令管理的服务在/usr/Iib/systemd/system查看

    • systemctli设置服务的自启动状态
      1.systemctl list-unit-files [|grep服务名](查看服务开机启动状态,grep可以进行过滤)
      2.systemctl enable 服务名(设置服务开机启动)
      3.systemctl disable 服务名(关闭服务开机启动)
      4.systemct is-enabled 服务名(查询某个服务是否是自启动的)

    • 防火墙:防止重要端口被访问

      image-20230116110252709

    • 细节讨论:
      1.关闭或者启用防火墙后,立即生效。[telnet测试某个端口即可]
      2.这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置。
      3.如果希望设置某个服务自启动或关闭永久生效,要使用systemctl [enable|disable] 服务名

  7. firewall指令

    • 打开端口:firewall-cmd --permanent --add-port=端口号/协议
      关闭端口:firewall-cmd --permanent --remove-port=端口号/协议
      重新载入,才能生效:firewall-cmd --reload
      查询端口是否开放:firewall-cmd --query-port=端口/协议
  8. 动态监控进程

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

    • 语法:top 选项

    • 选项说明:image-20230116113424811

    • 直接top,默认-d是三秒

    • image-20230116114500825

    • 交互操作(排序操作):image-20230116114740956

  9. 监控网络状态

    • 查看系统网络情况netstat:基本语法,netstat [选项]
    • 选项说明:
      • -an:按一定顺序排列输出
      • -p:显示哪个进程在调用
      • image-20230116120902118

10.rpm与yum

10.1rmp

  1. 介绍:rpm用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。RPM是RedHat Package Manager(RedHats软件包管理工具)的缩写,类以windows的setup.exe,这一文件格式名称虽然打上了RedHat的标志,但理念是通用的。
  2. rpm包的简单查询指令:查询已安装的rpm列表rpm -qa|grep xx
  3. rpm包名格式:image-20230116123422810
  4. 其他查询指令:
    • rpm-qa:查询所安装的所有rpm软件包
      rpm -qa | more
      rpm -qa | grep X [rpm -qa | grep firefox]
    • 案例:image-20230116124129309
  5. rpm包的管理:
    • 卸载rpm包语法:rpm -e RPM包的名称 //erase
    • image-20230116124625713
    • 安装rpm包的语法:rpm -ivh RPM包全路径名称
    • 参数说明:i=install安装,v=verbose提示,h=hash进度条

10.2yum

  1. 介绍:Yum是一个Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并目且安装,可以自动处理依赖性关系,并目一次安装所有依赖的软件包。
    示意图image-20230116130050395
  2. yum的基本指令:查询yum服务器是否有需要安装的软件
    yum list|grep xx软件列表
    安装指定的yum包
    yum install xxx 下载安装