Linux必学知识(超全)

Linux

一、Linux 的介绍

在这里插入图片描述

二、CentOS 安装技术难点-网络配置三种方式理解

2.1虚拟机的三种网络配置方式的说明

在这里插入图片描述

2.2 Centos 终端的使用和联网

2.2.1在 centos 的 ff 可以联网,可以和外部的 ip 联通

在这里插入图片描述

这里是简单的动态分配ip

查看linuxip的命令是ifconfig ,etho的内容是网卡的信息

lo是循环

三、 linux 的目录结构

3.1 linux的目录结构

3.1.1基本介绍

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

在 Linux 世界里,一切皆文件(即使是一个硬件设备,也是使用文本来标志)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结:

) 在 linux 中,目录结构 有一个 根目录 / ,其他的目录都是在 / 目录分支。
) 在 linux 中,有很多目录,是安装后,有自动有目录,每个目录都会存放相应的内容,不要去修
改.
) 在 linux 中,所有的设备都可以通过文件来体现(字符设备文件[比如键盘,鼠标],块设备文件[硬
盘])
) 在学习 linux 时,要尽快的在脑海中,形成一个 目录树

四、远程登录到 Linux 服务器

4.1使用Xsehll或者MobaXterm远程登录到 Linux 操作的软件

Xshell 可以在 Windows 界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终
端的目的。 (setup找到系统服务,找到sshd查看是否开启)
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

为什么需要远程登录?

说明: 公司开发时候, 具体的情况是这样的

) linux服务器是开发小组共享的.

) 正式上线的项目是运行在公网的.

  1. 因此程序员需要远程登录到centos进行项目管理或者开发.

) 画出简单的网络拓扑示意图(帮助理解)

4.2对 xftp 的使用说明

可以将Windows的文件传输到linux 之中去

SecureCRT 软件也是一样的功能,操作都是只需要填写linux的ip地址,选择SFTP协议,端口号为22,用户名即为linux的用户名

(五)vim的使用

5.1vi和vim常用的三种模式

正常模式(vim …)

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

插入模式(编辑模式)(i)

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

命令行模式(ESC :wq :q :q!)

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

5.2快捷键使用练习:

) 拷贝当前行 yy , 拷贝当前行向下的5行 5yy,并粘贴 p。【快捷键在正常模式下使用】

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

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

) 设置文件的行号,取消文件的行号.[命令行下 : set nu 和 :set nonu]

) 编辑 /etc/profile 文件,使用快捷键到底文档的最末行[G]和最首行[gg] 【正常模式下】

) 在一个文件中输入 “hello” ,然后又撤销这个动作 u 【正常模式下】

) 编辑 /etc/profile 文件,并将光标移动到 20行 shift+g

  1. 更多的看整理的文档

(六)关机和重启命令

6.1基本介绍****:

shutdown –h now 立该进行关机 【halt】

shudown -h 1 “hello,关机" “hello, 1 分钟后会关机了”

shutdown –r now 现在重新启动计算机 [reboot]

halt 关机,作用和上面一样.

reboot 现在重新启动计算机

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

注意细节**??*

不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中

6.2用户登录和注销

基本介绍:

1)登录时尽量少用root帐号登录,因为它是系统管理员,最大的权限,避免操作失误。可以利用普通用户登录,登录后再用”su - 用户名’命令来切换成系统管理员身份.

2)在提示符下输入 logout 即可注销用户【不同的shell 可能不同(logout exit)】

使用细节:

1)logout 注销指令在图形运行级别(简单提一下:0-6个级别)无效,在 运行级别3下有效.

(七)用户管理

7.1基本介绍

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

7.2添加用户

useradd 用户名

使用细节
) 当创建用户成功后,会自动的创建和用户同名的家目录 【/home/xiaoming】
) 也可以通过 useradd -d 指定目录 新的用户名 jack,给新创建的用户指定家目录

在这里插入图片描述

7.3指定/修改密码

passwd 用户名 // 如果没有带用户名,则是给当前登录的用户修改密码 // 需要 root 用户

7.4删除用户

7.4.1userdel 用户名

删除用户 xiaoming,但是要保留家目录 userdel 用户名 //userdel xiaoming
删除用户以及用户主目录 // userdel – r xiaoming 【小心使用】

7.5查询用户信息指令

id 用户名
在这里插入图片描述

7.6切换用户

在操作 Linux 中,如果当前用户的权限不够,可以通过 su - 指令,切换到高权限用户,比如
root

