引言

小比特的随笔:

亲爱的博友所有随笔部分记录的是小比特的一些学习笔记,阅读性不是太强仅供有基础的博友参考,对小白来说阅读起来可能会有些吃力.当然也可以参考啦!小比特将在文章部分提供详细的内容介绍供小白入门,敬请期待吧!

为了让读者快速掌握Linux系统的基本操作,此次内容分为四部分完成对Linux系统基础学习.


第一部分  云计算系统管理

[ 云计算基础]

[Linux系统简介]

[Linux基本操作]

[命令行基础]

[目录和文件管理]

[管理用户和组]

[tar备份与恢复]

[cron计划任务]

[权限和归属]

[软件包管理]

[分区规划及使用]

[NTP时间同步]

[LVM逻辑卷]

[交换分区]

[触发挂载]


第一部分 云计算系统管理


1. Linux系统简介

Linux是一种操作系统!

Unix/Linux发展史(可通过百度百科详细了解)

UNIX诞生,1970-1-1

Linux的诞生:Linux之父,Linus Torwalds

– 1991年10月,发布0.02版(第一个公开版)内核

– 1994年03月,发布1.0版内核

– 内核版本号:主版本.次版本.修订号  4.10.123 用户------>内核------>硬件


2.Linux版本及应用

• 发行版的名称/版本由发行方决定

– Red Hat Enterprise Linux 5/6/7

– Suse Linux Enterprise 12

– Debian Linux 7.8

– Ubuntu Linux 14.10/15.04


3.Linux磁盘表示

hd,表示IDE设备    sd,表示SCSI设备

/dev/sda :表示SCSI设备,第一块

/dev/sdb :表示SCSI设备,第二块

/dev/sdc :表示SCSI设备,第三块

/dev/hdd :表示IDE设备,第四块

Linux系统中第三块SCSI硬盘如何表示?     /dev/sdc


4.列出CPU处理器信息

[student@room9pc01 ~]$ lscpu   #查看CPU的信息

CPU(s):                4

型号名称:        Intel(R) Core(TM) i5-4430S CPU @ 2.70GHz


5.检查内存大小、空闲情况

[student@room9pc01 ~]$ cat  /proc/meminfo   #检查内存大小 

MemTotal:       16330736 kB


6.列出当前系统的主机名称

[root@svr7 桌面]# hostname                 #查看主机名称

[root@svr7 桌面]# hostname  A.tedu.cn             #临时设置主机名

[root@svr7 桌面]# exit                #关闭当前的终端

root@A ~]# ifconfig eth0                #查看网卡IP地址信息

[root@A ~]# ifconfig eth0 192.168.1.1        #临时设置IP地址


7.查看当前系统的版本

[root@localhost ~]# cat  /etc/redhat-release         #查看系统版本信息

CentOS Linux release 7.5.1804 (Core)


8.目录和文件管理

使用pwd、cd

pwd — Print Working Directory            #用途:查看当前工作目录

cd — Change Directory             #用途:切换工作目录

– 格式:cd  [目标文件夹位置]

. 表示当前目录  .. 表示父目录  ~:家目录  ~user表示用户user的家目录  /root:管理员的家目录  /home:存放所有普通用户的家目录

ls — List    # 格式:ls [选项]... [目录或文件名]

• 常用命令选项

– -l:以长格式显示,显示详细信息

– -A:包括名称以 . 开头的隐藏文档

– -d:显示目录本身(而不是内容)的属性

– -h:提供易读的容量单位(K、M等)

[root@1906 ~]# ls -lh /etc/passwd  #显示文件的详细属性

[root@1906 ~]# ls -l /boot/     #显示目录内容详细属性

[root@1906 /]# ls -ld /        #显示目录本身的详细属性

[root@1906 /]# ls -A /root  #显示目录的所有内容,包括隐藏数据

使用通配符

• 针对不确定的文档名称,以特殊字符表示

– *:表示匹配任意多个任意字符    – ?:表示匹配单个字符

[root@1906 /]# ls /dev/tty*  #显示tty开头的数据

[root@1906 /]# ls /etc/*tab    #以tab作为结尾的数据

[root@1906 /]# ls /etc/*.conf  #以.conf作为结尾的数据

[root@1906 /]# ls /dev/tty?

[root@1906 /]# ls /etc/??tab

• 针对不确定的文档名称,以特殊字符表示

– [a-z]:多个字符或连续范围中的一个,若无则忽略

– {a,min,xy}:多组不同的字符串,全匹配

[root@1906 /]# ls /dev/tty[3-8]

[root@1906 /]# ls /dev/tty{1,21,60}

[root@1906 /]# ls /dev/tty{1,3,5,7,9}

别名的定义:简化复杂的命令

• 查看已设置的别名

– alias [别名名称]

• 定义新的别名

– alias 别名名称= '实际执行的命令行'

• 取消已设置的别名

– unalias [别名名称]

[root@1906 /]# hostname             #查看主机名称

[root@1906 /]# alias hn='hostname'   #定义别名

[root@1906 /]# alias   #显示当前系统有效别名

[root@1906 /]# hn      #运行hn执行成功

[root@1906 /]# unalias hn   #删除别名

• mkdir — Make Directory

– 格式:mkdir [-p] [/路径/]目录名...

[root@1906 /]# mkdir -p /vod/movie/cartoon    #-p表示连父目录一起创建

[root@1906 /]# ls -R /opt/aa    #-R表示递归显示

查找文本内容

• 根据字符串模式提取文本行

– grep [选项] '匹配模式' 文本文件...

• 常用命令选项

– -v,取反匹配

– -i,忽略大小写

[root@1906 /]# grep -v root /etc/passwd  #取反查找

[root@1906 /]# grep -i ROOT /etc/passwd  #忽略大小写

– ^word 以字符串word开头

– word$ 以字符串word结尾

[root@1906 /]# grep ^root  /etc/passwd  #以root开头

