Linux基础学习—2

10. Linux实操篇-组管理和权限管理

10.1 Linux 组基本介绍

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

1) 所有者
2) 所在组
3) 其它组
4) 改变用户所在的组

10.2 文件/目录所有者

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

查看文件的所有者

ls -ahl

修改文件所有者

chown 用户名文件名

要求:使用root创建-一个文件apple.txt,然后将其所有者修改成tom

chown tom apple.txt

10.3 组的创建

基本指令

groupadd 组名
应用实例:
创建一个组,monster
groupadd monster

创建一个用户fox并放入到monster组中
useradd -g monster f

10.4 文件/目录 所在组

ls -ahl

修改文件/目录所在的组

chgrp 组名 文件名
实例:使用root 用户创建文件orange.txt,看看当前这个文件属于哪个组,然后将这个文件所在组,修改到fruit组。
1. groupadd fruit
2. touch orange.txt 
3.看看当前这个文件属于哪个组-> root组
4. chgrp fruit orange.txt

10.5 其它组

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

10.6 改变用户所在组

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

改变用户所在组

usermod -g 新组名 用户名
usermod -d 目录名 用户名 
改变该用户 登陆的初始目录。
特别说明: 用户需要有进入到新目录的权限。
将zwj这个用户从原来所在组,修改到wudang组
usermod -g wudang zwj

10.7权限的基本介绍

ls -l 中显示的内容如下:

-rwxrw-r-- l root root 1213 Feb 2 09:39 abc,

0-9位说明:

第0位确定文件类型(d,-,1,c,b)

        l是链接,相当于windows的快捷方式

        d是目录,相当于windows的文件夹

        c是字符设备文件,鼠标,键盘

        b是块设备,比如硬盘

第1-3位确定所有者(该文件的所有者)拥有该文件的权限。--User

第4-6位确定所属组(同用户组的)拥有该文件的权限,--Group

第7-9位确定其他用户拥有该文件的权限--Other

10.8 rwx权限详解

rwx 作用到文件

1) [ r ] 代表可读(read): 可以读取,查看。
2) [ w ] 代表可写(write):可以修改,但是不代表可以删除该文件,删除一个 文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.
3) [ x ] 代表可执行(execute):可以被执行

rwx 作用到目录

1) [ r ] 代表可读(read): 可以读取,ls查看目录内容
2) [ w ] 代表可写(write):可以修改,对目录内创建+删除+重命名目录
3) [ x ] 代表可执行(execute):可以进入该目录

10.9文件及目录权限实际案例

ls -l 中显示的内容如下:

-rwxrw-r-- l root root 1213 Feb 2 09:39 abc

第一个字符代表文件类型: - l d c b

其余字符每3个一组(rwx)读(r) 写(w)执行(x)

第一组rwx:文件拥有者的权限是读、写和执行

第二组rw-:与文件拥有者同一组的用户的权限是读、写但不能执行

第三组r--:不与文件拥有者同组的其他用户的权限是读不能写和执行

l 文件:硬连接数或目录:子目录数

root        用户

root        组

1213        文件大小(字节),如果是文件夹,显示4096 字节
Feb 2 09:39        最后修改日期
abc        文件名

10.10修改权限-chmod

通过chmod指令,可以修改文件或者目录的权限。

第一种方式:+、-、=变更权限

 u:所有者         g:所有组         o:其他人         a:所有人(u、g、o的总和)

1) chmod u=rwx,g=rx,o=x 文件/目 录名

2) chmod o+w 文件/目录名

3) chmod a-x 文件/目 录名

案例演示

1)给abc文件的所有者读写执行的权限,给所在组读执行权限,给其它组读执行权限。

chmod u=rwx ,g=rx,o=rx abc

2)给abc文件的所有者除去执行的权限,增加组写的权限

chmod u-x g+w abc

3)给abc文件的所有用户添加读的权限

chmod a+r abc

第二种方式:通过数字变更权限

r=4 w=2 x= 1,rwx=4+2+1=7

chmod u=rwx, g=rx,o=x        文件目录名

相当于        chmod 751 文件/目录名

10.11修改文件所有者-chown

改变所有者:
chown newowner 文件/目录 
改变所有者和所在组:
chown newowner:newgroup 文件/目录    
-R 如果是目录则使其下所有子文件或目录递归生效
案例演示

1)请将/home/abc.txt文件的所有者修改成tom

chown tom /home/abc.txt

2)请将/home/test目录下所有的文件和目录的所有者都修改成tom

chown -R tom/home/test