su – 切换用户名

) 从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。
) 当需要返回到原来用户时,使用 exit 指令
) 如果 su – 没有带用户名,则默认切换到 root 用户

7.7用户组

类似于角色,系统可以对有共性的多个用户进行统一的管理。

groupadd 组名

7.7.1增加用户时直接加上组

指令(基本语法)
useradd – g 用户组 用户名
增加一个用户 zwj, 直接将他指定到 wudang

在这里插入图片描述

7.7.2删除组

groupdel 组名

这里有一个前提,就是这个组没有用户,才能删除。

在这里插入图片描述

7.7.3修改用户的组

usermod – g 新的组名 用户名

创建一个 shaolin 组,让将 zwj 用户修改到 shaolin

在这里插入图片描述

7.8 用户和组的相关文件 vim

7.8.1/etc/passwd 文件

用户(user)的配置文件,记录用户的各种信息
每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录 Shell [图]

在这里插入图片描述

7.9.2 /etc/shadow 文件 (密码这些)

口令的配置文件
每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活
动时间:失效时间:保留 [图]

在这里插入图片描述

7.9.3/etc/group 文件
组(group)的配置文件,记录 Linux 包含的组的信息
每行含义:组名:口令:组标识号:组内用户列表

在这里插入图片描述

在这里插入图片描述

(八)实用命令

8.1 指定运行级别

8.1.1基本介绍:

运行级别说明:
) 0 :关机
) 1 :单用户 [类似安全模式, 这个模式可以帮助找回 root 密码]
) 2:多用户状态没有网络服务
) 3:多用户状态有网络服务 [使用最多]
) 4:系统未使用保留给用户
) 5:图形界面 【】
) 6:系统重启
常用运行级别是 3 和 5 ,要修改默认的运行级别可改文件
如何指定运行级别(vim)
/etc/inittab 的
id:5:initdefault:这一行中的数字
命令: init [012356] https 协议

8.2案例:

通过 init 来切换不同的运行级别,比如动 5-3 , 然后关机
init 5
init 3
init 0

) 假设我们的 root 密码忘记了,请问如何找回密码【练习】
启动时->快速输入 enter->输入 e-> 进入到编辑界面-> 选择中间有 kernel 项->
入 e(edit)-> 在该行的最后写入 1 [表示修改内核,临时生效]-> 输入 enter->
入 b [boot]-> 进入到单用模式 【这里就可以做补救工作】
) 请设置我们的 运行级别, linux 运行后,直接进入到 命令行终端(3 级别)

8.3 帮助指令

8.3.1man 获得帮助信息

基本语法
man [命令或配置文件](功能描述:获得帮助信息)
应用实例
案例:查看 ls 命令的帮助信息
man ls

8.3.2help 指令

基本语法

help 命令 应用实例

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

案例:查看 cd 命令的帮助信息
help cd

8.4 文件和目录相关的指令

8.4.1pwd 指令

pwd

(功能描述:显示当前工作目录的绝对路径)

8.4.2ls 指令

ls [选项] [目录或是文件]

常用选项
-a :显示当前目录所有的文件和目录,包括隐藏的 (文件名以.开头就是隐藏)。
-l :以列表的方式显示信息
-h : 显示文件大小时,以 k , m, G 单位显示

8.4.3cd 指令

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

cd …

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

案例 1:使用绝对路径切换到 root 目录

[cd /root]

案例 2: 使用相对路径到/root 目录 [ cd …/root] 案例 3:表示回到当前目录的上一级目录 [ cd …]

案例 4:回到家目录

[ cd ~ ]

8.4.4mkdir 指令 [make directory]

mkdir 指令用于创建目录

-p :创建多级目录

案例 1:创建一个目录 /home/dog
mkdir /home/dog
案例 2:创建多级目录 /home/animal/tiger
mkdir -p /home/animal/tiger

8.4.5rmdir 指令 [remove directory]

rmdir 指令删除空目录

案例 1:删除一个目录 /home/dog
rmdir /home/dog [要求 /home/dog 空目录]

rmdir 删除的是空目录,如果目录下有内容时无法删除的。
提示:如果需要删除非空目录,需要使用 rm -rf 要删除的目录
比如:
rm -rf /home/dog
r: 表示递归删除,就是将该目录下的文件和子目录全部删除
f: 表示强制删除,就是不需询问

8.4.6touch 指令

touch 指令创建空文件, 还可以更新文件的修改时间