[root@1906 /]# grep bash$  /etc/passwd  #以bash结尾

rm 删除

• rm — Remove  – 格式:rm [选项]... 文件或目录...

• 常用命令选项

– -r、-f:递归删除(含目录)、强制删除

[root@1906 /]# rm -rf /opt/1.txt    #强制删除所有

mv 移动/改名

• mv — Move  – 格式:mv [选项]... 原文件...   目标路径

[root@1906 /]# mv /opt/a.txt  /opt/nsd

重命名:路径不变的移动

[root@1906 /]# mv /opt/nsd/  /opt/haha

cp 复制

• cp — Copy  – 格式:cp [选项]... 原文件...    目标路径

• 常用命令选项

– -r:递归,复制目录时必须有此选项

/etc:存放系统配置文件

/opt:用户可选择目录

[root@1906 /]# cp /etc/passwd  /opt/

[root@1906 /]# cp -r /home  /opt/

复制可以支持多个参数:永远把最后一个参数作为目标,其他的所有参数都作为源

]# cp  -r    /boot/    /etc/shadow     /etc/resolv.conf   /etc/hosts   /opt/

复制经常与点连用:   . 表示当前路径

[root@1906 network-scripts]# ls

复制出现重名:在本次操作临时取消别名

[root@1906 /]# \cp -r /boot/  /opt/  #本次操作临时取消别名

复制:可以重新命名,目标路径下数据

[root@1906 /]# cp /etc/passwd  /opt/pa.txt

以下两次复制有何不同?

]# rm -rf /opt/*            #删除/opt目录下所有内容

]# cp -r /home/  /opt/test

#将/home目录复制到/opt目录下重命名为test

]# cp -r /home/  /opt/test

#将/home目录复制到/opt/test目录下

重定向输出操作:将前面的命令的输出,写入到文本文件

>:覆盖重定向

>>:追加重定向

管道操作  |  :

将前面命令的输出,交由后面命令处理,作为后面命令的参数

显示/etc/passwd的8至12行内容

[root@1906 ~]# head -12 /etc/passwd

[root@1906 ~]# head -12 /etc/passwd | tail -5


9.管理用户和组

用户帐号:  1.登录系统    2.确认身份,实现权限控制

组:方便管理用户    唯一标识:  UID   GID

组分类: 基本组(私有组)     附加组(从属组)    一个用户至少属于一个组

添加用户

用户基本信息存放在 /etc/passwd文件(系统级配置文件)

[root@1906 ~]# head -1 /etc/passwd

root:x:0:0:root:/root:/bin/bash

用户名:密码占位符:UID:基本组GID:描述信息:家目录:解释器程序

使用 useradd 命令

– useradd [选项]... 用户名

• 常用命令选项

-u 用户id、-d 家目录路径、-s 登录解释器、-G 附加组

[root@1906 ~]# useradd -u 1500 nsd01   #创建用户指定UID

[root@1906 ~]# id nsd01

[root@1906 ~]# useradd nsd02

[root@1906 ~]# id nsd02         #查询nsd02用户基本的信息

[root@1906 ~]# ls /home/

]# useradd -d /opt/abc  nsd05    #创建用户指定家目录

用户名:密码占位符:UID:基本组GID:描述信息:家目录:解释器程序

-s:指定解释器程序

/sbin/nologin:禁止用户登录系统

[root@1906 ~]# useradd  -s /sbin/nologin  nsd13

-G:指定附加组(从属组)

[root@1906 ~]# groupadd tedu   #创建组tedu

[root@1906 ~]# useradd nsd15

[root@1906 ~]# id nsd15

[root@1906 ~]# useradd -G tedu nsd16  #创建用户指定附加组

[root@1906 ~]# id nsd16        #显示用户基本信息

设置登录密码

复杂密码:   3/4原则  字母  数字  大小写  特殊符号

• 使用 passwd 命令

[root@1906 ~]# useradd nsd17

[root@1906 ~]# passwd nsd17

更改用户 nsd17 的密码 。

新的 密码:                  #输入新的密码

重新输入新的 密码:     #重新输入新的密码

passwd:所有的身份验证令牌已经成功更新

[root@1906 ~]# su - nsd17   #命令行临时切换身份

[nsd17@1906 ~]$ passwd

更改用户 nsd17 的密码 。

为 nsd17 更改 STRESS 密码。

(当前)UNIX 密码:              #输入旧的密码

新的 密码:

重新输入新的 密码:

passwd:所有的身份验证令牌已经成功更新。

[nsd17@1906 ~]$ exit   #回到root用户

非交互式设置密码

[root@1906 ~]# echo 123 | passwd --stdin nsd17        #非交互式设置密码

用户密码信息存放在 /etc/shadow 文件

[root@1906 ~]# grep nsd17 /etc/shadow

nsd17:$6$UJ1UmCDO$uxsebJRVxjfOTUngX3nfI21mYCrEYiiPZs6Q4FD5Op7kzEtF7f8

u49XSm8AVGqm6X4Ny/pULXIKngkDIo7pSS1:18079:0:99999:7:::

用户名:密码加密字符串:上一次修改密码的时间:上一次修改密码的时间:1970-1-1~2019-7-2  经历的天数

修改用户属性

• 使用 usermod 命令

– usermod [选项]... 用户名

• 常用命令选项

– -u 用户id、-d 家目录路径、-s 登录解释器    -G 附加组

[root@1906 ~]# useradd nsd19

[root@1906 ~]# grep nsd19 /etc/passwd

]# usermod -u 2500  -G tedu   -s /sbin/nologin          -d   /mnt/abc   nsd19

[root@1906 ~]# grep nsd19 /etc/passwd

[root@1906 ~]# id nsd19

删除用户

• 使用 userdel 命令

– userdel [-r] 用户名

-r:连同家目录一并删除

[root@1906 ~]# userdel nsd01

