Linux学习笔记-B站韩顺平

Posted KK-Greyson

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux学习笔记-B站韩顺平相关的知识,希望对你有一定的参考价值。

文章目录

第一章:LINUX 开山篇-内容介绍

1.1.本套 Linux 课程内容


1.2.Linux 使用在那些地方

linux运营工程师主要做:
	服务器规划
	调试优化
	对系统进行日常监控
	故障处理
	对数据的备份和处理
	日志的分析

1.3.Linux 的应用领域

1.个人桌面领域的应用

2.服务器领域(Linux最主要的领域)
linux 在服务器领域的应用是最强的。
linux 免费、稳定、高效等特点在这里得到了很好的体现,尤其在一些高端领域尤为广泛(c/c++/php/java/python/go)

3.嵌入式领域
linux 运行稳定、对网络的良好支持性、低成本,且可以根据需要进行软件裁剪,内核最小可以达到几百 KB 等特点, 使其近些年来在嵌入式领域的应用得到非常大的提高
主要应用:机顶盒、数字电视、网络电话、程控交换机、手机、PDA、智能家居、智能硬件等都是其应用领域。以后在物联网中应用会更加广泛。

第二章:Linux 基础篇-Linux 入门

2.1.Linux 介绍

linux 是一个开源、免费的操作系统,其稳定性、安全性、处理多并发已经得到业界的认可,
目前很多企业级的项目(c/c++/php/python/java/go)都会部署到 Linux/unix 系统上。

常见的操作系统(windows、iosandroid、MacOS, Linux, Unix)

Linux之父:Linus Torvalds

Linux主要的发行版:
	Ubuntu(乌班图)、RedHat(红帽)、CentOS...
	Linux只是一个内核,在此基础上有不同的人对其进行包装(开发了很多软件包/工具,做成了发行版)

2.2.Linux 和 Unix 的关系

2.2.1.unix 是怎么来的

2.2.2.Linux 是怎么来的

2.2.3.Linux 和 Unix 关系图

第三章:Linux 基础篇-VM 和 Linux 的安装

3.1.安装 vm 和 Centos

学习 Linux 需要一个环境,我们需要创建一个虚拟机,然后在虚拟机上安装一个 Centos 系统来学习
1.先安装 virtual machine 15.5 (vmware15.5)
2.再安装 Linux (CentOS 7.6/centOS8.1) 
3.原理:

Linux磁盘手动分区:

设置密码不要写那么简单,可以百度搜索生成随机密码。

3.2.网络连接的三种模式

给虚拟系统连接网络。
张三,李四,王五在同一网段内,假设ip地址都是192.168.0.x

桥接模式:
	虚拟系统直接与外部系统通信,虚拟系统也是192.168.0.x的ip地址
	这样就占用了该网段的主机号,类似于同一局域网内有多了一台主机
	但是x最多有255种,超过了数量就会造成ip冲突
	
NAT模式:
	nat地址转换
	虚拟系统通过本主机与外部系统通信,不造成ip冲突
	
主机模式:独立的系统,不和外部发生联系


3.3.虚拟机的克隆

如果已经安装了一台 linux 操作系统,你还想再更多的,没有必要再重新安装,只需要克隆就可以

方式1:直接拷贝一份安装好的虚拟机文件
	在我的电脑中找到要克隆的虚拟机的文件,赋值后粘贴到另一个位置,在 vmware 中打开就好了。
方式2:使用 vmware 的克隆操作(注意:克隆时,需要先关闭 linux 系统 先关机)
	在 vmware 中鼠标右击要克隆的虚拟机---->管理---->克隆---->克隆方法
		克隆方法:
			链接克隆:对原系统的引用(本质上没有克隆,就一个系统)
			完整克隆:一般选这个,克隆出来的系统与原系统完全一样

3.4.虚拟机的快照

如果你在使用虚拟机系统的时候(比如 linux),你想回到原先的某一个状态,
也就是说你担心可能有些误操作造成系统异常,需要回到原先某个正常运行的状态,
vmware 也提供了这样的功能,就叫快照管理。

方法:
	对左栏虚拟机鼠标右击--->快照--->拍摄快照
	查看快照管理器,点击要回到的快照图标,转到。
	
注意:每次拍摄一个快照都是对当前状态进行保存,会占用硬盘空间,做有意义的快照。

应用实例:
1.最初状态拍摄一个快照A
2.创建一个文件夹,拍摄一个快照B
3.再创建一个文件夹,拍摄一个快照C
4.从C回到A
5.从A回到B
6.再创建一个文件夹,拍摄一个快照D
7.回到A

3.5.虚拟机的迁移和删除

虚拟系统安装好之后,虚拟系统的本质就是文件(放在文件夹的)

虚拟系统的迁移:
	把安装好的虚拟系统这个文件夹整体拷贝或者剪切到另外位置使用。

虚拟机系统的删除:
	在vmware中,鼠标右击要移除的虚拟系统---->移除
	但是,该操作并没有把虚拟系统的文件夹删除,还要再去找到文件夹将其删除。

3.6.安装vmtools

1. vmtools 安装后,可以让我们在 windows 下更好的管理 vm 虚拟机
2. 可以设置 windows 和 centos 的共享文件夹
(主机和虚拟系统都可以操作共享文件夹,更加方便)

如何安装:
	仔细看视频吧

3.7.设置共享文件夹

仔细看视频吧

如何设置共享文件夹?
	在主机上找到一个位置创建一个文件夹作为共享文件夹
	然后在vm上操作:
		鼠标右击虚拟系统--->设置--->选项--->共享文件夹--->添加(将上述文件夹路径填上就好了)
		
如何在虚拟系统上找到共享文件夹?
	点击主文件夹--->其他位置--->计算机---->mnt---->hgfs--->里面就有共享文件夹

注意:在实际开发中,文件的上传下载是需要使用远程方式完成的
      因为是主机A与主机B上的虚拟系统通信(我们教学,所以虚拟系统在自己的主机上)
      远程方式后面学。

