【运维学习】Linux学习笔记-权限管理、任务调度、磁盘、网络配置、进程管理、RPM与YUM

跟着尚硅谷的Linux教程学习
看视频可以直接点击 b站视频地址

权限管理

Linux组

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

  1. 所有者
  2. 所在组
  3. 其它组
  4. 改变用户所在的组
    在这里插入图片描述
文件/目录所有者

一般为文件创建者,谁创建了该文件,就自然地成为该文件的所有者。

查看文件的所有者

ls -ahl(a:all,h:human,l:long list formatting)
在这里插入图片描述
左边是所有者,右边是所在组,默认情况下所在组就是所有者的所在组

修改文件的所有者

chown 用户名 文件名 (change owner)
在这里插入图片描述

组的创建(前面应该讲过)

groupadd 组名

新建用户到一个组里(前面应该讲过)

useradd -g 组名 用户名

文件/目录所在组

当某个用户创建了一个文件后,默认这个文件的所在组就是该用户所在的组。
也是使用ls -ahl查看,左边是所有者,右边是所有组

修改文件所在组

chgrp 组名 文件名(change group)

其他组

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

改变用户所在组

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

权限的基本概念

在这里插入图片描述
0-9 位说明

  1. 第 0 位确定文件类型(d, - , l , c , b)
    1. 【-】普通文件,【d】目录,【l】软链接,【c】字符设备,【b】块文件(比如硬盘)
  2. 第 1-3 位确定所有者(该文件的所有者)拥有该文件的权限。—User
    1. 【w】写,【r】读,【-】无权限,【x】可执行
  3. 第 4-6 位确定所属组(同用户组的)拥有该文件的权限,—Group
  4. 第 7-9 位确定其他用户拥有该文件的权限 —Other
    右边的数字:如果是文件则是硬链接的数量,如果是目录,则为子目录个数
    在这里插入图片描述
rwx权限
  1. 作用在文件
    1. 【r】可以读取,可以查看
    2. 【w】可以写,可以修改没但是不能充分证明删除,是删除一个文件的必要条件,只有对该文件的目录有写权限才可以删除文件。
    3. 【x】可执行
  2. 作用在目录
    1. 【r】可以读取,ls查看目录内容
    2. 【w】可以修改,目录内创建、删除、重命名目录
    3. 【x】可执行,可以进入该目录
权限管理
chmod
  • 使用【+】【-】【=】 变更权限
    u:所有者,g:所有组,o:其他人,a:所有人(u、给、哦、)
    1. chmod u=rwx,b=rx,o=x
    2. chmod o+w
    3. chomd a-x
      在这里插入图片描述

1)给 abc 文件 的所有者读写执行的权限,给所在组读执行权限,给其它组读执行权限。
在这里插入图片描述

2)给 abc 文件的所有者除去执行的权限,增加组写的权限
在这里插入图片描述
3)给 abc 文件的所有用户添加读的权限
在这里插入图片描述

  • 使用数字变更权限(更简洁)
    规则:r=4 w=2 x=1,rwx=4+2+1=7 chmod u=rwx,g=rx,o=x 文件目录名
    相当于 chmod 751 文件目录名
chown

修改文件的所有者
chown newowner file 改变文件的所有者
chown newowner:newgroup file 改变用户的所有者和所有组
-R 如果是目录 则使其下所有子文件或目录递归生效
在这里插入图片描述

1)请将 /home/abc .txt 文件的所有者修改成 tom
在这里插入图片描述

2)请将 /home/kkk 目录下所有的文件和目录的所有者都修改成 tom
首选我们应该使用 root 操作。

在这里插入图片描述

whoami

获取当前用户(who am I)

chgrp

修改文件所在组
chgrp newgroup file
在这里插入图片描述
请将 /home/kkk 目录下所有的文件和目录的所在组都修改成 bandit(土匪) chgrp -R bandit /home/kkk
在这里插入图片描述
有一个课后练习题比较有用,可以去b站看看:权限管理-最佳实践