[root@1906 ~]# userdel -r nsd02   #连同家目录一同删除


管理组账号

添加组

组基本信息存放在 /etc/group文件

• 使用 groupadd 命令

– groupadd [-g 组ID] 组名

[root@1906 ~]# groupadd tarena

[root@1906 ~]# grep tarena /etc/group

tarena:x:2010:

组名:组的密码占位符:组GID:组成员列表

管理组成员

• 使用 gpasswd 命令

– gpasswd -a  用户名   组名

– gpasswd -d  用户名   组名

[root@1906 ~]# gpasswd -a natasha tarena

[root@1906 ~]# grep tarena /etc/group

[root@1906 ~]# gpasswd -d dc tarena

[root@1906 ~]# grep tarena /etc/group

删除组

• 使用 groupdel 命令

– groupdel 组名

案例1:配置用户和组账号

• 新建用户 alex,其用户ID为3456,密码是flectrag

[root@1906 ~]# useradd -u 3456 alex

[root@1906 ~]# echo flectrag  |  passwd --stdin alex

• 一个名为 adminuser 的组

[root@1906 ~]# groupadd adminuser

• 为 natasha 的用户其属于adminuser组,这个组是该用户的从属组

[root@1906 ~]# gpasswd -a natasha adminuser

[root@1906 ~]# id natasha

• 为 harry 的用户,其属于adminuser组,这个组是该用户的从属组

[root@1906 ~]# gpasswd -a harry adminuser

[root@1906 ~]# id harry

• 为 sarah的用户,其在系统中没有可交互的Shell

[root@1906 ~]# useradd -s /sbin/nologin sarah

• natasha 、harry、sarah 的密码都要设置为 flectrag


10.tar备份与恢复

1.整合分散的数据   2.减小空间占用

归档和压缩

• 归档的含义

– 将许多零散的文件整理为一个文件

– 文件总的大小基本不变

• 压缩的含义

– 按某种算法减小文件所占用空间的大小

– 恢复时按对应的逆向算法解压

常见的压缩格式及命令工具:

.gz ---> gzip    .bz2 ---> bzip2    .xz ---> xz

• tar 集成备份工具

– -c:创建归档

– -x:释放归档

– -f:指定归档文件名称

– -z、-j、-J:调用 .gz、.bz2、.xz格式的工具进行处理

– -t:显示归档中的文件清单

– -C(大写):指定释放路径

制作tar包格式:

tar  选项     /路径/压缩包的名字      /路径/被压缩的源数据 .....

]# tar -zcf  /opt/file.tar.gz    /home/   /etc/passwd

]# tar -jcf  /opt/abc.tar.bz2     /home/  /etc/passwd

]# tar -Jcf  /opt/nsd.tar.xz      /home/  /etc/passwd

解包格式:

tar  选项     /路径/压缩包的名字       释放的路径

]# tar -xf /opt/file.tar.gz   -C  /mnt/

案例2:创建一个备份包

使用 tar 工具完成以下备份任务:

– 创建一个名为 /root/backup.tar.bz2 的归档文件


11.cron计划任务

cron任务概述

• 用途:按照设置的时间间隔为用户反复执行某一项固定的系统任务

• 软件包:cronie、crontabs

• 系统服务:crond

• 日志文件:/var/log/cron

管理计划任务策略

• 使用 crontab 命令(不能自动创建目录,需要事先手动创建目录)

– 编辑:crontab -e [-u 用户名]

– 查看:crontab -l [-u 用户名]

– 清除:crontab -r [-u 用户名]

如何编写任务记录

• 配置格式可参考 /etc/crontab 文件

分    时    日    月   周     任务命令行(绝对路径)

*      *    *    *     *      #每分钟都执行

30  23   *     *    *      #每天晚上11:30

30  23   *     *    5      #每周的周五晚上11:30

30  23   *     *    1,3,5      #每周的周五,周一,周三 晚上11:30

30  23   *     *    1-5         #每周的周一至周五 晚上11:30

1    */2   *   *      *          #每两个小时

分   时    日   月      周

1    8     1     *       2           #每周的周二或每月的一号

*:匹配范围内任意时间

,:分隔多个不连续的时间点

-:指定连续时间范围

/n:指定时间频率,每n ...

利用root用户,每分钟记录当前系统时间,写入到/opt/time.txt

[root@1906 ~]# date    #显示系统时间

[root@1906 ~]# date >> /opt/time.txt

[root@1906 ~]# cat /opt/time.txt

[root@1906 ~]# crontab -e

*  *  *  *  *    date >> /opt/time.txt

[root@1906 ~]# crontab -l -u root

*  *  *  *  *    date >> /opt/time.txt


13.权限和归属

基本权限的类别

• 访问方式(权限)

– 读取:允许查看内容-read   r

– 写入:允许修改内容-write    w

– 可执行:允许运行和切换-execute  x

对文本文件:

r: cat  less  head  tail

w: vim  >  >>

x: Shell脚本

• 权限适用对象(归属)

– 所有者:拥有此文件/目录的用户-user  u

– 所属组:拥有此文件/目录的组-group  g

– 其他用户:除所有者、所属组以外的用户-other  o

查看权限

• 使用 ls -l 命令

– ls -ld 文件或目录...

以 d 开头为目录

以 - 开头为文本文件

以 l 开头为快捷方式

• 使用 chmod 命令

– chmod [-R] 归属关系+-=权限类别 文档...

[-R]:递归设置权限

[root@server0 ~]# chmod g+w /nsd01

[root@server0 ~]# ls -ld /nsd01

[root@server0 ~]# chmod ugo=rwx /nsd01

[root@server0 ~]# ls -ld /nsd01

[root@server0 ~]# chmod u=rwx,g=rx,o=rx /nsd01

[root@server0 ~]# mkdir -p /opt/aa/bb/cc  #递归创建

[root@server0 ~]# chmod -R o=--- /opt/aa  #递归设置