案例 1: 创建一个空文件 hello.txt
touch hello.txt
说明:如果文件存在,则表示刷新该文件的修改时间

cp 指令[copy 拷贝]

8.4.7cp 指令拷贝文件到指定目录

cp [选项] source【源】 dest【目的文件】

-r :递归复制整个文件夹

在这里插入图片描述

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

在这里插入图片描述

8.4.8rm 指令

rm 指令移除文件或目录

-r :递归删除整个文件夹
-f : 强制删除不提示

8.4.9mv 指令

mv 移动文件与目录或重命名

mv oldNameFile newNameFile (功能描述:重命名)
mv /temp/movefile /targetFolder (功能描述:移动文件或目录)

8.4.10 cat 指令

cat 查看文件内容

-n :显示行号

应用实例
案例 1:

/ect/profile 文件内容,并显示行号
cat -n /etc/profile | more
说明:如果需要一行行,输入 enter
如果需要翻页 ,输入空格键.
如果需要退出,输入 q

使用细节
cat 只能浏览文件,而不能修改文件,为了浏览方便,一般会带上 管道命令 | more
cat xxx.txt | more (把 cat xxx.txt 输出结果交给 more 处理)

8.4.11 more 指令

more 指令是一个基于 VI 编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。 more
指令中内置了若干快捷键,详见操作说明

快捷键

操作

功能说明

空 白 键

代表向下翻一页;

(space)

Enter

代表向下翻『一行』;

q

代表立刻离开 more ,不再显示该文件内容。

Ctrl+F

向下滚动一屏

Ctrl+B

返回上一屏

=

输出当前行的行号

:f

输出文件名和当前行的行号

8.4.12 less 指令

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

在这里插入图片描述

案例: 采用 less 查看一个
大文件文件

;; >覆盖内容。>>追加内容 cal 显示日历信息

8.4.13 echo 指令

echo 输出内容到控制台。

应用实例
案例: 使用 echo 指令输出环境变量,比如 PATH

echo $PATH

env
修改环境变量
vim /etc/profile [系统的环境变量]

在这里插入图片描述
在这里插入图片描述

8.4.14 head 指令

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

head 文件 (功能描述:查看文件头 10 行内容)

head -n 5 文件

(功能描述:查看文件头 5 行内容, 5 可以是任意行数)

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

8.4.15 tail 指令

tail 用于输出文件中尾部的内容,默认情况下 tail 指令显示文件的后 10 行内容

) tail 文件 (功能描述:查看文件头 10 行内容)
) tail -n 5 文件 (功能描述:查看文件头 5 行内容, 5 可以是任意行数)
) tail -f 文件 (功能描述:实时追踪该文档的所有更新)使用Xshell写该命令,当linux对该文档有更新时会在Xshell显示

案例 2: 实时监控 date.log , 看看到文件有变化时,是否看到, 实时的追加日期

在这里插入图片描述

8.4.16 > 指令 和 >> 指令

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

案例 1: 将 /home 目录下的文件列表 写入到 /home/info.txt 中
ls – l /home/ > /home/info.txt [如果文件不存在,则会自动创建]
案例 2: 将当前日历信息 追加到 /home/mycal 文件中
date >> /home/mycal

8.4.17 ln 指令 (link)

软链接也成为符号链接,类似于 windows 里的快捷方式,主要存放了链接其他文件的路径

案例 1: 在/home 目录下创建一个软连接 linkToRoot,连接到 /root
ln -s /root/ linkToRoot
案例 2: 删除软连接 linkToRoot
rm – rf linkToRoot [在看]

细节说明
当我们使用 pwd 指令查看目录时,仍然看到的是软链接所在目录。

8.4.18 history 指令

查看已经执行过历史命令,也可以执行历史指令

案例 1: 显示所有的历史命令
history
案例 2: 显示最近使用过的 10 个指令。
history 10
案例 3: 执行历史编号为 5 的指令 !5
!5

8.5 时间日期类

) date (功能描述:显示当前时间)
) date +%Y (功能描述:显示当前年份)
) date +%m (功能描述:显示当前月份)
) date +%d (功能描述:显示当前是哪一天)
) date “+%Y-%m-%d %H:%M:%S”(功能描述:显示年月日时分秒)

8.5.2使用 date 指令设置最新时间

date

-s

字符串时间

案例 1: 设置系统当前时间 , 比如设置成 2018-09-05 11:11:50
在这里插入图片描述

8.5.3cal 指令