任务调度类

在这里插入图片描述

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

crontabl [选项]
常用选项:
-e 编辑crontab定时任务
-l 查询crontab任务
-r 删除当前用户的所有crontab任务
service crond restart 重启任务调度

  • 案例
    设置任务调度文件:/etc/crontab
    设置个人任务调度。执行 crontab –e 命令。接着输入任务到调度文件
    如:*/1 * * * * ls –l /etc/ > /tmp/to.txt
    意思说每小时的每分钟执行 ls –l /etc/ > /tmp/to.txt 命令
    步骤如下
    1)cron -e
    2)*/ 1 * * * * ls -l /etc >> /tmp/to.txt
    3)当保存退出后就程序。
    4)在每一分钟都会自动的调用 ls -l /etc >> /tmp/to.txt
  • 参数细节
    在这里插入图片描述
    在这里插入图片描述
    有一个课后练习题比较有用,可以去b站看看:任务调度应用实例

磁盘分区与挂载

分区基础知识

分区的方式:

  1. mbr 分区:
    1. 最多支持四个主分区
    2. 系统只能安装在主分区
    3. 扩展分区要占一个主分区
    4. MBR 最大只支持 2TB,但拥有最好的兼容性
  2. gtp 分区:
    1. 支持无限多个主分区(但操作系统可能限制,比如 windows 下最多 128 个分区)
    2. 最大支持 18EB 的大容量(1EB=1024 PB,1PB=1024 TB )
    3. windows7 64 位以后支持 gtp
windows下的磁盘分区

在这里插入图片描述

Linux分区
原理
  1. Linux 来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构 , Linux 中每个分区都是用来组成整个文件系统的一部分。
  2. Linux 采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录, 且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。
    在这里插入图片描述
    (图有问题,应该是unmount)
硬盘
  1. Linux 硬盘分 IDE 硬盘和 SCSI 硬盘,目前基本上是 SCSI 硬盘
  2. 对于 IDE 硬盘,驱动器标识符为“hdx~”,其中“hd”表明分区所在设备的类型,这里是指 IDE 硬盘了。“x”为盘号(a 为基本盘,b 为基本从属盘,c 为辅助主盘,d 为辅助从属盘),“~”代表分区, 前四个分区用数字 1 到 4 表示,它们是主分区或扩展分区,从 5 开始就是逻辑分区。例,hda3 表示为第一个IDE 硬盘上的第三个主分区或扩展分区,hdb2 表示为第二个IDE 硬盘上的第二个主分区或扩展分区。
  3. 对于 SCSI 硬盘则标识为“sdx~”,SCSI 硬盘是用“sd”来表示分区所在设备的类型的,其余则和 IDE 硬盘的表示方法一样。
lsblk

太长了,按照谐音“老师不离开”记
lsblk -f 查看系统的分区和挂载的情况在这里插入图片描述
直接输入lsblk
在这里插入图片描述
在这里插入图片描述

给Linux虚拟机增加一个硬盘

在这里插入图片描述

  1. 在【虚拟机】菜单中,选择【设置】,然后设备列表里添加硬盘,然后一路【下一步】,中间只有选择磁盘大小的地方需要修改,至到完成。然后重启系统(才能识别)
    在这里插入图片描述

  2. 分区
    分区命令 fdisk /dev/sdb
    开始对/sdb 分区
    • m 显示命令列表
    • p 显示磁盘分区 同 fdisk –l
    • n 新增分区
    • d 删除分区
    • w 写入并退出
    说明: 开始分区后输入 n,新增分区,然后选择 p ,分区类型为主分区。两次回车默认剩余全部空间。最后输入 w 写入分区并退出,若不保存退出输入 q。
    在这里插入图片描述

  3. 格式化磁盘
    分区命令:mkfs -t ext4 /dev/sdb1
    其中 ext4 是分区类型

  4. 挂载
    挂载: 将一个分区与一个目录联系起来
    • mount 设备名称 挂载目录
    • 例如: mount /dev/sdb1 /newdisk
    • umount 设备名称 或者 挂载目录
    • 例如: umount /dev/sdb1 或者 umount /newdisk

  5. 永久挂载
    永久挂载: 通过修改/etc/fstab 实现挂载添加完成后
    执行 mount –a 即刻生效
    在这里插入图片描述