10.12修改文件/目录所在组-chgrp

chgrp newgroup 文件/目录 [改变所在组]
请将/home/abc.txt文件的所在组修改成shaolin (少林)

groupadd shaolin

chgrp shaolin/home/abc.txt

请将/home/test目录下所有的文件和目录的所在组都修改成shaolin(少林)

chgrp -R shaolin/home/test

11.Linux实时操作-定时任务调度

crond 任务调度

crontab进行定时任务的设置

概述

任务调度:是指系统在某个时间执行的特定的命令或程序。

任务调度分类:系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等

        个别用户工作:个用户可能希望执行某些程序,比如对mysql数据库的备份。

示意图

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

快速入门

设置任务调度文件:/etc/crontab

案例:每小时每分钟执行一次 ls -l /etc/ > /tmp/to.txt

crontab -e
*/1 * * * * ls -l /etc/ -> /tmp/to.txt

5个占位符的说明

项目含义
第一个*一小时中的第几分钟
第二个*一天中的第几小时
第三个*一个月的第几天
第四个*一年中的第几月
第五个*一周中的星期几 (0,7都代表周日)
特殊符号  含义
*代表任何时间,如第一个*代表一小时中的每一分钟
代表不连续的时间,如0 8,12,16 * * *代表每天的8:00,12:00,16:00执行一次
-代表连续的时间范围,如0 5 * * 1-6代表周一到周六的5:00执行一次
*/n    代表每隔多久执行一次,如*/10 * * * *代表每10分钟执行一次

应用案例
1、每隔1分钟,将当前的日期信息追加到/tmp/mydate中

*/1 * * * * date >> /tmp/mydate/

2、每隔1分钟,将当前日期和日历都追加到/tmp/mycal中

vim /home/my.sh写入    date >> /tmp/mycal和cal >> /tmp/mycal
chmod u+x /tmp/my.sh    给my.sh增加执行权限
crontab -e并写入    */1 * * * * /home/my.sh

3、每天2:00将mysql数据库testdb备份到文件中

crontab -e
0 2 * * * mysqldump -u root -proot testdb > /home/db.bak

 11.1.6 crond相关指令

conrtab -r:终止任务调度。
crontab -1: 列出当前有那些任务调度
service crond restart    [重启任务调度]

at定时任务

基本介绍

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

使用at命令时,一定要确保atd进程的启动。

//检测atd是否在运行
(ps -ef | grep atd)

at 命令格式 

at [选项] [时间]
ctrl+d 结束at命令的输入,输出两次
at [-mldv] TIME

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+counttime-units,now就是当前时间,time-units是时间单位,这里能够是minutes(分钟)、hours (小时)、days (天)、weeks (星期)。count 是时间的数量,几天,几小时。例如: now + 5 minutes

6)直接使用 today (今天)、tomorrow (明天)来指定完成命令的时间。

12.Linux磁盘分区、挂载

12.1 分区与文件系统

  1. Linux中每个分区都是用来组成整个文件系统的一部分
  2. Linux采用了一种叫做"载入"的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来。这时,要载入的一个分区将使它的存储空间在一个目录下获得。

查看所有设备挂载情况

lsblk 
lsblk -f

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硬盘的表示方法

12.2 增加一块硬盘

1)虚拟机添加硬盘

在[虚拟机]菜单中,选择[设置],然后设备列表里添加硬盘,然后一路[下-步],中间只有选择磁盘大小的地方需要修改,至到完成。然后重启系统(才能识别) !

分区

分区命令

fdisk /dev/sdb

2)开始对/sdb分区

m       显示命令列表
p        显示磁盘分区同fdisk -l
n        新增分区
d        删除分区
w        写入并退出

说明:开始分区后输入n,新增分区,然后选择p,分区类型为主分区。两次回车默认剩余全部空间。最后输入w写入分区并退出,若不保存退出输入q。

3)格式化格式化磁盘
分区命令:

mkfs -t ext4 /dev/sdb1

其中ext4是分区类型

4)挂载

挂载:将一个分区与一个目录联系起来,

mount 设备名称 挂载目录

例如:

mount /dev/sdbl /newdisk

卸载 

umount 设备名称或者挂载目录
umount /dev/sdb1 或者 umount /newdisk

用命令行挂载,重启后会失效

5)设置可以自动挂载

永久挂载:通过修改/etc/fstab实现挂载        

添加完成后执行

mount -a

12.3磁盘情况查询

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

df -h

查询指定目录的磁盘占用情况

du -h

查询指定目录的磁盘占用情况,默认为当前目录

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