案例 1: 显示当前日历
cal
案例 2: 显示 2020 年日历
cal 2020

8.6 搜索查找类

8.6.1find 指令

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

find [搜索范围] [选项]

在这里插入图片描述

案例 1: 按文件名:根据名称查找/home 目录下的 hello.txt 文件
find /home -name hello.txt
案例 2:按拥有者:查找/opt 目录下,用户名称为 nobody 的文件

find

/opt

-user nobody

案例 3:查找整个 linux 系统下大于 10M 的文件(+n 大于

-n 小于

n 等于)
find / -size +10M

ctrl+c可以退出

8.6.2locate 指令

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

locate 搜索文件

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

8.6.3grep 指令和 管道符号 |

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

grep [选项] 查找内容 源文件

在这里插入图片描述

案例 1: 请在 /etc/profile 文件中,查找 “if” 所在行,并且显示行号
grep – n if /etc/profile [在/etc/profile 中查找 if ,并显示行,区别大小写]
grep – ni if /etc/profile [在/etc/profile 中查找 if ,并显示行,不区别大小写]

案例 2: 配合 管道 | 使用案例, 查看当前服务器有没有 sshd 服务在监听.
在这里插入图片描述

8.7 压缩和解压类

8.7.1gzip/gunzip 指令

gzip 文件

(功能描述:压缩文件,只能将文件压缩为*.gz 文件)

gunzip 文件.gz

(功能描述:解压缩文件命令)

案例 1: gzip 压缩, 将 /home 下的 hello.txt 文件进行压缩
案例 2: gunzip 压缩, 将 /home 下的 hello.txt.gz 文件进行解压缩

在这里插入图片描述

8.7.2zip/unzip 指令

zip 用于压缩文件, unzip 用于解压的,这个在项目打包发布中很有用的

基本语法

zip [选项] XXX.zip unzip [选项] XXX.zip

需要压缩的内容(功能描述:压缩文件和目录的命令)

zip 常用选项

(功能描述:解压缩文件)

-r:递归压缩,即压缩目录
unzip 的常用选项
-d<目录> :指定解压后文件的存放目录

应用实例
案例 1: 将 /home 下的 所有文件进行压缩成 mypackage.zip [退出 home]

zip

-r

mypackage.zip /home/

案例 2:

将 mypackge.zip 解压到 /opt/tmp 目录下

unzip – d /opt/tmp

mypackage.zip

[如果/opt/tmp 不存在,会自动创建]

8.7.3tar 指令

tar 指令 是打包指令,最后打包后的文件是 .tar.gz 的文件。 [可以压缩,和解压]

tar [选项] XXX.tar.gz 打包的内容/目录 (功能描述:打包目录,压缩后的文件格式.tar.gz)

在这里插入图片描述

1 案例 1: 压缩多个文件,将 /home/a1.txt 和 /home/a2.txt 压缩成 a.tar.gz 【zcvf】 zxvf
tar -zcvf a.tar.gz a1.txt a2.txt [注意,路径要写清楚]

2 案例 2: 将/home 的文件夹 压缩成 myhome.tar.gz
tar -zcvf myhome.tar.gz /home/ [注意,路径写清楚]

3 案例 3: 将 a.tar.gz 解压到当前目录
tar -zxvf a.tar.gz

4 案例 4: 将 myhome.tar.gz 解压到 /opt/tmp2 目录下 【-C】
tar -zxvf myhome.tar.gz -C /opt/tmp2 [注意; /opt/tmp2 事先需要创建好]

(九)组管理和权限管理

9.1 Linux 组基本介绍

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

在这里插入图片描述

9.2 文件/目录的所有者

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

9.2.1查看文件的所有者

指令: ls – ahl

应用实例 :创建一个组 police,再创建一个用户 tom,将 tom 放在 police 组 ,然后使用 tom 来创建一个
文件 ok.txt,

9.2.2修改文件所有者

chown 用户名 文件名

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

在这里插入图片描述

9.3 文件/目录的所在组

9.3.1修改文件所在的组

chgrp 组名 文件名

应用实例
使用 root 用户创建文件 orange.txt ,看看当前这个文件属于哪个组【root】,然后将这个文件所在组,
修改到 police 组。

chgrp police orange.txt

9.3.2改变用户所在组

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

改变用户所在组
) usermod – g 组名 用户名
) usermod – d 目录名 用户名 改变该用户登陆的初始目录。

