Linux使用教程

1.虚拟机快照

只需要在vmware上方栏中找到虚拟机,点击快照即可进行对应操作,快照类似于事务回滚,可以将虚拟机的状态回退到指定的快照时刻,由于操作简单,就不做详细教程以及过多赘述了...

2.虚拟机克隆

同样,只需要在vmware上方蓝中找到虚拟机,找到管理,点击克隆即可,过程简单不做赘述...

3.Linux目录结构(重点)

3.1基本介绍

  • linux的文件系统是采用级层式的树状目录结构,在此结构上的最上层是根目录“/",然后在此目录下在创建其他的目录。
  • 深刻理解linux树状文件目录是非常重要的
  • 在LInux世界里,一切皆文件

3.2具体的目录结构 

是Binary的缩写,这个目录存放着最常使用的命令

/sbin (/usr/sbin、/usr/local/sbin)

s就是Super user的意思,这里存放的是系统管理员使用的系统管理程序

/home 【常用】

存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录是以用户的账号命名

/root 【常用】

该目录为系统管理员,也称作超级权限者的用户主目录

/lib 系统开机所需要的最基本的动态链接共享库,起作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库

/lost+found 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件

etc 【常用】

所有的系统管理所需要的配置文件和子目录,比如安装mysql数据库,my.conf

/usr 【常用】

这是一个非常重要的目录,用户很多应用程序都放在这个目录下,类似于windows下的program files目录。

/boot 【常用】

存放的是启动Linux时使用的一些核心文件,包括一些链接文件以及镜像文件

/proc 这个目录是一个虚拟的目录,他是系统内存的映射,访问这个目录来获取系统信息

/srv service缩写,该目录存放一些服务器启动后需要提取的数据

/sys 这是linux2.6内核的一个很大的变化,该目录下安装了2.6内核中新出现的一个文件系统sysfs

/tmp这个目录是用来存放一些临时文件的

/dev

类似于windows的设备管理器,把所有的硬件用文件的形式存储

/media【常用】linux系统会自动识别一些设备,例如U盘,光驱等等,当识别后,linux会把识别的设备挂载到这个目录下

/mnt 【常用】

系统提供该目录是为了让用户临时挂载别的系统文件,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里面的内容了。D:/mushare

/opt 这是给主机额外的安装软件所存放的目录。如安装ORACLE数据库就可以放到该目录下。默认为空

/usr/local【常用】

这是另一个给主机额外安装软件所安装的目录。一般是通过编译源码的方式安装的程序

/var 【常用】

这个目录中存放着在不断扩充的东西 ,习惯的将经常修改的目录放在这个目录下。包括各种日志文件

/selinux 【security-enhanced linux】

SELinux是一种安全子系统,他能控制程序自能访问特定的文件,有三种工作模式,可以自行设置

4.远程操控

准备工作:

  • xshell 6
  • xftp
  • 虚拟机

 使用方法:

1.首先在虚拟机中的终端输入指令,找到ens33中inet网络ip号

ifconfig -a

2.在windows终端中输入指令,查看与虚拟机连接信息

ping ip号

 3.在xshell中创建连接,主机为虚拟机中ip地址

4.完成连接,可以在xshell中查看虚拟机中的目录结构 

注意:

如果连接ping 虚拟机时 出现连接超时,或者xshell中连接失败,要关闭windows中的防火墙!! 

5.vi和vim使用 

5.1 vi和vim的基本介绍

Linux系统会内置vi文本编辑器,Vim具有程序编辑的能力,可以看做是Vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补完、编译错误跳转等方便编程的功能相当丰富,在程序员中被广泛使用。(vim就是vi的增强版)

5.2 vi和vim常用的三种模式

正常模式
以vim打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中,可以使用【上下左右】键来移动光标,你可以使用【删除字符】或【删除整行】来处理档案内容,也可以使用【复制、粘贴】来处理你的文件数据。 

插入模式
按下i,I,o,O,a,A,r,R等任何一个字母之后才会进入编辑模式,一般来说按i就可

命令行模式
在这个模式中,可以提供你相关指令,完成读取、存盘、替换、离开vim、显示行号等动作则是在此模式中达成的!

5.3 一些简单的vim快捷键

一般模式下:

        拷贝当前行 yy, 拷贝当前行向下的5行 5yy,并粘贴(输入p)

        删除当前行 dd, 删除当前行向下的5行 5dd

        编辑/etc/profile 文件,在一般模式下,使用G到该文档的最末行,gg到最首行

        使用u撤销当前动作 

        将光标移动到指定[例如:20]行数, 先输入20[注意不要使用小键盘],再输入 shift+gg

 命令行下:

        在文件中查找某个单词[/关键字,回车 查找,输入n就是查找下一个]

        :set nu设置文件的行号,  :set nonu取消文件的行号

  6 关机重启及登录注销      

 6.1 关机重启

     在终端输入:

                shutdown -h now   立刻关机

                shutdown -h 2        两分钟后关机

                shutdown -r now    立刻重启计算机

                halt                         立刻关机

                reboot                    立刻重启计算机 

                sync                        把内存的数据同步到磁盘中

