Linux学习手册

目录

1、Linux的目录结构

2、vim(vi)编辑器

3、开机、重启、用户操作

3.1 开关机、重启命令

3.2 用户的相关操作

3.3 用户组

4、运行级别

5、文件目录类常用指令

6、时间日期类

7、搜索查找类

7.1 find指令

7.2 locate指令

7.3 which指令

7.4 grep指令和管道符号 |

8、压缩解压类

9、组管理与权限管理

9.1 文件/目录所有者

9.2 权限介绍

9.3 rwx权限

9.4 修改权限

10、定时任务调度

10.1 crontab指令

10.2 at指令

11、磁盘分区,挂载

11.1 硬盘分类

11.2 挂载

11.3 磁盘查询

11.4 磁盘使用情况常用指令

12、网络配置

11.1 ip地址查询

11.2 域名解析过程

12、进程管理

 12.1 进程查询指令

12.2 进程终止

13、服务管理

13.1 service管理指令

13.2 服务与运行级别

13.2 systemctl指令

13.3 防火墙设置

13.4 动态监控进程

13.5 监控网络状态

14、RPM与YAM

14.1 RPM

14.2 YUM


1、Linux的目录结构

linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录。在Linux中,一切皆文件

/(根目录)
/bin用来存放二进制可执行命令的目录,用户常用的命令都存在该目录下。例如:mkdir(创建目录)、cat(查看文件)、find(查找文件)等。
/sbin同样用来存放二进制可执行文件,只是这里面的命令只供系统管理员,管理系统使用(root用户)。例如:iptables(防护墙)、ifconfig(查看网卡信息)、init(设置启动级别)等。
/dev设备文件存放的目录,因为linux中一切皆文件,所以就像鼠标、键盘、光驱,对linux来说也都是一个个的文件。例如/dev/cdrom(光驱)、/dev/sda1(硬盘)等。
/tmp临时文件存放的地方,由于这个目录的权限为1777,所有用户对这个目录都有可读可写可执行的权限,所以其他人也可以删除你的文件。(可以当作windows的回收站来用,不用的东西先放这里)。
/home普通用户的家目录,用来存放普通用户的文件。比如我们新建一个用户(useradd)会在/home下创建和这个用户同名的家目录。
/boot存放内核文件和系统引导程序
/lib存放二进制库文件,库文件一般以.so|lib*|ld*。
/mnt一般用来临时挂载临时存储设备的目录
/opt该目录是可选的,一般是给第三方厂家开发的程序的安装目录。现在一般不用了。
/media用于挂载可移动设备的临时目录。
/root系统管理员的家目录。
/sys(*)与/proc一样,存放系统运行过程中的信息文件。
/etcyum/rpm安装的软件配置文件所在的目录。
/usr安装除操作系统本身外的一些应用程序或组件的目录,一般可以认为是linux系统上安装的应用程序默认都安装在此目录中;
/proc(*)这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息
/srv(*)service缩写,该目录存放一些服务启动之后需要提取的数据
/var这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下。包括各种日志文件

2、vim(vi)编辑器

vim有三种模式

  • 正常模式:以vim打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中,你可以使用「上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容,也可以使用「复制、粘贴」来处理你的文件数据。
  • 插入模式:按下i,1, o, O, a,A, r,R等任何一个字母之后才会进入编辑模式,一般来说按i即可.
  • 命令行模式:插入模式下输入esc再输入:在这个模式当中,可以提供你相关指令,完成读取、存盘、替换、离开vim 、显示行号等的动作则是在此模式中达成的!

 

(n)yy拷贝向下的(n)一行
(n)dd删除向下的(n)一行
[命令行模式下] /关键字查找某个单词,继续输入n查找下一个
[命令行模式下]:set nu或:set nonu设置文件行号
G到达文件尾行
gg到达文件首行
:w   :q   :q!                保存    退出   不保存退出
u撤销上一步
:%s/x/y/g

y全局替换x

3、开机、重启、用户操作

3.1 开关机、重启命令

