Linux操作系统基础

本文详细介绍了Linux CentOS 7的部署、网络配置、用户及权限管理、系统信息获取命令。从安装部署开始,讲解了虚拟机运行模式,包括桥接、NAT和主机模式。深入探讨了用户、用户组、权限和umask概念,列举了相关管理命令。同时,文章涵盖了文件和目录的权限管理,以及获取系统信息、磁盘、进程和网络信息的命令。最后,简要介绍了磁盘分区、格式化和LVM逻辑卷管理。

一、部署Linux CentOS 7

1、安装部署

ISO:CentOS-7-x86_64-DVD-2009.iso
虚拟机:VM
安装版本:CentOS 7,最小化安装
安装完成之后,进行一次重启,就可以进入系统

安装完毕,

2、网络连接

最小化进去之后是没有ipconfig,可以使用ip addr

  • 在这之前我的网卡模式是NAT,正常情况是会自动分配一个地址,但这里的ens33没有地址,我们需要给这张网卡配地址

            进入nmtui

           进去之后发现antomatically connect进没有勾选,把自动连接勾选上,保存退出。

  • 如果在可视化界面没有办法对antomatically connect进行选择的话,可以使用

            nmcli connection modify ens33 connection.autoconnect yes

对网卡进行重启
systemctl restart network

到目前为止,我们的Centos 7可以正常进行通信。

3、安装 netstat 工具

一般我们会使用Xshell/SecureCRT等连接工具去登录多个主机,简单,方便,效率高。

如果客户很多服务器,分布在不同的地方,直接在服务器上操作很不方便,这里我使用了Xshell去连接

因为我想使用Xshell此时我想看一下22号端口是否打开,此时nestat工具还不能使用

安装netstat:
yum install net-tools


查看是否开启22端口
netstat -ntpl | grep 22


直接使用Xshell工具进行连接

查看基础的系统信息:

部署完毕!
 

二、虚拟机运行模式

桥接模式
默认网卡是VMnet1,简单来说就是把虚拟主机和宿主机通过一台虚拟的交换机连接起来,然后两台主机的IP地址就相当于在一个网段,不过这个IP地址需要手工配置。

NAT模式
网络转换模式,默认网卡是VMnet8,这样会有两张网卡。
就是把真实的宿主机看作是一个路由器,然后把宿主机的网卡和虚拟机的网卡通过这台路由器连接起来,通过该路由器给虚拟机下放一个IP,然后如果虚拟机要想访问外网就可以,将信息发给路由器,然后路由器通过NAT地址转换,转换为宿主机的地址,这下就可以上网。

主机模式
Host-only模式,虚拟机完全是一个独立的主机,就是完全与宿主机脱离开来,然后不同的虚拟机之间可以进行通讯,相当于一个局域网。


三、Linux操作系统下的用户、用户组、用户权限、umask的概念;

1、用户和用户组

1.1、用户分类
管理员用户:享有最高权限,具备系统中的所有权限(一般为root),UID为0
普通用户:有权限限制,只能对自己目录下的文件进行操作,可以登录系统,UID>=500
系统用户:别称“伪用户”,无法登录系统,一般系统默认持有如bin,nobody等,其主要作用是支撑系统运行,方便系统管理,UID为1-499(闭区间)

1.2、用户组分类
管理员组:root 0
普通组:
    系统组
    登录用户组
组类别:
基本组(主组):组名同用户名,且仅包含一个用户,私有组
附加组(额外组):一个用户可以属于多个额外组

1.3、用户和组的关系
一对一:一个用户可以存在一个组中,是组中的唯一成员;
一对多:一个用户可以存在多个用户组中,此用户具有这多个组的共同权限;
多对一:多个用户可以存在一个组中,这些用户具有和组相同的权限;
多对多:多个用户可以存在多个组中,也就是以上 3 种关系的扩展。

2、用户和组配置文件