第四章:Linux 基础篇-目录结构

4.1.目录结构基本介绍

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

记住一句经典的话:在 Linux 世界里,一切皆文件(!!)


4.2.具体的目录结构(不要背,了解就好)

目录注解介绍
/bin常用是 Binary 的缩写, 这个目录存放着最经常使用的命令;子目录:/usr/bin 和 /usr/local/bin
/sbins 就是 Super User 的意思,这里存放的是系统管理员使用的系统管理程序;子目录:/usr/sbin 和 /usr/local/sbin
/home常用存放普通用户的主目录,在 Linux 中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名
/root常用该目录为系统管理员,也称作超级权限者的用户主目录
/lib系统开机所需要最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库
/lost+found这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件(该目录隐藏起来了,使用命令可以看到)
/etc常用所有的系统管理所需要的配置文件和子目录, 比如安装 mysql 数据库 my.conf
/user常用这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与 windows 下的 program files 目录
/boot常用存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件
/proc不能动这个文件,可能造成系统崩溃这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息
/srv不能动service 缩写,该目录存放一些服务启动之后需要提取的数据
/sys不能动这是 linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs
/tmp这个目录是用来存放一些临时文件的
/dev类似于 windows 的设备管理器,把所有的硬件用文件的形式存储
/media常用linux 系统会自动识别一些设备,例如 U 盘、光驱等等,当识别后,linux 会把识别的设备挂载到这个目录下
/mnt常用系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里的内容了。 (比如共享文件)
/opt这是给主机额外安装软件所存放的目录(想要安装某个软件,把它的安装软件放在这个目录下)。如想要在虚拟系统上安装 ORACLE 数据库就可以先把其安装文件放在该目录下。默认为空
/user/local常用这是另一个给主机额外安装软件所安装的目录(软件安装后的目标目录)。一般是通过编译源码方式安装的程序
/var常用这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下。包括各种日志文件
/selinuxsecurity-enhanced linuxSELinux 是一种安全子系统,它能控制程序只能访问特定文件, 有三种工作模式,可以自行设置. 类似于360,保证系统安全。这个目录看不到,因为没有被启用

第五章:Linux 实操篇-远程登录到 Linux 服务器

5.1.为什么需要远程登录 Linux

说明: 公司开发时候,具体的应用场景是这样的:
1. linux 服务器是开发小组共享
2. 正式上线的项目是运行在公网
3. 因此程序员需要远程登录到 Linux 进行项目管理或者开发

5.2.下载Xshell6和Xftp6

远程登录工具Xshell:
	1.Xshell 是目前最好的远程登录到 Linux 操作的软件,流畅的速度并且完美解决了中文乱码的问题,是目前程序员首选的软件。
	2.Xshell 是一个强大的安全终端模拟软件,它支持 SSH1, SSH2, 以及 Microsoft Windows 平台的 TELNET 协议。
	3.Xshell 可以在 Windows 界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的。


注意:
1.使用Xshell之前,需要知道Linux的ip地址
	如何知道ip地址?
		在Linux中,鼠标右击桌面打开终端,输入ifconfig指令,ens33中,就可以知道ip地址了。
2.要保证本机可以ping通虚拟主机
	在本机DOS命令窗口中输入命令:ping 虚拟主机ip地址


登录Xshell:
	打开Xshell--->添加会话--->主机(虚拟主机ip地址)--->确定
	双击密钥--->选择接受并保存主机密钥(就不用重复接受了)
	远程登陆成功



远程上传下载文件Xftp:
	是一个基于 windows 平台的功能强大的 SFTP、FTP 文件传输软件。
	使用了 Xftp 以后,windows 用户能安全地在 UNIX/Linux 和 Windows PC 之间传输文件

	操作同上
	注意:xftp打开时乱码:属性--->选项--->UTF-8编码

第六章:Linux 实操篇- Vi 和 Vim 编辑器

6.1. vi 和 vim 的基本介绍

Linux 系统会内置 vi 文本编辑器

Vim可以看作是Vi的增强版本,Vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。
代码补完、编译及错误跳转等方便编程的功能特别丰富。

6.2. vi 和 vim 常用的三种模式

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

2.插入模式
按下 i, I, o, O, a, A, r, R 等任何一个字母之后才会进入编辑模式, 一般来说按 i 即可.
可以写东西了。

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

6.3. vi 和 vim 基本使用

案例:使用 vim 开发一个 Hello.java 程序

使用xshell登录编写(因为以后工作都是这样写的):
	首先输入:vi Hello.java 或者 vim Hello.java (使用vim编辑器编写java程序)
	回车后进入正常模式
	之后输入i等字母,进入插入模式(编辑模式)
	然后可是写代码:
		public class Hello
			public static void main(String[] args)
				System.out.println("Hello World");
			
		
	然后保存,怎么保存?
		先 按 Esc 回到正常模式
		然后输入冒号:  接着输入wq (代表写入并退出write quit)
		回车
	结束
	
	输入ls命令,就可以看到Hello.java文件
	还想修该文件:再输入 vim Hello.java (按Tab键 代码补全) 就有回到了上面

6.4. 各种模式的相互切换

6.5. vi 和 vim 快捷键

快捷键模式介绍
yy正常模式复制当前行
p正常模式粘贴
5yy正常模式复制当前行向下的5行
dd正常模式删除当前行
5dd正常模式删除当前行向下的5行
在文件中查找某个单词:
	初始在正常模式,输入/,进入命令行模式,然后输入要查找的单词,回车查找
	输入n查找到下一个
	想查找另一个单词:输入/,重复上述即可

正常模式--->命令行模式
给文件每行设置行号:
	先冒号: 
	然后set nu  (set number)
	回车
取消行号:
	先冒号:
	然后set nonu
	回车

快捷键到该文档的最首行(正常模式):gg

快捷键到该文档的最末行(正常模式):G