注意细节: 

                1.不管是重启系统还是关闭系统,我们都应该首先执行sync指令将数据备份到磁盘中

                2.目前的 shutdown/reboot/halt 等命令均已经在关机前进行了 sync操作

6.2 登录注销 

                在一般情况下,我们为了避免操作失误,会使用普通用户登录,如果要在普通用户中使用root权限,可以在终端输入 su - root 命令来切换成系统管理员身份

                在提示符下输入 logout 即可注销用户, 例如在centorOS中root用户下logout会退回到普通用户,普通用户logout后会退出终端..

注意细节:

        logout注销指令在图形运行级别无效,在 运行级别3下有效

7 用户管理

7.1 基本介绍

Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统

7.2 增加和删除用户

7.2.1 增加用户 

        useradd 用户名

                默认该用户的家目录在/home/xxx

细节说明:

        1.当用户创建成功后果,会自动的创建和用户同名的家目录

         2.也可以通过useradd -d 指定目录 用户名 来给新创建的用户指定家目录

 7.2.1 删除用户 

        userdel 用户名:         删除用户,保留主目录

        userdel -r 用户名:      删除用户并且删除主目录

细节说明:

        一般删除用户建议使用 userdel 用户名,防止我们删除掉其他用户留下的重要内容。 

7.3 修改/指定密码

         passwd 用户名: 修改指定用户密码

 补充: 

        pwd: 显示当前用户所在的目录

7.4 查询用户 

        id 用户名: 查询指定用户

细节说明:

        当用户不存在时,返回无此用户

7.5 切换用户 

        su - 用户名 :  切换到指定用户 

 细节说明: 

        1.当低权限用户向高权限用户切换时要输入,高权限用户的密码,反之则不需要

        2.当需要返回到原来用户时,使用exit/logout指令

7.6 查看当前用户/登录用户 

        who am i : 查询当前用户

细节说明:

        查看的是登录的用户! 

7.7 用户组 

        groupadd 组名:  增加一个组 

        groupdel 组名: 删除一个组

        useradd -g 组名 用户名: 增加用户时直接指定组

        usermod -g 组名 用户名:  移动用户到指定组

 细节说明:

        如果当添加用户时没有指定组,会默认创建和这个用户同名的组,同时把用户放到该组里

7.8 用户和组相关文件

        /etc/passwd 文件
                用户(user)的配置文件,记录用户的各种信息 

                每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

        /etc/shadow 文件
                口令配置文件

                每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警                  告时间:不活动时间:失效时间:标志

        /etc/grou p文件
                组(group)的配置文件,记录Linux包含的组的信息

                每行含义:组名:口令:组标识号:组内用户列表

 细节说明:

        使用 vim编译即可查看到对应信息

8 Linux实践——实用指令 

8.1 运行级别 

0:关机

1:单用户【找回丢失密码】

2:多用户状态没有网络服务

3:多用户状态有网络服务

4:系统未使用保留给用户

5:图形界面

6:系统重启

 常用运行级别是3和5,也可以指定默认运行级别

init 1~6:  切换到指定运行级别 

systemctl get-default  查看当前的运行级别

systemctl set-default multi-user.target: 更换为多用户状态有网络服务

8.2 帮助指令 

8.2.1. man获得帮助信息

       man [命令或配置文件](功能描述:获得帮助信息)

8.2.2. help指令

       help 命令 (功能描述:获得shell内置命令的帮助信息)

细节说明:

        在linux下隐藏文件是以 “.” 开头的

        在man指令中可以使用组合指令进行需要的信息 例如 man -la 

8.3 文件目录类 

8.3.1. pwd指令

 pwd :显示当前工作目录的绝对路径)

 8.3.2. ls指令

 ls [目录或是文件]:  显示目录下的目录信息

        细节说明:绝对路径和相对路径

ls常用选项

        -a : 显示当前目录所有的文件和目录,包括隐藏的

        -l : 以列表的方式显示信息

        -lh:  以人能接受的方式显示信息  

8.3.3.cd指令 

cd [参数] :切换到指定的目录

  cd常用选项

        cd ~ 或者cd 回到自己的家目录

        cd .. 回到当前目录的上一级目录

8.3.4.mkdir指令 

mkdir 要创建的目录: 创建单级目录

mkdir -p 要创建的目录: 创建多级目录 

8.3.5.rmdir指令 

rmdir 要删除的目录: 删除空目录,如果欲删除的目录下有内容则无法删除