Linux判定一个用户拥有的权限         匹配及停止

Permission denied :权限不足

目录的r权限:能够 ls 浏览此目录内容

目录的w权限:能够执行rm/mv/cp/mkdir/touch更改目录内容的操作

目录的x权限:能够 cd 切换到此目录

以root用户新建/nsddir目录,在此目录下新建readme.txt文件

并进一步完成下列操作

1)使用户lisi能够在此目录下创建子目录     su  -  lisi

chmod o+w  /nsddir/

2)使用户lisi不能够在此目录下创建子目录

chmod o-w  /nsddir/

3)使用户lisi能够修改readme.txt文件内容

chmod o+w  /nsddir/readme.txt

4)调整此目录的权限,使所有用户都不能cd进入此目录

chmod u-x,g-x,o-x  /nsddir/

5)为此目录及其下所有文档设置权限 rwxr-x---

chmod -R  u=rwx,g=rx,o=---  /nsddir/

   -R:递归设置权限,目录下及目录下所有

设置文档归属

• 使用 chown 命令

– chown [-R] 属主 文档...

– chown [-R] :属组 文档...

– chown [-R] 属主:属组 文档...

[root@server0 ~]# mkdir /nsd03

[root@server0 ~]# ls -ld /nsd03

[root@server0 ~]# groupadd tedu

[root@server0 ~]# chown lisi:tedu /nsd03

[root@server0 ~]# ls -ld /nsd03

利用root用户新建/nsd06目录,并进一步完成下列操作

1)将属主设为gelin01,属组设为tarena组

[root@server0 /]# useradd gelin01

[root@server0 /]# useradd gelin02

[root@server0 /]# groupadd tarena

[root@server0 /]# chown gelin01:tarena  /nsd06

2)使用户gelin01对此目录具有rwx权限

除属主与属组之外的人,对此目录无任何权限

[root@server0 /]# chmod o=--- /nsd06

3)使用户gelin02能进入、查看此目录内容

[root@server0 /]# gpasswd -a  gelin02  tarena

4)将gelin01加入tarena组, 将nsd06目录的权限设为rw-r-x---

再测试gelin01用户能否进入此目录

[root@server0 /]# gpasswd -a  gelin01  tarena

[root@server0 /]# chmod u=rw,g=rx /nsd06

设置权限,让lisi用户可以读取/etc/shadow文件内容,有几种办法?

1.利用其他人:chmod  o+r  /etc/shadow

2.利用所属组:chown  :lisi /etc/shadow     chmod  g+r  /etc/shadow

3.利用所有者: chown  lisi  /etc/shadow    chmod  u+r  /etc/shadow

4.利用ACL策略 setfacl  -m u:lisi:r  /etc/shadow


14.附加权限(特殊权限)

Set GID

• 附加在属组的 x 位上

– 属组的权限标识会变为 s

– 适用于目录,Set GID可以使目录下新增的文档自动设

置与父目录相同的属组

– 自动继承父目录所属组身份

[root@server0 ~]# chmod g+s /nsd08/   #设置Set GID

[root@server0 ~]# ls -ld /nsd08/

财务: caiwu组

/nsd09/20190703.txt

[root@server0 ~]# chown  :caiwu  /nsd09

[root@server0 ~]# chmod  g+s  /nsd09

Set UID

• 附加在属主的 x 位上

– 属主的权限标识会变为 s

– 适用于可执行文件,Set UID可以让使用者具有文件属主的身份及部分权限

[root@server0 ~]# cp /usr/bin/mkdir /usr/bin/hahadir

[root@server0 ~]# chmod u+s /usr/bin/hahadir

Sticky Bit

• 附加在其他人的 x 位上

– 其他人的权限标识会变为 t

– 适用于开放 w 权限的目录,可以阻止用户滥用 w 写入

权限(禁止操作别人的文档)

[root@server0 ~]# chmod o+t /public

[root@server0 ~]# ls -ld /public

acl访问控制列表

acl策略的作用

• 文档归属的局限性

– 任何人只属于三种角色:属主、属组、其他人

– 无法实现更精细的控制

• acl访问策略

– 能够对个别用户、个别组设置独立的权限

– 大多数挂载的EXT3/4、XFS文件系统默认已支持

[root@server0 ~]# setfacl -m u:lisi:rx /nsd11

[root@server0 ~]# getfacl /nsd11   #专用于查看ACL策略

使用 getfacl、setfacl 命令

– getfacl 文档...

– setfacl [-R] -m u:用户名:权限类别 文档...

– setfacl [-R] -m g:组名:权限类别 文档...

– setfacl [-R] -x u:用户名     文档...      #删除指定ACL

– setfacl [-R] -b 文档...       #清除所有ACL

]# setfacl -m u:genlin01:rwx  /nsd14

]# setfacl -m u:genlin02:---  /nsd14  #设置无任何权限

]# getfacl /nsd14

]# setfacl -x u:genlin02 /nsd14   #删除指定ACL策略

]# getfacl /nsd14

]# setfacl -x u:genlin01 /nsd14  #删除指定ACL策略

]# getfacl /nsd14

]# setfacl -b  /nsd14         #清除所有的ACL策略

]# getfacl /nsd14


15.软件包管理

下载软件包

• 使用wget下载工具

– wget 软件包的URL网址

– wget 软件包的URL网址  -O(大写) /目录路径/新文件名

真机的浏览器:  Ctrl + f 当前页面查找 vsftpd

http://classroom.example.com/content/rhel7.0/x86_64/dvd/Packages/

• RPM Package Manager,RPM包管理器

– rpm -q 软件名...

– rpm -ivh 软件名-版本信息.rpm...

– rpm -e 软件名...

[root@server0 ~]# rpm -q vsftpd    #查询软件是否安装

未安装软件包 vsftpd

[root@server0 ~]# rpm -q firefox