撤销动作(比如删除某一行,发现删错了,然后恢复这一行)(正常模式):u

在某个文件中,想让光标移动到第20行(正常模式):输入20,再输入 shift+g

更多的快捷键:有整理的文档和下图

第七章:Linux 实操篇-开机、重启和用户登录注销

7.1.关机和重启命令

命令介绍
shutdown -h now立即关机(h—>halt停止)
halt立即关机,同上
shutdown1分钟后关机
shutdown -h 1同上,给每一个登录到Linux系统的用户发一条消息:1分钟后关机
shutdown -h 22分钟后关机
shutdonw -r now现在重新启动(r—>rboot重启)
reboot现在重新启动,同上
sync把内存的数据同步到磁盘
注意不管是重启还是关机,首先要运行 sync 命令,把内存中的数据写到磁盘中;目前的 shutdown/reboot/halt 等命令均已经在关机前进行了sync,但还是手动执行一下sync保险
既可以在Xshell,也可以在Linux执行上述指令

进入Linux,打开终端,验证上述指令

7.2.用户登录和注销

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


注销:
	在提示符下输入 logout  即可注销用户
	
	注意:logout 注销指令在图形运行级别无效,在运行级别 3 下有效.
	运行级别后面讲。

验证:
	使用普通用户登录
	使用Xshell远程登陆Linux
	输入命令:su - root   变为root用户
	再输入:logout  注销用户回到普通用户
	再输入:logout 退出系统

	注意:退出系统后,如何要重新连接到Linux,双击左栏会话再重新输入即可。

第八章:Linux 实操篇-用户管理

8.1.基本介绍

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

一个Linux系统中只有一个root用户,但是由root用户可以创建多个其他用户,可以给这些用户分配权限,
其中每个用户会对应一个目录,这个目录叫做家目录。

8.2.添加用户

语法:useradd 用户名
比如:useradd milan 注册新用户milan

注意:当创建用户成功后,会自动创建和用户同名的家目录,该用户的家目录默认在home目录下

也可以给新用户指定家目录:useradd -d 指定目录 新用户名
比如:useradd -d /home/test king 创建一个新用户king,其家目录test

8.3.指定/修改密码

语法:passwd 用户名  给某个用户设置/更改密码
注意:要写用户名。不写用户名默认设置当前用户,如果当前用户是root就麻烦了。
比如:给milan设置密码 

命令:pwd --->显示当前用户所在目录 Print Working Directory

8.4.删除用户

语法: userdel 用户名

普通用户不能删除别的用户,只有root用户可以;并且不能自己删除自己

1.删掉用户,但是保留其家目录:
	userdel 用户名
2.将用户和其家目录一起删除(这个操作要谨慎):
	user -r 用户名

一般情况,建议保留家目录(不删除)

8.5.查询用户信息

语法:id 用户名
id root:
uid=0(root) gid=0(root) 组=0(root)  userid是0 gruopid组id是0 所在组0

	当用户不存在:返回无此用户 no such user

8.6.切换用户

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

语法: su - 切换用户名

创建一个用户lucy,指定密码,然后切换到lucy

注意:
	1.从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。
	2.当需要返回到原来用户时,使用 exit/logout 指令

8.7.查看当前用户/登录用户

语法:who am i 或者 who am I
who am i --->第一个登录该系统的用户信息
假设A用户登录系统,切换到B用户,B输入命令who am i,输出的还是A用户的信息

8.8.用户组

介绍:类似于角色,系统可以对有共性/有相同的权限的多个用户进行统一的管理

新增组:groupadd 组名
	假如A用户和B用户有相同的权限,一个一个赋权限太麻烦了;
	可以把A用户和B用户放在一个组里,然后给这个组赋权限,组里的用户有相同的权限。

	新增一个用户,其实会默认生成一个跟用户名相同的组,然后把用户放到该组里。
	就像是 id root:uid=0(root) gid=0(root) 组=0(root)--->root组

	例子:增加一个用户zwj,把他直接放到组wudang中
	命令:
		groupadd wudang
		useradd -g wudang zwj
		id zwj:uid=1001(zwj) gid=1001(wudang) 组=1001(wudang)



修改用户的组:usermod -g 用户组 用户名
	例子:把zwj 放到组 mojiao 中
	命令:
		groupadd mojiao
		usermod -g mojiao zwj
		id zwj:uid=1001(zwj) gid=1002(mojiao) 组=1002(mojiao)

	新增一个用户john,怎么把john放进组mojiao中?
		useradd jhon
		usermod -g mojiao jhon
		新增一个用户john,john在以自己的名字命名的组john中,从john组到mojiao组


删除组:groupdel 组名

8.9.用户和组的相关文件

(1)/etc/passwd 文件
每增加一个用户,就会把用户的信息保存到该文件。
用户(user)的配置文件,记录用户的各种信息
每行都是一个用户,每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

主目录:用户所在的家目录

shell:命令解释程序
	将发布的指令通过shell解析,再传给Linux内核
	Linux是看不懂发布的指令的
	shell有很多种,中国一般用的是bash

命令:viw /etc/passwd 可以查看该文件(还有其他命令)

(2)/etc/shadow 文件
口令的配置文件
每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

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

第九章:Linux 实操篇-实用指令

9.1.指定运行级别

Linux系统运行级别:
0:关机
1:单用户【可以找回丢失密码】
2:多用户状态没有网络服务(一般不用,没网络)
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图形界面
6:系统重启
常用运行级别是 3 和 5

切换运行级别命令:init 选0-6

指定默认运行级别:
	CentOS7之前是在文件/etc/inittab文件中设置
	CentOS7之后对设置进行了简化:
		用 multi-user.target 代表3运行级别
		用 graphical.target 代表5运行级别
		7版本之后主要用3和5运行级别。

	用命令:systemctl get-default 查看当前系统运行级别
	用命令:systemctl set-default multi-user.target /graphical.target  设置默认运行级别