12.4 磁盘工作实用指令

统计/opt文件夹下文件的个数

ls -l /opt | grep "^-" | wc -l

统计/opt文件夹下目录的个数

ls -l /opt | grep "^d" | wc -l

统计/opt文件夹下文件的个数,包括子文件夹里的

ls -lR /opt | grep "^-" | wc -l

统计/opt文件夹下文件的个数,包括子文件夹里的

ls -lR /opt | grep "^d" | wc -l

以树状显示目录结构

tree /home/如果没有tree指令,使用yum install tree

13、网络配置

查看linux的网络配置

# linux
ifconfig
# Windows
ipconfig

ping 测试主机之间网络连通性

ping 目的主机
ping www.baidu.com

linux 网络环境配置

第一种方法(自动获取)

说明:登陆后,通过界面的来设置自动获取ip,特点:linux启动后会自动获取IP,

缺点是每次自动获取的ip地址可能不一样

第二种方法(指定 ip)

说明:直接修改配置文件来指定IP,并可以连接到外网

vim /etc/sysconfig/network-scripts/ifcfg ens33

要求:将ip地址配置的静态的,比如: ip地址为192. 168.200.130

ifcfg-ens33文件说明

EVICE=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|bootp|dhcp] (引导时不使用协议|静态分配IPIBOOTP协议|DHCP协议)

BOOTPROTO= =static

#IP地址

IPADDR= : 192.168.200.130
#网关
GATEWAY=192.1 68.200.2
#域名解析器
DNS1=192.168.200.2

重启网络服务或者重启系统生效

service network restart 
reboot

设置主机名和host映射

设置主机名

  1. 为了方便记忆,可以给linux主机设置主机名
  2. 指令 hostname 查看主机名
  3. 修改文件 /etc/hostname,可以指定主机名
  4. 修改后,重启生效 reboot

设置hosts映射

  • windows下
    • 在C:\Windows\System32\drivers\etc\hosts文件指定
  • linux下
    • 在/etc/hosts/文件指定

机名解析过程分析

Hosts

一个文本文件。记录 IP 和 Hostname (主机名)的映射关系

DNS

Domain Name System 域名系统

互联网上作为域名和IP地址相互映射的一个分布式数据库

机制分析

用户在浏览器输入了www.baidu.com

1、浏览器先检查浏览器缓存中有没有该域名解析IP地址,再检查DNS解析器缓存。二者都可以理解为本地解析器缓存。

2、计算机第一次成功访问某一网站后,一定时间内。浏览器或操作系统会缓存DNS解析记录
 

ipconfig /displaydns 查看dns域名解析缓存

ipconfig /flushdns 手动清理dns缓存

3、如果本地解析器缓存中没有找到,那么检查系统的hosts文件。

4、如果本地DNS解析器缓存和host文件都未找到,那么到域名服务DNS进行解析。

14、进程管理

  1. 在Linux中,每个执行的程序都称作一个进程。每个进程都分配一个 ID 号(pid)
  2. 每个进程都可能以两种方式存在(前台/后台)。前台进程就是用户目前的屏幕上可以操作的后台进程就是实际在操作,但是屏幕上无法看到
  3. 一般系统的服务都以后台进程的方式存在,并且常驻在系统中,直至关机。

显示系统执行的进程

ps命令用来查看目前系统中,有哪些正在执行,以及他们执行的状况

ps显示的信息

字段说明
PID进程ID
TTY终端机号
TIME此进程消耗的CPU时间
CMD正在执行的命令或进程名

ps的参数

  • ps -a 显示当前终端所有进程信息
  • ps -u 以用户的形式显示进程信息
  • ps -x 显示后台进程运行的参数
ps -aux | more

USER:执行进程的用户

PID:进程ID

%CPU:占用CPU的百分比

%MEM:占用物理内存的百分比

VSZ:占用虚拟内存(KB);
RSS: 占用物理内存(KB)

TTY:终端名称

STAT:进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D短期等待,Z-僵死进程,T-被跟踪或者被停止等等

START:进程启动时间

TIME:占用的CPU时间

COMMAND:进程名/执行该进程时的指令

终止进程

kill [选项] 进程号 (通过进程号杀死进程)
killall 进程名称 (通过进程名称杀死进程,支持通配符)

常用选项:-9强迫进程立刻停止

查看进程树pstree

pstree [选项]

常用选项

  • -p 显示pid
  • -u 显示进程所属用户

服务管理

服务本质就是后台进程,通常都会监听某个端口,等待其他程序的请求。
比如mysqld,sshd,防火墙等,又称为守护进程