磁盘情况查询
查询系统整体磁盘使用情况
  1. df(disk find)
    df -l(disk find list)
    df -h(disk find human-readable)
    在这里插入图片描述
    在这里插入图片描述
  2. du(disk useage)
    du -h /目录
    查询指定目录的磁盘占用情况,默认为当前目录
    -s 指定目录占用大小汇总
    -h 带计量单位
    -a 含文件
    –max-depth=1 子目录深度
    -c 列出明细的同时,增加汇总值
    在这里插入图片描述

应用案例:

  1. 统计/home 文件夹下文件的个数
    在这里插入图片描述

  2. 统计/home 文件夹下目录的个数
    在这里插入图片描述

  3. 统计/home 文件夹下文件的个数,包括子文件夹里的
    在这里插入图片描述

  4. 统计文件夹下目录的个数,包括子文件夹里的
    在这里插入图片描述

  5. 以树状目录表显示文件夹
    在这里插入图片描述在这里插入图片描述
    关于yum不能使用:
    Centos 6无法使用yum解决办法:(因为2020 12月 os6已经停止更新维护了)
    sed -i “s|enabled=1|enabled=0|g” /etc/yum/pluginconf.d/fastestmirror.conf
    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
    curl -o /etc/yum.repos.d/CentOS-Base.repo https://www.xmpan.com/Centos-6-Vault-Aliyun.repo (报错就换成 curl -o /etc/yum.repos.d/CentOS-Base.repo https://www.xmpan.com/Centos-6-Vault-Aliyun.repo --insecure)
    yum clean all
    yum makecache

网络配置

在这里插入图片描述

查看IP和网关
  1. 查看虚拟网络编辑器
    在这里插入图片描述
  2. 修改ip 地址(修改虚拟网络的ip)
    在这里插入图片描述
  3. 查看网关
    在这里插入图片描述
  4. 查看windows 环境的中VMnet8 网络配置 (ipconfig 指令)
    1. 使用 ipconfig 查看
      在这里插入图片描述
    2. 界面查看
      在这里插入图片描述
      如果需要修改,直接修改下面的子网ip就行
测试主机间的网络联通

ping 目的主机
比如 ping www.baidu.com

Linux网络环境配置
  1. 自动获取
    在这里插入图片描述
    缺点: linux 启动后会自动获取 IP,缺点是每次自动获取的 ip 地址可能不一样。这个不适用于做服务器,因为我们的服务器的 ip 需要时固定的。
  2. 指定固定的ip
    直接修改配置文件来指定IP, 并可以连接到外网(程序员推荐),编 辑
    vi /etc/sysconfig/network-scripts/ifcfg-eth0 这个就是eth0网卡的配置文件
    要求:将 ip 地址配置的静态的,ip 地址为 192.168.184.130
    在这里插入图片描述
    修改后,一定要重启服务
  1. service network restart
  2. reboot 重启系统
    在这里插入图片描述

进程管理

进程简介
  1. 在 LINUX 中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个 ID 号。
  2. 每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如 www 服务器。
  3. 每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
  4. 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。
显示系统执行的进程

ps,查看目前系统中哪些正在执行的进程。(process status)
-a 显示当前终端的所有进程信息。
-u 以用户的格式显示进程信息。
-x 显示后台进程运行的参数
在这里插入图片描述
在这里插入图片描述
ps -aux
在这里插入图片描述

