admin管理员组

文章数量:1570218

        小伙伴们,学习内容前先叠个甲,我也不是卖课的,虽然我和大家一样都是初学者。但是我买了商业性课程,签订了协议。(具体公司学习视频保密)

        所以学习的具体内容,我会结合老师的教学和下发的笔记。最后用一些自己的理解做出解释。时间很紧,一般都是晚上抽空写的。(*^▽^*)

今天是第一天,因为上课过程中,有的同学是线下学习,有的是线上学习,就导致了环境变量配置的软件不齐全,需要下载,多以讲了关于云计算很基础的东西。基本学过计算机原理的都大概知道一些。(后续每天第一阶段的的学习内容,我会在此贴持续更新)。(其他阶段学习的内容,我也会用同样的方式,创个专栏更新)。


ADMIN01(云计算系统管理)Day1

云计算介绍

        云计算含义已经在另外一篇博客讲过了,治理笼统的说,就是网上的高计算力计算机集群,组合在一起,为企业和个人提供服务的操作。云计算行业人士,有“云上人”的圈内称呼。

        其中云计算的服务器是指:能够为其他计算机提供服务的更高级的电脑。算力强大,性能优越的,我大学时期记忆印象深刻的有俗称“算天算地亦算命的”神威-太湖之光天河II号超级计算机

服务器样式有:机架式塔式机柜式刀片式

IDC:互联网信息中心(机房)  

        关于IDC,老师说如果以后找工作,你会云计算数据库的维护与保养,看到IDC维护工程师的招牌工作,就应该知道是机房维修人员,不仅知道啥意思,想干你也能干。(学好英语的好处)

        老师讲了以前服务器的变化,举了个例子,网吧的变化,以前童年时期的黑网吧,机器少,满足不了人们的娱乐需求。后来各种规范后,演变成现在的网咖网城,因为现在科技经济的高速发展变化。人民的物质生活水平得到了巨大提高。现在已经不单单是满足上网单一需求。目前云计算商业发展过程中,见过的大部分云计算服务器,都是机柜式刀片式的。

TCP/IP协议及配置:

服务器的类型尺寸(Unit)一种服务器内存条的衡量尺。(行业黑话)

1u=1.75英寸=44.45毫米=4.445 厘米,2u则是1u的2倍为8.89cm

老师和我们说,别以后去到公司上班,别人问你我们公司的服务器是4U的,你们是几U的,你却说,4U是啥,好吃吗?(可能会被笑话)^_^

典型服务模式:C/S,Client/Server架构

Client:客户机 (可以理解为网上的个人/集体计算机客户机使用资源或功能                 

Sever:服务器–由服务器提供资源或某种功能

TCP/IP是最广泛支持的通信协议集合

TCP/IP(Transmission Control Protocol/Internet Protocol)是指能够在多个不同网络间实现信息传输的协议簇,由网络层的IP协议和传输层的TCP协议组成。

其定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。它是Internet最基本的协议,也是Internet国际互联网络的基础。

        TCP/IP具体内容是分层次的,但是我们学习的关于LIUNX方面的云计算工程师知识,主攻网络在虚拟机库方面的增删改查,感兴趣的小伙伴可以(点击链接内容)去了解了解。

        1.包括大量Internet应用中的标准协议

        2.支持跨网络架构、跨操作系统平台的通信


主机与主机之间通信的三个要素(重点内容,贯彻虚拟机的网络配置)

IP地址(IP address)、子网掩码(subnet mask)、IP路由(IP router)----涉及路由器。

IPv4地址(IP address):

目前我国大部分时间依旧使用IPV4版本的IP地址。

作用:用来标识一个节点(连网设备)的网络地址

地址组成(点分十进制):一共32个二进制位,表示为4个十进制数, . 隔开。(可能面试会用到什么是IPv4地址?你回答时你要不露痕迹的把,这个知识点讲出来,表现自己的知识水平很精细。——面试时候的开胃小菜)。

–32个二进制数:11001100.01010101.11110000.10101010

–4个十进制数: 192.168.1.1    1.2.3.4      18.17.16.15

–二进制的 11111111 = 十进制的 255 (熟记,以后会多次用到)。

IPv6地址(IP address):老师说,夸张的说该版本协议地址,能够装下地球沙漠上的每一粒沙子。(就是那么强,为什么有这个版本协议呢,因为全球的IP地址分配不够了。就像BILIBILI的视屏号AV号用完,开始用BV号一样一样的)。

一共128个二进制


IP地址的分类:判断的依据,只需要查看IP地址的第一个十进制数。

例子:192.168.1.1     18.19.20.21

用于一般计算机网络(网:网络位,主:主机位)以下三类必须掌握

C类地址适合计算机数量较少情况。(小公司/网咖)

A类:1 ~ 127         网+主+主+主

B类:128 ~ 191       网+网+主+主

C类:192 ~ 223       网+网+网+主

组播及科研专用(了解即可)

–D类:224 ~ 239 组播(不是主播,别记错了!)

–E类:240 ~ 254 科研

网络位与主机位的含义:

插播老师教学小课堂:他说网络号主机号创立当初,就是科技人员希望能够在网上创造出抽象的“人”的形象,每一个网络位于主机位,就相当于你的身份证号。

网络号:通俗点说就是,告诉网上的兄弟姐妹们,你是来自那块区域的。

主机号:大致告诉别人,你是在网络号某个区域的某个编号的。

网络名称:网络位不变,主机位全为0

不同网络(区域)之间通信

192.168.1.1=来自192.168.1.0网络(区域),编号为1的计算机

192.168.2.38=来自192.168.2.0网络(区域),编号为38的计算机

子网掩码:为计算机标识IP地址的网络位与主机位,利用二进制的1标识网络位,利用二进制的0标识主机位(老师说面试时可能被问到,子网掩码是什么?这时候你要做好,接下来的问题都会很难的情况发生,你就要反思一下。是不是投简历的时候吹得太过了,或者是真想拷打下你

        

192.168.1.1=11000000.10101000.00000001.00000001

子网掩码=111111111.11111111.11111111.00000000(255.255.255.0)

简写:192.168.1.1  255.255.255.0=192.168.1.1/24(有24个网络位)


IP网络配置练习

        再次叠甲:这个练习题,你配置前一定要记好自己电脑的IP地址。!记好自己电脑的IP地址!记好自己电脑的IP地址!不然记不得怎么改回来了没网络了,别怪我哈。O(∩_∩)O哈哈~ 

        因为我上课时用的是LINUX虚拟机下的Deepin windows模范,在弄个虚拟机整Windows网络配置麻烦。 这里我用自己宿舍的电脑演示方法。配好IP地址后系统会提示没有子网掩码是否生成,你点是就自动出来了。没架构虚拟机之前,不用改,看一看IP地址,用PING命令  测试IP地址连通性就行。(可以连WiFi时候,和不连WiFi时对比


ipconfig:Windows查看IP地址命令

方法一:电脑上按下CTRL + U  ,有的Windows版本是  Windows键位+R.调出来后输入cmd,调出命令行窗口就可以输入 ipconfig,即可查看本机IP地址。


方法二:鼠标右键个性化,找到网络与INternet之后如下。


ping:测试网络通信命令        格式:ping   (自己设置的IP网络地址) 和主机地址:127.0.0.1

有去有回是一次ping操作


网关地址:不同网络之间通信,路由器接口的地址

DNS服务器:将名称解析为对应的IP地址

www.baidu --->DNS服务器---->百度的服务器(192.168.1.1)

钓鱼网站是通过攻击DNS服务器,使用户数据传输不到正版网站服务器中,转而存放到个人伪装的服务器中,进而盗取个人价值信息)。


小伙伴们,以上是小白云计算基础第一阶段,DAy1内容。后续每天有时间我就更。(*^▽^*)


ADMIN02        云计算基础第一阶段 

Day2

Linux系统简介

        1.什么是linux?

        是计算机的重要组成部分,计算机由硬件,软件(系统软件和应用软件 )组成,操作系统中的一种。

        2.Linux发展史

              提到Linux不得不提到它的前身UNIX,诞生于1970年1月1日(彩蛋:LInux系统最早时间)。有Ken Thomposon、Dennis Ritchie于1969年根据MULTICS项目的经验,开发出UNICS操作系统,后改名为UNIX。

                1973年用C语言重写了UNIX.由于收费繁多问题,90年代逐渐被发展壮大的LINUX取代,

标准读音:“哩吶科斯”。吉祥物:企鹅(创始人Linus Torwalds简称“哩吶斯”,小时候被企鹅咬过,对此印象深刻,选用企鹅作为吉祥物。)

        想要安装新Linux系统内核的小伙伴,可以去官网下载。kernel(全球唯一官网)

        版本号鉴别如下图:

        

Linux发行版本有哪些(以下是市面上常用的,需要加强记忆,可能面试会问到用过哪些Linux版本)?

Red Hat Enterprise Linux 6/7/8(大多数企业在用)/9

Rocky Linux 8(多数企业用)/9

Suse Linux Enterprise 12

Debian Linux 7.8

Ubuntu Linux 22.01 

企业中应用

嵌入式系统开发,高性能的大型运算,基于Linux的企业服务器。       

安装Linux系统

1.使用虚拟机软件并初始化

windos中安装虚拟机,需要找到想要一直在虚拟机中运行的LinuxISO镜像版本,各种版本有各种版本的好处,CENTOS 7(Windows用户推荐)的镜像能够兼容Vmvare最新版本,Rockey和RHEL(红帽)的现在多数企业再用。(Windows操作系统安装)。

windos系统安装过程中,出现禁用虚拟化状态警告,需要重启进入BIOS中相应位置开启。电脑运行内存大于8G即可。

Widows系统步骤:

打开VMware虚拟机软件

创建VMware虚拟机,如图-24至图-30所示。

图-24

图-25

通过浏览按钮,找到事前下载号的系统镜像文件

图-26

图-27 (老规矩,别放C盘)

图-28

图-29

图-30

安装操作系统,如图-31至图-42所示。

图-31 时间校对正确

图-32 初学者选带GUI化界面的,老手选里面的最小安装。

图-33 安装目标位置,进去直接点完成。

root(VIP)用户的名称和密码点进去设置(选自己记得清楚的,毕竟长时间用),

下面的普通用户,也是点击进去创建用户名和密码(做效果权限对比的)。

全部完成之后,点击开始安装。(linux系统的虚拟机安装步骤也大差不差。)

初始化:点击接收协议,确认网络连接。(勾选)重启系统,选择第一个选项。(鼠标放到屏幕中间,用小键盘上下键选取)。完成后一顿下一步,进入到系统界面。

Linux目录结构是:倒挂的树形结构,从根目录出发,分支到个个小文件目录。

磁盘接口表示:

IDE(大头电脑时期,4针形状接口)

SCSI(最方便好用的接口),卡槽接口(样子像小霸王插卡机,最小巧,最昂贵)。

磁盘表示:

Linux基本命令操作

进入虚拟机终端界面,会看到如下内容。

ifconfig:查看本虚拟机IP地址,自行找到标有IPV4行的代码。就能看到IP地址(IPadress)和子网掩码(subnetmask)。【记不清的小伙伴看第一天的内容。^_^】

~:表示家目录 ,

“ /” :表示根目录。

输入cd :切换工作目录。如  cd   /dev/1.txt  (注意:第一个 /  表示更目录,后续的都只表示分割符)

输入cd ../  :返回上一级,类似于 网页的上一步按钮。

输入pwd  :查看当前工作目录。

输入ls: 能列出当前目录下,所包含的文件数据类型。

输入cat: cat /dev/某某文件  查看某某文件

文件信息过长时:可以  按 ctrl  + c 退出,比如ping命令时。

输入less:less  文件名。作用:查看某某文件数据。可以用鼠标滚轮查看,查看完成后按Q退出。

输入lscpu:查看CPU处理器信息。 输入  cat /proc/meminfo  查看内存大小情况(文件系统自带)。

输入hostname:hostname  查看主机名称(只显示第一个逗号前端的主机名称)。

输入hostname  hostname  abc.xixi.hehe(暂时更改主机名称)

创建文档:mkdir /某某文件夹/要创建的文档名

新建空文件: touch  /文件位置/文件名.格式

写文件内容:vim /文件夹/文件名.格式(没有则直接自动生成)

按i/o进入插入模式,可以书写内容。完成后按ESC ,切换英文模式 输入  :号,并输入wq保存并退出。 !q是强制退出。

查看文件头部(开始10行)

[root@localhost ~]# head /etc/fstab

查看文件末尾信息(末尾10行)

[root@localhost ~]# tail /var/log/messages  (文件名和绝对路径,你要看啥就写啥)

关机及重启: poweroff(关机)、reboot(重启)。

ADMIN DAY03 

一、命令行基础

小插曲:想要调代码行与LINUX背景风格。可以在虚拟机中,》点击 编辑》点击首选项

其中文本可以改字体大小,颜色可以换系统代码配色方案。


1)什么是命令:

        指用来实现某种功能的指令或程序。依赖于解释器(例如:/bin/bash)

   分为外部命令 和内部命令。

格式:  命令名称  [命令选项]  [参数]。  注意:多个参数用空格隔开。

长选项:例如:-help    短选项:例如 -l ,-u ,-a.复合选项:多个短选项组合:  -la  ,-lu.

2) 文件颜色代表什么?

     黑黄色:  设备文件。        天青色/浅蓝色:原数据/快捷方式。  蓝色:文件/目录。