/etc/passwd:用户及其属性信息(名称、UID、基本组ID等等)
 root:x:0:0::/root:/bin/bash
登录名:密码:UID:GID:用户全名或注释:家目录:shell

/etc/shadow:用户密码及其相关属性
root:11TCVDVaiT$JC7TbKjvIZpIprdehWFH/1:15157:0:99999:7:::
第一字段:登录名
第二字段:用户密码
第三字段:密码最近一次的修改时间(从1970年1月1日起)
第四字段:密码再过几天可以被更改(0表示随时可以更改)
第五字段:密码再过几天必需被变更(99999表示永不过期)
第六字段:密码过期前几天系统提醒用户(默认为一周)
第七字段:密码过期几天后账号会被锁定
第八字段:从1970年1月1日算起,多少天后账号失效
第九字段:保留字段

/etc/group:组及其属性信息
root:x:0:root
组名称:组密码:GID:以当前组为附加组的用户列表

/etc/gshadow:组密码及其相关属性
root:::root
组名称:组密码:组管理员的列表:以当前组为附加组的用户列表

3、用户和组的管理命令

3.1、useradd
参数:
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
-m:自动建立用户的登入目录;
-e<有效期限>:指定帐号的有效期限;
-f<缓冲天数>:指定在密码过期后多少天即关闭该帐号;

3.2.、usermod
参数:       
-c 修改/etc/passwd文件第五段comment
-d 修改用户的家目录通常和-m选项一起使用
-e 指定用户帐号禁用的日期,格式YY-MM-DD
-f 用户密码过期多少天后采用就禁用该帐号,0表示密码已过期就禁用帐号,-1表示禁用此功能,默认值是-1
-g 修改用户的gid,改组一定存在
-G 把用户追加到某些组中,仅与-a选项一起使用
-l 修改用户的登录名称
-L 锁定用户的密码
-m 修改用户的家目录通常和-d选项一起使用
-s 修改用户的shell
-u 修改用户的uid,该uid必须唯一
-U 解锁用户的密码
-a 把用户追加到某些组中,仅与-G选

3.3、userdel
参数:
-r 删除用户登入目录以及目录中所有文件。
-f 强制删除用户(甚至当用户已经登入 Linux 系统时此选项仍旧生效)

3.4、groupmod
参数:
-g 设置欲使用的群组识别码。
-o 重复使用群组识别码。
-n 设置欲使用的群组名称。

3.5、groupdel
参数:
-f 强制删除,即使是用户的主组也强制删除组

3.6、passwd
参数:
-d 删除密码,仅有系统管理者才能使用;
-f 强制执行;
-k 设置只有在密码过期失效后,方能更新;
-l 锁住密码;
-s 列出密码的相关信息,仅有系统管理者才能使用;
-u 解开已上锁的帐号。

3.7、groupmod
参数:
-g 设置欲使用的群组识别码。
-o 重复使用群组识别码。
-n 设置欲使用的群组名称。

3.8、gpasswd
参数:
-a 添加用户到组;
-d 从组删除用户;
-A 指定管理员;
-M 指定组成员和-A的用途差不多;
-r 删除密码;
-R 限制用户登入组,只有组中的成员才可以用newgrp加入该组。

3.9、su
参数:
-c 执行完指定的指令后,即恢复原来的身份;
-f 适用于csh与tsch,使shell不用去读取启动文件;
-l 改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname。此外,也会变更PATH变量;
-m,-p 变更身份时,不要变更环境变量;
-s<shell>或--shell=<shell> 指定要执行的shell;

实例:变更账号为超级用户,并在执行df命令后还原使用者。
su -c df root

su 和 su - 的区别
su -: 会切换root用户,也会把用户变量也切换到root的环境变量
su :  只是会切换root用户,但是当前的环境变量还是以前用户的环境变量