ps指令详解
  1. 指令:ps –aux|grep xxx ,比如我看看有没有 sshd 服务
  2. 指令说明
    •System V 展示风格
    •USER:用户名称
    •PID:进程号
    •%CPU:进程占用 CPU 的百分比
    •%MEM:进程占用物理内存的百分比
    •VSZ:进程占用的虚拟内存大小(单位:KB)
    •RSS:进程占用的物理内存大小(单位:KB)

    •TT:终端名称,缩写 .
    •STAT:进程状态,其中 S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵尸进程,T-被跟踪或者被停止等等
    •STARTED:进程的启动时间
    •TIME:CPU 时间,即进程使用 CPU 的总时间
    COMMAND:启动进程所用的命令和参数,如果过长会被截断显示
应用实例
  1. 要求:以全格式显示当前所有的进程,查看进程的父进程。
    在这里插入图片描述
    •ps -ef 是以全格式显示当前所有的进程
    •-e 显示所有进程。-f 全格式。
    •ps -ef|grep xxx
    •是 BSD 风格
    •UID:用户 ID
    •PID:进程 ID
    •PPID:父进程 ID
    •C:CPU 用于计算执行优先级的因子。数值越大,表明进程是 CPU 密集型运算,执行优先级会降低;数值越小,表明进程是 I/O 密集型运算,执行优先级会提高
    •STIME:进程启动的时间
    •TTY:完整的终端名称
    •TIME:CPU 时间
    •CMD:启动进程所用的命令和参数
  2. 如果我们希望查看 sshd 进程的父进程号是多少,应该怎样查询?
    在这里插入图片描述
终止进程

kill 或 killall

  1. kill
    kill [选项] 进程号,通过进程号杀死进程
    -9 表示强制结束进程
    在这里插入图片描述

  2. killall
    killall 进程名称 ,通过进程名称杀死进程,可支持通配符,在系统负载很大时很有用。
    在这里插入图片描述

案例

案例 1:踢掉某个非法登录用户
在这里插入图片描述
案例 2: 终止远程登录服务 sshd, 在适当时候再次重启 sshd 服务
在这里插入图片描述
案例 3: 终止多个 gedit 编辑器 【killall , 通过进程名称来终止进程】
在这里插入图片描述
案例 4:强制杀掉一个终端
在这里插入图片描述

pstree

以树状图的形式显示进程(需要先安装tree)
在这里插入图片描述

服务(service)管理
介绍

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

服务管理指令
  1. service 服务名 [ start | stop | restart | reload | status ]
    在CentOS 7.0 以后使用 systemctl(system control)
    这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置。如果希望设置某个服务自启动或关闭永久生效,要使用 chkconfig 指令
    案例:对防火墙服务进行操作
    在这里插入图片描述
    似乎还有 condrestart save panic 等指令
    在这里插入图片描述
  2. 查看可用服务telnet指令,需要yum安装,运行下面红框里的三条指令
    在这里插入图片描述
    如果还是没有,就把最后一条换成 yum install telnet
    查看一下22端口(sshd服务)的服务情况。
    在这里插入图片描述
  3. 查看服务名
    1. 命令行输入setup,进入界面后选择【系统服务】
      在这里插入图片描述
    2. ls -l /etc/init.d/
      在这里插入图片描述
  4. 查看或修改服务的运行级别
    vi /etc/inittab
    Linux 系统有 7 种运行级别(runlevel):常用的是级别 3 和 5
    •运行级别 0:系统停机状态,系统默认运行级别不能设为 0,否则不能正常启动
    •运行级别 1:单用户工作状态,root 权限,用于系统维护,禁止远程登陆
    •运行级别 2:多用户状态(没有 NFS),不支持网络
    •运行级别 3:完全的多用户状态(有 NFS),登陆后进入控制台命令行模式
    •运行级别 4:系统未使用,保留
    •运行级别 5:X11 控制台,登陆后进入图形 GUI 模式
    •运行级别 6:系统正常关闭并重启,默认运行级别不能设为 6,否则不能正常启动
    在这里插入图片描述
    /etc/inittab文件
    在这里插入图片描述
    如果不小心将运行级别设置成0或者7,就可以进入单用户模式修改成正常使用。(这个应该在上一篇文章里有使用过)
  5. 给各个运行级别设置自启动/关闭
    1. 通过chkconfig指令
    2. chkconfig --list | grep xxx
    3. chkconfig 服务名 --list
    4. chkconfig -level 5 on/off
    5. 案例
      在这里插入图片描述
      查看sshd的服务启动规则
      在这里插入图片描述