二、快捷操作指令

TAB :补全名称、命令、参数、文件名等。   按两次可以展示全部类似的代码。

ctrl + L:清除屏幕。(让画面更清爽)

ctrl +c: 结束命令运行。         ESC + . 或者    ALT + . :复制上一个代码。

 Ctrl + u:从光标处清空至行首        Ctrl + k:从光标处清空至行尾

Ctrl + w:往回删除一个单词(以空格界定)

小键盘区域快捷键:

Home键:从光标处快速到行首                        end键:从光标处快速到行尾


 三、文件挂载操作

  • VMware虚拟机,如图-2、图-3所示。

               图-2

                            图-3

1)什么是挂载?

        指将光盘/u盘/分区/网络存储等设备装到某个linux目录,各种命令工具可以通过访问Linux目录拉埃操作这些设备。

命令格式:  mount  /dev(系统设备目录)/优盘名称(目录名称)  /mnt (设置挂载后,系统自带挂载目录)。  代码运行截图如下展示

提示:可以自己创建一个目录,存放挂载的光盘内容。方便演示后续卸载操作。

卸载命令: umount   /dvd (文件目录:取的名字是什么,就输什么)

注意:图片中报错内容是 ,挂载文件是只读属性,你不能更改内容。

注意事项:

1.卸载:当前所在的路径是挂载点目录

[root@localhost mydvd]# umount /mydvd

umount: /mydvd:目标忙。

(有些情况下通过 lsof(8) 或 fuser(1) 可以

找到有关使用该设备的进程的有用信息)

2.允许:一个设备,挂载到不同的挂载点目录

3.不允许:一个挂载点目录,挂载多个设备

4.建议挂载点目录,最好自行创建


四、目录与使用

1)cd的命令使用

  1. 家目录:专门存放用户个性化信息的目录
  2. ~user:用户user的家目录
  3. #cold_bold/root:Linux管理员的家目录 (可以理解为超级VIP,权限多)
  4. #cold_bold/home:存放所有普通用户的家目录
  5. 以 “.”开头的文件是隐藏文件。例如: /etc/.haha.txt
  6. [root@localhost /]# cd ~root #去往root用户的家目录
  7. [root@localhost /] pwd          #查看当前目录(路径情况)
  8. [root@localhost /]# useradd dc #创建用户dc
  9. [root@localhost /]# cd ~dc #去往dc用户的家目录
  10. [root@localhost /]# pwd
  11. [root@localhost /]# useradd tom #创建用户tom
  12. [root@localhost /]# cd ~tom #去往tom用户的家目录
  13. [root@localhost /]# pwd

    2) -ls  命令的相关操作

  14. ls — List

  15. 格式:ls [选项]... [目录或文件名]

    常用命令选项:

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

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

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

  16. -A:显示所有内容,包含隐藏数据

  17. -R:递归显示目录内容

  18. 演示如下:3)通配符的使用(后续与正则表达式有关)

    1. *  :任意多个任意字符               ?:单个字符(必须要有一个)
    2. [a-z]:多个字符或连续范围中的一个,若无则忽略

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

    3. 4)别名的定义 与删除

    4. 定义: alias  定义名 =‘被定义远命令名’
    5. 查看所有别名: alias
    6. 删除 :unalias 定义名
    7. 5)目录与文件管理

  • mkdir — Make Directory   #创建目录

    格式:mkdir [/路径/]目录名…

    [-p]:连同父目录一并创建

  • rm 删除 Remove

    格式:rm [选项]... 文件或目录…

    常用命令选项

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

  • mv — Move移动(类似剪切):源数据会消失

    格式:mv 原文件… 目标路径

  • 重命名:路径不变的移动即可。

  • cp — Copy:源数据不会消失

    格式:cp [选项]... 原文件… 目标路径

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

  • 注意事项:

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

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

  • 复制与一个点进行连用,将数据复制到当前路径下

  • 6)grep命令的高级使用

    格式:grep [选项] '字符串' 文本文件

    基本使用

  • 常用命令选项

    -v,取反匹配(不包含)

    -i,忽略大小写

  • 高级使用

    ^word 以字符串word开头

    word$ 以字符串word结尾

  • ^$ 表示空行


  • 小伙伴们,基本代码给在上面啦,有时间的可以试一试哈,但是删除复制移动啥的,别动根目录/家目录/重要设备文件/驱动解释器文件的目录。系统容易崩溃,所以还是建议,自己创目录文件啥的,既安全又省去你重装虚拟机的烦恼。(*^▽^*)