rm -rf 要删除的目录:删除非空目录

8.3.6.touch指令 

touch 文件名称创建空文件

8.3.7.cp指令 

cp 文件 目录: 拷贝文件到指定目录

         实例:

                 cp /home/hello.txt /home/bbb: 将 /home/hello.txt 拷贝到 /home/bbb 目录下

                cp -r /home/aaa /home/bbb: 将整个目录和目录本身拷贝到 /home/bbb下

使用强制覆盖不提示的方法:\cp 

8.3.8.rm指令 

rm 文件/目录: remove,移除文件或目录

  rm常用选项

        -r : 递归删除整个文件夹

        -f :强制删除不提示

        细节说明:强制删除不提示的方式,带上-f参数即可

8.3.9.mv指令 

mv oldNameFile newNamefile :重命名文件与目录

mv /temp/movefile /targetFolder :移动文件与目录,剪切

        细节说明: 在同一目录下使用mv指令时,会将文件进行重命名

8.3.10.cat指令 

cat 文件名: 查看文件内容

  cat常用选项: -n 显示行号

           细节说明:  cat只能浏览文件,而不能修改文件,为了浏览方便,一般会带上管道命令 |more

8.3.11.more指令 

more 文件: more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more指令中内置了若干快捷键(交互的指令)

8.3.12.less指令 

less 文件: 查看大文件,用来分屏查看文件内容,与more指令类似,但是比more指令更加强大,支持各种显示重点。less指令在显示文件内容是,并不是一次将整个文件加载后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率
 

       操作                     功能说明
  空格键                   往下翻动一页
【pagedown】        向下翻动一页
【pageup】            向上翻动一页
 /字串                      向下搜寻【字串】的功能;n:向下查找;N:向上查找
 ?字串                     向上搜寻【字串】的功能;n:向上查找;N:向下查找
 q                            离开less这个程序 

8.3.13.echo指令 

 echo 内容: echo输出内容到控制台

8.3.14.head指令 

head 文件 :查看文件头10行内容

head -n 5 文件查看文件头5行内容

        功能描述:用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容

 8.3.15.tail指令

tail 文件:查看文件尾10行内容

tail -n 5 文件:查看文件尾5行内容

tail -f: 实时追踪该文档的所有更新

        功能描述:用于输出文件尾部内容,默认情况下tail指令显示文件的前10行内容

8.3.16.>和>>指令 

ls -l >文件 :列表的内容写入当某文件中(覆盖写)

ls -al >> 文件:列表的内容追加到某文件的末尾

cat 文件1>文件2:将文件1的内容覆盖到文件2

echo “内容” >> 文件:控制台内容追加到文件中:

       注意细节:>表示重定向(覆盖),>>表示追加;注意上面ls -lls -al是上面ls指令里内容

8.3.17.ln指令

ln -s[原文件或目录][软连接名] :给原文件创建一个软链接
功能描述:软链接也称为符号链接,类似于windows中的快捷方式,主要存放了链接其他文件的路径 

8.3.18.history指令 

history查询所有历史命令:

history 10:显示最近十条历史命令:

!5:执行编号为5的指令

8.4 时间日期类 

8.4.1 date指令

 date: 显示当前时间

date +%Y:显示当前年份

date +%m :显示当前月份

date +%d: 显示当前是哪一天

date "+%Y-%m-%d %H:%M:%S": 显示年月日时分秒

date -s 字符串时间:设置日期

cal:显示本月日历

cal 2023: 显示2023整年的日历

8.5 搜索查找类 

8.5.1 find指令

find 指定目录 文件名: 从指定目录向下递归遍历各个子目录,将满足条件的文件或者目录显示在终端上 

 find 指定目录 -name 文件名:按照指定的文件名查找模式查找文件

find 指定目录 -user 文件名: 查找属于指定用户名所有文件

 find 指定目录 -size 文件名: 按照指定的文件大小查找文件

细节说明: 当查询路径下无该文件,就不会有任何显示 

8.5.2 locate指令 

locate 文件名:快速定位文件路径

细节说明:

1.locate命令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位的文件名。

2.Locate指令无需遍历整个文件系统,查询速度较快。为了保障查询结果的准确度,管理员必须定期更新locate时刻

3.由于locate指令基于数据进行查询,所以第一次运行前,必须是使用updatedb指令创建locate数据库 

8.5.3 which指令  

which 指令: 可以查看某个指令在哪个目录下 

8.5.4 grep指令和管道符号 |

 grep 查找内容 源文件:  在指定文件中查找内容

 grep -n  查找内容 源文件:  在指定文件中查找内容,显示行号

 grep - 查找内容 源文件: 在指定文件中查找内容,忽略字母大小写

两种写法

1.cat /home/hello.txt |grep -n "yes"