shutdown -h now立刻关机
shutdown -h 11分钟后关机
shutdown -r now立刻重启
halt关机
reboot立刻重启
sync把内存数据同步到磁盘

一般在关机或重启前,可以先进性sync同步数据,目前的shutdown/reboot/halt等命令均已经在关机前进行了sync 。

3.2 用户的相关操作

su - username切换到某一用户,由高权限切换成低权限用户不需要密码,反之需要
logout注销用户,在图形运行级别无效,在级别3下有效
useradd (-d dir -g groupname) username添加用户,用户创建后会自动在/home下创建同名的家目录(-d:指定新用户的家文件夹名称。-g:将当前用户添加到groupname组)
passwd username

修改密码

eg:给milan指定密码 passwd milan

pwd显示当前用户所在目录
userdel (-r) username        

删除用户(-r:将家目录一并删除)

eg:删除用户milan,但是要保留家目录, userdel milan

eg:删除用户以及用户主目录,比如tom, userdel -r tom

id username查询用户,当不存在时返回无此用户
whoami  who am i查看当前用户,如果首先登录了一个用户(如tom),然后使用su命令切换到另一个用户(如Jerry)那么该命令会显示最初始的登录用户tom

3.3 用户组

groupadd groupname

新增组

eg:增加一个用户 zwj,直接将他指定到wudang

                groupadd wudang
                useradd -g wudang zwj

groupdel groupname删除组
usermod -g groupname username

修改username的组为groupname

eg:创建一个组mojiao把zwj放入到mojiao指令: usermod -g mojiao zwj

usermod -d 目录名 username改变该用户登陆的初始目录。特别说明:用户需要有进入到新目录的权限。

注意:用户创建时,如果不指定分组,那么会自动分配到一个与该用户同名的新建的组

4、运行级别

0 :关机

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

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

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

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

5:图形界面

6:系统重启

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

init 0(123456)切换到不同运行级别,如 init 0 表示关机
systemctl get-default获取当前运行级别(CentOS7以后)
systemctl set-default graphical.targer设置默认运行级别(CentOS7以后)
man (命令或配置文件)

获得帮助信息

eg:查看ls命令的帮助信息  man ls

help (命令)获得帮助信息

5、文件目录类常用指令

pwd显示当前工作目录的绝对路径
ls (-al)(目录或文件)查看当前(对应)目录的所以文件和目录(-a:显示隐藏的目录  -l:以列表方式显示信息,一个目录或文件对应一行)
cd  (~)(..) 绝对路径或相对路径

切换到指定目录(cd ~:回到家目录        cd ..:回到当前目录的上一级)

eg:使用绝对路径切换到root目录, cd /root
使用相对路径到/root目录,比如在/home/tom ,cd ../ ../root

mkdir (-p) 要创建的目录

创建指定目录,默认只能创建单级目录(-p:创建多级目录)

eg:创建一个目录/homeldog  mkdir /homeldog
    创建多级目录/homelanimal/tiger   mkdir -p /home/animal/tiger

rmdir (-rf) 要删除的目录

删除指定文件(或空目录)(-r:删除整个目录及其包含的目录和文件  -f:强制删除,无需确认)

eg:删除animal目录(该目录下包含其他文件) rm -rf /homelanimal

touch 文件名创建空文件
cp (-r) source dest

复制文件,从source到dest(-r:复制整个文件夹及其内部的文件)

eg:将/home/bbb 整个目录,拷贝到 /opt   cp -r /home/bbb /opt
强制覆盖不提示的方法:\cp  \cp -r /home/bbb /opt

rm (-rf) 要删除的文件或目录

删除文件或目录(-r:删除整个文件夹及其内部的文件   -f:强制删除,无需询问)

eg:递归删除整个文件夹/home/bbb, rm-rf /home/bbb[删除整个文件夹,不提示]

mv 移动文件 对应目录

移动文件或重命名,当source和dest中没指定对应其他目录,也就是从本目录文件移动到本目录。mv oldNameFile newNameFile(功能描述:重命名)
mv /temp/movefile /targetFolder (功能描述:移动文件)