9.2.找回 root 密码

在登录系统时,忘记了root密码,如何找回root密码?
资料中有,不同版本方式不同,介绍CentOS7之后的版本解决方法:


9.3.帮助指令

语法:man 命令或配置文件
是manual的简写,manual是手册的意思

功能:获得帮助信息
例子:查看ls命令的帮助信息

输入 man ls 之后,会看到ls的具体信息(要回到前一个页面,输入q)
注意:可能不止一页,使用空格或下键,可以往下看

---------------------------------------------------------------------
ls命令:列出目录内容
格式:ls [选项] [文件名...]     
	 ls  -a  --->列出所有文件,包括隐藏文件(隐藏文件以 . 开头)
	 ls  -l  --->单列输出 

选项以 - 开始
选项可以组合使用,没有顺序:
	比如: ls -al  也可以 ls -a -l  表示列出所有的文件 并 单列输出

ls默认是对当前目录下的文件
也可以指定某个目录:
	如: ls -al /root  把root目录下的所有文件单列输出
---------------------------------------------------------------------

语法:help 命令
功能:获得 shell 内置命令的帮助信息
例子:查看 cd 命令的帮助信息
help cd

语法:man [命令或配置文件]
功能:获得帮助信息
例子:查看ls命令的帮助信息
man ls

9.4.关于文件目录的指令

基本语法:pwd    (print working directory)
功能:显示当前目录的绝对路径
---------------------------------------------------------------------

基本语法:ls [选项] [目录或是文件]
常用选项:
	-a:显示当前目录所有的文件和目录,包括隐藏的。
	-l:以列表的方式显示信息
---------------------------------------------------------------------

基本语法:cd [参数]	
功能:切换到指定目录

cd ~ 或者 cd --->回到当前用户的家目录 
cd ..   --->回到当前目录的上一级目录

案例 1:使用绝对路径切换到 root 目录
	cd /root
	
案例 2:使用相对路径到 root 目录
	比如当前在 /home/tom 
		cd ../../root    ../..回到了根目录,再/root
		
---------------------------------------------------------------------

基本语法:mkdir [选项] 要创建的目录路径
功能:创建目录
常用选项:
	-p:创建多级目录

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

---------------------------------------------------------------------

基本语法:rmdir [选项] 要删除的空目录路径
功能:删除一个空目录

案例:删除一个目录 /home/dog
	rmdir /home/dog

注意:
	rmdir 删除的是空目录,如果目录下有内容是无法删除的。
	如果需要删除非空目录,需要使用命令:rm -rf 要删除的目录
	比如: 删除animal目录
		rm -rf /home/animal
---------------------------------------------------------------------

基本语法:touch 文件名称
功能:创建空文件

案例::在/home 目录下,创建一个空文件 hello.txt
	touch /home/hello.txt
	或者当前目录是home:touch hello.text

---------------------------------------------------------------------

基本语法:cp [选项] 被拷贝的文件 拷贝到哪个地方
功能:拷贝文件到指定目录
常用选项:
	-r:递归复制整个文件夹

案例1:将 /home/hello.txt  拷贝到	/home/bbb  目录下
	若在根目录下操作:
	先创建 bbb目录
		mkdir /home/bbb
	然后复制
		cp /home/hello.txt /home/bbb
	
案例2:递归复制整个文件夹,比如将 /home/bbb 整个目录,拷贝到 /opt 
	cp -r /home/bbb /opt

注意:强制覆盖不提示的方法:\\cp	
	\\cp -r /home/bbb /opt

---------------------------------------------------------------------

基本语法:rm	[选项] 要删除的文件或目录
功能:移除文件或目录
常用选项:
	-r:递归删除整个文件夹
	-f:强制删除不提示

案例1:将 /home/hello.txt 删除 
	rm	/home/hello.txt
	
案例2:递归删除整个文件夹 /home/bbb ,并不提示
	rm -rf /home/bbb 
	
注意:强制删除不提示的方法:带上 -f 参数即可
---------------------------------------------------------------------

功能:移动文件与目录或重命名
基本语法:
	mv	原文件名 新文件名 	     (功能描述:重命名)
	mv  被移动的文件 移动到哪   (功能描述:移动文件)

案例 1: 将 /home/cat.txt 文件 重新命名为 pig.txt
	[root@hspEdu01 ~]# cd /home
	[root@hspEdu01 home]# touch cat.txt
	[root@hspEdu01 home]# ls
	cat.txt  jack  king  milan  zwj
	[root@hspEdu01 home]# mv cat.txt pig.txt
	[root@hspEdu01 home]# ls
	jack  king  milan  pig.txt  zwj

案例 2:将 /home/pig.txt	文件 移动到 /root 目录下
	[root@hspEdu01 home]# mv pig.txt /root
	[root@hspEdu01 home]# ls
	jack  king  milan  zwj
	[root@hspEdu01 home]# cd /root
	[root@hspEdu01 ~]# ls	
	Hello.java  pig.txt 

移动并重名:mv pig.txt /root/cow.txt

案例 3: 移动整个目录,比如将 /opt/bbb  移动到 /home 下
	 mv /opt/bbb /home/

---------------------------------------------------------------------
前面学过一个查看:vim
cat也可以查看,cat只能查看不能修改,cat更安全。

基本语法:cat	[选项] 要查看的文件
功能:查看文件内容
常用选项:
	-n:显示行号

案例1:查看 /etc/profile 文件内容,并显示行号。
	cat	-n /etc/profile 
注意:
	cat 只能浏览文件,而不能修改文件;为了浏览方便再加上管道命令 | more 
	管道命令:把前面的结果再交给下一个指令进行处理。
		语法:| 其他指令
		
	cat	-n /etc/profile | more 
		意思:先执行cat -n /etc/profile 然后,按回车键输出一行,按空格翻页等。

---------------------------------------------------------------------