firefox-24.5.0-1.el7.x86_64

]# rpm -ivh /root/vsftpd-3.0.2-9.el7.x86_64.rpm

[root@server0 ~]# rpm -q vsftpd

[root@server0 ~]# rpm -e vsftpd    #卸载软件

[root@server0 ~]# rpm -q vsftpd

]# rpm -ivh /root/vsftpd-3.0.2-9.el7.x86_64.rpm

]# rpm -ql vsftpd  #查询已安装的软件,安装了那些内容

[root@server0 ~]# rpm --import /root/RPM-GPG-KEY-redhat-release

[root@server0 ~]# rpm -e vsftpd

[root@server0 ~]# rpm -q vsftpd

未安装软件包 vsftpd

[root@server0 ~]# rpm -i /root/vsftpd-3.0.2-9.el7.x86_64.rpm

常见的提示:

]# rpm -ivh /root/bind-chroot-9.9.4-14.el7.x86_64.rpm

错误:依赖检测失败:

bind = 32:9.9.4-14.el7 被 bind-chroot-32:9.9.4-14.el7.x86_64 需要


16.Yum配置及使用,自动解决依赖关系安装软件

服务:自动解决依赖关系安装软件

服务端:  1.众多的软件包  2.仓库数据文件  3.构建Web服务或FTP服务

光盘内容中

总结:构建Web服务或FTP服务,共享光盘所有内容

虚拟机classroom构建Web服务,共享光盘所有内容

客户端: 虚拟机server 书写一个配置文件,指定服务端位置