应用实例
创建一个土匪组(bandit)将 tom 这个用户从原来所在的 police 组,修改到 bandit(土匪) 组
Usermod -g bandit tom

9.4 权限的基本介绍

在这里插入图片描述

9.5 rwx 权限详解

在这里插入图片描述

9.6 修改权限-chmod

在这里插入图片描述
在这里插入图片描述

9.7 修改文件所有者-chown

9.7.1基本介绍

chown newowner file

改变文件的所有者

chown newowner:newgroup file

改变用户的所有者和所有组

-R

如果是目录 则使其下所有子文件或目录递归生效

案例演示:
) 请将 /home/abc.txt 文件的所有者修改成 tom
chown tom /home/abc.txt

) 请将 /home/kkk 目录下所有的文件和目录的所有者都修改成 tom
chown – R tom /home/kkk

) 将 home 下的所有文件和目录的所有者都改成 tom,将所在组改成 police
chown – R tom:police /home/

9.8 修改文件所在组-chgrp

9.8.1基本介绍
chgrp newgroup file 改变文件的所有组

9.8.2案例演示:
) 请将 /home/abc .txt 文件的所在组修改成 shaolin (少林)
chgrp shaolin /home/abc.txt

) 请将 /home/kkk 目录下所有的文件和目录的所在组都修改成 shaolin(少林)
chgrp -R shaolin /home/kkk

9.9 最佳实践-警察和土匪游戏

police , bandit
jack, jerry: 警察
xh, xq: 土匪

) 创建组
groupadd police
groupadd bandit

) 创建用户

useradd -g police jack
useradd -g police jerry
useradd -g bandit xh
useradd -g bandit xq
给分配密码

) jack 创建一个文件 jack.txt,自己可以读写,本组人可以读,其它组没人任何权限

登录后
chmod 640 jack.txt
提醒:如果我们希望同组的人可以读 jack.txt 文件,则需要将 jack 的家目录的权限打开.
chmod g=rx /home/jack

) jack 修改该文件,让其它组人可以读, 本组人可以读写
chmod g=rw, o=r jack.txt

) xh 投靠 警察,看看是否可以读写.(测试后,是 ok, 注意需要重新登录)logout
usermod -g police xh

(十) 定时任务调度

10.1 crond 任务调度

crontab 进行 定时任务的设置,。

10.1.1 概述

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

任务调度分类:

1.系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等
2.个别用户工作:个别用户可能希望执行某些程序,比如对 mysql 数据库的备份。

10.1.2 基本语法

crontab [选项]

10.1.3 常用选项

在这里插入图片描述

10.1.4 快速入门

设置任务调度文件: /etc/crontab
设置个人任务调度。执行 crontab – e 命令。
接着输入任务到调度文件
如: */1 * * * * ls – l /etc/ > /tmp/to.txt
意思说每小时的每分钟执行 ls – l /etc/ > /tmp/to.txt 命令

10.1.5 参数细节说明

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

10.1.6 应用实例

) 案例 1:每隔 1 分钟,就将当前的日期信息,追加到 /tmp/mydate.log 文件
*/1 * * * * date >> /tmp/mydate.log
在这里插入图片描述

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

*/1 * * * * date >> /home/mycal.log

*/1 * * * * cal >> /home/mycal.log

在这里插入图片描述

注意: 一定给 sh 脚本的执行权限
在这里插入图片描述

案例 3: 每天凌晨 2:00 将 mysql 数据库 testdb ,备份到文件中。
在这里插入图片描述

步骤: 1, 首先编写一个 脚本 backupdb.sh

#!/bin/bash

#备份路径 BACKUP=/data/backup/sql/dy

#当前时间 DATETIME=$(date +%Y-%m-%d_%H%M%S)

echo “=备份开始=”

echo “备份文件存放于 B A C K U P / {BACKUP}/ BACKUP/DATETIME.tar.gz”

#数据库地址 HOST=localhost

#数据库用户名 DB_USER=root

#数据库密码 DB_PW=Ces123456

#创建备份目录 [ ! -d “ B A C K U P / {BACKUP}/ BACKUP/DATETIME” ] && mkdir -p “ B A C K U P / {BACKUP}/ BACKUP/DATETIME”

#后台系统数据库 DATABASE=dy_backgroundms mysqldump -u D B U S E R p {DB_USER} -p DBUSERp{DB_PW} --host=$HOST -q -R --databases D A T A B A S E ∣ g z i p > B A C K U P / B A C K U P / B A C K U P / D A T E T I M E / DATABASE | gzip > B A C K U P / {BACKUP}/ BACKUP/DATETIME/ DATABASEgzip>BACKUP/BACKUP/BACKUP/DATETIME/DATABASE.sql.gz