3.10、id
参数:
-g或--group   显示用户所属群组的ID。
-G或--groups   显示用户所属附加群组的ID。
-n或--name    显示用户,所属群组或附加群组的名称。
-r或--real    显示实际ID。
-u或--user    显示用户ID。
-help         显示帮助。
-version      显示版本信息。

3.11、chage
参数:
-m 密码可更改的最小天数。为零时代表任何时候都可以更改密码。
-M 密码保持有效的最大天数。
-w 用户密码到期前,提前收到警告信息的天数。
-E 帐号到期的日期。过了这天,此帐号将不可用。
-d 上一次更改的日期。
-i 停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
-l 例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。

3.12、finger
参数:
-l 列出该用户的帐号名称,真实姓名,用户专属目录,登入所用的Shell,登入时间,转信地址,电子邮件状态,还有计划文件和方案文件内容;
-m 排除查找用户的真实姓名;
-s 列出该用户的帐号名称,真实姓名,登入终端机,闲置时间,登入时间以及地址和电话;
-p 列出该用户的帐号名称,真实姓名,用户专属目录,登入所用的Shell,登入时间,转信地址,电子邮件状态,但不显示该用户的计划文件和方案文件内容。

3.13、w
参数:
-h 不打印头信息;
-u 当显示当前进程和cpu时间时忽略用户名;
-s 使用短输出格式;
-f 显示用户从哪登录;
-V 显示版本信息。

3.14、last
参数:
-a 将登录系统的的主机名称或IP地址,显示在最后一行
-d 将IP地址转换成主机名称
-f 指定记录文件,默认是显示/var/log目录下的wtmp文件的记录,但/var/log目录下得btmp能显示的内容更丰富,可以显示远程登录,例如ssh登录 ,包括失败的登录请求。
-i -i显示特定ip登录的情况。跟踪用 -i显示特定ip登录的情况。跟踪用
-o Read an old-type wtmp file (written by linux-libc5 applications).
-n -n <显示行数>或-<显示行数>  设置显示多少行记录
-w Display full user and domain names in the output
-R 不显示登入系统的主机名称或IP(省略 hostname 的栏位)

4、文件和目录的权限和归属

4.1 访问权限和归属(所有权)
4.1.1 访问权限

类型

解释

读取r允许查看文件内容,显示目录列表
写入w允许修改文件内容,允许在目录中新建,移动,删除文件或子目录
可执行x允许运行程序,切换目录

4.1.2 归属(所有权)

类型

解释

属主拥有该文件或目录的用户账号
属组拥有该文件或目录的组账号

4.2 查看文件/目录的权限和归属

权限字段-rw-r–r–的含义

字符

解释

第1个字符“-” 表示文件类型。可以是d(目录),b(块设备文件),c(字符设备文件),“-”普通文件,字母“l”(链接文件)等
第2-4个字符“rw-”表示该文件的属主用户(User)对该文件的访问权限
第5-7个字符“r–”表示该文件的属组内每个成员用户(Group)对该文件的访问权限
第8–10个字符“r–”表示其他任何用户(Other)对该文件的访问权限

权限项执行执行执行
字符表示rwxrwxrwx
数字表示421421421
权限分配文件所有者文件所属组其他用户

rwx采用累加数字形式表示成 7 , r-x 表示成 5 , rwxr-xr-x 表示成755,rw-r–r–表示成644

4.3. 权限掩码 umask
在创建文件和目录是会赋予一个初始权限

#root用户默认是0022,普通用户默认是 0002

umask设置命令格式 umask 000(000指数字) umask查看 umask 

 
四、掌握获取系统信息、磁盘信息、进程信息、网络信息的命令;

掌握获取系统信息、磁盘信息、进程信息、网络信息的命令
1、查看Linux内核版本命令(两种方法):
1.1、uname -a (Linux查看版本当前操作系统内核信息)



1.2、cat /proc/version (Linux查看当前操作系统版本信息)



2、查看Linux系统版本的命令(3种方法):
2.1、lsb_release -a,即可列出所有版本信息:

如果显示bash: lsb_release: 未找到命令
则安装一下即可:yum install -y redhat-lsb
这个命令适用于所有的Linux发行版,包括RedHat、SUSE、Debian…等发行版。


2.2、cat /etc/redhat-release,这种方法只适合Redhat系的Linux:

2.3、cat /etc/issue,此命令也适用于所有的Linux发行版。

4、磁盘信息

4.1、df(disk free)

df 命令以磁盘分区为单位查看文件系统中磁盘空间的使用情况
也可以使用 -h 可以显示易于我们理解的形式

4.2、 du(disk usage)
du命令也是检查硬盘使用情况,但是两者是有一定区别的。
du 命令是统计文件或目录及其子目录的硬盘空间使用情况,一般可以帮我们快速定位目录下是否存在超大文件或其他特殊大小的文件。
df 命令是统计磁盘分区整体的使用情况。
du 命令会直接到特定目录内查找所有文件数据,并统计累加,所以命令执行时会耗费一点儿时间。
df 命令直接从文件系统中提取信息,所以比较快速。
常用选项:

选项

功能

-a列出所有的文件和目录容量大小而不仅仅列出目录容量大小
-s仅显示总计,只列出最后加总的值
-h 以K,M,G为单位,提高信息的可读性
-c

除了列出文件和目录的容量大小外,最后在列出总容量

-max递归显示(仅仅是显示)时的递归深度小于等于N。–max-depth=0相当于-s参数

5、CPU状态信息

cat /proc/cpuinfo

查看状态信息

可以使用命令:top或者命令dstat
(1)top
使用top后就会出现整个主机上的总览和一些具体的信息,包括占用的内存情况:

结果解释:
前五行是一个总览信息:
第一行:是一个任务队列信息,其中load表示系统负载(任务队列的平均长度)该值越大,系统越繁忙
第二行和第三行:进程的CPU信息
第四行:Mem 表内存使用情况,total 物理内存总量,used 使用的物理内存总量,free 空闲内存总量,buffers 用作内核缓存的内存量
第五行:表示Swap分区使用情况

接着就是一些进程列表,默认按照CPU占用情况进行降序排列

  • PID 表示进程 id
  • USER 表示进程拥有者的用户id
  • PR 表示进程优先级
  • NI 表示 nice 值,和 PR 搭配使用
  • VIRT 表示虚拟内存使用情况
  • RES 表示物理内存使用情况(如果进程使用的物理内存的和接近机器的物理内存总量, 就会出现内存不够用的情况)
  • %CPU 表示该进程占用 CPU 的百分比(多核机器这个值可以超过 100%)
  • COMMAND 对应到这个进程启动的命令

top的一些常见用法:

【查看占用内存最多的前N个进程】
执行top命令后再输入shift + m 就可以按照内存使用情况来降序排列

【查看CPU占用最多的前n个进程】
执行top命令后再输入shift + p就可以按照CPU使用情况来降序排列

(2)dstat 多功能系统资源统计生成工具

 --total-cpu-usage---- CPU使用率
usr:用户空间的程序所占百分比;
sys:系统空间程序所占百分比;
idel:空闲百分比;
wai:等待磁盘I/O所消耗的百分比;
hiq:硬中断次数;
siq:软中断次数;
-dsk/total-磁盘统计
read:读总数
writ:写总数
-net/total- 网络统计
recv:网络收包总数
send:网络发包总数
---paging-- 内存分页统计
in: pagein(换入)
out:page out(换出)
如果没有dstat 可以使用yum -y install dstat 安装后使用

6、查看内存信息
6.1、查看基本容量信息
cat /proc/meminfo

6.2、查看内存运行空间信息
可以使用命令 free

也可以输入 free -k 是以KB为单位显示,输入free -m 以MB为单位显示