2.grep -n "yes" /home/hello.txt

8.6 压缩和解压 

8.6.1 gzip/gunzip指令

gzip 文件:压缩文件,只能将文件压缩为*.gz文件

gunzip 文件:解压.gz文件

8.6.2  zip/unzip指令

zip xxx.zip 文件/文件夹: 将文件/文件夹压缩成.zip文件

uzip xxx.zip 目录:解压.zip文件到指定目录

zip -r myhome.zip /home/ : 将home及/home以下目录压缩成 myhome.zip文件

unzip -d 文件目录 .zip文件: 将zip文件解压到指定文件目录

8.6.3 tar指令 

tar [选项] xxx.tar.gz 打包的内容:打包目录,压缩后的格式.tar.gz

选项功能
-c产生.tar打包文件
-v显示详细信息
-f指定压缩后的文件名
-z打包同时压缩
-x解包.tar文件

tar -zcvf pc.tar.gz /home/pig.txt /home/cat.txt :压缩多个文件,将/home/pig.txt和/home/cat.txt 压缩成  pc.tar.gz

tar -zcvf myhome.tar.gz /home/:将/home的文件夹压缩成myhome.tar.gz

tar -zxvf pc.tar.gz:将pc.tar.gz 解压到当前目录

tar -zxvf myhome.tar.gz -C opt/tmp2:将myhome.tar.gz  解压到/opt/tmp2目录下 

细节说明:因为解压的目标地址不是当前文件夹,要去别的文件加,所以要加-C

9 linux的主管理和权限管理 

9.1 Liunx组的基本介绍

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

9.2 文件/目录的所有者

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

ls -ahl : 查看文件的所有者

chown 用户名 文件名: 修改文件所有者

9.3 文件/目录 所在组

当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组

ls -ahl:查看文件/目录所在组

chgrp 组名 文件名 :修改文件所在的组

9.4 其他组

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

9.5 改变用户所在组 

 cat /etc/group: 查看所有组

 usermod -g 组名 用户名: 修改用户到xx组

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

细节说明:

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

 2.用户需要有进入到新目录的权限,才能改变用户登录的初始目录

9.6 权限说明

9.6.1 ls内容解释 

ls -l 显示的如下内容:

-rw-r--r--.  1 zwj   root             1 11月  8 11:31 apple.txt

0-9位说明

1.第0位确定文件类型(d,-,l,c,b)
d是目录,相当于windows的文件夹
l是链接文件,相当于windows的快捷方式
-是普通文件
c是字符设备文件,鼠标,键盘
b是块设备,比如硬盘
2.第1-3位确定所有者(该文件的所有者)拥有该文件的权限 --user
3.第4-6位确定所属组(同用户组的)拥有该文件的权限 --Group
4.第7-9位确定其他用户拥有该文件的权限 --Other

9.6.1 rwx权限详解 

作用在文件中: 

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

 作用在目录中:

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

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

ls -l 显示内容

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

10个字符确定不同用户能对文件干什么
第一个字符代表文件类型: -l d c b
其余字符每三个一组(rwx)读(r)写(w)执行(x)
第一组rwx:文件所有者的权限是读、写并且执行
第二组rw-:与文件所在同一组的用户的权限是读、写但不能执行
第三组r–:不与文件拥有者同组的其他用户的权限是都只能读
可用数字表示为:r=4,w=2,x=1 因此rwx=4+2+1=7
其他说明
1 若是文件:硬件连接 若是目录:子目录数+文件数
第一个root 所有者
第二个root 所在组
1213 文件大小(字节),如果是文件夹显示4096字节
Feb 2 09:39 最后修改日期
abc 文件   

9.6.3 修改权限-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=x 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

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

chmod 755 /home/abc.txt :将/home/abc.txt文件的权限修改成 rwxr-xr-x,使用数字的方式实现 

9.6.4 修改文件/所在组- chgrp

chgrp newgroup 文件/目录 :改变文件/目录到目标组

chgrp -R newgroup 文件/目录: 改变文件/目录及其子目录下所有文件/目录到目标组

 -R 如果是目录则使其下所有子文件或目录递归生效(recursion)

9.6.5 修改文件所有者-chown

chown newowner 文件/目录 : 修改文件/目录的所有者为newowner
chown newonwner:newgroup :修改所有者和所在组

-R 如果是目录则使其下所有子文件或目录递归生效(recursion) 

9.6.6 rwx的细节讨论

  • x:表示可以进入到该目录,比如cd
  • r:表示可以读,如ls将目录的内容显示
  • w:表示可以在该目录删除或者创建文件

注意: chgrp(修改文件/目录组别) 和 usermod(修改用户组别) 是两个东西 

10 任务调度 

10.1 crontab 任务调度

10.1.1crontab 定时任务设置

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