eg:将/opt/bbb移动到/home 下 mv /opt/bbb /home/

cat (-n) 要查看的文件名查看文件。(-n:显示行号)
命令 | 命令

将前面命令得到的结果传递给后面的命令进行操作

eg:cat-n /etc/profile | more     [进行交互]

more

用于查看文档,more指令操作说明见下图

eg:more /etc/profile

less

用于查看文档,less指令操作说明见下图

eg:  less /etc/profile

echo 输出内容

将指定内容输出到控制台,可以配合重定向符>,>>使用

head (-n 5) 文件名

查看文件前10(默认)行内容,(-n:指定查看前多少行)

eg:查看/etc/profile的前面5行代码  head -n 5 letc/profile

tail (-n 5)(-f) 文件名

输出文件尾10(默认)行内容,(-n:指定查看尾多少行   -f:实时跟踪该文档的所有更新)

eg:查看/etc/profile最后5行的代码   tail -n 5 /etc/profile
  实时监控 mydate.txt,看看到文件有变化时,是否看到,实时的追加内容为hello,world

tail-f /home/mydate.txt

>   >>

>:输出重定向   >>:追加方式重定向

eg:1)ls -l > 文件(功能描述:列表的内容写入文件a.txt中(覆盖写))
2) ls -al >> 文件(功能描述:列表的内容追加到文件aa.txt的末尾)
3) cat 文件1 > 文件2(功能描述:将文件1的内容覆盖到文件2)

4) echo "内容" >> 文件 (追加)

将/home目录下的文件列表写入到/home/info.txt中,覆盖写入

ls -l /home > /home/info.txt  [如果info.txt没有,则会创建]

ln -s 源文件或目录 软连接名

相当于创建快捷方式

eg:在/home目录下创建一个软连接myroot,连接到/root目录

                ln -s /root /home/myroot

删除软连接myroot  rm/home/myroot

注意:进入软连接时使用pwd查看到的是软连接所在目录

history (n)查看已经执行过历史命令,也可以执行历史指令(n:显示最近n条记录)
!指令编号在history查询指令后,通过指令编号执行指令

more操作指令说明:

less操作指令说明:

6、时间日期类

date显示当前时间
date +%Y显示当前年份        
date +%m显示当前月份

date +%d

显示当前是哪天
date "+%Y-%m-%d %H:%M:%S"显示年月日时分秒
date -s 字符串时间

设置系统当前时间 

eg:设置系统当前时间为2020-11-03 20:02:10

        date -s “2020-11-03 20:02:10”

cal (年份)

显示当前日历(显示对应年份的日历)

eg:显示2022年当前月的日历  cal 2022

7、搜索查找类

7.1 find指令

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

基本语法:find [搜索范围] [选项]

搜索范围可以是某个目录,选项说明如下:

案例1:按文件名:根据名称查找/home目录下的 hello.txt 文件

                find /home -name hello.txt

案例2:按拥有者:查找/opt目录下,用户名称为nobody的文件

                find /opt -user nobody

案例3:查找整个linux系统下大于200M的文件(+n大于 -n小于n等于,单位有k,M,G)

                find / -size +200M

7.2 locate指令

locate指令可以快速定位文件路径。locate 指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。Locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻

基本语法:locate [搜索文件]

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

eg:第一次使用locate,查询hello.txt文件位置

        updatedb            locate hello.txt

7.3 which指令

which,哪一个的意思,作用是从PATH环境变量指定的路径中,搜索命令所在位置及命令别名。

基本语法:which 命令名

注意: 1) "which" 命令只能查找系统命令,不能搜索普通文件。
            2) "which" 命令是从PATH环境变量指定的路径中,搜索某个系统命令的位置,
                  并且返回第一个搜索结果。

eg:查看ls指令     which ls

7.4 grep指令和管道符号 |

grep过滤查找,管道符,“"”,表示将前一个命令的处理结果输出传递给后面的命令处理。

基本语法:grep [选项] 查找内容 源文件