查看防火墙的服务启动规则在这里插入图片描述
自动禁用和自动启动sshd服务
在这里插入图片描述

监控服务
动态监控进程

top指令
top [选项]
选项:
-d 秒数,指定top命令每个几秒更新,默认是3秒
-i 使top显示任何闲置或者僵尸进程
-p 通过指定监控进程id来仅仅监控某一个进程的状态
交互操作说明:
P:以CPU使用率排序,默认此选项
M:以内存使用率排序
N:以PID排序
q:推出top
d:和上面的选项是一个东西。
使用:
输入top指令以后,立刻进入一个交互操作界面。
可以使用交互操作来修改当前监视的规则
在这里插入图片描述
交互操作2:
输入 u 然后提示你输入用户名,使用对应的用户名,即可监控该用户下的进程。
输入 k,然后会提示你想要杀死的进程,输入其id即可杀死进程。
这个指令的说明太多了,如果需要查看直接输入 man top查看。感觉这个有点像Windows的任务管理器。
这篇文章讲的挺详细

监控网络服务状态

使用netstat监控
netstat [选项]
-an 按一定顺序排序输出
-p 显示哪个进程在调用
一般直接输入netstat -anp | more 监控
在这里插入图片描述

RPM与YUM

RPM包管理

一种用于互联网下载包的打包及安装工具,它包含在某些 Linux 分发版中。它生成具有.RPM 扩展名的文件。RPM 是 RedHat Package Manager(RedHat 软件包管理工具)的缩写,类似 windows 的 setup.exe,这一文件格式名称虽然打上了 RedHat 的标志,但理念是通用的。
Linux 的分发版本都有采用(suse,redhat, centos 等等),可以算是公认的行业标准了。

查询

rpm -qa :查询所安装的所有 rpm 软件包
rpm -qa | more [分页显示]
rpm -qa | grep X [rpm -qa | grep firefox ]
rpm -q 软件包名 :查询软件包
是否安装火狐 rpm -q firefox
rpm -qi 软件包名 :查询软件包信息
rpm -qf 文件全路径名 查询文件所属的软件包
rpm -qf /etc/passwd rpm -qf /root/install.log

卸载

rpm -e RPM 包的名称

  1. 如果其它软件包依赖于您要卸载的软件包,卸载时则会产生错误信息。如: $ rpm -e foo
    removing these packages would break dependencies:foo is needed by bar-1.0-1
  2. 如果我们就是要删除 foo 这个 rpm 包,可以增加参数 --nodeps ,就可以强制删除,但是一般不推荐这样做,因为依赖于该软件包的程序可能无法运行
    如:$ rpm -e --nodeps foo
    带上 --nodeps 就是强制删除。
安装

rpm -ivh RPM 包全路径名称
i=install 安装v=verbose 提示h=hash 进度条

YUM
介绍

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

使用

•查询 yum 服务器是否有需要安装的软件
yum list|grep xx 软件列表
•安装指定的 yum 包
yum install xxx 下载安装

最后

一些经常被提到的指令

  1. 如果要清屏:clear
  2. ctrl + c 结束当前任务
  3. xxxx | more 分页查看stdout,有时候输出会很多的情况下用这个
  4. xxxx | grep xxx ,当需要只查看输出种包含特定信息的,只希望看见sshd关的就直接 grep sshd,这个是按行查找的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值