任务调度分类.

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

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

crontab [选项]

常用选项:

-e 编辑crontab定时任务

-l 查询crontab任务

-r 删除当前用户所有的crontab任务 

 常用任务调度方式说明图:

10.1.2 快速入门

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

设置个人任务调度。执行crontab -e命令

接着输入任务到调度文件

如:

*/1 * * * * ls -l /etc/ > /tmp/to.txt : 每个小时的每分钟执行ls -l /etc/ > /tmp/to.txt 命令

10.1.3 参数说明 

特殊符号说明

特殊符号  
*    代表任何时间。比如第一个 “ * ” 就代表一小时中每分钟都执行一次的意识
‘    代表不连续的时间。比如“0 8,12,16 *** 命令,就代表在每天的8点0分,12点0分,16点0分都执行一次命令
-    代表连续的时间范围。比如”0 5 * * 1-6 命令“,代表在周一到周六的凌晨5点0分执行命令
*/n    代表每隔多久执行一次。比如 ” */10 * * * * 命令" ,代表每隔10分钟就执行一遍命令

应用实列: 


案例1:每隔1分钟,就将当前的日期信息,追加到/tmp/mydate文件中
    crontab -e
        */1 * * * * data >> /tmp/mydata
    
案例2:每隔2分钟,将当前日期和日历都追加到/home/mycal文件中
    第一步 编辑一个脚本文件
        vim /home/my.sh
                date >> /home/mycal
                cal >> /home/mycal
    第二步:
        crontab -e
                */1 * * * * /home/my.sh
                
案列3:每天凌晨2:00将mysql数据库testdb,备份到文件中,提示:指令为mysqldump -u root -p密码 数据库 >> /home/bd.bak
    第一步:crontab -e
    第二步:0 2 * * * mysqldump -u root -proot testdb > /home/db.bak

 10.2 at 定时任务调度

10.2.1 at调度机制

 at调度是将任务加入到任务队列中,由atd任务守护进程每隔60秒检查任务队列,如果有作业则会匹配时间,相符则会执行,反之不会执行。

每个任务至多执行一次,假如该时间已过,那么就放在第二天执行。

在使用at命令时,一定要保证atd进程的启动。ps -ef :查看进程启动

10.2.2 快速入门 

at [时间] : 在xx时间执行任务,任务设置完成后使用ctrl + D(两次)保存任务 

at任务调度示意图:

10.2.3 at调度扩展

1. at [选项] [时间]

2. at时间设定模式

3. 相关方法:

atq : 查看当前任务队列有几个任务

atrm [任务编号] 1.:删除指定编号任务  

10.2.4 at案例 

2天后的下午5点执行/bin/ls /home

明天17点钟,输出时间到指定文件内 比如/root/date100.log

 

11. Linux磁盘分区、挂载 

11.1 原理介绍

  • Linux无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分
  • Linux采用了一种叫”载入“的处理方法,它的整个文件系统包含了一整套的目录,且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得 

linux分区示意图: 

11.2 linux中的硬盘 

Linux硬盘分IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘

  • 对于IDE硬盘,驱动标识符为” hdx~ “,其中”hd“表明分区所在的设备类型,这里是指IDE硬盘了。”x“为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),”~“代表分区,前四个分区用数字1到4表示,他们是主分区和拓展分区;从5开始就是逻辑分区。例,hda3表示为第一个IDE硬盘上的第三个主分区或拓展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或拓展分区
  • 对于SCSI硬盘则标识为”sdx~“,SCSI硬盘是用”sd“来表示分区所在设备的类型的,其余则和IDE硬盘的标识方式一样

lsblk 或者 lsblk -f : 查看所有的设备挂载情况

  • sda下指得是分区情况
    • FSTYPE 指的是文件类型
  • UUID值得是分区得唯一标识符(40个位)
  • MOUNTPOIN 挂载点

 11.3 硬盘挂载,分区

 11.3.1 虚拟机添加硬盘

1.在vmware中上方栏中找到虚拟机,进入设置

2.点击下方添加按钮,添加硬件

3.选择硬盘,进行下一步

4.选择SCSI,根据具体情况进行对应选择

5.选择成功后点击完成选择

6.在xshell中输入 lsblk -f 查看磁盘情况,如果未查找到新磁盘,重启虚拟机即可

11.3.2 磁盘分区

创建新磁盘后我们可以看到磁盘暂时还没有进行分区,这时我们需要对硬盘进行分区

fdisk /dev/sdb: 对硬盘sdb进行分区

说明: dev(device)这个目录中包含了所有Linux系统中使用的外部设备。但是不是存放外部设备的驱动程序。它实际上是一个访问这些外部设备的端口就。我们可以非常方便的去访问这些外部设备,和访问一个文件,一个目录没有任何区别)