ADMIN DAY04

一、归档及压缩

通俗来说,归档就是把几个文件放到1个文件中。

压缩则是把归档好的文件按格式存放。

想象一下,雄霸把风神腿、排云掌、寒霜拳三大毕生绝学的真气想结合,压缩在一起,领悟出三分归元气。这一个抽象的过程就是打包与压缩的过程。^_^


制作tar包(tar打包)

格式:tar 选项 /路径/压缩包名字 /源数据…….

-c:动作为创建

-f:指定压缩包名字(必须在所有选项最后)

-z、-j、-J:调用 .gz(gzip)、.bz2(bzip2)、.xz 格式工具进行处理

换压缩包格式:例如:bzip2 /root/cbd.tar.gz  
  1. [root@localhost /]# tar -zcf /root/cbd.tar.gz /etc/passwd /home
  2. [root@localhost /]# ls /root
  3. [root@localhost /]# tar -jcf /root/haha.tar.bz2 /etc/passwd /home
  4. [root@localhost /]# ls /root
  5. [root@localhost /]# tar -Jcf /root/cctv.tar.xz /etc/passwd /home
  6. [root@localhost /]# ls /root

 释放tar包(tar解包)

格式:tar 选项 /路径/压缩包名字 选项 /释放的位置

-t: 查看tar包内容

-x:释放归档

-f:指定归档文件名称,必须在所有选项的最后

-C(大写):指定路径(压缩包打包后,存放的路径)

  1. [root@localhost /]# tar -tf /root/haha.tar.bz2 #查看tar包内容
  2. [root@localhost /]# mkdir /nsd11
  3. [root@localhost /]# tar -xf /root/haha.tar.bz2 -C /nsd11
  4. [root@localhost /]# ls /nsd11
  5. [root@localhost /]# ls /nsd11/etc
  6. [root@localhost /]# ls /nsd11/home
  7. [root@localhost /]# tar -tf /root/cbd.tar.gz #查看tar包内容
  8. [root@localhost /]# mkdir /nsd12
  9. [root@localhost /]# tar -xf /root/cbd.tar.gz -C /nsd12
  10. [root@localhost /]# ls /nsd12
  11. [root@localhost /]# ls /nsd12/etc

tar高级打包

利用-C指定路径

 
  1. [root@localhost /]# tar -zcf /root/yy.tar.gz -C /etc/ passwd -C /usr games
  2. [root@localhost /]# tar -tf /root/yy.tar.gz
  3. [root@localhost /]# mkdir /nsd12
  4. [root@localhost /]# tar -xf /root/yy.tar.gz -C /nsd12
  5. [root@localhost /]# ls /nsd12
  6. [root@localhost /]# tar -zcf /root/zz.tar.gz -C /etc passwd shells hosts fstab
  7. [root@localhost /]# tar -tf /root/zz.tar.gz

二、重定向与管道操作

重定向(重新定向命令的输出)

将前面命令的输出,作为内容,写入到后面的文件

>:覆盖重定向

>>:追加重定向

  1. [root@A /]# head -5 /etc/passwd > /opt/p.txt
  2. [root@A /]# cat /opt/p.txt
  3. [root@A /]# head -2 /etc/passwd > /opt/p.txt
  4. [root@A /]# cat /opt/p.txt
  5. [root@A /]# hostname
  6. [root@A /]# hostname >> /opt/p.txt
  7. [root@A /]# cat /opt/p.txt

echo命令的使用

 
  1. [root@localhost /]# echo 123456     
  2. [root@localhost /]# echo 123456 > /opt/p.txt
  3. [root@localhost /]# cat /opt/p.txt
  4. [root@localhost /]# echo hello world     
  5. [root@localhost /]# echo hello world >> /opt/p.txt
  6. [root@localhost /]# cat /opt/p.txt
  7. [root@localhost /]# cat /etc/hostname
  8. [root@localhost /]# echo nb.tedu > /etc/hostname
  9. [root@localhost /]# cat /etc/hostname

重定向高级使用

 
  1. [root@localhost /]# cat /opt/p.txt
  2. [root@localhost /]# > /opt/p.txt #清空文件内容
  3. [root@localhost /]# cat /opt/p.txt

管道(操作符号 | )

作用:将前面命令的输出,传递给后面命令,作为后面命令的参数

  1. [root@localhost /]# head -4 /etc/passwd | tail -1
  2. [root@localhost /]# head -8 /etc/passwd | tail -1
  3. [root@localhost /]# cat -n /etc/passwd | head -8 | tail -1
  4. [root@localhost /]# ifconfig | head -2

显示8~12行内容

 
  1. [root@localhost /]# head -12 /etc/passwd | tail -5
  2. [root@localhost /]# cat -n /etc/passwd | head -12
  3. [root@localhost /]# cat -n /etc/passwd | head -12 | tail -5
  4. [root@localhost /]# cat -n /etc/passwd | head -12 | tail -5 > /opt/pa.txt
  5. [root@localhost /]# cat /opt/pa.txt

grep高级使用

 
  1. 作用:从文本文件内容中,过滤关键字符串
  2. [root@localhost /]# grep root /etc/passwd
  3. [root@localhost /]# grep -v root /etc/passwd #取反匹配
  4. [root@localhost /]# grep ^root /etc/passwd #以root开头
  5. [root@localhost /]# grep bash$ /etc/passwd #以bash结尾
  6. ^$:表示空行,专门与-v选项连用,过滤不要空行
  7. [root@localhost /]# cat /etc/default/useradd
  8. [root@localhost /]# grep -v ^$ /etc/default/useradd

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

显示配置文件有效信息(去除以#开头的注释行和去除空行)

 
  1. [root@localhost /]# grep -v ^# /etc/login.defs
  2. [root@localhost /]# grep -v ^# /etc/login.defs | grep -v ^$
  3. [root@localhost /]# grep -v ^# /etc/login.defs | grep -v ^$ > /opt/log.txt
  4. [root@localhost /]# cat /opt/log.txt

过滤命令的输出

  1. [root@localhost /]# ifconfig | grep inet
  2. [root@localhost /]# ifconfig | grep 127
  3. [root@localhost /]# ifconfig | less #方便查看

8 案例:重定向与管道操作

8.1 问题

  1. 显示ifconfig命令的前两行内容
  2. 显示/etc/passwd第九行内容
  3. 将hostname命令的输出内容,覆盖写入到/opt/hn.txt
  4. 利用echo命令,将“tmooc”内容追加写入到/opt/hn.txt

8.2 步骤

实现此案例需要按照如下步骤进行。

1)显示ifconfig命令的前两行内容

 
  1. [root@server0 ~]# ifconfig | head -2

2)显示/etc/passwd第九行内容

 
  1. [root@server0 ~]# head -9 /etc/passwd | tail -1

3)将hostname命令的输出内容,覆盖写入到/opt/hn.txt

 
  1. [root@server0 ~]# hostname > /opt/hn.txt

4)利用echo命令,将“tmooc”内容追加写入到/opt/hn.txt

 
  1. [root@server0 ~]# echo tmooc >> /opt/hn.txt

三、find精确查找

格式:find [目录] [条件1]

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

 
  1. [root@A /]# find /boot -type d
  2. [root@A /]# find /opt -type d
  3. [root@A /]# find /etc -type l
  4. [root@A /]# find /boot -type f
  5. [root@A /]# find /usr -type d
  6. [root@A /]# find /var -type d
  7. [root@A /]# find /sbin -type l
  8. [root@A /]# find /bin -type f

-name "文档名称" (-iname 忽略大小写)

 
  1. [root@localhost /]# find /etc -name "passwd"
  2. [root@localhost /]# find /etc -name "*tab"
  3. [root@localhost /]# find /etc -name "*.conf"
  4. [root@localhost /]# find /root -name ".*" #查找隐藏数据
  5. [root@localhost /]# find /boot -type d | cat -n
  6. [root@localhost /]# find /opt -type d | wc -l
  7. [root@localhost /]# find /etc -type l | cat -n
  8. [root@localhost /]# find /boot -type f | cat -n
  9. [root@localhost /]# find /boot -type f | wc -l
  10. [root@localhost /]# find /etc -name "*tab" | wc -l
  11. [root@localhost /]# find /etc -name "*.conf" | wc -l
  12. [root@localhost /]# find /etc -name "*.conf" | cat -n

两个条件联合使用

 
  1. [root@localhost /]# mkdir /mnt/cbd01
  2. [root@localhost /]# mkdir /mnt/cbd02
  3. [root@localhost /]# touch /mnt/cbd03.txt
  4. [root@localhost /]# find /mnt/ -name "cbd*"
  5. [root@localhost /]# find /mnt/ -name "cbd*" -type d
  6. [root@localhost /]# find /mnt/ -name "cbd*" -type f
  7. [root@localhost /]# find /mnt/ -name "cbd*" -o -type f #两个满足其中一个

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