基本语法:more 要查看的文件
功能:
more 指令是一个基于 VI 编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。
more 指令中内置了若干快捷键(交互的指令),详见操作说明:

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

有一个文件是100M,用vim查看会将其全部加载再显示出来,这样会很慢。
使用less,会先加载一部分显示出来,再根据指令显示剩下的,这样更快。

所以要查找一些大的文件,建议用less。

案例: 采用 less 查看一个大文件文件 /opt/杂文.txt
首先使用xftp将杂文.txt传输到opt下
然后输入指令:less /opt/杂文.txt  

下面操作中:
	想要找某个字或词
	输入:/要找的字或词    然后按n向下找  按N向上找
操作说明:

基本语法:echo [选项]	[输出内容]
功能:输出内容到控制台

案例: 使用 echo  指令输出环境变量
比如输出 $PATH $HOSTNAME
	输入:echo $HOSTNAME (环境变量一般加$)
	
案例: 使用 echo 指令输出 hello,world!
	输入:echo hello,world!
		 echo "hello,world!"  加不加引号都可以
---------------------------------------------------------------------

功能:head 用于显示文件的开头部分内容,默认情况下 head 指令显示文件的前 10 行内容。
基本语法:
	head  文件	    (功能描述:查看文件头 10 行内容)
	head -n 5 文件	(功能描述:查看文件头 5 行内容,5 可以是任意行数)

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

---------------------------------------------------------------------

功能:tail 用于输出文件中尾部的内容,默认情况下 tail 指令显示文件的前 10 行内容。
基本语法:
	tail 文件	    (功能描述:查看文件尾 10 行内容)
	tail -n 5 文件	(功能描述:查看文件尾 5 行内容,5 可以是任意行数)
	tail -f	文件	    (功能描述:实时追踪该文档的所有更新,只要该文件改动了什么内容就可实时看到)

---------------------------------------------------------------------

>指令和>>指令:
	> 输出重定向(覆盖)
    >> 追加
基本语法:
	ls -l >文件1	         (功能描述:将列表的内容写入文件1中(覆盖写))
	ls -al >>文件1        (功能描述:将列表的内容追加到文件1的末尾)
	cat 文件 1 > 文件 2	  (功能描述:将文件 1 的内容覆盖到文件 2)
	echo "内容">> 文件1     (将内容追加到文件1的末尾)

案例 1: 将 /home 目录下的文件列表 写入到 /home/info.txt 中,覆盖写入。
	ls -l /home > /home/info.txt	[如果 info.txt 没有,则会自动创建] 
	
案例 2: 将当前日历信息 追加到	/home/mycal 文件中
	cal >> /home/mycal

---------------------------------------------------------------------

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

案例1:在/home 目录下创建一个软连接 myroot,连接到 /root 目录
(这样 切换到myroot 其实就是切换到root)
	ln -s /root	/home/myroot
	
案例2: 删除软连接 myroot 
	rm	/home/myroot

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

---------------------------------------------------------------------

功能:查看已经执行过历史命令,也可以执行历史指令
基本语法:
	history (功能描述:查看已经执行过历史命令)
	可以看其他登录的用户做了什么操作。

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

9.5.关于时间日期的指令

date指令:
	1.显示当前日期
		基本语法:
			date	  (功能描述:显示当前时间)
			date +%Y  (功能描述:显示当前年份)
			date +%m  (功能描述:显示当前月份)
			date +%d  (功能描述:显示当前是哪一天)
			date "+%Y-%m-%d %H:%M:%S"(功能描述:显示年月日时分秒)

			Y year
			m month
			d day
			H hour
			M minute
			S second
		
		案例 1: 显示当前时间信息
		date
		案例 2: 显示当前时间年月日
		date "+%Y-%m-%d"
		案例 3: 显示当前时间年月日时分秒
		date "+%Y-%m-%d %H:%M:%S"

	2.设置日期
		基本语法:
			date -s	字符串时间
			
		案例 1: 设置系统当前时间
		date -s "2020-11-03 20:02:10"


cal指令:
	查看日历指令 cal
	
	基本语法:
	cal [选项]	(功能描述:不加选项,显示本月日历)
	
	案例 1: 显示当前日历 
	cal
	案例 2: 显示 2020 年日历 
	cal 2020

9.6.关于搜索查找有关的指令

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

[root@hspEdu01 opt]# find / -size +200M
/proc/kcore
find: ‘/proc/12775/task/12775/fd/5’: 没有那个文件或目录
find: ‘/proc/12775/task/12775/fdinfo/5’: 没有那个文件或目录
find: ‘/proc/12775/fd/6’: 没有那个文件或目录
find: ‘/proc/12775/fdinfo/6’: 没有那个文件或目录
/run/media/root/CentOS 7 x86_64/LiveOS/squashfs.img (这个文件大于200M)
[root@hspEdu01 opt]# cd /run/media/root/CentOS\\ 7\\ x86_64/LiveOS/
[root@hspEdu01 LiveOS]# ls
squashfs.img  TRANS.TBL
[root@hspEdu01 LiveOS]# ls -l
总用量 442741
-rw-r--r--. 1 root root 453365760 11月 26 2018 squashfs.img
-r--r--r--. 1 root root       224 11月 26 2018 TRANS.TBL
[root@hspEdu01 LiveOS]# ls -lh  (上面的总用量大小看不懂,加上h human 能看懂的内容)
总用量 433M
-rw-r--r--. 1 root root 433M 11月 26 2018 squashfs.img
-r--r--r--. 1 root root  224 11月 26 2018 TRANS.TBL




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

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

	案例 1: 请使用 locate 指令快速定位 hello.txt 文件所在目录
	updatedb
	locate hello.txt




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




