Linux必学知识(超全)

Linux

一、Linux 的介绍

Linux必学知识(超全)_第1张图片

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

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

Linux必学知识(超全)_第2张图片

2.2 Centos 终端的使用和联网

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

Linux必学知识(超全)_第3张图片

这里是简单的动态分配ip

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

lo是循环

三、 linux 的目录结构

3.1 linux的目录结构

3.1.1基本介绍

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

在 Linux 世界里,一切皆文件(即使是一个硬件设备,也是使用文本来标志)
Linux必学知识(超全)_第4张图片
Linux必学知识(超全)_第5张图片
Linux必学知识(超全)_第6张图片

Linux必学知识(超全)_第7张图片
Linux必学知识(超全)_第8张图片
Linux必学知识(超全)_第9张图片

总结:

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

四、远程登录到 Linux 服务器

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

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

Linux必学知识(超全)_第11张图片

为什么需要远程登录?

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

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

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

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

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

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快捷键使用练习:

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

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

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

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

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

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

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

\8) 更多的看整理的文档

(六)关机和重启命令

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 用户名

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

Linux必学知识(超全)_第12张图片

7.3指定/修改密码

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

7.4删除用户

7.4.1userdel 用户名

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

7.5查询用户信息指令

id 用户名
Linux必学知识(超全)_第13张图片

7.6切换用户

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

su – 切换用户名

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

7.7用户组

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

groupadd 组名

7.7.1增加用户时直接加上组

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

Linux必学知识(超全)_第14张图片

7.7.2删除组

groupdel 组名

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

Linux必学知识(超全)_第15张图片

7.7.3修改用户的组

usermod – g 新的组名 用户名

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

Linux必学知识(超全)_第16张图片

7.8 用户和组的相关文件 vim

7.8.1/etc/passwd 文件

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

Linux必学知识(超全)_第17张图片

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

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

在这里插入图片描述

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

Linux必学知识(超全)_第18张图片

Linux必学知识(超全)_第19张图片

(八)实用命令

8.1 指定运行级别

8.1.1基本介绍:

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

8.2案例:

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

\1) 假设我们的 root 密码忘记了,请问如何找回密码【练习】
启动时->快速输入 enter->输入 e-> 进入到编辑界面-> 选择中间有 kernel 项->
入 e(edit)-> 在该行的最后写入 1 [表示修改内核,临时生效]-> 输入 enter->
入 b [boot]-> 进入到单用模式 【这里就可以做补救工作】
\2) 请设置我们的 运行级别, 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 :递归复制整个文件夹

Linux必学知识(超全)_第20张图片

强制覆盖不提示的方法:\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 指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要
加载内容,对于显示大型文件具有较高的效率。

Linux必学知识(超全)_第21张图片

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

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

8.4.13 echo 指令

echo 输出内容到控制台。

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

echo $PATH

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

Linux必学知识(超全)_第22张图片
Linux必学知识(超全)_第23张图片

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 行内容

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

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

Linux必学知识(超全)_第24张图片

8.4.16 > 指令 和 >> 指令

\1) ls -l >文件 (功能描述:列表的内容写入文件 a.txt 中(覆盖写))
\2) ls -al >>文件 (功能描述:列表的内容追加到文件 aa.txt 的末尾)
\3) cat 文件 1 > 文件 2 (功能描述:将文件 1 的内容覆盖到文件 2)
\4) 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 时间日期类

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

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

date -s 字符串时间

案例 1: 设置系统当前时间 , 比如设置成 2018-09-05 11:11:50
Linux必学知识(超全)_第25张图片

8.5.3cal 指令

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

8.6 搜索查找类

8.6.1find 指令

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

find [搜索范围] [选项]

Linux必学知识(超全)_第26张图片

案例 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 服务在监听.
Linux必学知识(超全)_第27张图片

8.7 压缩和解压类

8.7.1gzip/gunzip 指令

gzip 文件 (功能描述:压缩文件,只能将文件压缩为*.gz 文件)
gunzip 文件.gz (功能描述:解压缩文件命令)

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

Linux必学知识(超全)_第28张图片

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)

Linux必学知识(超全)_第29张图片

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 中每个文件
有所有者、 所在组、其它组的概念。
\1) 所有者
\2) 所在组
\3) 其它组
\4) 改变用户所在的组

Linux必学知识(超全)_第30张图片

9.2 文件/目录的所有者

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

9.2.1查看文件的所有者

指令: ls – ahl

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

9.2.2修改文件所有者

chown 用户名 文件名

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

Linux必学知识(超全)_第31张图片

9.3 文件/目录的所在组

9.3.1修改文件所在的组

chgrp 组名 文件名

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

chgrp police orange.txt

9.3.2改变用户所在组

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

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

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

9.4 权限的基本介绍

Linux必学知识(超全)_第32张图片

9.5 rwx 权限详解

Linux必学知识(超全)_第33张图片

9.6 修改权限-chmod

Linux必学知识(超全)_第34张图片
Linux必学知识(超全)_第35张图片

9.7 修改文件所有者-chown

9.7.1基本介绍

chown newowner file 改变文件的所有者
chown newowner:newgroup file 改变用户的所有者和所有组
-R 如果是目录 则使其下所有子文件或目录递归生效

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

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

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