+ :表示大于    - :表示小于                不写:表示等于

 
  1. [root@localhost /]# find /boot -size +300k
  2. [root@localhost /]# find /boot -size +10M
  3. [root@localhost /]# find /boot -size +1M
  4. [root@localhost /]# find /boot -size +10M -size -50M

-user 用户名 (按照数据的所有者)

 
  1. [root@A /]# useradd natasha #创建用户
  2. [root@A /]# find /home -user natasha
  3. [root@A /]# find / -user natasha
  4. /proc:内存的数据,不占用硬盘空间
  5. [root@A /]# useradd harry #创建用户
  6. [root@A /]# find /home -user harry
  7. [root@A /]# find / -user harry

-mtime 修改时间 (所有的时间都是过去时间)

-newermt:表示最近几小时内的短期时间。(公司常用)接几天内的具体时间点

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

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

 
  1. 三个月之前的数据:
  2. [root@A /]# find /var -mtime +90
  3. 最近10天之内的数据:
  4. [root@A /]# find /root -mtime -10

10 find高级使用

处理find找到的数据,每查找的一个就传递一次

find [范围] [条件] -exec 处理命令 {} \;

-exec额外操作的开始

{} 永远表示前面find查找的结果

\; 额外操作的结束    

可以联合两个命令使用,liunx特有格式命令。

 
  1. [root@localhost /]# find /boot -size +10M
  2. [root@localhost /]# find /boot -size +10M -exec cp {} /mnt \;
  3. [root@localhost /]# ls /mnt
  4. [root@localhost /]# find /boot -size +10M -exec ls -lh {} \;

两个条件联合使用

  1. [root@localhost /]# mkdir /root/mytab
  2. [root@localhost /]# find /etc -name "*tab" -type f
  3. [root@localhost /]# find /etc -name "*tab" -type f
  4. -exec cp {} /root/mytab \;
  5. [root@localhost /]# ls /root/mytab

案例:查找并处理文件

1. 利用find查找,数据的所有者为 student,并且必须是文件,把它们拷贝到 /root/findfiles/ 文件夹中

 
  1. [root@localhost /]# useradd student #创建普通用户student
  2. [root@localhost /]# mkdir /root/findfiles
  3. [root@localhost /]# find / -user student -type f
  4. [root@localhost /]# find / -user student -type f -exec cp {} /root/findfiles \;
  5. [root@localhost /]# ls -A /root/findfiles/ #-A显示隐藏数据

11 案例:查找并处理文件

11.1 问题

  1. 利用find查找所有用户student拥有的必须是文件,把它们拷贝到 /root/findfiles/文件夹中
  2. 利用find查找/boot目录下大于10M并且必须是文件,拷贝到/opt
  3. 利用find查找/boot/ 目录下以 vm 开头且必须是文件,拷贝到/opt
  4. 利用find查找/boot/目录下为快捷方式
  5. 利用find查找/etc目录下,以tab作为结尾的必须是文件

11.2 方案

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

格式:find [目录] [条件1]

常用条件表示:

  • -type 类型(f文件、d目录、l快捷方式)
  • -name "文档名称"
  • -size +|-文件大小(k、M、G)
  • -user 用户名
  • -mtime 修改时间

高级使用(处理find查找的结果)

  • -exec 额外操作的开始
  • \; 表示额外操作的结束
  • {} 前面find命令每一个查询的结果

11.3 步骤

实现此案例需要按照如下步骤进行。

1)利用find查找所有用student拥有的必须是文件,把它们拷贝到 /root/findfiles/ 文件夹中(确保本机具有student用户)

 
  1. [root@server0 ~]# useradd student
  2. [root@server0 ~]# mkdir /root/findfiles
  3. [root@server0 ~]# find / -user student -type f
  4. [root@server0 ~]# find / -user student -type f -exec cp {} /root/findfiles \;
  5. [root@server0 ~]# ls /root/findfiles

2)利用find查找/boot目录下大于10M并且必须是文件,拷贝到/opt

 
  1. [root@server0 ~]# find /boot -size +10M
  2. [root@server0 ~]# find /boot -size +10M –type f -exec cp {} /opt \;
  3. [root@server0 ~]# ls /opt

3)利用find查找/boot/ 目录下以 vm 开头且必须是文件,拷贝到/opt

 
  1. [root@server0 ~]# find /boot -name “vm*”
  2. [root@server0 ~]# find /boot -name “vm*” -type f -exec cp {} /opt \;
  3. [root@server0 ~]# ls /opt

4)利用find查找/boot/ 目录下为快捷方式

 
  1. [root@server0 ~]# find /boot -type l

5)利用find查找/etc 目录下,以 tab 作为结尾的 必须是文件

 
  1. [root@server0 ~]# find /etc -name “*tab” -type f

四、vim高级应用

vim末行模式操作

读取文件内容

 
  1. [root@localhost /]# echo 123456 > /opt/aa.txt
  2. [root@localhost /]# echo hahaxixi > /opt/cc.txt
  3. [root@localhost /]# vim /opt/cc.txt
  4. 末行模式下 :r /opt/aa.txt
  5. 末行模式下 :r /etc/passwd
  6. 末行模式下 :r /etc/shells

字符串替换

:1,10s/root/new/g 替换第1-10行所有的“root”

:%s/root/new/g 替换文件内所有的“root”

 
  1. [root@localhost /]# cp /etc/passwd /opt/s.txt
  2. [root@localhost /]# vim /opt/s.txt

开关参数的控制

:set nu或nonu 显示/不显示行号

:set ai或noai 启用/关闭自动缩进

 
  1. [root@localhost /]# vim /opt/h.txt
  2. :set ai

永久开关功能设置

 
  1. [root@nb ~]# vim /root/.vimrc
  2. set nu
  3. [root@nb ~]# vim /etc/passwd #测试是否开启行号
  4. [root@nb ~]# vim /opt/pass.txt    #该文件就是命令模式文件

13 vimdiff同时比对或修改多个文件

 
  1. [root@a ~]# echo hahaxixi > /opt/aa.txt
  2. [root@a ~]# echo hahaabc > /opt/bb.txt
  3. [root@a ~]# vimdiff /opt/aa.txt /opt/bb.txt
  4. 命令模式下Ctrl与w同时按下,然后左右键移动光标
  5. 末行模式wqa保存全部文件并退出

14 案例:vim效率操作

14.1 问题

本例要求掌握使用vim文本编辑器时能够提高操作效率的一些常用技巧和方法,完成下列任务:

  1. 将文件 /etc/passwd 复制为 /opt/nsd.txt,然后打开 /opt/nsd.txt 文件,练习命令模式下的切换/复制/删除/查找操作
  2. 将文件 /etc/man_db.conf 复制到 /opt 目录下,然后打开 /opt/man_db.conf 文件,将第50~100行内的“man”替换为“MAN”,在 vim 中设置显示行号查看效果

14.2 方案

命令模式常用操作:

  • 1G 或 gg ,跳转到文件的首行
  • G ,跳转到文件的末尾行
  • yy、#yy ,复制光标处的一行、#行
  • p、P ,粘贴到光标处之后、之前
  • x 或 Delete键 ,删除光标处的单个字符
  • dd、#dd ,删除光标处的一行、#行
  • d^、d$ ,从光标处之前删除至行首/行尾
  • /word 向后查找字符串“word”,再按n/N跳至后/前一个结果
  • u ,撤销最近的一次操作
  • U ,撤销对当前行的所有修改
  • Ctrl + r 取消前一次撤销操作
  • ZZ 保存修改并退出

末行模式常用操作:

  • :s/old/new ,替换当前行第一个“old”
  • :s/old/new/g ,替换当前行所有的“old”
  • :n,m s/old/new/g ,替换第n-m行所有的“old”
  • :% s/old/new/g ,替换文件内所有的“old”
  • :w /root/newfile ,另存为其它文件
  • :r /etc/filesystems ,读入其他文件内容
  • :set nu|nonu ,显示/不显示行号
  • :set ai|noai ,启用/关闭自动缩进

14.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:vim命令模式下的切换/复制/删除/查找

1)建立练习文件

将文件 /etc/passwd 复制为 /opt/nsd.txt:

 
  1. [root@svr7 ~]# cp /etc/passwd /opt/nsd.txt

2)使用vim打开练习文件,默认处于命令模式

 
  1. [root@svr7 ~]# vim /opt/nsd.txt
  2. .. ..

3)在命令模式下完成下列操作

切换操作:G 最后一行,5G 第5行,gg 第一行。

复制操作:按2yy复制2行,7G移动到第7行,p 粘贴。