分区具体操作:

m    显示命令列表
p    显示磁盘分区 同 fdisk -l
n    新增分区
d    删除分区
w    写入并退出
说明:开始分区后输入n,新增分区,然后选者p,分区类型为主分区。两次回车默认剩余全部空间。最后输入w写入分区并退出,若不保存退出输入q 

11.3.3 磁盘格式化 

分区完成后我们还需要对磁盘sdb1进行格式化(配置分区类型,uuid等等)

mkfs -f ext4 /dev/sdb1: 为sdb1添加分区类型ext4以及uuid信息 

11.3.4 磁盘挂载 

完成磁盘分区以及格式化之后进行挂载操作

mount 设备名称 挂载目录 :将设备挂载到目录上

例如: mount /dev/sdb1 /newdisk: 将磁盘sdb1挂载到目录newdisk上

umonut 设备名称(或者已挂载的目录):取消挂载 

细节说明:

1.当我们使用命令行进行挂载时,我们重启虚拟机,我们的挂载会自动失效 

2.这时我们可以设置磁盘的自动挂载,避免挂载失效 

11.3.5 自动挂载

vim /etc/fstab:修改挂载信息

如图所示,添加/deb/sdb1 设备挂载到/newdisk中,这里我们也可以使用uuid进行设备绑定,

添加完成后,执行mount -a立即生效

11.3.6 磁盘情况查询 

df -h:查询系统整体磁盘使用情况 

du 选型 /目录

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

例如:

du -hac --max-depth=1 /opt: 查询opt目录的磁盘占用情况,深度为1

  • 磁盘情况-工作实用指令 

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

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

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

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

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

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

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

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

5.以树状显示目录结构 

yum install tree    ---下载tree插件
tree /home

12 LInux网络配置 

12.1 Linux网络配置原理 

虚拟机与主机在同一网段中进行通信

示意图:

 12.2 配置一个指定的ip

直接修改配置文件来制定IP,并可以连接到外网(程序员推荐)

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

 

 要求:将IP地址配置为静态的,比如ip地址为192.168.200.130

在文件后加入一下字段 

 #IP地址

IPADDR=192.168.200.130

#网关

GATEWAY=192.168.200.2

#域名解析器

DNS1=192.168.200.2

重启网络服务或者重启系统生效  reboot, service network restart

 ping ip(或域名) : 测试与ip是否连通 

配置成功后,修改我们vmnet8中的ip地址

 1.在vmware上方栏中编辑中找到网络编辑器

2.点击右下角更改设置

3.进行子网的修改,修改到与我们虚拟机同一个网段

 4.修改vmnet8的网关

5.完成后重连xshell到新ens33的ip地址即可 

12.3 设置主机名和hosts映射

  • windows系统 

在 C:\windows\System32\drivers\etc\hosts 文件指定即可 

例如: 192.168.200.130 heimaEdu01 

  • Linux系统 

vim /etc/hosts 文件 : 进行指定即可 

机名解析过程分析(hosts、DNS)

hosts文件是什么:一个文本文件,用来记录IP和hostname(主机名)的映射关系
DNS(Domain Name System,域名系统):是互联网上作为域名和IP地址相互映射的一个分布式数据库
主机名解析机制分析
应用实例:用户在浏览器输输入了www.baidu.com

1.浏览器先检查浏览器缓存中有没有该域名解析ip地址,有就先调用这个IP完成解析;如果没有,就检查DNS解析器缓存,如果有就直接返回ip完成解析。(这两个缓存可以理解为本地解析器缓存)