#投入品监管数据库 DATABASE=dy_firip mysqldump -u D B U S E R p {DB_USER} -p DBUSERp{DB_PW} --host=$HOST -q -R --databases D A T A B A S E ∣ g z i p > B A C K U P / B A C K U P / B A C K U P / D A T E T I M E / DATABASE | gzip > B A C K U P / {BACKUP}/ BACKUP/DATETIME/ DATABASEgzip>BACKUP/BACKUP/BACKUP/DATETIME/DATABASE.sql.gz

#压缩成 tar.gz 包 cd $BACKUP tar -zcvf $DATETIME.tar.gz $DATETIME

#删除备份目录 rm -rf B A C K U P / {BACKUP}/ BACKUP/DATETIME

#删除 30 天前备份的数据 find $BACKUP -mtime +30 -name “*.tar.gz” -exec rm -rf {} ; echo “=备份成功=”

步骤 2: 给 /home/backupdb.sh 一个可以执行的权限
chmod u+x backupdb.sh
步骤 3: 将 backupdb.sh 部署到 crontab
crontab -e
增加
* 2 * * * /home/backupdb.sh
到此 ok!

crond 相关指令**??*

) conrtab –r:终止任务调度。
) crontab –l:列出当前有那些任务调度

) service crond restart [重启任务调度]

(十一)Linux 磁盘分区、挂载

11.1 分区的基本知识

11.1.1 分区的方式(知道即可):

mbr 分区:

1.最多支持四个主分区
2.系统只能安装在主分区
3.扩展分区要占一个主分区
4.MBR 最大只支持 2TB,但拥有最好的兼容性

gtp 分区:

1.支持无限多个主分区(但操作系统可能限制,比如 windows 下最多 128 个分区)
2.最大支持 18EB 的大容量(1EB=1024 PB, 1PB=1024 TB )
3.windows7 64 位以后支持 gtp

11.1.2 windows 下的磁盘分区

在这里插入图片描述

11.2 Linux 分区

11.2.1 原理介绍

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

11.2.2 硬盘说明

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 硬盘的表示方法一样。 sdb1 [表示第 2 块 scsi 硬盘的第 1 个分区]

使用lsblk的指令查看当前系统分区的情况 (巧记lsblk,老师不离开)

在这里插入图片描述
在这里插入图片描述

11.3 挂载的经典案例

11.3.1 说明:

下面我们以增加一块硬盘 1G 为例来熟悉下磁盘的相关指令和深入理解磁盘分区、挂载、卸载的
概念

在这里插入图片描述

11.3.2 增加一块硬盘的步骤

)增加一块硬盘 1G [到设置中添加一块硬盘即可]

在这里插入图片描述

) 重启一下服务器
lsblk

在这里插入图片描述

) 给 sdb 硬盘分区
在这里插入图片描述

) 格式化 sdb1
mkfs -t ext4 /dev/sdb1 [把 /dev/sdb1 分区格式化] (巧记“mkfs‘ 没开发商)
在这里插入图片描述

) 挂载
mkdir /home/newdisk
mount /dev/sdb1 /home/newdisk [说明;挂载时,不要在 /home/newdisk ]
在这里插入图片描述

) 上面的方式,只是临时生效,当你重启系统,挂载的关系没有, 配置 linux 的分区表,实现启
动时,自动挂载.
vim /etc/fstab yy,移动光标到复制的那行,按p,复制一行 (巧记“fstab”非说他不)

在这里插入图片描述

) 重启后,会自动挂载.
8) 如果,我们希望卸载,指令
umount 设备名 | 挂载路径
umount /dev/sdb1

11.4 磁盘情况查询

11.4.1查询系统整体磁盘使用情况

在这里插入图片描述

11.4.2 查询指定目录的磁盘占用情况

基本语法
du -h /目录
查询指定目录的磁盘占用情况,默认为当前目录
-s 指定目录占用大小汇总
-h 带计量单位
-a 含文件
–max-depth=1 子目录深度
-c 列出明细的同时,增加汇总值
应用实例
查询 /usr 目录的磁盘占用情况,深度为 1
du -ach --max-depth= 1 /usr
在这里插入图片描述

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

) 统计/home 文件夹下文件的个数
ls – l /home/ | grep “^-” | wc -l

) 统计/home 文件夹下目录的个数
ls – l /home/ | grep “^d” | wc -l

) 统计/home 文件夹下文件的个数,包括子文件夹里的
ls – lR /home/ | grep “^-” | wc -l

) 统计/home 文件夹下目录的个数,包括子文件夹里的
ls – lR /home/ | grep “^d” | wc -l