7、查看网络信息
7.1、 查看网络连接数和端口
使用命令:netstat 搭配-anp 来查看网络连接数和端口
参数解释:
-a:显示所有选项
-t :仅显示tcp相关选项
-u:仅显示udp相关选项
-n:拒绝显示别名,能显示数字的全部转化成数字
-p:显示建立相关连接的程序名

列表示的含义:
Proto:表示的协议类型
LocalAddress:表示本地的IP和端口
ForeignAddress:表示对端IP地址和端口
State :表示状态(对于TCP来说)
PID/Program name 表示对应的进程id和进程名

我们要查看在80端口的进程,可以使用管道符,netstat -anp | grep 80

我们要查看SSH的进程,netstat -anp | grep ssh

7.2、查看IP地址
使用ifconfig命令可以查看到本机的一些IP信息:

注意:如果在执行ifconfig的时候出现:-bash: ifconfig: command not found

查看变量中有没有/sbin,没有就请在/etc/profile文件中加上

保存后,执行source /etc/profile

此时如果还是没有办法正常执行ifconfig,更新一下:

yum install upgrade
yum install net-tools

使用ip addr

网卡地址:/etc/sysconfig/network-scripts/ifcfg-ens33


五、掌握Linux系统下的磁盘分区、格式化、挂载操作,并掌握lvm的配置和用法;

当我们发现我们虚拟机的空间不够我们使用了,我们可以对空间进行扩容,sdb就是我对Centos 7进行的10G扩容

1、fdisk /dev/sdb 用于磁盘分区,是Linux的磁盘分区表操作工具

如果不清楚怎么分区,可以用m来查看相应的命令详情。

p 可以查看当前有哪些分区,由于这是一个刚刚扩容的硬盘,里面还没有进行分区

我们要创建新的分区,使用n

由于我们这里是一次对/sdb进行分区,会让我们选择是创建主分区还是逻辑分区【主分区最多可以有四个,逻辑分区可以有多个,如果全部都被创建了主分区,就没有办法创建逻辑分区了。】

这里我们创建主分区

此时已经创建好了一个分区/dev/sdb1,w进行保存

之后可刷新然后查看分区结果
刷新:# partprobe /dev/sdb
查看:# fdisk -l /dev/sdb
# lsblk

2、创建文件系统(格式化)

 mkfs.ext4 /dev/sdb1

3、挂载  mount

先创建挂载点:# mkdir /mnt/test
挂载:#mount -t ext4 /dev/sdb1 /mnt/test

#umount /dev/sdb1 //取消挂载

永久挂载
mount临时挂载就消失了,需要使用永久挂载:
对/etc/fstab 文件进行编辑,在最后一行添加
  /dev/sdb1 /mnt/test ext4 defaults 0 0
  (磁盘 挂载点  文件系统类型  默认选项  优先级  优先级)
*注意:命令添加错误会导致开机黑屏!谨慎操作!

4、LVM逻辑卷分区
【简介】
基本分区创建分区只有那么大,无法调整大小,写入数据占满时便无法继续,而LVM特点就是可随意扩张大小,避免磁盘占满导致数据丢失。

【术语】
LVM是 Logical Volume Manager(逻辑卷管理)
  PV:物理卷(Physical volume):一块硬盘,或多块硬盘
  VG:卷组(Volume Group):一堆磁盘的统称
  LV:逻辑卷(Logical Volume):一个逻辑分区

创建LVM分区
创建LVM分区的磁盘需要是一个未分区的磁盘,【主分区】
#pvcreate /dev/sdb2 (pv—将物理磁盘,转换成物理卷)

#vgcreate qt1 /dev/sdb2 (vg—创建卷组qt1)

#lvcreate -L 400M -n qt11 qt1 (lv—创建逻辑卷分区qt11)(L大小,n卷名)

#mkfs.ext4 /dev/qt1/qt11      (创建文件系统/格式化)
#mkdir /mnt/qt111             (创建挂载点)
#mount /dev/qt1/qt11 /mnt/qt111     (挂载)
#lsblk                   (查看挂载)

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值