– /etc/yum.repos.d/*.repo

错误的文件会影响正确配置文件

[root@server0 ~]# rm -rf /etc/yum.repos.d/*

[root@server0 ~]# vim /etc/yum.repos.d/dc.repo

[haha]                     #仓库标识,随意写不能有特殊字符

name=rhel7.0 xixi hehe     #仓库描述信息

baseurl=http://classroom.example.com/content/rhel7.0/x86_64/dvd/           #指定服务端位置

enabled=1                  #是否启用本文件配置

gpgcheck=0                 #是否检测红帽签名信息

[root@server0 ~]# yum repolist        #显示仓库信息

[root@server0 ~]# yum -y install sssd

[root@server0 ~]# yum -y install httpd

yum的使用

[root@server0 ~]# yum info 软件名

[root@server0 ~]# yum info vsftpd   #查询软件介绍信息

[root@server0 ~]# yum remove 软件名

[root@server0 ~]# yum remove httpd   #卸载软件

清空Yum的缓存

[root@server0 ~]# yum clean all              #清空yum缓存

已加载插件:langpacks

正在清理软件源: haha

Cleaning up everything

[root@server0 ~]# yum repolist              #检查yum源

案例2:升级Linux内核

1.下载新的内核软件包

[root@server0~]#wget  http://classroom.example.com/content/rhel7.0/x86_64/errata/Packages/kernel-3.10.0-123.1.2.el7.x86_64.rpm (可以去linux挂网下载相应内核版本)

[root@server0 ~]# uname -r            #查看内核版本信息

3.10.0-123.el7.x86_64

[root@server0 ~]# rpm -ivh /root/kernel-3.10.0-123.1.2.el7.x86_64.rpm       #更新内核

[root@server0 ~]# reboot                #重启系统


17.分区规划及使用

扇区默认大小  512字节

容量单位:  EB

1EB=1024*1024TB

一块硬盘的“艺术”之旅

• 识别硬盘 => 分区规划 => 格式化 => 挂载使用

毛坯楼层 => 打隔断 => 装修 =>入驻

一 识别硬盘

sd:SCSI设备  hd:IDE设备    vd:虚拟设备

[root@server0 ~]# lsblk      #查看当前系统所有的硬盘信息

NAME    SIZE  TYPE MOUNTPOINT

vda      10G   disk

└─vda1   10G  part /

vdb      10G   disk

二   分区规划

• MBR/msdos 分区模式

– 1~4个主分区,或者  3个主分区+1个扩展分区(n个逻辑分区)

– 最大支持容量为 2.2TB 的磁盘

– 扩展分区不能格式化

/dev/sda1:第一块SCSI硬盘,第一个主分区

/dev/sda5:第一块SCSI硬盘,第1个逻辑分区

• 修改硬盘的分区表,分出两个主分区,大小都为2G

[root@server0 ~]# fdisk /dev/vdb

n 创建新的分区--->回车--->回车-->回车--->在last结束时 +2G

p 查看分区表

n 创建新的分区--->回车---->回车--->回车--->在last结束时 +2G

d 删除分区

w 保存并退出

[root@server0 ~]# lsblk

[root@server0 ~]# ls /dev/vdb[1-2]

三 格式化 :赋予空间文件系统的过程

文件系统:存储数据的规则

Windows: NTFS   FAT

Linux: ext4(RHEL6)  xfs(RHEL7)

[root@server0 ~]# mkfs.ext4 /dev/vdb1  #格式化为ext4

[root@server0 ~]# blkid /dev/vdb1   #查看文件系统类型

[root@server0 ~]# mkfs.xfs /dev/vdb2 #格式化为xfs

[root@server0 ~]# blkid /dev/vdb2   #查看文件系统类型

四 挂载使用

[root@server0 ~]# mkdir /mypart1        #创建挂在目录

[root@server0 ~]# mount /dev/vdb1 /mypart1        #挂载

[root@server0 ~]# df -h  #正在挂载的设备使用情况

五 开机自动挂载 /etc/fstab

[root@server0 ~]# vim /etc/fstab             #配置开机自动挂载

设备路径      挂载点      类型     参数       备份标记     检测顺序

/dev/vdb1  /mypart1  ext4  defaults  0  0

[root@server0 ~]# umount /mypart2          #取消挂载

[root@server0 ~]# df -h               #查看挂载

[root@server0 ~]# mount -a               #刷新挂载目录

检测/etc/fstab开机自动挂载配置文件,格式是否正确

检测/etc/fstab中,书写完成,但当前没有挂载的设备,进行挂载

综合分区:

最终实现3个主分区均为2G 划分扩展分区,划分2个逻辑分区均为1G

1.识别硬盘   lsblk

2.分区规划   fdisk

3.分区表刷新  partprobe

4.格式化    mkfs.ext4   mkfs.xfs   blkid

5.挂载使用   mount     df  -h

6.开机自动挂载  /etc/fstab  mount   -a


18.LVM逻辑卷

综合分区:

图形添加一块100G硬盘,划分3个主分区,一个扩展分区,三个逻辑分区

[root@server0 ~]# lsblk

[root@server0 ~]# fdisk /dev/vdc

[root@server0 ~]# lsblk

LVM逻辑卷

1.整合分散的空间(分区或整个磁盘)

2.空间的可以扩大

– 零散空闲存储 ---- 整合的虚拟磁盘 ---- 虚拟的分区

物理卷(pv)  Physical Volume

卷组(vg)  Volume Group

逻辑卷(lv)  Logical Volume

将众多的物理卷,整合成卷组,再从卷组中划分逻辑卷

LVM管理工具集

功能 物理卷管理 卷组管理   逻辑卷管理

Scan 扫描  pvscan vgscan   lvscan

Create 创建  pvcreate vgcreate   lvcreate

Display 显示  pvdisplay vgdisplay  lvdisplay

Remove 删除  pvremove vgremove   lvremove

Extend 扩展  / vgextend   lvextend

一 制作逻辑卷

successfully(成功)

1.制作卷组

命令格式: vgcreate 卷组名  设备路径

]# vgcreate systemvg  /dev/vdb /dev/vdc1        #创建卷组

]# vgs  #查看卷组信息

]# pvs  #查看物理卷信息

2.创建逻辑卷

命令格式:lvcreate -L 大小  -n 逻辑卷名称    基于卷组名

]# lvcreate  -L  16G   -n    vo      systemvg         #创建逻辑卷

]# lvs    #查看逻辑卷信息

]# vgs

]# ls /dev/systemvg/vo      #查看逻辑卷设备文件

3.逻辑卷的使用

]# mkfs.xfs  /dev/systemvg/vo  #格式化文件系统

]# blkid /dev/systemvg/vo    #查看文件系统

]# vim /etc/fstab            #查看自动挂载目录

/dev/systemvg/vo /mylv xfs defaults 0 0

]# mkdir /mylv    #创建挂载目录

]# mount -a     #测试是否书写正确

]# df -h        #显示正在挂载设备的使用情况


19.逻辑卷的扩展

一 卷组有足够的剩余空间

1.扩展空间

[root@server0 ~]# lvs

[root@server0 ~]# vgs

[root@server0 ~]# lvextend -L 18G /dev/systemvg/vo

[root@server0 ~]# lvs

2.文件系统的扩展

扩展ext4文件系统: resize2fs

扩展xfs文件系统:  xfs_growfs

[root@server0 ~]# df  -h

[root@server0 ~]# xfs_growfs /dev/systemvg/vo

[root@server0 ~]# df  -h

二  卷组没有足够的剩余空间

1.扩展卷组空间

]# vgextend  systemvg  /dev/vdc2   /dev/vdc3

]# vgs

2.扩展逻辑卷空间

[root@server0 ~]# lvs

[root@server0 ~]# vgs

[root@server0 ~]# lvextend -L 25G /dev/systemvg/vo

[root@server0 ~]# lvs

3.文件系统的扩展

[root@server0 ~]# df  -h

[root@server0 ~]# xfs_growfs /dev/systemvg/vo

[root@server0 ~]# df  -h

了解:逻辑卷也可以做缩小  首先缩小文件系统,在缩减空间

ext4支持缩小    xfs不支持缩小

补充内容: 卷组划分空间的单位  PE        默认 1PE=4MB

[root@server0 ~]# vgdisplay systemvg  #显示卷组详细信息

PE Size               4.00 MiB

创建一个逻辑卷名为lvredhat,大小为250M

]# vgchange -s 1M systemvg

]# vgdisplay systemvg

]# lvcreate -L 250M -n lvtest  systemvg

]# lvs

修改PE的大小为1M

创建一个逻辑卷为500个PE组成

逻辑卷名为lvtest

-l:PE的个数

]# vgchange -s 1M systemvg   #修改PE的大小

]# vgdisplay systemvg   #查看卷组详细信息,PE的大小

]# lvcreate -l 500 -n lvtest  systemvg

]# lvs

逻辑卷的删除:

首先删除逻辑卷,然后在删除卷组(基于该卷组没有任何的逻辑卷)

[root@server0 ~]# lvremove /dev/systemvg/lvredhat

Do you really want to remove active logical volume lvredhat? [y/n]: y

Logical volume "lvredhat" successfully removed

[root@server0 ~]# lvs

[root@server0 ~]# lvremove /dev/systemvg/vo

Logical volume systemvg/vo contains a filesystem in use.

[root@server0 ~]# umount /mylv/

[root@server0 ~]# lvremove /dev/systemvg/vo

Do you really want to remove active logical volume vo? [y/n]: y

Logical volume "vo" successfully removed

[root@server0 ~]# lvs

[root@server0 ~]# vgs

VG       #PV #LV #SN Attr   VSize  VFree

systemvg   4   0   0 wz--n- 39.98g 39.98g

[root@server0 ~]# vgremove systemvg

Volume group "systemvg" successfully removed

[root@server0 ~]# vgs


20.查找文件

• 根据预设的条件递归查找对应的文件

– find [目录] [条件1] [-a|-o] [条件2] ...

– 常用条件表示:

-type 类型(f文件、d目录、l快捷方式)

-name '文档名称'

[root@server0 ~]# find /boot/ -type d   #目录查找

[root@server0 ~]# find /boot/ -type f    #文件查找

[root@server0 ~]# find /boot/ -type l    #快捷方式查找

[root@server0 ~]# find /etc/ -name 'passwd'  #文档名称查找

[root@server0 ~]# find /etc/ -name '*tab'

[root@server0 ~]# find /etc/ -name '*tab*'

[root@server0 ~]# find /etc/ -name '*.conf'

]# find /root/ -name 'nsd*' -a  -type f

]# find /root/ -name  'nsd*'  -type  f

]# find /root/ -name  'nsd*'  -type  d

-size +或-文件大小(k、M、G)

-user 用户名      #按照数据的所有者进行查找

[root@server0 ~]# find /boot/ -size +10M  #大于10M的

[root@server0 ~]# find /boot/ -size -10M

[root@server0 ~]# find /boot/ -size +300k

/proc:不占用磁盘空间,占用内存空间

[root@server0 ~]# find  /  -user student

[root@server0 ~]# find  /home  -user student

-mtime 根据文件修改时间

-mtime +10  #10天之前的数据

-mtime -10  #最近10天之内的数据

[root@server0 ~]# find /root/ -mtime +1000

[root@server0 ~]# find /root/ -mtime +10

[root@server0 ~]# find /root/ -mtime -2

三个月以前:

[root@server0 ~]# find /root/ -mtime +90


21.find扩展使用

• 使用find命令的 -exec 操作

– find .. .. -exec 处理命令 {} \;

– 优势:以 {} 代替每一个结果,逐个处理,遇 \; 结束

]# find /boot/ -size +10M

]# find /boot/ -size +10M     -exec cp  {}  /opt  \;

]# find /root/  -name 'nsd*'   -exec rm  -rf  {}  \;

案例4:查找并处理文件

• 使用find命令完成以下任务

– 找出所有用户 student 拥有的文件

– 把它们拷贝到 /root/findfiles/ 文件夹中

]# find /  -user student  -type f  -exec cp {} /root/findfiles/  \;


22.grep用法

显示文件的有效信息(去除注释行,去除空行)

]# grep -v  ^#  /etc/login.defs

]# grep -v  ^#  /etc/login.defs   |  grep -v  ^$

]# grep -v ^# /etc/login.defs   |  grep -v ^$  > /opt/1.txt

]# less  /opt/1.txt

在Linux大多数配置文件中,以#开头的行为注释行

^$ : 匹配空行


23.NTP时间同步

查看修改系统时间:

[root@server0 ~]# date

[root@server0 ~]# date -s '年-月-日   时:分:秒'

[root@server0 ~]# date -s '2008-10-1  12:10:1'

2008年 10月 01日 星期三 12:10:01 CST

NTP网络时间协议

• Network Time Protocol

– NTP服务器为客户机提供标准时间

– NTP客户机需要与NTP服务器保持沟通

NTP服务器:虚拟机classroom提供标准时间

NTP客户机:虚拟机server同步时间

1.安装chrony客户端软件,寻找时间服务器

[root@server0 ~]# yum -y install chrony

[root@server0 ~]# rpm -q chrony

chrony-1.29.1-1.el7.x86_64

2.修改配置文件

[root@server0 ~]# vim /etc/chrony.conf

#server 0.rhel.pool.ntp.org iburst

#server 1.rhel.pool.ntp.org iburst

#server 2.rhel.pool.ntp.org iburst

server  classroom.example.com  iburst  #指定服务端

3.重启程序(重启服务)

daemon 英 [ˈdiːmən] 美 [ˈdiːmən](古希腊神话中的)半神半人精灵

]# systemctl restart chronyd  #重启程序

]# systemctl enable chronyd  #设置开机自启动

4.测试验证:

[root@server0 ~]# date -s '2000-10-1'

2000年 10月 01日 星期日 00:00:00 CST

[root@server0 ~]# systemctl restart chronyd

[root@server0 ~]# date

2000年 10月 01日 星期日 00:00:13 CST

[root@server0 ~]# date

2019年 07月 05日 星期五 16:21:59 CST


24.准备交换空间(虚拟内存)

缓解真实物理内存的压力

• 相当于虚拟内存,

----当物理内存不够用时,使用磁盘空间来模拟内存

----在一定程度上缓解内存不足的问题

----利用fdisk进行分区,划分两个主分区分别为2G

[root@server0 ~]# fdisk /dev/vdb

[root@server0 ~]# lsblk

二 格式化为交换文件系统

[root@server0 ~]# mkswap /dev/vdb1  #专业格式化交换文件系统

[root@server0 ~]# blkid /dev/vdb1   #查看文件系统类型

三  启用交换分区

[root@server0 ~]# swapon /dev/vdb1  #启用交换分区

[root@server0 ~]# swapon  -s        #查看交换空间的成员信息

[root@server0 ~]# swapoff /dev/vdb1  #停用交换分区

[root@server0 ~]# swapon -s

四 开机自动启用交换分区

[root@server0 ~]# vim /etc/fstab

/dev/vdb1  swap  swap defaults 0 0

[root@server0 ~]# swapoff /dev/vdb1

[root@server0 ~]# swapon -s

[root@server0 ~]# swapon -a  #专门检测/etc/fstab交换分区

[root@server0 ~]# swapon -s


25.补充内容:触发挂载(autofs)

准备工作:在划分一个2G的主分区

[root@server0 ~]# fdisk /dev/vdb

[root@server0 ~]# partprobe    #刷新分区表

[root@server0 ~]# lsblk

[root@server0 ~]# mkfs.xfs  /dev/vdb3   #格式化文件系统

[root@server0 ~]# blkid  /dev/vdb3

1.安装触发挂载的软件包

[root@server0 ~]# yum -y install autofs

2.重启autofs程序

[root@server0 ~]# systemctl restart autofs

[root@server0 ~]# systemctl enable autofs

3.完成对/dev/vdb3触发挂载的配置

最终实现:访问路径/nsd/dc  挂载设备/dev/vdb3 到/nsd/dc

主配置文件:定义监控目录/etc/auto.master

格式:监控目录路径    挂载配置文件路径

挂载配置文件:定义挂载点目录与设备

cd      -fstype=iso9660,ro,nosuid,nodev :/dev/cdrom

挂载点目录    -fstype=文件系统    :挂载设备

[root@server0 /]# mkdir /nsd     #必须手动创建监控目录

[root@server0 /]# vim /etc/auto.master

/nsd              /etc/test

格式:监控目录路径       挂载配置文件路径

[root@server0 /]# cp /etc/auto.misc /etc/test

[root@server0 /]# vim /etc/test    #修改挂载配置文件

dc            -fstype=xfs      :/dev/vdb3

格式: 挂载点目录    -fstype=文件系统    :挂载设备

[root@server0 /]# systemctl restart autofs

[root@server0 /]# systemctl status autofs #查看服务状态

[root@server0 /]# ls /nsd/dc

[root@server0 /]# df -h

云计算之走进LINUX(一)的更多相关文章

  1. 云计算之走进LINUX(二)

    引言 * 第二部分  云计算应用管理 [Shell脚本基础] [使用变量] [条件测试及选择] [列表式循环] [系统安全保护] [配置用户环境] [防火墙策略管理] [ISCSI共享存储] [数据库 ...

  2. Linux基础笔记—— 走进Linux

    走进Linux 操作系统 操作系统是计算机中必不可少的基础系统软件,他的作用是管理和控制计算机系统中的硬件和软件资源,合理有效的组织系统的工作流程,在计算机系统(硬件)与使用者之间提供接口作用. 操作 ...

  3. 走进Linux之systemd启动过程

    Linux系统的启动方式有点复杂,而且总是有需要优化的地方.传统的Linux系统启动过程主要由著名的init进程(也被称为SysV init启动系统)处理,而基于init的启动系统被认为有效率不足的问 ...

  4. 带你走进Linux(Ubuntu)

    类Unix系统目录结构 ubuntu没有盘符这个概念,只有一个根目录/,所有文件都在它下面 /:根目录,一般根目录下只存放目录,在Linux下有且只有一个根目录.所有的东西都是从这里开始.当你在终端里 ...

  5. 一起来学大数据——走进Linux之门,学习大数据的重中之重

    昨天我们看了有关大数据Hadoop的一些知识点,但是要在学习大数据之前,我们还是要为大数据的环境做一些的部署. 那么,今天我们就来讲讲开启我们大数据之路的Linux,跟上我们的脚步yo~ Linux介 ...

  6. 走进Linux的世界

    开源软件Linux的起源: Linux--操作系统. Linux,1991年Linux之父林纳斯 本纳第克特 托瓦兹,创建了Linux操作系统内核(开源). Linux的发行版和RHCE 1.Linu ...

  7. Linux及文件系统基本介绍

    Linux及文件系统基本介绍 1   互联网行业现状 在服务器端市场: 超级计算机 2014年11月的数据显示前500系统中的485个系统都在运行着 Linux 的发布系统,而仅仅只有一台运行着 Wi ...

  8. Linux设备驱动之semaphore机制【转】

    转自:http://blog.csdn.net/xiao229404041/article/details/7031776 Linux设备驱动之semaphore机制在Linux系统中,信号号是一种重 ...

  9. Linux systemd 打开调试终端、添加开机自运行程序

    /************************************************************************* * Linux systemd 打开调试终端.添加 ...

随机推荐

  1. Protobuf 安装及 Python、C# 示例

    01| 简介02| 安装2.1 Windows 下安装03| 简单使用3.1 编译3.2 Python 示例3.3 C# 示例 01| 简介 Protobuf(Protocol Buffers),是 ...

  2. 【Redis】SpringBoot整合Redis

    一.Maven依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId& ...

  3. C#客户端程序Visual Stadio远程调试

    一,需求来源 在开发过程中,可能会要使用Win7 ,Win8 ,Win10等不同版本的系统去做兼容性调试,也有时候会去针对特别的显卡,无线网卡等等硬件设备的机器做优化,有一种较优的方案,那就是使用Vi ...

  4. 代码质量检测(SonarQube)整合中文版+阿里P3C

    代码质量检测(SonarQube)整合中文版+阿里P3C 简介 SonarQube是一种自动代码审查工具,用于检测代码中的错误,漏洞和代码异味.它可以与您现有的工作流程集成,以便在项目分支和拉取请求之 ...

  5. 024 实例5-身体质量指数BMI

    目录 一."身体质量指数BMI"问题分析 1.1 身体质量指数BMI 1.2 问题需求 二."身体质量指数BMI"实例讲解 2.1 身体质量指标BMI 2.1. ...

  6. spring-boot集成spark并使用spark-sql

    首先添加相关依赖: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="h ...

  7. gemfire基本使用以及spring-data-gemfire的使用

    1.安装程序的使用 locator 启动locator gfsh>start locator --name=locator1 指定端口启动 gfsh>start locator --nam ...

  8. ubuntu httpie使用方法

    HTTPie 是用 Python 写的,所以你可以在几乎所有地方(Linux,MacOSX,Windows)安装它.而且,在大多数的 Linux 发行版中都有编译好的安装包. Debian,Ubunt ...

  9. 链表实现比较高效的删除倒数第k项

    最近写链表不太顺,无限的段错误.今天中午写的链表删除倒数第k项,用的带尾节点的双向链表,感觉已经把效率提到最高了,还是超时,改了很多方法都不行,最 终决定看博客,发现原来是审题错了,阳历给的是以-1结 ...

  10. 程序员接触新语言————hello world ^-^,web3种样式表

    我的第一个网页 <!DOCTYPE html> <html> <head lang="en"> <meta charset="U ...