grep 指令和 管道符号 |  
	grep指令往往和管道符号 | 结合使用
	grep:过滤查找
	管道符:“|”
	表示将前一个命令的处理结果输出传递给后面的命令处理。
	比如:先 cat a.txt,然后又想看a.txt文件中有没有hello这个词
	那么就 cat a.txt | grep "hello" --->先找到a.txt,然后再在a.txt中找hello

	基本语法:
	grep [选项] 查找内容 源文件
	
	常用选项:
		-n  显示匹配行及行号
		-i   忽略字母大小写

	案例 1: 请在 hello.txt 文件中,查找"yes"所在行,并且显示行号
		写法 1:  cat /home/hello.txt	| grep "yes"  引号写不写都行
				cat /home/hello.txt	| grep -n "yes"   显示行号    			
		写法 2:  grep -n "yes" /home/hello.txt

9.7.关于压缩和解压的指令

gzip/gunzip 指令
	gzip    用于压缩文件
	gunzip  用于解压的
    
    基本语法:
	gzip 文件	  (功能描述:压缩文件,只能将文件压缩为*.gz 文件)
	gunzip 文件.gz (功能描述:解压缩文件命令)
	

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




zip/unzip 指令
	zip 用于压缩文件
	unzip 用于解压的 
	(这个在项目打包发布中很有用的)
		
	基本语法:
	zip	[选项] XXX.zip 将要压缩的内容    (功能描述:压缩文件和目录的命令)
	unzip [选项] XXX.zip	              (功能描述:解压文件)
    
    zip 常用选项
		-r:递归压缩,即压缩目录
	
	unzip 的常用选项
		-d<目录> :指定解压后文件的存放目录


	案例 1:将 /home 下的所有文件/文件夹压缩成 myhome.zip
	zip -r myhome.zip /home/	[将 home 目录及其包含的文件和子文件夹都压缩] 
	
	案例 2:将 myhome.zip 解压到 /opt/tmp 目录下
	mkdir /opt/tmp
	unzip -d /opt/tmp /home/myhome.zip




tar 指令
	tar 指令是打包指令,最后打包后的文件是 .tar.gz 的文件。
	把一个或者多个文件(夹)用压缩软件进行压缩的过程,一般可称之为打包。
	
	tar指令可以压缩也可以解压。
	根据选项来 压缩还是解压。

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

案例 1:压缩多个文件,将 /home/pig.txt 和 /home/cat.txt 压缩成 pc.tar.gz 
tar -zcvf pc.tar.gz /home/pig.txt /home/cat.txt
	使用了选项:-z -c -v -f
	多个文件就 空格直接写在后面就好了

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

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

案例 4:将 myhome.tar.gz 解压到 /opt/tmp2 目录下	
(1)	mkdir /opt/tmp2 
(2) tar -zxvf /home/myhome.tar.gz -C /opt/tmp2
注意:-C 后写要解压到的位置

第十章:Linux 实操篇-组管理和权限管理

10.1. Linux 组基本介绍

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

1)	所有者
2)	所在组
3)	其它组
4)	改变用户所在的组

10.2.文件/目录的所有者

一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。
但是所有者也可以更改。

1.查看文件/目录的所有者(在/home下才能看到)
指令:ls –ahl
-ahl是三个选项
	-h human 让输出的结果方便人看(文件的大小容易看)

drwxr-xr-x.  6 root root   4.0K 2月  23 13:59 .
dr-xr-xr-x. 18 root root   4.0K 2月  20 16:45 ..
-rw-r--r--.  1 root root     24 2月  22 21:59 hello.txt
...
第三列就是文件的所有者



2.修改文件/目录所有者指令:chown 新所有者 文件名
案例:
	要求:使用 root 创建一个文件 apple.txt ,然后将其所有者修改成 tom
		  chown tom apple.txt

10.3.组的创建

基本指令:
	groupadd 组名

案例:
创建一个组 monster 
	groupadd monster

创建一个用户 fox ,并放入到	monster 组中
	useradd -g monster fox

10.4.文件/目录的所在组

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


查看文件/目录所在组
	指令:
	ls –ahl  或者ll

	ll并不是linux下一个基本的命令,它实际上是ls -l的一个别名。
	Ubuntu默认不支持命令ll,必须用 ls -l,这样使用起来不是很方便。
	
	案例:使用 fox 来创建一个文件,看看该文件属于哪个组?
	使用fox创建一个文件:
		su fox
		然后touch ok.txt
		然后ll
		
	-rw-r--r--. 1 fox monster 0 11 月 5 12:50 ok.txt
	第三列:文件的所有者(谁创建了这个文件,就是这个文件的所有者)
	第四列:文件的所在组(某个用户创建了一个文件,该文件所在组=该用户所在组)


	注意:/etc/group下存放着所有的组
	使用指令:cat /etc/group 可以查看所有的组
	
	比如查看有没有mojiao这个组
	可以使用管道命令和grep过滤
		cat /etc/group | grep mojiao
	当一个文件很大,想找某个关键词就可以这个过滤!




修改文件/目录所在的组
	指令:
	chgrp 组名 文件名
	
	案例:使用 root 用户创建文件 orange.txt ,看看当前这个文件属于哪个组,
		 然后将这个文件所在组,修改到 fruit 组。
	
		groupadd fruit
		touch orange.txt
		看看当前这个文件属于哪个组 -> root 组
		chgrp fruit orange.txt

10.5.其它组

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

10.6.改变用户所在的组

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

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

特别说明:用户需要有进入到新目录的权限。

如何查看用户所在的组?
	id 用户名  --->显示用户信息
	
案例:
将 zwj 这个用户从原

Linux 学习笔记网络配置进程管理rpm 包的管理和 yum 介绍

前言: 本文是听的b站韩顺平老师 Linux 课程的 63~85 集所做的笔记,大家可以配套该文章学习韩老师的 Linux 课程,也可以借助此文章来学习 Linux 的知识。可以收藏起来,以后要用时,随用随查。

文章目录

1. 网络配置