选项说明如下:

 eg:请在hello.txt文件中,查找"yes”所在行,并且显示行号

写法1: cat /home/hello.txt l grep -n "yes"
写法2: grep -n "yes" /home/hello.txt

8、压缩解压类

gzip 文件名

将指定文件压缩成*.gz的压缩文件

eg:将/home下的hello.txt文件进行压缩  gzip /home/hello.txt

gunzip 文件名.gz

将.gz的文件解压

eg:将/home下的hello.txt.gz文件进行解压  gunzip /home/hello.txt.gz

zip (-r) *.zip 待压缩内容

将待压缩内容压缩成*.zip的压缩包(-r:递归压缩,将对应目录及其内部所有内容打包)

eg:将/home下的所有文件/文件夹进行压缩成myhome.zip
zip -r myhome.zip /home/  [将home目录及其包含的文件和子文件夹都压缩]

unzip (-d <目录>) *.zip

解压文件(-d:将压缩文件解压后保存到-d后面设置的目录中)

eg:将myhome.zip解压到/opt/tmp目录下mkdir /opt/tmp
        unzip -d /opt/tmp /home/myhome.zip

tar [选项] *.tar.gz 打包内容或压缩包将内容打包或者解压

对tar的补充:

-A 新增压缩文件到已存在的压缩

-B 设置区块大小

-c 建立新的压缩文件

-d 记录文件的差别

-r 添加文件到已经压缩的文件

-u 添加改变了和现有的文件到已经存在的压缩文件

-x 从压缩的文件中提取文件  (解包)

-t 显示压缩文件的内容

-z 支持gzip解压文件  (打包压缩)

-j 支持bzip2解压文件

-Z 支持compress解压文件

-v 显示操作过程

-l 文件系统边界设置

-k 保留原有文件不覆盖

-m 保留文件不被覆盖

-W 确认压缩文件的正确性

可选参数如下:

-b 设置区块数目

-C 切换到指定目录

-f 指定压缩文件

--help 显示帮助信息

--version 显示版本信息

eg:将压缩文件jdk-8u161-linux-x64.tar.gz解压到/usr/local/jdk1.8目录下

tar zxvf /usr/local/jdk-8u161-linux-x64.tar.gz -C /usr/local/jdk1.8  

案例1:压缩多个文件,将/home/pig.txt和/home/cat.tst压缩成pc.tar. gz

                tar -zevf pc.tar.gz/home/pig.txt /home/cat.txt

案例2:将/home 的文件夹压缩成 myhome.tar.gz

                tar -zcvf myhome.tar.gz/homel

案例3:将pc.tar.gz解压到当前目录

                tar -zxvf pc.tar.gz

案例4:将myhome.tar.gz,解压到/optmp2目录下

        (1)mkdir /opt/mp2(2) tar -zxvf /home/myhome.tar.gz -C /opt/mp2

9、组管理与权限管理

9.1 文件/目录所有者

文件或目录都有其自己的所有者和组别,下面对一个目录的信息进行分析

如图为命令 ls -la显示的目录信息,其中第一个方框内为 该目录创建者(为root用户),第二个方框内为该目录所在的组别(为root组)

一般文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组(默认)。

chown 用户名 文件名

修改文件所有者

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

        touch apple.txt   chown tom apple.txt

chown (-R) 用户名:组名修改文件所有者和所在组(-R:对目录递归生效)
groupadd 组名创建组
chgrp (-R) 组名 文件名

修改文件所在组(-R:递归修改内部文件目录的所在组)

eg:使用root用户创建文件orange.txt ,看看当前这个文件属于哪个组,然后将这个文件所在组,修改到 fruit组。

1 .groupadd fruit
2.touch orange.txt
3.看看当前这个文件属于哪个组->root组

4.chgrp fruit orange.txt

9.2 权限介绍

对于上述一个目录,通过ls -la查询出其信息如下:

drwxr-xr-x.  3 root root  18 1月  13 03:44 .

  • 第一位:d。d表示一个目录,相当于windows的一个文件夹
    • l是链接,相当于windows的快捷方式
    • d是目录,相当于windows的文件夹
    • c是字符设备文件,鼠标,键盘
    • b是块设备,比如硬盘。在/dev/下可以看到
  • 第2-4位:rwx,表示所有者拥有的该文件的权限  --User
  • 第5-7位:r-x,表示同组成员拥有的权限。--Group
  • 第8-10位:r-x,表示其他用户(其他组成员)拥有的权限。--Other
  • 第11位:文件:硬连接数或目录:子目录数
  • root,root:表示当前目录或文件的所有者和所在组别
  • 18:表示文件大小(字节)

9.3 rwx权限

对于文件上的rwx:

1) [r]:代表可读(read):可以读取,查看

2) [w]:代表可写(write)可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件        所在的目录有写权限,才能删除该文件.

3) [x]:代表可执行(execute);可以被执行

对于目录上的rwx:

1) [r]:代表可读(read):可以读取,ls查看目录内容

2) [w]:代表可写(write):可以修改,对目录内创建+删除+重命名目录

3) [x]:代表可执行(execute);可以进入该目录

对目录上的权限说明:

当用户只有x权限时,可以进入该文件夹,如果该文件夹内有文件hello.txt,那么该用户可以对其进行修改,但是不能在当前文件夹下进行ls的操作(该操作属于对该文件夹的r操作),也不可以删除或者新建当前文件夹下的内容(该操作属于对该文件夹的w操作)

 对用户只有r权限时,对于文件夹无法进入其内部,如对a文件夹,赋予拥有者r权限,无wx权限,那么无法进行cd a操作,对于文件而言,可以对文件进行只读操作

9.4 修改权限

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

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

1) chmod u=rwx,g=rx,o=x 文件/目录名    --给用户所有者rwx权限,同组rx权限,其他组x权限
2) chmod o+w 文件/目录名   --给其他人添加w权限
3) chmod a-x 文件/目录名     --给所有人去除x权限

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

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

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

        chmod u-x,g+w abc

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

        chmod atr abc

r=4 w=2 x=1  rwx=4+2+1=7
chmod u=rwx,g=rx,o=x 文件目录名  == chmod 751 文件目录名

将/home/abc.txt文件的权限修改成rWXr-XI-x,使用给数字的方式实现:

                chmod755/home/abc.txt

10、定时任务调度

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

任务调度分类:

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

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

10.1 crontab指令

基本语法:crontab [选项]

选项说明如下:

service crond restart  重启调度任务

 实践:

        设置任务调度文件:/etc/crontab
        设置个人任务调度。执行crontab-e命令。

        接着输入任务到调度文件
        如:*/1 * * * * ls -l /etc/ > /tmp/to.txt  意思说每小时的每分钟执行Is -l /etc/ > /tmp/to.txt命令

对五个*占位符说明:

示例:

案例1:每隔1分钟,就将当前的日期信息,追加到/tmp/mydate文件中

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

案例2:每隔1分钟,将当前日期和日历都追加到/home/mycal文件中

        (1) vim /home/my.sh  写入内容  date >> /home/mycal和 cal >> /home/mycal

        (2)给 my.sh增加执行权限,chmod utx /home/my.sh

        (3) crontab -e 增加 */1 * * * * /home/my.sh

案例3:每天凌晨2:00将mysq1数据库testdb,备份到文件中。提示:指令为

        mysqldump -u root -p 密码 数据库 > /home/db.bak

        步骤(1) crontab -e

        步骤(2) 0 2 * * * mysqldump -u root-proot testdb > /home/db.bak

10.2 at指令

  1. at 命令是一次性定时计划任务,at 的守护进程atd会以后台模式运行,检查作业队列来运行。默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业。
  2. at命令是一次性定时计划任务,执行完一个任务后不再执行此任务了
  3. 在使用at命令的时候,一定要保证atd进程的启动,可以使用相关指令来查看ps -ef l grep atd 可以检测atd是否在运行

基本语法:at [选项] [时间]    -->输入指令     -->输入两次Ctrl+D结束命令的输入