删除操作:25G 移动到第25行,200dd 从此行开始删除200行(不够就剩下全删)。

查找操作:gg 第一行,/adm 查找关键词adm,n 跳转到下一个结果。

4)保存并退出编辑器

ZZ 保存退出。

步骤二:vim末行模式下的替换/设置操作

1)建立练习文件

将文件 /etc/man_db.conf 复制到 /opt/ 目录下:

 
  1. [root@svr7 ~]# cp /etc/man_db.conf /opt/

2)使用vim打开练习文件,输入:切换到末行模式

 
  1. [root@svr7 ~]# vim /opt/man_db.conf
  2. .. ..
  3. :

3)在末行模式下完成下列操作

输入 :set nu ,确认后显示行号。

输入 :50,100 s/man/MAN/g ,确认将第50~100行内的“man”替换为“MAN”。

4)保存并退出编辑器

输入 :wq ,确认后保存并退出编辑器。

15 课后基础练习:

案例1:数据的整理

1. 在目录/mnt下创建一个子目录public

2. 在目录/mnt/public 创建文件linux.txt,利用vim写入内容 Study Linux

3. 将/mnt/public/linux.txt文件复制到/root目录下,同时 改名为 study.txt

4. 利用vim 修改文件/etc/hostname将其原有内容全部删除,写入新的内容为www.qq

5. 将/etc/passwd、/etc/resolv.conf、/etc/hostname 同时拷贝到/mnt/public/目录下

6. 将文件 /mnt/public/hostname 重改名为 stu.txt

7. 创建目录结构/mnt/public/test/vm

8. 将目录 /boot内容中以 vm 开头的 复制到/mnt/public/test/vm目录下(建议利用find命令)

9. 将/home目录复制到/mnt/public/test/目录下

案例2:虚拟机上操作:复制、删除、移动及vim文本编辑器

1. 创建目录结构/study/nsd01

2. 在目录/study/nsd01 创建文件abc.txt,利用vim写入内容 abc.tedu

3. 将/study/nsd01/abc.txt文件复制到/opt目录下,同时 改名为 test.txt

4. 利用vim 修改文件/etc/hostname将其原有内容全部删除,写入新的内容为www.sina

5. 将/etc/passwd 、/etc/resolv.conf、/etc/hostname 同时拷贝到/study/nsd01/目录下

6. 将文件 /study/nsd01/hostname 重改名为 haxi.txt

7. 创建目录结构/root/vm

8. 将目录 /boot内容中以 vm 开头的 复制到/root/vm目录下

9. 将/home目录复制到/root/vm目录下

案例3:虚拟机上操作

1. 显示根目录下所有内容

2. 显示/etc目录下所有以tab结尾的文件

3. 显示/etc/resolv.conf文件的详细属性并加上易读的单位

4. 显示/etc/passwd文件的详细属性并加上易读的单位

5. 显示/etc/passwd文件的头4行内容

案例4:tar制作/释放归档压缩包

首先创建/root/boothome/与/root/usrsbin/目录

1)备份/boot、/home这两个文件夹,保存为boothome.tar.gz文件

2)查看boothome.tar.gz文件内包含哪些内容

3)将boothome.tar.gz释放到文件夹/root/boothome/下

4)备份/usr/sbin目录,保存为usrsbin.tar.bz2文件

5)查看usrsbin.tar.bz2文件内包含哪些内容

6)将usrsbin.tar.bz2释放到/root/usrsbin/文件夹下

案例5:tar制作/释放归档压缩包

首先创建/root/zhsan目录

1)仅备份/etc/目录下shells与hosts这两个文件,保存为sh.tar.xz文件(不打包路径)

2)查看sh.tar.xz文件内包含哪些内容

3)将sh.tar.xz释放到文件夹/root/zhsan下

案例6:tar制作/释放归档压缩包

首先创建/root/mystudent目录

1)备份/etc/目录下passwd文件 、/boot/目录下vmlinuz-4.18.0-372.9.1.el8.x86_64程序 、/root/目录下的anaconda-ks.cfg文件,保存为myfile.tar.bz2文件(不要压缩路径)

2)查看myfile.tar.xz文件内包含哪些内容

3)将myfile.tar.xz释放到文件夹/root/mystudent下

案例7:虚拟机上操作,查找并处理文件

–创建用户student,创建目录/root/findfiles

– 利用find查找数据所有者为 student ,并且必须是文件,把它们拷贝到 /root/findfiles/ 文件夹中

– 利用find查找/boot目录下大于10M并且必须是文件,拷贝到/opt

 
  1. [root@localhost /]# find /boot -type f -size +10M
  2. [root@localhost /]# find /boot -type f -size +10M -exec cp {} /opt \;

– 利用find查找/boot/ 目录下以 vm 开头且必须是文件,拷贝到/opt

– 利用find查找/boot/ 目录下为快捷方式

– 利用find查找/etc 目录下,以 tab 作为结尾的 必须是文件


        小伙伴们,这是今天一天所学习的内容,命令比较细节,选项内容多,需要大家,多做做案例练习。不然记不住。周末我会创个专栏,专门存放每天学习的思维导图,上班党和学生党有时间可以在路上和交通工具上看看。有助于进步和理解。

        今天学习的内容太多了,我得缓缓。难过(ಥ﹏ಥ)


ADMIN DAY05

云计算系统管理

 一、RPM软件包管理

 环境准备

  • 方案一:KVM虚拟机(如图-1)

图-1

  • 方案二:VMware虚拟机(如图-2、图-3)

图-2

图-3

临时 挂载
  • [root@localhost ~]# mount /dev/cdrom /mnt
  • mount: /dev/sr0 写保护,将以只读方式挂载
  • [root@localhost ~]# ls /mnt

RPM软件包简介

RPM包文件名特征

软件名-版本信息.操作系统.硬件架构.rpm

firefox-91.9.0-1.el8_5.x86_64.rpm

软件名:firefox

软件包名:firefox-91.9.0-1.el8_5.x86_64.rpm

RPM包的一般安装位置(分散)

 安装软件包:

  卸载软件包:

查询软件信息

查询是否安装此软件(参数是软件名)

  1. [root@localhost /]# rpm -qa #当前系统中所有已安装的软件包
  2. [root@localhost /]# rpm -q firefox #查看firefox是否安装
  3. [root@localhost /]# rpm -q httpd #httpd构建Web服务器软件
  4. 未安装软件包 httpd
  5. [root@localhost /]# rpm -q bash
  6. [root@localhost /]# rpm -qa | grep firefox
  7. [root@localhost /]# rpm -qa | wc -l

查询软件信息(参数是软件名)

 
  1. [root@localhost /]# rpm -qi firefox #查询软件信息
  2. [root@localhost /]# rpm -ql firefox #查询软件安装了哪些内容(安装清单)
  3. [root@localhost /]# rpm -ql firefox | less
  4. [root@localhost /]# rpm -ql firefox | wc -l #统计行数
  5. [root@localhost /]# rpm -qi bash #查询软件信息
  6. [root@localhost /]# rpm -ql bash #查询软件安装了哪些内容(安装清单)
  7. [root@localhost /]# rpm -ql bash | less
  8. [root@localhost /]# rpm -ql bash | wc -l #统计行数

查询某个目录/文件是哪个RPM包带来的

格式:rpm -qf [文件路径]…

即使目标文件被删除,也可以查询

  1. [root@localhost ~]# which vim #查询命令对应的程序文件
  2. /usr/bin/vim
  3. [root@localhost ~]# rpm -qf /usr/bin/vim
  4. vim-enhanced-8.0.1763-16.el8_5.13.x86_64
  5. [root@localhost ~]# rpm -q vim-enhanced
  6. vim-enhanced-8.0.1763-16.el8_5.13.x86_64
  7. [root@localhost ~]# rpm -qf /usr/sbin/poweroff
  8. [root@localhost ~]# rpm -qf /usr/sbin/ifconfig

查询软件包(参数软件包名)

  1. [root@localhost /]# rpm -q vsftpd #查询vsftpd软件是否安装
  2. 未安装软件包 vsftpd
  3. [root@localhost /]# ls /mnt/AppStream/Packages/v/vsftpd-3.0.3-35.el8.x86_64.rpm
  4. /mnt/AppStream/Packages/v/vsftpd-3.0.3-35.el8.x86_64.rpm
  5. 查询软件包的安装清单:
  6. [root@localhost /]# rpm -qpl /mnt/AppStream/Packages/v/vsftpd-3.0.3-35.el8.x86_64.rpm
  7. 查询软件包信息
  8. [root@localhost /]# rpm -qpi /mnt/AppStream/Packages/v/vsftpd-3.0.3-35.el8.x86_64.rpm

导入红帽签名信息(了解)

 
  1. [root@localhost /]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
  2. 查询软件包信息(没有警告输出)
  3. [root@localhost /]# rpm -qpi /mnt/AppStream/Packages/v/vsftpd-3.0.3-35.el8.x86_64.rpm

 软件包的依赖关系