以树状显示 home 目录结构 [没有 tree 指令咋办, 使用 yum 来安装]
先安装
yum install tree

在这里插入图片描述

(十二) linux 的网络配置

12.1 linux 网络环境配置

12.1.1 自动获取

在这里插入图片描述

说明

1)配置比较简单

2)每次启动linux后,分配的ip地址可能不一样。不适合做服务器

12.1.2配置固定的ip地址

vim /etc/sysconfig/network-scripts/ifcfg-eth0

在这里插入图片描述

如果希望配置生效
) reboot
) service network restart // 重启网络服务

12.2 修改主机名

在这里插入图片描述
在这里插入图片描述

(十三) 进程管理(重点)

13.1 基本介绍

) 在 LINUX 中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个 ID 号。

) 每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如 www 服务器

) 每个进程都可能以两种方式存在的。前台 与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行[sshd ,
crond]。

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

13.1.1 显示系统执行的进程

ps -aux // 显示所有的进程

在这里插入图片描述

13.1.2 ps 详解

指令: ps – aux|grep xxx ,比如我看看有没有 sshd 服务
指令说明
System V 展示风格
USER:用户名称
PID:进程号
%CPU:进程占用 CPU 的百分比
%MEM:进程占用物理内存的百分比
VSZ:进程占用的虚拟内存大小(单位: KB)
RSS:进程占用的物理内存大小(单位: KB)
TTY:终端名称,缩写 .
STAT:进程状态,其中 S-睡眠, s-表示该进程是会话的先导进程, N-表示进程拥有比普通优先级
更低的优先级, R-正在运行, D-短期等待, Z-僵死进程, T-被跟踪或者被停止等等
STARTED:进程的启动时间
TIME: CPU 时间,即进程使用 CPU 的总时间
COMMAND:启动进程所用的命令和参数,如果过长会被截断显示

13.2 终止进程 kill 和 killall

13.2.1 介绍:

若是某个进程执行一半需要停止时,或是已消了很大的系统资源时,此时可以考虑停止该进程。
使用 kill 命令来完成此项任务。

13.2.2 基本语法:

kill [选项] 进程号(功能描述:通过进程号杀死进程 -9 强制终止)

killall 进程名称

(功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)

13.2.3 常用选项:

-9 :表示强迫进程立即停止

13.2.4 最佳实践:

案例 1:踢掉某个非法登录用户【jack】

在这里插入图片描述

案例 2: 终止远程登录服务 sshd, 在适当时候再次重启 sshd 服务

在这里插入图片描述

案例 3: 终止多个 gedit 编辑器

killall gedit

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

13.3 查看进程树 pstree

13.3.1 基本语法:

pstree [选项] ,可以更加直观的来看进程信息

13.3.2 常用选项:

-p :显示进程的 PID
-u :显示进程的所属用户

13.3.3 应用实例:

) 案例 1:请用树状的形式显示进程的 pid
Pstree -p
案例 2:请用树状的形式进程的用户 id
Pstree – u
Pstree -pu

13.4 服务(service)管理

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

service 管理指令:
service 服务名 [start | stop | restart | reload | status]
在 CentOS7.0 后 不再使用 service ,而是 systemctl
使用案例:

) 查看当前防火墙的状况,关闭防火墙和重启防火墙。
Service iptables status

在这里插入图片描述

细节讨论:
关闭或者启用防火墙后,立即生效。 [telnet 测试 某个端口即可]
service iptables stop , service iptables start
这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置。
如果希望设置某个服务自启动或关闭永久生效,要使用 chkconfig 指令。
在这里插入图片描述
在这里插入图片描述

13.5 动态监控进程

13.5.1 介绍:

top 与 ps 命令很相似。它们都用来显示正在执行的进程。 Top 与 ps 最大的不同之处,在于 top 在执
行一段时间可以更新正在运行的的进程(默认每 3 秒变化一次)。
基本语法:

13.5.2 top [选项]

13.5.3 选项说明:

在这里插入图片描述

top 指令的说明

在这里插入图片描述
在这里插入图片描述

13.6 监控网络状态