9.8 修改文件所在组-chgrp

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

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

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

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

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

\1) 创建组
groupadd police
groupadd bandit

\2) 创建用户

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

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

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

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

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

(十) 定时任务调度

10.1 crond 任务调度

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

10.1.1 概述

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

任务调度分类:

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

10.1.2 基本语法

crontab [选项]

10.1.3 常用选项

Linux必学知识(超全)_第36张图片

10.1.4 快速入门

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

10.1.5 参数细节说明

Linux必学知识(超全)_第37张图片
Linux必学知识(超全)_第38张图片
Linux必学知识(超全)_第39张图片

10.1.6 应用实例

\1) 案例 1:每隔 1 分钟,就将当前的日期信息,追加到 /tmp/mydate.log 文件
*/1 * * * * date >> /tmp/mydate.log
Linux必学知识(超全)_第40张图片

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

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

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

Linux必学知识(超全)_第41张图片

注意: 一定给 sh 脚本的执行权限
Linux必学知识(超全)_第42张图片

​ 案例 3: 每天凌晨 2:00 将 mysql 数据库 testdb ,备份到文件中。
Linux必学知识(超全)_第43张图片

步骤: 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 $DATABASE | gzip > B A C K U P / {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 $DATABASE | gzip > B A C K U P / {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 相关指令***

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

​ \3) 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 下的磁盘分区

Linux必学知识(超全)_第44张图片

11.2 Linux 分区

11.2.1 原理介绍

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

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,老师不离开)

Linux必学知识(超全)_第46张图片
Linux必学知识(超全)_第47张图片

11.3 挂载的经典案例

11.3.1 说明:

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

Linux必学知识(超全)_第48张图片

11.3.2 增加一块硬盘的步骤

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

Linux必学知识(超全)_第49张图片

\2) 重启一下服务器
lsblk

Linux必学知识(超全)_第50张图片

\3) 给 sdb 硬盘分区
Linux必学知识(超全)_第51张图片

\4) 格式化 sdb1
mkfs -t ext4 /dev/sdb1 [把 /dev/sdb1 分区格式化] (巧记“mkfs‘ 没开发商)
Linux必学知识(超全)_第52张图片

\5) 挂载
mkdir /home/newdisk
mount /dev/sdb1 /home/newdisk [说明;挂载时,不要在 /home/newdisk ]
Linux必学知识(超全)_第53张图片

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

Linux必学知识(超全)_第54张图片

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

11.4 磁盘情况查询

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

Linux必学知识(超全)_第55张图片

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

基本语法
du -h /目录
查询指定目录的磁盘占用情况,默认为当前目录
-s 指定目录占用大小汇总
-h 带计量单位
-a 含文件
–max-depth=1 子目录深度
-c 列出明细的同时,增加汇总值
➢ 应用实例
查询 /usr 目录的磁盘占用情况,深度为 1
du -ach --max-depth= 1 /usr
Linux必学知识(超全)_第56张图片

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

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

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

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

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

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

Linux必学知识(超全)_第57张图片

(十二) linux 的网络配置

12.1 linux 网络环境配置

12.1.1 自动获取

Linux必学知识(超全)_第58张图片

说明

1)配置比较简单

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

12.1.2配置固定的ip地址

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

Linux必学知识(超全)_第59张图片

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

12.2 修改主机名

Linux必学知识(超全)_第60张图片
Linux必学知识(超全)_第61张图片

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

13.1 基本介绍

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

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

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

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

13.1.1 显示系统执行的进程

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

Linux必学知识(超全)_第62张图片

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】

Linux必学知识(超全)_第63张图片

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

Linux必学知识(超全)_第64张图片

案例 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) 案例 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
使用案例:

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

Linux必学知识(超全)_第65张图片

细节讨论:
关闭或者启用防火墙后,立即生效。 [telnet 测试 某个端口即可]
service iptables stop , service iptables start
这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置。
如果希望设置某个服务自启动或关闭永久生效,要使用 chkconfig 指令。
Linux必学知识(超全)_第66张图片
Linux必学知识(超全)_第67张图片

13.5 动态监控进程

13.5.1 介绍:

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

13.5.2 top [选项]

13.5.3 选项说明:

Linux必学知识(超全)_第68张图片

top 指令的说明

Linux必学知识(超全)_第69张图片
Linux必学知识(超全)_第70张图片

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 常用的指令

Linux必学知识(超全)_第71张图片

14.3 卸载 rpm 包:

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

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

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

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

14.4 安装 rpm 包:

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

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

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

Linux必学知识(超全)_第72张图片

14.5 yum 的使用

1.yum 管理前提是要联网

Linux必学知识(超全)_第73张图片

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所示

Linux必学知识(超全)_第74张图片

图1-164 下载CentOS6

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

Linux必学知识(超全)_第75张图片
图1-165

Linux必学知识(超全)_第76张图片

图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. 虚拟化支持异常情况如下几种情况
在这里插入图片描述
图1-168
在这里插入图片描述
图1-169
Linux必学知识(超全)_第77张图片

图1-170
Linux必学知识(超全)_第78张图片

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

解决办法:需要打开笔记本BIOS中的IVT对虚拟化的支持
Linux必学知识(超全)_第79张图片

你可能感兴趣的:(linux,centos,网络)