service管理指令

  1. service 服务名 [start|stop|restart|reload|status]
  2. 在centos7后,很多服务不使用 service,而是 systemctl
  3. service指令管理的服务在 etc/init.d 查看

查看服务名

  1. 直接输入setup,可以看到全部服务               
    *号表示自启动
  2. ls -l /etc/init.d/可以看到service指令管理的服务

服务的运行级别

Linux系统的7种运行级别

0:关机
1:单用户【可找回丢失密码】
2:多用户状态,无网络服务
3:多用户状态,有网络服务,控制台界面
4:系统未使用,保留给用户
5:图形界面
6:系统重启

开机流程说明

开机->BIOS->/boot->systemd进程1->运行级别->启动此运行级别对应的服务

chkconfig

  1. 通过chkconfig可以给服务的各个运行级别设置自启动/关闭
  2. chkconfig能够管理的服务在etc/init.d/查看
  3. centos7后,很多服务使用systemctl管理
chkconfig --list [| grep xxx]
chkconfig 服务名 --list
chkconfig --level 5 服务名 on/off
chkconfig --list | grep network

使用细节:

  • 使用chkconfig后,重启生效

systemctl

  • 基本语法:systemctl [start|stop|restart|status] 服务名
  • systemctl指令管理的服务在/usr/lib/systemd/system查看

设置服务自启动状态

  1. systemctl list-unit-files [|grep 服务名]查看服务自启动状态
  2. systemctl enable 服务名设置开机启动
  3. systemctl disable 服务名关闭开机启动
  4. systemctl is-enabled 服务名查询某个服务是否自启动

查看当前防火墙的状况

  • systemctl status firewalld

关闭/重启防火墙

  • systemctl stop/restart firewalld

细节讨论 

  1. 关闭或启用防火墙,会立刻生效。可以使用telnet测试
    指定IP和端口的连接 telnet ip:port
  2. 这种方式仅临时生效,重启后回归以前的设置。
  3. 如果希望永久生效,使用systemctl [enable|disable] 服务名

firewall

firewall-cmd --permanent --add-port = 端口号/协议(打开端口)
firewall-cmd --permanent --remove-port = 端口号/协议(关闭端口)
firewall-cmd --reload(重新载入,设置生效)
firewall-cmd --query-port = 端口号/协议(查询端口情况)

应用案例:

1) 启用防火墙,

测试111端口是否能telnet, 不行

2)开放111端口

firewall-cmd -permanent --add-port=l11/tcp;需要firewall-cmd --reload

3) 再次关闭111端口

firewall-cmd --permanent --remove-port= 111/tcp;需要firewall-cmd --reload

动态监控进程

top [选项]

选项说明

选项功能
-d 秒数指定top命令每隔几秒更新,默认3秒
-i使top不显示任何闲置/僵死进程
-p通过ID指定监控进程

交互操作说明 

操作功能
P以CPU使用率排序,默认选项
M以内存使用率排序
N以PID排序
q退出top

案例

  1. 监视特定用户
    1. 输入top查看执行的进程
    2. 然后输入u回车,再输入用户名
  2. 终止指定进程
    1. 输入top查看执行的进程
    2. 然后输入k回车,再输入进程ID号
  3. 指定系统状态更新的时间
    top -d 10

监控网络状态

netstat [选项]

选项说明

  • -an按一定顺序排列输出
  • -p显示哪个进程在调用

查看sshd服务的信息

netstat -anp | grep sshd

PRM和YUM

RPM

rpm :redhat package manager->redhat软件包管理工具

用于互联网下载包的打包及安装

rpm包的简单查询指令

查询已安装的rpm列表
rpm -qa | grep xx

rpm包名基本格式

name-version-release.os.arch.rpm

软件名称-版本号-发布次数.适合linux系统.硬件平台.rpm

一个rpm包名sqlite-3.7.17-8.el7_7.1.x86_64

名称:sqlite

版本号:3.7.17-8

适用操作系统:el7_7.1.x86_64

  1. el 是 Red Hat Enterprise Linux 的简写,包括Red Hat x.x,CentOS x.x,CloudLinux x.x
  2. 表示centos7.x的64位系统
  3. 如果是i686、i386表示32位系统,noarch表示通用

rpm包其他查询

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

卸载rpm包

rpm -e 软件包名

安装rpm包

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

yum 

Yum是一个Shell前端软件包管理器,基于RPM包管理。
可以从指定服务器自动下载rpm包并且安装,自动处理依赖

基本指令

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值