1.1 查看网络 IP 和网关(ifconfig)

  • 查看 Windows 环境中 VMnet8 网络配置

    ipconfig
    
  • 查看 Linux 中网络配置

    ifconfig
    
  • 测试主机之间网络连通性

    // 测试当前服务器是否可以连接目的主机
    ping 目的主机的ip地址
    

    示例:测试当前服务器是否可以连接到百度

    ping www.baidu.com
    

1.2 Linux 网络环境配置

  • 方式一:自动获取 IP

    • 说明:登陆后,通过界面来设置自动获取 IP
    • 特点:Linux 启动后会自动获取 IP
    • 缺点:每次自动获取的 IP 地址可能不一样
  • 方式二(推荐):指定 IP

    • 说明:直接修改配置文件来指定 IP,并可以连接到外网
    • 编辑:vim /etc/sysconfig/network-scripts/ifcfg-ens33
    • 要求:将 IP 地址配置为静态的(将 BOOTPROTO 的值改为 static,再设置指定 IP,保存,然后重启网络系统 service network restart

1.3 设置主机名和 hosts 映射

  • 查看当前主机名

    hostname
    
  • 修改主机名(修改文件在 /etc/hostname 中)

    // 1. 进入主机名修改文件
    vim etc/hostname
    
    // 2. 修改主机名,保存退出,并且重启系统
    
  • 设置 host 映射

    • 通过建立 host 映射,我们就可义直接通过 ping 主机名的方式来访问测试是否连接到要访问的主机
    • host 文件中设置的是要访问的 IP 和主机名,通过 ping 主机名,就可以在对应 host 文件中找到主机名,然后又可以找到对应的 IP
    • 在 Windows 中,进入 C:\\Windows\\System32\\drivers\\etc 文件中,再将 IP 和对应主机名名写成下面的形式即可,例如
    • 在 Linux 中,进入 /etc/hosts 文件中,进行编辑

1.4 主机名解析过程分析(Hosts、DNS)

  • Hosts

    Hosts 是一个文本文件,用来记录 IP 和 Hostname(主机名)的映射关系

  • DNS

    DNS 是 Domain Name System 的缩写,即域名系统,是互联网上作为域名和 IP 地址相互映射的一个分布式数据库

  • 实例解析:用户在浏览器输入了 www.baidu.com

    • 浏览器先检查浏览器缓存中有没有该域名解析 IP 地址,如果有,就先调用这个 IP 完成解析;如果没有,就检查 DNS 解析缓存,如果 DNS 解析缓存中有就直接返回 IP 完成解析(上述两个缓,都可以理解为本地解析器缓存)
    • 一般来说,当电脑第一次成功访问某一个网站后,在一定时间内,浏览器或操作系统会缓存它的 IP 地址(DNS 解析记录)
    • 如果本地解析器缓存没有找到对应映射,就会检查系统中 hosts 文件里有没有配置对应的域名 IP 映射,如果有,则完成解析
    • 如果本地解析器缓存中和 host 文件中均没有找到对应的 IP,则到域名服务器 DNS 进行解析域
    • 如果域名服务器 DNS(DNS其实有一组,它是递进的) 中也没有,那么就返回域名不存在
  • 在 cmd 窗口中可以输入下面指令来显示 DNS 域名解析缓存或手动清理 DNS 的缓存

    // 显示 DNS 域名解析缓存
    ipconfig /displaydns
    
    // 手动清理 DNS 缓存
    ipconfig /flushdns
    

2. 进程管理

2.1 介绍

  • 在 Linux 中,每个执行的程序都被称为一个进程,每一个进程都分配一个 ID 号(即 PID、进程号)
  • 程序没有执行时,是静态的,其实就是一份代码。当其被加载到内存中运行后, 是动态的,就是进程
  • 每个进程都可能以两种方式存在,前台与后台。
    • 前台进程:就是用户目前的屏幕上可以进行操作的
    • 后台进程:就是实际已经在操作,但是屏幕上无法看到的进程,通常使用后台方式执行
  • 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束

2.2 显示系统执行的进程(ps)

查看当前系统中,有哪些正在执行,以及它们执行的状况

ps [选项]

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

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

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

// 显示所有进程
ps -e

// 以全格式显示进程(可以显示父进程 PPIDps -f

// 选项可以组合使用,例如
ps -aux
ps -ef 

// 加上 grep 进行过滤
ps [选项] | grep xxx

补充: ps 显示信息说明

字段说明
PID进程识别号
TTY终端信息
TIME此进程所占用 CPU 时间
COMMAND正在执行的命令或进程
USER执行该进程的用户
%CPU占用 CPU 的百分比
%MEM占用物理内存的百分比
VSZ占用虚拟内存大小(单位:KB)
RSS占用物理内存大小(单位:KB)
STAY运行状态(S 表示睡眠、s 表示该进程是会话的先导进程、N 表示进程拥有比普通优先级更低的优先级、R 表示正在运行、D 表示短期等待、Z 表示僵死进程、T 表示被跟踪或者被停止)
START执行的开始使时间

2.3 终止进程(kill、killal)

若是某个进程执行一半需要停止时间,或是已消耗了很大的系统资源时,就可以考虑停止该进程

// 通过进程号杀死进程
kill [选项] 进程号

// 常用选项
-9 表示强迫进程立即停止

// 通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用
killal 进程名

补充:

通过 killall 杀死进程的话,所有子进程都会被干掉

2.4 查看进程树(pstree)

更加直观的查看进程信息

pstree [选项]

// 常用选项
-p 显示进程的 PID
-u 显示进程的所属用户

2.5 动态监控进程(top、netstat)

top 与 ps 命令相似,它们都用来显示正在执行的进程。top 与 ps 最大的不同之处是 top 在执行一段时间可以更新正在运行的进程

  • top 指令用法:

    top [选项]
    
    // 常用选项 
    // -d [秒数]   表示指定 top 命令每隔几秒更新,默认是3秒
    // -i       表示使 top 不显示任何闲置后者僵死进程
    // -p       表示通过指定监控进程 ID 来仅仅监控某个进程的状态 
    

    指令显示信息说明:

  • 交互操作说明:

    操作功能
    P以 CPU 使用率排序,默认就是此项
    M以内存的使用率排序
    N以 PID 排序
    q退出 top
  • 监视指定用户

    // 首先进入 top,输入 u,再回车,再输入用户名即可
    
  • 终止指定的进程

    // 首先进入 top,输入 k,再回车,再输入要结束的进程 ID 号
    
  • 查看系统网络情况

    netstat [选项]
    
    // 常用选项
    // -an 表示按一定顺序排序输出
    // -p 表示显示哪个进程在调用
    
  • 检测主机连接命令

    ping 对方ip地址
    

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

3. 服务管理

3.1 介绍

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

3.2 service 管理指令

  • service 指令

    service 服务名 [start | stop | restart | reload | status]
    
    // start 开启服务
    // stop 关闭服务
    // restart 重启服务
    // reload 重装服务
    // status 查看状态
    
  • 在 CentOS7.0 后很多服务不再使用 service 指令去管理了,而是使用 systemctl 指令

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

  • 查看系统中所有服务指令

    setup
    
    // 带✳的表示自动启动
    // 可以通过把光标放在✳上,按住空格键,来取消✳ 
    

3.3 服务的运行级别

Linux 系统有7种运行级别(runlevel),常用的是级别3和5

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

开机流程说明:

  • 查看当前运行级别

    systemctl get-default
    
  • 更改运行级别

    systemctl set-default 要更改的运行级别
    
  • 注意:在 CentOS7 后运行级别在 /etc/initab 文件种进行了简化

    • multi-user.target 表示运行级别3
    • graphical.target 表示运行级别5

3.4 chkconfig 指令

  • 通过 chkconfig 命令可以给服务器在各个不同运行级别时设置自动启动或关闭

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

  • chkconfig 基本语法

    // 查看 chikconfig 管理的服务
    chkconfig
    
    // 查看具体的某个服务
    chkconfig 服务名
    
    // 设置某个服务的自启动或关闭
    chkconfig --level 运行级别 服务名 on/off
    

3.5 systemctl 指令

  • systemctl 管理指令

    systemctl [start | stop | restart | status] 服务名
    // start 开启服务
    // stop 关闭服务
    // restart 重启服务
    // status 查看状态
    

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

  • systemctl 设置服务的自动启动状态

    // 查看各个服务器开机启动状态,可以使用 grep 过滤
    systemctl list-unit-files [ | grep 服务名]
    
    // 设置服务开机启动
    systemctl enable 服务名
    
    // 关闭服务开机启动
    systemctl disable 服务名
    
    // 查询某个服务是否是自动启动的
    systemctl is-enabled 服务名
    

3.6 打开或者关闭指定端口(firewall)

在真正的生产环境中,往往需要将防火墙打开,但是如果打开防火墙,那么外部请求数据包就不能跟服务器监听端口通讯。这时,需要打开指定的端口,例如:80、22、8080

  • 打开端口

    firewall-cmd --permanent --add-port=端口号/协议
    
  • 关闭端口

    firewall-cmd --permanent --remove-port=端口号/协议
    
  • 重新载入,才能生效

    firewall-cmd --reload
    

    打开或者关闭端口之后,要重新载入才能生效

  • 查询端口是否开放

    firewall-cmd --query-port=端口/协议
    

开或者关闭指定端口(firewall)

在真正的生产环境中,往往需要将防火墙打开,但是如果打开防火墙,那么外部请求数据包就不能跟服务器监听端口通讯。这时,需要打开指定的端口,例如:80、22、8080

  • 打开端口

    firewall-cmd --permanent --add-port=端口号/协议
    
  • 关闭端口

    firewall-cmd --permanent --remove-port=端口号/协议
    
  • 重新载入,才能生效

    firewall-cmd --reload
    

    打开或者关闭端口之后,要重新载入才能生效

  • 查询端口是否开放

    firewall-cmd --query-port=端口/协议
    

4. rpm 包的管理

4.1 介绍

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

4.2 rpm 包的简单查询

  • 查询已安装的所有 rpm 软件包,或查询是否安装了某个具体的软件包

    rpm -qa | grep xxx
    

    返回结果是包名,例如:firefox-60.2.2-1.el7.centos.x86_64,其中

    • firefox 是名称
    • 60.2.2-1 是版本号
    • el7.centos.x86_64 是适用操作系统
  • 查询软件包是否安装

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

    rpm -qi 软件包名
    
  • 查询软件包中的文件

    rpm -ql 软件包名
    
  • 查询文件所属的软件包

    rpm -qf 文件全路径名
    

4.3 卸载 rpm 包

卸载 rpm 包

rpm -e RPM包的名称

注意:

  • 当删除某个软件包时,可能会报 xxx is needed by sss 的信息,因为你要删除的软件包 xxx 被 sss 引用了。
  • 强制删除,可以增加参数 --nodeps,但是不推荐使用,可能导致依赖该软件包的程序无法运行

4.4 安装 rpm 包

安装 rpm 包

rpm -ivh RPM包全路径名称

参数说明:

  • i 表示 install 安装
  • v 表示 verbose 提示
  • h 表示 hash 进度条

5. yum

5.1 介绍

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

5.2 基本指令

  • 查询 yum 服务器是否有需要安装的软件

    yum list | grep 软件名
    
  • 安装指定的 yum 包

    yum install 包名
    

以上是关于Linux学习笔记-B站韩顺平的主要内容,如果未能解决你的问题,请参考以下文章

Linux 学习笔记网络配置进程管理rpm 包的管理和 yum 介绍

Linux 初学篇定时任务调度和Linux 磁盘分区挂载

Linux 初学篇运行级别找回 root 密码帮助指令文件目录指令

Java线程基础学习笔记(正在更新)

Linux 初学篇时间日期和查找指令压缩和解压组的介绍权限管理

Linux | Linux常用指令学习笔记 #yyds干货盘点#