选项说明如下:

时间说明如下:

  1. 接受在当天的 hh;mm(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。例如: 04:00
  2. 使用midnight(深夜),noon(中午) ,teatime(饮茶时间,一般是下午4点)等比较模糊的词语来指定时间。
  3. 采用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午。例如: 12pm
  4. 指定命令执行的具体日期,指定格式为month day(月日)或mmddyy(月日/年)或dd.mm.yy (日.月.年),指定的日期必须跟在指定时间的后面。例如:04:00 2021-03-1
  5. 使用相对计时法。指定格式为: now + count time-units ,now就是当前时间, time-units是时间单位,这里能够是minutes(分钟)、hours(小时)、days(天)、 weeks (星期)。count是时间的数量,几天,几小时。例如: now + 5 minutes
  6. 直接使用today(今天)、tomorrow(明天)来指定完成命令的时间。

案例1:2天后的下午5点执行/bin/ls /home

                at 5pm+2days

                at> /bin/ls /home

案例2: atq命令来查看系统中没有执行的工作任务

                atq

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

                at 5pm tomorrow 

                at> date > /root/date100.log

案例4:2分钟后,输出时间到指定文件内比如/root/date200.log

                at now + 2 minutes

                at> date > /root/date200.log

案例5:删除已经设置的任务, atrm 编号

                atrm 4     //表示将job队列,编号为4的job删除.

11、磁盘分区,挂载

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

11.1 硬盘分类

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

 IDE硬盘:驱动器标识符为"hdx~",其中"hd"表明分区所在设备的类型,这里是指IDE硬盘。“x”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),“~”代表分区,前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑分区。例,hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区。

 SCSI硬盘:驱动器标识符为"“sdx~",SCSl硬盘是用“sd"来表示分区所在设备的类型的,其余则和IDE硬盘的表示方法一样。

11.2 挂载

查看设备挂载情况:lsblk  或lsblk -f(显示详细信息)

对于Linux虚拟机增加硬盘来说,分为以下几个步骤:

  1. 虚拟机添加硬盘:在【虚拟机】菜单中,选择【设置】,然后设备列表里添加硬盘,然后一路【下一步】,中间只有选择磁盘大小的地方需要修改,至到完成。然后重启系统(才能识别)! 
  2. 进行分区:命令为 fdisk /dev/sdb(sdb项视情况而言,要先检查好自己虚拟机上的分区和挂载情况,因为之前查询到当前虚拟机的硬盘为1块,sda,三个分区,sda1,sda2,sda3,要新增下一块硬盘,即sdb)。在设置分区时有如下参数:m---显示命令列表。p---显示磁盘分区同 fdisk -l。n---新增分区。d---删除分区。w---写入并退出
    说明:开始分区后输入n,新增分区,然后选择p,分区类型为主分区。两次回车默认剩余全部空间。最后输入w写入分区并退出,若不保存退出输入q。
  3. 格式化硬盘:命令为 mkfs -t ext4 /dev/sdb1,其中ext4为分区类型,sdb1为设置1块分区
  4. 挂载:命令为 mount 设备名称 挂载目录。如mount /dev/sdb1 /newdisk,将sdb1分区挂载到/newdisk目录。此时用命令行设置完挂载后,重启会使得本次挂载失效
  5. 永久挂载:修改/etc/fstab(vim /etc/fstab)。添加完成后执行mount -a即刻生效

 注意:一个目录仅能挂载一个分区,一个目录下的子目录可以挂载其他分区,但是对相同的一个目录不能挂在多个分区。

11.3 磁盘查询

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

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

选项说明如下:

 案例:查询lopt目录的磁盘占用情况,深度为1

                du -hac --max-depth=1 /opt

11.4 磁盘使用情况常用指令

1)统计/opt文件夹下文件的个数(grep后可以识别正则表达式)

        ls -l /opt | grep "^-" | wc -l  (wc统计个数)

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

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

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

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

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

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

5)以树状显示目录结构 tree目录,注意:如果没有tree ,则使用yum install tree安装

12、网络配置