(一般来说,当电脑第一次成功访问某一网站后,在一定的时间内,浏览器或者操作系统会缓存它的ip地址DNS解析记录,如在命令行输入

ipconfig /displaydns        //DNS缓存解析
ipconifg /flushdns            //手动清理dns缓存
2.如果本地解析器缓存没有找到对应的映射,则检查系统系统中的hosts文件中有没有配置对应的域名ip映射。如果有,则完成解析并返回

3.如果本地DNS解析器缓存和hosts文件中均没有找到对应的ip,则到域名服务DNS进行解析

13 进程管理 

13.1 进程介绍 

在Linux中,每一个执行的程序都被称为一个进程。每一个进程都被分配一个ID号(pid,进程号) 

  • 在windows中 

打开任务管理器就可以看到我们启动了哪些进程 

  • 在Linux中 

我们使用 top指令就可以看到进程情况 

进程的存在方式: 前台后台

 前台:用户目前屏幕上可以进行操作的进程

 后台:实际在操作,但屏幕上无法看到的进程

一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才会结束

13.2 显示进程的指令 

ps : 查看目前系统中,有哪些正在执行的进程 ,以及他们的执行状况

ps [选项] 

选项列表:

PID进程识别号
TTY终端机号
TIME此进程所消耗CPU时间
CMD正在执行的命令或进程名

ps -a:显示当前终端的所有进程信息

ps -u:以用户的格式显示进程信息

ps -x:显示后台进程运行的参数 

通常情况下,我们会将三个选项结合使用, 也就是 ps -aux | more: 显示进程的详细信息

  •  参数解释

USER:进程执行用户

PID:进程号

%CPU:cpu占用率

%MEM:物理内存占用率

VSZ:进程占虚拟内存的大小(KB)

RSS:进程占物理内存的大小(KB)

TTY:终端名称

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

STARTED:执行的开始时间

TIME:占用CPU的时间

COMMAND :启动进程所用的命令和参数,如果过长会被截断显示

13.3 父子进程 

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启动进程所用的命令和参数

13.4 终止进程 

kill  进程号: 终止指定进程号的进程

killall 进程名称 :通过进程名杀死进程也支持通配符,这在系统因负载过的很慢时很有用 

kill  -9 进程号: 强制终止指定进程号的进程

  • 案例说明 1

ps -aux|grep sshd后可知用户tom登录的进程号为7266 kill 进程号 kill 7266 用户tom的连接关闭 

恢复sshd服务: /bin/systemctl start sshd.service

13.5 查看进程树pstree 

 pstree [选项]: 以树状形式显示进程信息

  • 常用选项

-p    树状形式显示进程的pid
-u    树状形式显示进程的所属用户 

14 服务(service)管理 

14.1 介绍

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

14.2 service常用指令

service 服务名 [start| stop| restart| reload | status]

案例说明:

 service network status : 查看网络服务状态

细节说明:

1.在CentOS7.0后很多服务不再使用service,而是systemctl

2.service指令管理的服务在 /etc/init.d查看

3.使用servce指令,查看,关闭,启动network[不要在xshell中执行,关闭网络后,连接sshd服务会断开连接]

14.3 查看服务名

方式1:

setup :查看系统服务

带*号的服务是随着linux的启动自动启动,没有带 *号的都是需要手动启动的,使用空格键可以进行设置;退出系统服务使用Tab

方式2:

/etc/init.d 看到service指令管理的服务ls -l /etc/init.d

额外扩展:

为什么linux很多服务以d结尾?

d代表deamon 守护进程
Linux的大多数服务就是用守护进程
守护进程是运行在Linux服务器后台的一种服务程序
它周期地执行某种任务或等待处理某些发生的事件
比如:xinetd提供网络服务,sshd提供ssh登录服务,httpd提供web服务

14.4 服务的运行级别 

 linux系统有七种运行级别(runlevel):常用的是级别3和5


运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登录
运行级别2:多用户状态(没有NFS),不支持网络
运行级别3:完全的多用户状态(有NFS),登录后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登陆后进入图形GUI模式
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

  • 开机流程 

CentOS7运行级别说明

在/etc/initab,进行了简化如下
multi-user.target:analogous to runlevel 3
graphical.target:analogous to runlevel 5

#to view current default target,run:
systemctl get-default 

#To set a default target,run:
systemctl set-default TARGET.target  

14.5 chkconfig指令 

  • 介绍

1.通过chkconfig命令可以给服务的各个运行级别设置自 启动/关闭

2.chkconfig指令管理的服务在 /etc/init.d查看

注意:CentOS7.0后,很多服务使用systemctl管理 

chkconfig --list :查看服务 

chkconfig --list | grep xxx :按格式查看服务

chkconfig 服务名 --list: 查看指定服务

chkconfig --level 5 服务名 on/off :对服务在各等级下的状态进行控制 

案例说明:

对network服务进行操作,把network在3运行级别关闭和开启自启动

chkconfig --level 3 network off: 把network在3运行级别关闭自启动

chkconfig --level 3 network on:把network在3运行级别开启自启动

注意:chkconfig重新设置服务后自启动或关闭,需要重启机器reboot生效

 14.6 systemctl指令 

systemctl [start | stop |restart |status ] 服务名 

systemctl指令管理的服务咋/usr/lib/systemd/system中查看

14.6.1 设置服务的自启动状态

systemctl list-unit-files [|grep 服务名]:查看服务开机启动状态,grep可进行过滤
systemctl enable 服务名 :设置服务开机启动
systemctl disable 服务名 :关闭服务开机启动)关闭和开启都是默认的3和5两级别
systemctl is-enabled 服务名:查询某个服务是否是自启动的

案例说明:

systemctl list-unit-files | grep firewalld 查看当防火墙的服务状态

systemctl is-enabled firewalld  查看防火墙服务是否是自启的


查看当前防火墙的状态,关闭防火墙和重启防火墙
systemctl status firewalld

关闭防火墙
systemctl stop firewalld

启动防火墙
systemctl start firewalld

 细节说明:

1.关闭或者启动防火墙后,立即生效。telnet测试 某个端口(netstat -anp | more : 查看网络端口)

2.这种方式只是临时生效,当重启系统后,还是恢复以前对服务的设置

3.如果希望设置某个服务自启动或关闭永久生效,要使用systemctl [enable|disable] 服务名

14.7 打开/关闭端口 

 在真正的生产环境,往往需要将防火墙打开,但是如果我们把防火墙打开,那么外部请求数据包就不能给服务器监听端口通讯。这时,需要打开指定的端口。比如80,22,8080 该怎么做呢

  • firewall指令

firewall-cmd --permanent --add-port=端口号/协议: 打开指定端口,使得可以在防火墙通行
firewall-cmd --permanent --remove-port=端口号/协议:关闭指定端口,使得不可以在防火墙通行

firewall-cmd --reload:无论是关闭还是开启端口都需要重新载入防火墙才能生效
firewall-cmd --query-port=端口/协议 :查询端口是否开放

案例说明: 

启用防火墙,测试111端口是否能telnet

开放111端口
在这里插入图片描述

再次关闭111端口 

在这里插入图片描述

15 动态监控 

 15.1 简介

 top和ps命令很相似。他们都用来显示正在执行的进程Top和ps最大的不同处在于top在执行一段时间可以更行正在运行的进程

15.2 语法

 top [选项]

  • 选项说明
选项功能实例
-d 秒数指定top命令每隔几秒更新。默认是3秒top -d 5
-i是top不显示任何闲置或者僵死进程
-p通过指定监控进程ID来仅仅监控某个进程的状态

在这里插入图片描述

在这里插入图片描述

  • 僵死进程:进程已经死掉了(进程运行结束),但是内存没有被释放掉。僵死进程需要定时清除!

  • 其中cpu使用率和KiB Mem(内存管理)最为重要

15.3 动态监控进程的交互操作

  • 交互操作说明

操作    功能
P    以CPU施一公率排序,默认就是此项
M    以内存使用率排序
N    以PID排序
q    退出top

案例说明 : 

监视特定用户,比如说监控tom用户
top:输入此命令,按回车键,查看执行的进程
然后输入“u”,回车,在输入用户名,即可

终止指令的进程
先输入top指令后,在输入“k“ ,在输入想要终止的进程号(PID)

指定系统状态更新的时间(每隔10秒自动更新)(默认的是3秒)
top -d 10

15.4 监控网络状态

netstat [选项]: 查看系统网络情况

选项说明

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

ping :检测主机连接命令

是一种网络检测工具,它主要是用来检测远程主机是否正常,或是两部主机间的网线或网卡故障

16 RPM和YUM 

16.1 RPM包管理 

  • 介绍

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

  • 常用指令 

rpm -q : 查询已安装的rpm列表

firefoxrpm -qa | grep firefox: 查看当前系统是否安装firefox

rpm安装包基本格式 

一个rpm包名:firefox-60.2.2-1.el7.centos.x86_64
名称:firefox
版本号:60.2.2-1
适用操作系统:el7.centos.x86_64     表示centos7.x的64位系统
            (如果似乎i686、i386表示32位系统,noarch表示通用

rpm -qa | more :查询所安装的所rpm包软件包

rpm -q 软件包名:查询软件包信息

rpm -qi 软件包名 :查询软件包详细信息

rpm -ql 软件包名 : 查询软件包中所含文件

rpm -qf 文件全路径名 :查询文件属于哪个软件包

16.1.1 安装RPM包

 rpm -ivh RPM包全路径名称: 安装指定rpm文件

例如: rpm -ivh /opt/firefox.xxx.rpm:  安装opt下的rpm文件firefox.xxx.rpm

  • 参数说明

i=install 安装

v=verbose 提示

h=hash 进度条 

 16.1.2 卸载RPM包

 rpm -e RPM包的名称:卸载指定rpm软件包  , e = erass

例如: rpm -e firefox :卸载firefox软件包

细节说明:

1.如果其它软件包依赖于要卸载的软件包,卸载时则会产生错误的信息

2.如果必须要删除这个软件包,可以增加参数 --nodeps,就可以强制删除,但是一般不推荐这么做,因为依赖于该软件包的程序可能无法运行

 rpm -e --nodeps 软件包名 : 强制删除rpm软件包

 16.2 YUM包管理

  • 介绍 

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

  •  常用指令

yum list|grep xx :查询yum服务器是否有需要安装的软件(软件列表) 

例如:  yum list | grep firefox 

 

yum install yum包名  :下载安装指定的yum包

  • 使用yum方式卸载安装firefox 

rpm -e firefox                        先卸载centos中的firefox

yum list | grep firefox          查询firefox的软件

yum install firefox               下载 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值