查看系统网络情况 netstat

基本语法
netstat [选项]

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

应用案例
请查看服务名为 sshd 的服务的信息。
Netstat – anp | grep sshd
如果我们希望查看当前系统有哪些端口在监听
netstat -tlnp

13.7 百度面试题:

问题: Linux 常用命令,至少 6 个(netstat , top , lsblk , find , ps , chkconfig )

13.8 瓜子二手车题:

问题: Linux 查看内存、磁盘存储、 io 读写(iotop)、端口占用、进程等命令
top
df – lh
Netstat – tunlp

Ps – aux | grep 进程名
Iotop , 如果没有,就先安装一把

(十四)rpm 和 yum 软件安装

14.1 rpm 包的管理

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

14.2 rpm 常用的指令

在这里插入图片描述

14.3 卸载 rpm 包:

基本语法
rpm -e RPM 包的名称

应用案例
删除 firefox 软件包
rpm -e firefox

细节讨论
) 如果其它软件包依赖于您要卸载的软件包,卸载时则会产生错误信息。
如: $ rpm -e foo
removing these packages would break dependencies:foo is needed by bar-1.0-1

) 如果我们就是要删除 foo 这个 rpm 包,可以增加参数 --nodeps ,就可以强制删除,但是一般不
推荐这样做,因为依赖于该软件包的程序可能无法运行
如: $ rpm -e --nodeps foo [小心使用]

14.4 安装 rpm 包:

基本语法
rpm -ivh RPM 包全路径名称

参数说明
i=install 安装
v=verbose 提示
h=hash 进度条

应用实例
演示卸载和安装 firefox 浏览器
提示:很多的 rpm 包,就在我们的 centos 安装的镜像文件中

在这里插入图片描述

14.5 yum 的使用

1.yum 管理前提是要联网

在这里插入图片描述

2.选项说明

表1-52

选项

功能

-y

对所有提问都回答“yes”

3.参数说明

表1-53

参数

功能

install

安装rpm软件包

update

更新rpm软件包

check-update

检查是否有可用的更新rpm软件包

remove

删除指定的rpm软件包

list

显示软件包信息

clean

清理yum过期的缓存

deplist

显示yum软件包的所有依赖关系

4.案例实操实操

(1)采用yum方式安装firefox

[root@hadoop101 ~]#yum -y install firefox.x86_64

5. 修改网络YUM源

默认的系统YUM源,需要连接国外apache网站,网速比较慢,可以修改关联的网络YUM源为国内镜像的网站,比如网易163。

1.前期文件准备

(1)前提条件linux系统必须可以联网

(2)在Linux环境中访问该网络地址:http://mirrors.163.com/.help/centos.html,在使用说明中点击CentOS6->再点击保存,如图1-164所示

在这里插入图片描述

图1-164 下载CentOS6

(3)查看文件保存的位置,如图1-165,1-166所示

在这里插入图片描述
图1-165

在这里插入图片描述

图1-166

在打开的终端中输入如下命令,就可以找到文件的保存位置。

[atguigu@hadoop101 下载]$ pwd

/home/atguigu/下载

2.替换本地yum文件

(1)把下载的文件移动到/etc/yum.repos.d/目录

[root@hadoop101 下载]# mv CentOS6-Base-163.repo /etc/yum.repos.d/

(2)进入到/etc/yum.repos.d/目录

[root@hadoop101 yum.repos.d]# pwd

/etc/yum.repos.d

(3)用CentOS6-Base-163.repo替换CentOS-Base.repo

[root@hadoop101 yum.repos.d]# mv CentOS6-Base-163.repo CentOS-Base.repo

3.安装命令

(1)[root@hadoop101 yum.repos.d]#yum clean all

(2)[root@hadoop101 yum.repos.d]#yum makecache

yum makecache就是把服务器的包信息下载到本地电脑缓存起来

4.测试

[root@hadoop101 yum.repos.d]#yum list | grep firefox

[root@hadoop101 ~]#yum -y install firefox.x86_64

(十五) 常见错误及解决方案

. 虚拟化支持异常情况如下几种情况
在这里插入图片描述
图1-168
在这里插入图片描述
图1-169
在这里插入图片描述

图1-170
在这里插入图片描述

问题原因:宿主机BIOS设置中的硬件虚拟化被禁用了

解决办法:需要打开笔记本BIOS中的IVT对虚拟化的支持
在这里插入图片描述

  • 20
    点赞
  • 270
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值