对于虚拟机的.net模式的网络访问路径如下图

11.1 ip地址查询

Windows:ipconfig

 Linux:ifconfig

  对于Linux网络配置问题可以参考下面博客
原文链接:https://blog.csdn.net/weixin_43800761/article/details/106742945

11.2 域名解析过程

下面以访问百度为例,分析域名解析访问过程:

  1.  浏览器先检查浏览器缓存中有没有该域名解析IP地址,有就先调用这个IP完成解析。
  2. 如果没有,就检查DNS解析器缓存,如果有直接返回IP完成解析。以上这两个缓存,可以理解为本地解析器缓存
  3. 一般来说,当电脑第一次成功访问某一网站后,在一定时间内,浏览器或操作系统会缓存他的IP地址(DNS解析记录).如在cmd窗口中输入 ipconfig /displaydns(DNS域名解析缓存)
    ipconfig /flushdns(手动清理dns缓存)
  4. 如果本地解析器缓存没有找到对应映射,检查系统中 hosts文件中有没有配置对应的域名IP映射,如果有,则完成解析并返回。
  5. 如果本地DNS解析器缓存和 hosts文件中均没有找到对应的IP,则到域名服务DNS进行解析域。

12、进程管理

在LINUX中,每个执行的程序都称为一个进程。(没有被执行时称为程序,进入内存执行时称作进程)每一个进程都分配一个ID号(pid,进程号)。每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。

 12.1 进程查询指令

基本语法:ps [选项]

选项说明如下:

ps  -e:显示所有进程

ps  -f:全格式显示

 通常如果想查询某个进程可以通过管道命令进行查询,如查询sshd服务:ps -aux | grep sshd

 参数说明:

System V-----展示风格

USER-----用户名称

PID-----进程号

%CPU-----进程占用CPU的百分比

%MEM-----进程占用物理内存的百分比

VSZ-----进程占用的虚拟内存大小(单位:KB)

RSS-----进程占用的物理内存大小(单位:KB)

TT-----终端名称,缩写

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

STARTED-----进程的启动时间

TIME-----CPU时间,即进程使用CPU的总时间

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

案例:以全格式显示当前所有的进程,查看进程的父进程。查看sshd 的父进程信息

                ps -ef | grep sshd

 参数说明:

UID-----用户ID

PID-----进程ID

PPID-----父进程ID

C-----CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是IO密集型运算,执行优先级会提高

STIME-----进程启动的时间

TTY-----完整的终端名称

TIME-----CPU时间

CMD-----启动进程所用的命令和参数

查看进程树:pstree [选项]

选项说明如下:

-p    显示进程的PID

-u    显示进程的所属用户

案例1:请你树状的形式显示进程的pid

        pstree -p

案例2:请你树状的形式进程的用户

        pstree -u

12.2 进程终止

基本语法:kill [选项] 进程号(功能描述:通过进程号杀死/终止进程) 

                  killall 进程名称(功能描述:通过进程名称杀死进程)

选项通常为-9:表示强迫进程立即停止。有时用户尝试终止某个进程时,操作系统会阻止这次操作,这时可以使用-9强行终止。

案例1:踢掉某个非法登录用户kill进程号,比如 kill 11421

案例2:终止远程登录服务sshd,在适当时候再次重启sshd 服务kill sshd 对应的进程号;   

            /bin/systemctl start sshd.service

案例3:终止多个gedit。     killall gedit

案例4:强制杀掉一个终端,指令:kill -9 bash 对应的进程号

13、服务管理

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

13.1 service管理指令

基本语法:service 服务名 [start|stop|reload|status]

说明:在CentOS7.0后很多服务不再使用service ,而是 systemctl。service指令管理的服务在letc/init.d查看

案例:请使用service指令,查看,关闭,启动network

          service network status       service network stop        service network start

13.2 服务与运行级别

 同一服务在不同的运行级别下开机时的状态可能不同,如在3运行状态下为关闭状态,在5状态下为开启状态。开机启动流程如下:

通过chkconfig命令可以给服务的各个运行级别设置自启动/关闭。chkconfig指令管理的服务在letc/init.d查看

 基本语法:chkconfig --list  [l grep xxx]          查看服务
                   chkconfig 服务名 --list
                   chkconfig --level 5 服务名 on/off       给运行状态5设置某个服务设置是否自启动

案例演示:对network 服务,各种操作,把network在3运行级别,关闭自启动

chkconfig --level 3 network off
chkconfig --level 3 network on

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

13.2 systemctl指令

基本语法:systemctl [start|stop|restart|status] 服务名

systemctl指令管理的服务在/usr/liblsystemd/system查看

systemctl设置服务自启动状态:

systemctl list-unit-files [l grep 服务名](查看服务开机启动状态, grep可以进行过滤)

systemctl enable 服务名(设置服务开机启动)

systemctl disable服务名(关闭服务开机启动)

systemctl is-enabled 服务名(查询某个服务是否是自启动的)

案例:查看当前防火墙的状况,关闭防火墙和重启防火墙。=> firewalld.service

systemctl status firewalld; systemctl stop firewalld; systemctl start firewalld

注意:关闭或者启用防火墙后,立即生效。[telnet测试某个端口即可]这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置。如果希望设置某个服务自启动或关闭永久生效,要使用systemctl [enable l disable]服务名

13.3 防火墙设置

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

打开指定端口:firewall-cmd --permanent --add-port=端口号/协议

关闭指定端口:firewall-cmd --permanent --remove-port=端口号/协议

设置完端口后需要重新载入生效:firewall-cmd -reload

查询端口是否开放:firewall-cmd --query-port=端口号/协议

其中,协议可以通过netstat -anp查询:

 案例:开放111端口:

        firewall-cmd --permanent --add-port=111/tcp

        firewall-cmd -reload

        关闭111端口:

        firewall-cmd -permanent --remove-port=111/tcp

        firewall-cmd -reload

13.4 动态监控进程

基本语法:top [选项]

选项说明如下:

top与ps命令很相似。它们都用来显示正在执行的进程。Top与ps最大的不同之处,在于top在执行一段时间可以更新正在运行的的进程。默认三秒更新一次状态。

在使用top指令进行监控时,可以通过以下指令进行交互:

 案例1.监视特定用户,比如监控tom用户

        top:输入此命令,按回车键,查看执行的进程。

        u:然后输入“u”回车,再输入用户名

案例2:终止指定的进程,比如我们要结束tom登录

        top:输入此命令,按回车键,查看执行的进程。

        k:输入“k”回车,再输入要结束的进程ID号

案例3:指定系统状态更新的时间(每隔10秒自动更新),默认是3秒

        top-d 10

13.5 监控网络状态

基本语法:netstat [选项]

选项说明:

-an          按一定顺序排列输出

-p            显示哪个进程在调用

案例:请查看服务名为sshd的服务信息

                netstat -anp | grep sshd

14、RPM与YAM

14.1 RPM

        rpm用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,类似 windows的 setup.exe,这一文件格式名称虽然打上了RedHat的标志,但理念是通用的。

基本语法:rpm -qa [| grep firefox]      查询所有已安装的rpm包(查询已安装的firefox)

                  rpm -q 软件包名                查询软件包是否已安装

                  rpm -qi 软件包名               查询软件包信息

                  rpm -ql 软件包名               查询软件包中的文件

                  rpm -qf 文件全路径名        查询文件所属安装包(如:rpm -qf /etc/passwd)

                  rpm -e rpm包名                 卸载rmp包(如rpm -e firefox)

                  rpm -ivh rpm包全路径名    安装rpm包(-i:安装 -v:提示  -h:进度条)

注意:如果要删除的包被其他软件包所依赖,则卸载时会产生错误信息,如果要强制删除该软件包,则可以使用命令  rpm -e --nodeps 软件包名

 对于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表示通用

14.2 YUM

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

基本语法:yum list [| grep xx]      查询yum软件列表(查询指定某个软件)

                  yum install xxx            安装yum包(需要联网)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值