rpm命令方式:不能自动解决依赖关系

yum命令方式:能自动解决依赖关系

二、Yum软件包仓库

           Yum仓库构建

永久挂载

作用:自动解决依赖关系安装软件

服务端(本机): 1.众多的软件 2.仓库数据文件(repodata)

本地Yum仓库:服务端需要有光盘内容即可

客户端(本机):指定服务端位置

仓库配置文件:/etc/yum.repos.d/*.repo

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

yum命令执行流程:

yum命令--->读取/etc/yum.repos.d/*.repo配置文件内容--->从而找到仓库的具体位置

客户端文件配置内容:

[源名称] :自定义名称,具有唯一性

name:本软件源的描述字串

baseurl:指定YUM服务端的URL地址

enabled:是否启用此频道                            0代表不启用,1代表启用

gpgcheck:是否验证待安装的RPM包 

gpgkey:用于RPM软件包验证的密钥文件   0代表不验证,1代表验证

完整示例:

书写仓库配置文件:

  1. [root@localhost /]# mkdir /mydvd  #自己创个永久挂载文件夹
  2. [root@localhost /]# mount /dev/cdrom /mydvd #挂载光驱设备
  3. [root@localhost /]# ls /mydvd
  4. [root@localhost /]# rm -rf /etc/yum.repos.d/*
  5. [root@localhost /]# vim /etc/yum.repos.d/haha.repo
  6. [xixi]
  7. name=xixi
  8. baseurl=file:///mydvd/AppStream
  9. enabled=1
  10. gpgcheck=0
  11. [haha] #仓库的标识,不能重复
  12. name=haha#仓库描述信息,可以省略
  13. baseurl=file:///mydvd/BaseOS #指定仓库位置file://表示本地为服务端
  14. enabled=1 #本文件启用,可以省略
  15. gpgcheck=0 #不检测红帽签名信息
  16. [root@localhost /]# yum repoinfo #列出仓库信息
  17. [root@localhost /]# yum -y install mariadb-server #安装软件包测试
  18. [root@localhost /]# rpm -q mariadb-server #查询是否安装成功

总结:本地Yum仓库构建方法

1.显示光盘的内容,挂载光驱设备mount /dev/cdrom /mnt

2.书写仓库配置文件,指定仓库位置/etc/yum.repos.d/*.repo

3.执行流程: #别照着敲,这点是方便你理解的内容。

yum命令--->/etc/yum.repos.d/*.repo--->baseurl=file:///mnt/AppStream

yum命令--->/etc/yum.repos.d/*.repo--->baseurl=file:///mnt/BaseOS

总结:本地Yum仓库排除错误

1.没有挂载光驱设备

2./etc/yum.repos.d目录下的仓库配置文件内容写错

3./etc/yum.repos.d目录下,错误的配置文件影响

安装软件

 
  1. [root@localhost ~]# yum -y install httpd
  2. [root@localhost ~]# rpm -q httpd #检测是否安装成功
  3. [root@localhost ~]# yum -y install bind-chroot
  4. [root@localhost ~]# rpm -q bind-chroot
  5. [root@localhost ~]# yum -y install sssd
  6. [root@localhost ~]# rpm -q sssd
  7. [root@localhost ~]# yum -y install gcc
  8. [root@localhost ~]# rpm -q gcc

卸载软件(建议不要使用-y选项,防止删除系统重要文件)

  1. [root@localhost ~]# yum remove gcc
  2. [root@localhost ~]# yum remove httpd
  3. [root@localhost ~]# rpm -q gcc
  4. [root@localhost ~]# rpm -q httpd

Yum仓库的查询

  1. [root@localhost /]# yum list ftp #查询仓库是否有ftp软件
  2. 可安装的软件包 #表示当前系统没有安装该软件
  3. ftp.x86_64 0.17-67.el7 nsd20
  4. [root@localhost /]# yum list httpd
  5. [root@localhost /]# yum search ftp #包含ftp就匹配
  6. [root@localhost /]# yum provides /usr/bin/hostname
  7. [root@localhost /]# yum provides /etc/passwd #仓库中那个软件包产生该文件
  8. [root@localhost /]# yum provides "guestmount" #查询仓库中那个软件产生该程序
  9. [root@localhost /]# yum -y install libguestfs-tools-c
  10. [root@localhost /]# guestmount --help #查看帮助信息

删除/usr/bin/hostname程序,然后通过yum工具进行恢复

  1. [root@svr1 ~]# rm -rf /usr/bin/hostname
  2. [root@svr1 ~]# ls /usr/bin/hostname
  3. ls: 无法访问/usr/bin/hostname: 没有那个文件或目录
  4. [root@svr1 ~]# yum provides /usr/bin/hostname #查询仓库中那个软件,产生了此程序
  5. [root@svr1 ~]# yum -y reinstall hostname #覆盖安装
  6. [root@svr1 ~]# ls /usr/bin/hostname
  7. /usr/bin/hostname

清空缓存(了解)

执行流程: yum命令--->/etc/yum.repos.d/*.repo--->baseurl=file:///mnt/AppStream

  1. [root@localhost ~]# yum clean all #清空Yum的缓存
  2. [root@localhost ~]# yum repoinfo #列出仓库信息

三、命令的补充

获取命令帮助

  1. 方式一:命令 --help
  2. [root@localhost ~]# cat --help
  3. [root@localhost ~]# yum --help
  4. 方式二:man 命令
  5. [root@localhost ~]# man cat #按q退出
  6. [root@localhost ~]# man passwd #显示passwd命令帮助
  7. [root@localhost ~]# man 5 passwd
  8. 数字5表示帮助的类型,表示配置文件类型

历史命令

管理/调用曾经执行过的命令

history:查看历史命令列表

history -c:清空历史命令

history -w:记录历史命令为空的状态

!n:执行命令历史中的第n条命令

!str:执行最近一次以str开头的历史命令

 
  1. [root@svr7 ~]# vim /etc/profile
  2. HISTSIZE=1000 #默认记录1000条
  3. [root@localhost ~]# history #显示历史命令列表
  4. [root@localhost ~]# history -c #清空历史命令
  5. [root@localhost ~]# history -w #记住历史命令为空
  6. [root@localhost ~]# history
  7. [root@localhost ~]# cat /etc/redhat-release
  8. [root@localhost ~]# ls /root
  9. [root@localhost ~]# history
  10. [root@localhost ~]# !cat #指定最近一条以cat开头的历史命令
  11. [root@localhost ~]# !ls #指定最近一条以ls开头的历史命令

date,查看/调整系统日期时间

  1. [root@localhost /]# date
  2. [root@localhost /]# date -s "2008-9-6 11:17:11" #修改系统时间
  3. [root@localhost /]# date
  4. [root@localhost /]# date -s "2023-02-21 15:55:11"
  5. [root@localhost /]# date

date单独显示时间

  1. [root@localhost ~]# date +%Y #显示年
  2. [root@localhost ~]# date +%m #显示月
  3. [root@localhost ~]# date +%d #显示日期
  4. [root@localhost ~]# date +%H #显示时
  5. [root@localhost ~]# date +%M #显示分
  6. [root@localhost ~]# date +%S #显示秒
  7. [root@localhost ~]# date +%F #显示年-月-日
  8. [root@localhost ~]# date +%T #显示时:分:秒

bc计算器

du,统计目录占用硬盘的空间

-s:只统计每个参数所占用的总空间大小

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

  1. [root@localhost ~]# du -sh /root
  2. [root@localhost ~]# du -sh /etc
  3. [root@localhost ~]# du -sh /boot
  4. [root@localhost ~]# du -sh /

制作链接文件(制作符号链接)(制作快捷方式)

方式一:软链接

格式:ln -s /路径/源数据 /路径/快捷方式的名称 #软链接

 
  1. [root@localhost /]# ls /etc/hosts
  2. [root@localhost /]# ln -s /etc/hosts /hs
  3. [root@localhost /]# ls /
  4. [root@localhost /]# ls -l /hs
  5. [root@localhost /]# ls /opt
  6. [root@localhost /]# ln -s /opt /haxi
  7. [root@localhost /]# ls -l /haxi #查看快捷方式详细属性
  8. [root@localhost /]# ls -l /haxi/ #查看源目录内容详细数据

软链接优势:可以针对目录与文件制作快捷方式,支持跨分区

软链接缺点:源数据消失,快捷方式失效

方式二:硬链接

格式:ln /路径/源数据 /路径/快捷方式的名称 #硬链接

硬链接优势:源数据消失,快捷方式仍然有效

硬链接缺点:只能针对文件制作快捷方式,不支持支持跨分区

 
  1. [root@A ~]# rm -rf /opt/*
  2. [root@A ~]# echo 123 > /opt/A.txt
  3. [root@A ~]# ln -s /opt/A.txt /opt/B.txt #软链接
  4. [root@A ~]# ls /opt/
  5. [root@A ~]# ln /opt/A.txt /opt/C.txt #硬链接
  6. [root@A ~]# ls /opt/
  7. [root@A ~]# cat /opt/B.txt
  8. [root@A ~]# cat /opt/C.txt
  9. [root@A ~]# ls -i /opt #查看硬盘存储i节点编号
  10. [root@A ~]# rm -rf /opt/A.txt
  11. [root@A ~]# ls /opt/
  12. [root@A ~]# cat /opt/B.txt #软链接失效
  13. cat: /opt/B.txt: 没有那个文件或目录
  14. [root@A ~]# cat /opt/C.txt #硬链接仍然有效
  15. 123

zip归档工具,跨平台(Windows与Linux)

 
  1. 归档+压缩操作: zip [-r] 备份文件.zip 被归档的文档...
  2. [-r]:被归档的数据有目录,必须加上此选项
  3. [root@localhost /]# ls /usr/bin/zip
  4. [root@localhost /]# zip -r /opt/abc.zip /etc/passwd /home
  5. [root@localhost /]# ls /opt/
  6. 释放归档+解压操作: unzip 备份文件.zip [-d 目标文件夹]
  7. [root@localhost /]# unzip -l /opt/abc.zip #查看压缩包的内容
  8. [root@localhost /]# mkdir /nsd20
  9. [root@localhost /]# unzip /opt/abc.zip -d /nsd20
  10. [root@localhost /]# ls /nsd20
  11. [root@localhost /]# ls /nsd20/etc
  12. [root@localhost /]# ls /nsd20/home

    上面的yum仓库的搭建,将会影响今后所有阶段的学习需要大家熟练掌握。(* ̄︶ ̄)

ADMIN DAY06

一、用户管理

                用户账号简介

作用: 1.可以登陆操作系统 2.不同的用户具备不同的权限

唯一标识:UID(编号从0开始的编号,默认最大60000)

zhangsan(UID 1200)

管理员root的UID:永远为0

普通用户的UID:默认从1000开始

                用户配置文件

/etc/passwd:存放用户基本信息配置文件

 
  1. [root@localhost ~]# head -1 /etc/passwd #显示文件第一行
  2. root:x:0:0:root:/root:/bin/bash
  3. 用户名:密码占位符:UID:基本组GID:用户描述信息:家目录:解释器
  4. [root@localhost ~]# useradd wangwu
  5. [root@localhost ~]# grep wangwu /etc/passwd

 用户的创建

命令useradd

– 格式:useradd [选项]... 用户名

• 常用命令选项

-u:指定 用户UID

-d:指定宿主目录(家目录),默认为 /home/用户名

-G:指定所属的附加组,-g指定基本组

-s:指定用户的登录解释器,默认为/bin/bash

-u:指定 UID 编号

  1. [root@localhost ~]# useradd nsd01
  2. [root@localhost ~]# ls /home/ #查看家目录的产生
  3. [root@localhost ~]# grep nsd01 /etc/passwd #查看nsd01信息
  4. [root@localhost ~]# id nsd01 #查看nsd01用户基本信息
  5. [root@localhost ~]# id gaga
  6. id: gaga: no such user #无此用户
  7. [root@localhost ~]#useradd -u 1500 nsd02 #指定UID创建用户
  8. [root@localhost ~]# id nsd02 #查看nsd02用户基本信息
  9. [root@localhost ~]# grep nsd /etc/passwd #查看用户信息
  10. [root@localhost ~]# useradd nsd03
  11. [root@localhost ~]# grep nsd /etc/passwd
  12. [root@localhost ~]# id nsd03

-d:指定宿主目录(家目录),默认为 /home/用户名(不可以事先新建用户的家目录)

  1. [root@localhost ~]# useradd -d /opt/nsd04 nsd04
  2. [root@localhost ~]# grep nsd04 /etc/passwd
  3. [root@localhost ~]# ls /opt/
  4. [root@localhost ~]# useradd -d /opt/haha05 nsd05
  5. [root@localhost ~]# grep nsd05 /etc/passwd
  6. [root@localhost ~]# ls /opt/

-G:指定所属的附加组 -g:指定基本组 (了解一下)

 
  1. [root@localhost ~]# groupadd stugrp #单独创建stugrp组
  2. [root@localhost ~]# useradd -G stugrp nsd06
  3. [root@localhost ~]# id nsd06
  4. uid=1504(nsd06) gid=1505(nsd06) 组=1505(nsd06),1504(stugrp)
  5. [root@localhost ~]# useradd -G stugrp nsd07
  6. [root@localhost ~]# id nsd07
  7. [root@localhost ~]# groupadd tmooc #单独创建tmooc组
  8. [root@localhost ~]# useradd -G stugrp,tmooc nsd11
  9. [root@localhost ~]# id nsd11

-s:指定用户的登录解释器 /bin/bash

shell:壳,解释器

用户---->解释器---->内核---->硬件

/sbin/nologin:禁止用户登录操作系统(单独拉黑离职用户,限制登录权限)

 
  1. [root@localhost ~]# useradd -s /sbin/nologin nsd10
  2. [root@localhost ~]# grep nsd10 /etc/passwd
  3. [root@localhost ~]# passwd nsd10 #设置密码,密码没有屏幕显示,需要输入两次密码
  4. [root@localhost ~]# useradd -s /sbin/nologin nsd12
  5. [root@localhost ~]# grep nsd12 /etc/passwd

 usermod命令

格式:usermod [选项]... 用户名

• 常用命令选项

-l:更改用户帐号的登录名称

-u:用户id

-d:家目录路径

-s:登录解释器

-G:附加组 #重置附加组

-l:更改用户帐号的登录名称

-u:用户id

-s:登录解释器

 
  1. [root@localhost /]# useradd nsd13
  2. [root@localhost /]# id nsd13
  3. [root@localhost /]# grep nsd13 /etc/passwd
  4. [root@localhost /]# usermod -l stu13 nsd13 #修改用户名字
  5. [root@localhost /]# id stu13
  6. [root@localhost /]# usermod -u 1600 stu13 #修改用户的UID
  7. [root@localhost /]# id stu13
  8. [root@localhost /]# usermod -s /sbin/nologin stu13 #修改用户的解释器程序
  9. [root@localhost /]# grep stu13 /etc/passwd

-d:家目录路径(默认不会自动创建新的家目录)

 
  1. [root@localhost ~]# useradd nsd15
  2. [root@localhost ~]# grep nsd15 /etc/passwd
  3. [root@localhost ~]# ls /home/
  4. [root@localhost ~]# usermod -d /etc/abc nsd15
  5. [root@localhost ~]# grep nsd15 /etc/passwd
  6. [root@localhost ~]# ls /etc/abc
  7. ls: 无法访问/etc/abc: 没有那个文件或目录
  8. [root@localhost ~]# useradd nsd16
  9. [root@localhost ~]# grep nsd16 /etc/passwd
  10. [root@localhost ~]# ls /home/
  11. [root@localhost ~]# usermod -md /mnt/abc16 nsd16 #将用户原有的家目录进行移动,并且设置相应的权限
  12. [root@localhost ~]# grep nsd16 /etc/passwd
  13. [root@localhost ~]# ls /mnt

-G:修改用户的附加组 #重置附加组 (了解)

 
  1. [root@localhost ~]# useradd nsd17
  2. [root@localhost ~]# id nsd17
  3. [root@localhost ~]# usermod -G stugrp nsd17
  4. [root@localhost ~]# id nsd17
  5. [root@localhost ~]# groupadd tmooc #创建组
  6. [root@localhost ~]# usermod -G tmooc nsd17
  7. [root@localhost ~]# id nsd17
  8. [root@localhost ~]# usermod -G root,stugrp nsd17
  9. [root@localhost ~]# id nsd17

 设置用户密码

passwd命令

•格式:passwd [选项]... 用户名

 
  1. [root@localhost ~]# useradd nsd18
  2. [root@localhost ~]# passwd nsd18 #交互式设置
  3. 更改用户 nsd18的密码 。
  4. 新的 密码: #输入新密码
  5. 无效的密码: 密码少于 8 个字符
  6. 重新输入新的 密码: #重新输入新密码
  7. passwd:所有的身份验证令牌已经成功更新。
  8. [root@localhost ~]# su - nsd18 #临时切换用户身份
  9. [nsd18@localhost ~]$ passwd
  10. 更改用户 nsd18 的密码 。
  11. 为 nsd18 更改 STRESS 密码。
  12. (当前)UNIX 密码: #输入旧密码
  13. 新的 密码: #输入新密码
  14. 重新输入新的 密码: #重新输入新密码
  15. passwd:所有的身份验证令牌已经成功更新。
  16. [nsd18@localhost ~]$ exit #退出。回到root用户身份

passwd命令,支持非交互式设置密码

--stdin:从标准输入(比如管道)取密码

 
  1. [root@localhost /]# echo 123 | passwd --stdin nsd18
  2. [root@localhost /]# echo 123456 | passwd --stdin nsd18
  3. [root@localhost /]# echo redhat | passwd --stdin nsd18

/etc/shadow,保存密码字串/有效期等信息

每个用户记录一行,以:分割为9个字段

[root@localhost ~]# grep nsd01 /etc/shadow

nsd01:$6$NVe937Nd$B0n94XrpQ.LipQHTpYh0iV/M4jCLdccfHxzRLprdxDzwk8WDDh/TzdTfh8lA9y9WKJ.8Ls/l5.w/1W.nV6CFX/:18481:0:99999:7:::

上一次修改密码的时间:自1970-1-1到达上一次修改密码的时间,所经历的天数

字段1:用户帐号的名称

字段2:加密后的密码字符串

字段3:上次修改密码的时间

字段4:密码的最短有效天数,默认0

字段5:密码的最长有效天数,默认99999

字段6:密码过期前的警告天数,默认7

字段7:密码过期后多少天禁用此用户账号

字段8:帐号失效时间,默认值为空

字段9:保留字段(未使用)

 用户初始配置文件

主要的初始配置文件

~/.bashrc:每次进入新的Bash环境时执行(开启新的终端)

 
  1. [root@localhost ~]# vim /root/.bashrc #定义永久别名
  2. ……
  3. alias hn='hostname'
  4. ……
  5. 开启新的终端进行测试:
  6. [root@localhost ~]# hn

/etc/bashrc:全局配置文件,影响全体用户 (开启新的终端)

 
  1. [root@localhost ~]# vim /etc/bashrc
  2. ……
  3. alias myls='ls -ld'
  4. ……
  5. #新开一个终端验证
  6. [root@localhost ~]# useradd nsd21
  7. [root@localhost ~]# su - nsd21 #相当于开启新的终端
  8. [nsd21@localhost ~]$ myls /opt
  9. [nsd21@localhost ~]$ exit
  10. 登出
  11. [root@localhost ~]#

删除用户

userdel命令

格式:userdel [-r] 用户名

添加 -r 选项,家目录/用户邮件也一并删除

 
  1. [root@localhost ~]# userdel -r nsd18 #连同家目录一并删除
  2. [root@localhost ~]# userdel nsd20 #不删除家目录,只删除用户信息

二、组账号管理

作用: 方便管理用户

唯一标识:GID(编号从0开始的编号,默认最大60000)

原则:Linux一个用户必须至少属于一个组

组账户的分类:

基本组:一般情况与用户同名,一个用户必须有基本组,基本组只能有一个

附加组(从属组):一个用户可以有多个附加组,也可以没有附加组

  1. [root@localhost /]# useradd zhangsan
  2. 组: zhangsan
  3. 组:sg xs mn haha xixi student

/etc/group,保存组帐号的基本信息

每个组记录一行,以:分割为4个字段

[root@localhost ~]# grep stugrp /etc/group

stugrp:x:1504:nsd06

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

 
  1. [root@localhost ~]# groupadd tarena #新建一个组
  2. [root@localhost ~]# grep tarena /etc/group #查看组信息
  3. tarena:x:1607:
  4. 组名字:密码占位符:GID:组成员列表
  5. [root@localhost ~]# useradd kaka
  6. [root@localhost ~]# useradd nb
  7. [root@localhost ~]# useradd jack
  8. [root@localhost ~]# useradd kenji

gpasswd命令(添加附加组)

格式:gpasswd [选项]... 组名

•常用命令选项

-a:添加组成员,每次只能加一个

-d: 删除组成员,每次只能删一个

-M:定义(重置)组成员用户列表,可设置多个用户

  1. [root@localhost /]# gpasswd -a kaka tarena #添加用户kaka到tarena组
  2. [root@localhost /]# grep tarena /etc/group #查看组信息
  3. [root@localhost /]# id kaka
  4. [root@localhost /]# gpasswd -a nb tarena #添加用户nb到tarena组
  5. [root@localhost /]# grep tarena /etc/group
  6. [root@localhost /]# gpasswd -M 'jack,kenji' tarena #定义组成员列表
  7. [root@localhost /]# grep tarena /etc/group
  8. [root@localhost /]# gpasswd -a nb tarena #添加用户nb到tarena组
  9. [root@localhost /]# grep tarena /etc/group
  10. [root@localhost /]# gpasswd -d nb tarena #将nb用户从tarena组中删除
  11. [root@localhost /]# grep tarena /etc/group
  12. [root@localhost /]# gpasswd -M '' tarena #删除组中所有成员
  13. [root@localhost /]# grep tarena /etc/group

-A:定义组管理员列表(组管理员可以属于此组也可以不属于此组)

 
  1. [root@localhost ~]# su - nb
  2. [nb@localhost ~]$ gpasswd -a kaka tarena
  3. gpasswd:没有权限。
  4. [nb@localhost ~]$ exit
  5. [root@localhost ~]# gpasswd -A nb tarena #设置组管理员
  6. [root@localhost ~]# su - nb
  7. [nb@localhost ~]$ gpasswd -a kaka tarena
  8. 正在将用户“kaka”加入到“tarena”组中
  9. [nb@localhost ~]$ exit
  10. [root@localhost ~]#

/etc/gshadow:组的管理信息配置文件

  1. [root@localhost ~]# grep tarena /etc/gshadow
  2. tarena:!:nb:
  3. 组名:密码加密字符串:组的管理员列表:组成员列表
  4. [root@localhost /]# gpasswd -A 'nb,kenji' tarena #设置多个组管理员
  5. [root@localhost /]# grep tarena /etc/gshadow
  6. [root@localhost /]# gpasswd -A '' tarena #删除所有的组管理员
  7. [root@localhost /]# grep tarena /etc/gshadow

总结:用户与组重要的配置文件

/etc/passwd:用户基本信息配置文件

/etc/shadow:用户密码信息配置文件

/etc/group:组基本信息配置文件

/etc/gshadow:组管理信息配置文件

删除组账号:删除组的时候,不可以删除基本组

  1. [root@localhost ~]# groupdel tarena
  2. [root@localhost ~]# groupdel tmooc
  3. [root@localhost ~]# grep tmooc /etc/group
  4. [root@localhost ~]# grep tarena /etc/group

总结:Linux系统执行useradd命令,会完成那些操作?

1.会在/etc/passwd增加一行信息

2.会在/etc/shadow增加一行信息

3.会在/home新增用户家目录

4.会在/var/spool/mail增加用户邮件文件

5.会在/etc/group增加一行组信息

6.会在/etc/gshadow增加一行组的管理信息

总结:Linux系统执行userdel -r命令,会完成那些操作?

1.会在/etc/passwd删除一行信息

2.会在/etc/shadow删除一行信息

3.会在/home删除用户家目录

4.会在/var/spool/mail删除用户邮件文件

5.会在/etc/group删除一行组信息

6.会在/etc/gshadow删除一行组的管理信息


三、计划任务

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

软件包:cronie、crontabs

系统服务:crond

日志文件:/var/log/cron

使用 crontab 命令

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

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

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

计划任务书写格式

分 时 日 月 周 任务命令行(绝对路径) (选择题容易出)

* * * * * #每分钟执行一次

30 8 * * * #每天早晨的8点30分,执行一次

30 23 * * * #每天晚上23:30 执行一次

30 23 * * 5 #每周的周五23:30 执行一次

30 23 * * 1-5 #每周的周一至周五23:30 执行一次

30 23 * * 1,3,6 #每周的周一周三周六23:30 执行一次

特别写法:

5 * * * * #每个小时的第五分钟执行一次

*/5 * * * * #每隔5分钟运行一次

38 */2 * * * #每隔2小时运行一次

*:匹配范围内任意时间

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

-:指定连续时间范围

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

案例:

每分钟记录当前的系统时间,写入/opt/time.txt

  1. [root@nb ~]# date
  2. [root@nb ~]# date >> /opt/time.txt
  3. [root@nb ~]# cat /opt/time.txt
  4. [root@nb ~]# which date #查询命令程序路径
  5. [root@nb ~]# crontab -e #编写计划任务
  6. * * * * * /usr/bin/date >> /opt/time.txt
  7. [root@nb ~]# crontab -l #查看计划任务内容
  8. [root@nb ~]# cat /opt/time.txt
  9. [root@nb ~]# ls /var/spool/cron #任务文件存放的路径
  10. [root@nb ~]# cat /var/spool/cron/root #记录root用户计划任务

小伙伴们,以上就是云计算第一阶段admin 的最终内容。需要我们熟练掌握增删改查知识,和进阶的的Yum仓库搭建,rpm软件查询,用户、组用户的管理,以及ACEL  计划的熟练使用。

接下来,我将更新云计算第一阶段第二模块学习内容。O(∩_∩)O

本文标签: 基础admin