image.png
image.png

Linux的应用领域

  • linux下开发/部署项目 (javaEE,大数据,py…)
  • linux运维工程师(规划、优化、监控、故障处理、数据备份、日志分析、恢复服务器)
  • linux嵌入式工程师(c/++)
  • 个人桌面领域的应用

此领域是传统linux应用薄弱的环节,近些年来随着ubuntu、fedora [fr’d:re]等优秀桌面环境的兴起linux在个人桌面领域的占有率在逐渐的提高。

  • 服务器领域

linux在服务器领域的应用是最强的。
linux免费、稳定、高效等特点在这里得到了很好的体现,尤其在一些高端领域尤为广泛。

  • 嵌入式领域

linux运行稳定、对网络的良好支持性、低成本,且可以根据需要进行软件裁剪,内核最小可以达到几百KB等特点,使其近些年来在嵌入式领域的应用得到非常大的提高

主要应用:机顶盒、数字电视、网络电话、程控交换机、手机、PDA、智能家居、智能硬件等都是其应用领域。以后在物联网中应用会更加广泛。

Linux概述

概述

  1. linux怎么读,不下10种
  2. Tinux是一个开源、免费的操作系统,其稳定性、安全性、处理多并发已经得到业界的认可,目前很多企业级的项目(c/C++/php/python/java/go)都会部署到Linux/unix系统上。
  3. 常见的操作系统(windows、ios、Android、MacOS,Linux, Unix)
  4. Linux吉祥物 -> 企鹅Tux
  5. Linux之父 —- Linus Torvalds —- git创作者
  6. Linux主要的发行版:

Ubuntu(乌班图)、RedHat(红帽)、CentOS、Debain(蝶变)、Fedora、SUSE、OpenSUSE
linux(内核) —-> 发行版

Linux和Unix的关系

Linux和UNIX的关系及区别(详解版)

虚拟机安装与使用

安装vm和Centos

  • 基本说明

学习Linux需要一个环境,我们需要创建一个虚拟机,然后在虚拟机上安装一个Centos系统来学习。

  1. 先安装virtual machine 15.5
  2. 再安装Linux (CentOS 7.6/centOS8.1)
  3. 原理示意图[画]

image.png

vmware15.5下载

官方地址:https://www.vmware.com/cn.html
https://docs.vmware.com/cn/VMware-Workstation-Pro/16.0/com.vmware.ws.using.doc/GUID-A471ADE7-3F03-462A-BA6D-F7BE3C9204EC.html
其它地址: https://www.nocmd.com/windows/740.html

VM安装的步骤

[VM 安装教程]

  1. 去BIOS里修改设置开启虚拟化设置设备支持(f2,f10)
  2. 安装虚拟机软件(vm15.5)

    在BIOS开启CPU虚拟化支持https://jingyan.baidu.com/article/ab0b56305f2882c15afa7dda.htm 再安装

Centos下载

CentOS-7-x86_64-DVD-1810.iso CentOS 7.6 DVD 版4G(目前主流的生产环境)
http://mirrors.163.com/centos |CentOS-7-x86_64-DVD-1810.iso
CentOS-8.1.1911-x86_64-dvd1.iso CentOS 8.1 DVD版8G(未来的主流.)
https://mirrors.aliyun.com/centos/8.1.1911/isos/x86_64/

CentOS安装

[CentOS 安装教程]

  1. 创建虚拟机
  2. 开始安装系统(CentOS7.6)的步骤
  3. 网络连接方式

image.png

网络连接的三种方式

image.png

虚拟机使用

虚拟机克隆

方式1,直接拷贝一份安装好的虚拟机文件
使用VM打开相对应文件。

方式2,使用vmware的克隆操作,注意,克隆时,需要先关闭linux系统
image.png

虚拟机快照

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

快照管理器:
回到快照A
image.png

虚拟机迁移和删除

虚拟系统的本质就是文件(放在文件夹的)。因此虚拟系统的迁移很方便,你可以把安装好的虚拟系统这个文件夹整体拷贝或者剪切到另外位置使用。删除也很简单,用vmware进行移除,再点击菜单->从磁盘删除即可,或者直接手动删除虚拟系统对应的文件夹即可。

vmtools

介绍

  1. vmtools安装后,可以让我们在windows下更好的管理vm虚拟机
  2. 可以设置windows和centos的共享文件夹

安装步骤

  1. 进入centos
  2. 点击vm菜单的->install vmware tools

image.png

  1. centos会出现一个vm的安装包,xx.tar.gz

image.png

  1. 拷贝到/opt

image.png

  1. 使用解压命令tar,得到一个安装文件

cd /opt [进入到 opt目录]
ls
tar -zxvf 文件名

  1. 进入该vm解压的目录,/opt目录下

cd vmware…

  1. 安装./vmware-install.pl
  2. 全部使用默认设置即可,就可以安装成功
  3. 注意:安装vmtools需要有gcc.

查看gcc版本信息 gcc -v

设置共享文件夹

创建共享文件夹,且共享

  • 打开设置配置

image.png
image.png
image.png

  • 共享文件夹在 centos 的 /mnt/hgfs/ 下

注意事项

  • windows和contos就可以共享文件了,但是在实际开发中,文件的上传下载是需要使用远程方式完成的
  • 远程方式登录,我们后面会具体讲解

Linux目录结构

基本介绍

  • linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录。
  • 深刻理解linux树状文件目录是非常重要的。
  • 记住一句经典的话:在Linux世界里,一切皆文件。(硬件、硬盘、网络…..映射成文件处理)

具体的目录结构

  • /bin[常用]usr/bin 、 /usr/local/bin)

是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:/myshare

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

  • /usr/local[常用]

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

  • /var[常用]

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

  • /selinux [security-enhanced linux]

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

Linux实用

远程登录到Linux服务器

说明:公司开发时候,具体的应用场景是这样的

  1. linux服务器是开发小组共享
  2. 正式上线的项目是运行在公网
  3. 因此程序员需要远程登录到Linux进行项目管理或者开发
  4. 远程登录客户端有Xshell6,Xftp6,我们学习使用Xshell和Xftp6,其它的远程工具大同小异

Xshell使用

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

下载

https://www.xshell.com/zh/free-for-home-school/
不商用 免费

连接到linux服务器

在虚拟机中使用 ifconfig指令,查看ip地址
image.png

在Xshell中连接到linux服务器
image.png

选择是否记住密码
image.png

登录用户名
image.png

输入密码
image.png

Xftp使用

介绍

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

下载

与 Xshell可以一同下载。

连接到linux服务器

在Xftp中连接到linux服务器
image.png
连接
image.png

登录用户名
image.png

登录密码
image.png

修改编码
image.png

可以上传和下载
image.png

传输文件(右键传输或者直接拖拽)
image.png

Vi 和 Vim编辑器

vi 和 vim 介绍

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

vi 和 vim常用的三种模式

  • 正常模式

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

  • 插入模式

按下i,I,o,O,a,A,r,R等任何一个字母之后才会进入编辑模式,一般来说按i即可.
先按 esc 再输入: 即可进入命令行模式

  • 命令行模式

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

快速入门

使用vim编辑文本
image.png

按i键编辑
image.png

esc,:wq保存文件
image.png

vi 和vim各个模式的切换图

image.png

vi 和vim部分快捷键

  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行 20 shift+g
  8. 更多的看整理的文档

快捷键图..
image.png

关机重启

基本命令

shutdown -h now 立该进行关机
shudown-h 1 “hello, 1分钟后会关机了” (shudown)
shutdown -r now 现在重新启动计算机
halt 关机,作用和上面一样.
reboot 现在重新启动计算机
sync 把内存的数据同步到磁盘。

在Xshell中输入,su,在reboot即可重启 (root用户)

注意事项

  1. 不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中
  2. 目前的shutdown/reboot/halt等命令均已经在关机前进行了sync。

登陆注销

基本介绍

  1. 登录时尽量少用root帐号登录,因为它是系统管理员,最大的权限,避免操作失误。可以利用普通用户登录,登录后再用”su - 用户名”命令来切换成系统管理员身份。
  2. 在提示符下输入 logout 即可注销用户
  3. 如 现登陆wexiao -> su - root -> root用户-> logout -> wexiao用户 ->logout -> 退出

使用细节

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

image.png

在图形界面中,logout无法使用,若使用exit也只是退出当前终端。

  1. 运行级别这个概念,后面介绍

用户管理

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

添加用户

  • 基本语法

useradd 用户名

  • 案例

添加一个用户 xiang,默认该用户的家目录在 /home/xiang
image.png

  • 细节说明
  1. 当创建用户成功后,会自动的创建和用户同名的家目录
  2. 也可以通过useradd -d 指定目录 新的用户名,给新创建的用户指定家目录

    例如:useradd -d /home/test TEST

指定/修改密码

  • 基本语法

passwd 用户名

  • 案例

给 xiang 指定密码
image.png

这里的密码是无效的但也是可行的,在确认密码后即可使用。 pwd 显示当前用户所在的目录 [xiang@wexiao01 ~]$ pwd /home/xiang

删除用户

  • 基本语法

userdel 用户名

  • 案例
  1. 删除用户xiang,但是要保留家目录 userdel 用户名

image.png

如果,刚从xiang用户切换到root目录然后将xiang用户删除,会出错,所以重新登陆。

将xiang用户删除,但是保留了家目录
image.png

此时,使用xiang用户登陆,显示:
image.png

  1. 删除用户以及用户家目录

userdel -r 用户名

  • 细节讨论

是否保留家目录的讨论?一般情况下,我们建议保留

查询用户信息

  • 基本语法

id 用户名

  • 案例

查询root,wexiao用户信息。
image.png

  • 细节说明

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

切换用户

  • 介绍

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

  • 基本语法

su - 用户名

  • 案例

image.png

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

查看当前用户/登陆用户

  • 语法

whoami
who am i

  • 案例

image.png

显示最先登陆的那个用户。

用户组

  • 介绍

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

  • 新增组

指令:groupadd 组名
案例
image.png

  • 删除组

指令:groupdel 组名
案例
image.png

  • 增加用户时直接加上组

指令:useradd -g 用户组 用户名
案例
image.png

  • 修改用户的组

指令:usermod -g 用户组 用户名
案例
image.png

用户和组相关文件

  • /etc/passwd 文件

用户(user)的配置文件,记录用户的各种信息
每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
image.png
cat /etc/passwd
image.png

  • etc/shadow 文件

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

当前Aman用户未设置密码

  • etc/group 文件

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

实用指令

指定运行级别

  • 运行级别说明

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

  • 案例

由图形界面到 运行级别3
在终端输入 init 3
image.png
也可以再切回到图形界面。

  • CentOS7后运行级别说明

在/etc/inittab文件中.
进行了简化,如下:
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

由graphical.target -> multi-user.target
image.png

找回root密码 CentOS7.6

  1. 首先,启动系统,进入开机界面,在界面中按“e”进入编辑界面。如图

image.png

  1. 进入编辑界面,使用键盘上的上下键把光标往下移动,找到以““Linux16”开头内容所在的行数”,在行的最后面输入:init=/bin/sh。如图

image.png

  1. 接着,输入完成后,直接按快捷键:Ctrl+x 进入单用户模式。
  2. 接着,在光标闪烁的位置中输入:mount -o remount,rw /(注意:各个单词间有空格),完成后按键盘的回车键(Enter)。如图

image.png

  1. 在新的一行最后面输入:passwd,完成后按键盘的回车键(Enter)。输入密码,然后再次确认密码即可(提示: 密码长度最好8位以上,但不是必须的), 密码修改成功后,会显示passwd…..的样式,说明密码修改成功

image.png

  1. 接着,在鼠标闪烁的位置中(最后一行中)输入:touch /.autorelabel(注意:touch与 /后面有一个空格),完成后按键盘的回车键(Enter)
  2. 继续在光标闪烁的位置中,输入:exec /sbin/init(注意:exec与 /后面有一个空格),完成后按键盘的回车键(Enter),等待系统自动修改密码(提示:这个过程时间可能有点长,耐心等待),完成后,系统会自动重启, 新的密码生效

image.png

帮助指令

  • man 获取帮助信息

➢基本语法 :man 命令或配置文件

➢案例:查看ls命令的帮助信息
选项可以组合使用 ls -la 或 ls -al /root
man ls
image.png
image.png

…… linux隐藏文件是以 .开头

显示隐藏文件
ls -a
image.png

单列输出
ls -l
image.png

单列输出隐藏文件
ls -la(-al)
image.png

输出指定目录文件
image.png

  • help 指令

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

➢案例
help cd
image.png

文件目录类

  • pwd指令

基本语法: pwd (功能:显示当前工作目录的绝对路径)
案例
image.png

  • ls指令

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

  • cd指令

基本语法:cd[参数] (功能描述:切换到指定目录)
理解:绝对路径和相对路径

cd ~ 或者 cd : 回到自己的家目录,比如你是root,cd ~-> /root
image.png

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

cd案例
image.png

  • mkdir指令

mkdir指令用于创建目录
基本语法:mkdir [选项] 要创建的目录
常用选项
-p :创建多级目录

案例
创建一个目录
创建多级目录
image.png

  • rmdir指令

rmdir指令删除空目录

基本语法
rmdir [选项] 要删除的空目录
image.png

使用细节
rmdir 删除的是空目录,如果目录下有内容时无法删除的。
提示:如果需要删除非空目录,需要使用rm -rf 要删除的目录

  • touch指令

touch指令创建空文件

基本语法
touch 文件名称

➢案例
image.png

  • cp指令

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

➢基本语法
cp [选项] source dest

➢常用选项
-r:递归复制整个文件夹

➢案例
创建copytest文件,将hello.txt复制进去
image.png
image.png

递归复制整个文件夹
image.png

➢使用细节
\cp -r /home/bbb/ /opt/
强制覆盖不提示。

  • rm指令

➢说明
rm指令移除文件或目录

➢基本语法
rm [选项] 要删除的文件或目录

➢常用选项
-r:递归删除整个文件夹
-f:强制删除不提示

➢案例
rm -rf /home/test [删除整个文件夹不提示]
image.png

  • mv指令

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

➢基本语法
mv oldNameFile newNameFile (功能描述:重命名[同目录])
mv /temp/movefile /targetFolder (功能描述:移动文件)

➢案例
image.png

  • cat指令

cat 查看文件内容

➢基本语法
cat [选项] 要查看的文件

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

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

  • more指令

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

➢基本语法
more 要查看的文件

➢操作说明
image.png

ctrl+c 退出

  • less指令

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

➢基本语法
less 要查看的文件

➢操作说明
image.png

  • echo指令

echo输出内容到控制台

➢基本语法
echo [选项] [输出内容]

➢案例
使用echo指令输出环境变量
echo $HOSTNAME
image.png

输出 hello,world
image.png

  • head指令

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

➢基本语法
head 文件 (查看文件头10行内容)
head -n 5 文件 (查看文件头5行内容,5可以是任意数)

  • tail指令

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

➢基本语法
tail 文件 (功能描述:查看文件尾10行内容)
tail -n 5 文件 (功能描述:查看文件尾5行内容,5可以是任意行数)
tail -f 文件 (功能描述:实时追踪该文档的所有更新)

  • >指令 和 >>指令

输出重定向和>>追加。

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

image.png

  • ln指令

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

➢基本语法
In -s [原文件或目录] [软链接名] (功能描述:给原文件创建一个软链接)

不加-s参数就是硬链接,与原文件有相同的uid

➢案例
在/home目录下创建一个软连接myroot,连接到/root目录
ln -s /root /home/myroot
image.png

删除软连接
image.png

  • history指令

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

➢基本语法
history (查看已经执行过的历史指令)
history 10 (显示最近使用过的10个指令)
!5 (执行编号为5的指令)

日期时间类

  • date指令-显示当前日期

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

date -s 字符串时间 (设置时间)

➢案例
查看当前时间,年月日
image.png

设置日期
date -s “2020-11-03 20:02:10”

  • cal指令

查看日历指令

➢基本语法
cal [选项] (不加选项,显示本月)
cal 2020 (查看2020年的日历)

搜索查找类

  • find指令

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

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

➢选项说明
image.png

➢案例
按文件名查询
find /home -name hello.txt
image.png

按用户
find /home -user wexiao
image.png

按文件大小(+n大于 -n小于 n等于 , 单位k,m,g)
find / -size +200M
image.png

  • locate指令

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

➢基本语法
locate 搜索文件

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

➢案例
image.png

find是从磁盘中找,而locate是先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件,再从数据库中查找

  • grep指令和 管道符号 |

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

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

➢常用选项
image.png

➢案例
查找“yes”所在行,并且显示行号
image.png
cat grep -n “yes” /home/hello.txt
cat /home/hello.txt | grep -n “yes”

压缩和解压类

  • gzip/gunzip 指令

gzip用于压缩文件,gunzip用于解压

➢基本语法
gzip 文件 (压缩文件,只能将文件压缩为*.gz文件)
gunzip 文件.gz (解压缩文件命令)

➢案例
压缩
image.png

解压
image.png

  • zip/unzip 指令

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

➢基本语法
zip [选项] XXX.zip 将要压缩的内容 (功能描述:压缩文件和目录的命令)
unzip [选项] XXX.zip (功能描述:解压缩文件)

➢zip常用选项
-r:递归压缩,即压缩目录

➢unzip常用选项
-d<自录>:指定解压后文件的存放目录

➢案例
image.png

  • tar 指令

tar 指令是打包指令,最后打包后的文件是.tar.gz的文件。

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

➢选项说明
image.png

➢案例
压缩过个文件,将/home/pig.txt 和 /home/cat.txt 压缩成 pc.tar.gz
tar -zcvf pc.tar.gz /home/pig.txt /home/cat.txt
image.png

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

image.png

菜鸟教程:-C<目的目录>或—directory=<目的目录> 切换到指定的目录。

Linux组管理和权限管理

组的基本介绍

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

  1. 所有者
  2. 所在组
  3. 其他组
  4. 改变用户所在的组

image.png

文件/目录的所有者

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

  • 查看文件的所有者

➢指令
ls -ahl

➢案例
image.png

  • 修改文件所有者

➢指令
chown 用户名 文件名
chown -R 用户名 目录

-R 如果是目录 则使其下所有指纹机或目录递归生效
chown -R 用户名:组名 目录

➢案例
image.png

组的创建

➢指令
groupadd 组名

➢案例
创建一个组
groupadd monster
创建一个用户fox,并放入组里
useradd -g monster fox

文件/目录所在组

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

  • 查看文件/目录所在组

➢指令
ls -ahl

➢案例
image.png

  • 修改文件/目录所在的组

➢指令
charp 组名 文件名
charp -R 组名 目录
➢案例
image.png

其他组

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

改变用户所在组

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

  • 改变用户所在组

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

权限管理

权限的基本介绍

ls -l 中显示的内容如下
image.png
image.png

lrwxrwxrwx
rwx:读、写、执行
0-9位说明

  1. 第0位确定文件类型(d,-,l,c, b)

I是链接,相当于windows的快捷方式
d是目录,相当于windows的文件夹
c是字符设备文件,鼠标,键盘
b是块设备,比如硬盘

  1. 第1-3位确定所有者(该文件的所有者)拥有该文件的权限。—-User
  2. 第4-6位确定所属组(同用户组的)拥有该文件的权限,—-Group
  3. 第7-9位确定其他用户拥有该文件的权限—-Other

rwx权限详解

  • rwx作用到文件
  1. [r]代表可读(read):可以读取,查看
  2. [w]代表可写(write):可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该所在的目录有写权限,才能删除该文件。
  3. [×]代表可执行(execute):可以被执行
  • rwx作用到目录
  1. [r]代表可读(read):可以读取,ls查看目录内容
  2. [w]代表可写(write):可以修改,对目录内创建+删除+重命名目录
  3. 代表可执行(execute):可以进入该目录 (cd)

rwx权限说明案例

image.png

image.png

修改权限 -chmod

  • 基本说明

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

  • 第一种方式:+、-、= 变更权限

u:所有者 g:所有组 o:其他人 a:所有人(u、g、o的总和)
➢chmod u=rwx,g=rx,o=x 文件/目录名
➢chmod o+w 文件/目录名
➢chmod a-x 文件/目录名

➢案例
image.png

  • 第二种方式:通过数字变更权限 (8421恒权码)

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

Linux定时任务调度

crond 任务调度

概述

任务调度: 是指系统在某个时间执行的特定的命令或程序。
任务调度分类: 1.系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等
个别用户工作: 个别用户可能希望执行某些程序,比如对mysql数据库的备份。
image.png

基本语法

crontab [选项]

常用选项

image.png
service crond restart [重启任务调度]

快速入门

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

参数细节说明

➢5个占位符的说明
image.png

➢特殊符号的说明
image.png

➢特殊事件执行案例
image.png

应用案例

➢每隔一分钟
使用shell脚本,将当前日期和日历都追加到/home/mycal 中
vim my.sh
image.png
给予执行权限:chmod u+x my.sh
执行:./my.sh ,可被执行
动态执行:crontab -e
image.png

at定时任务

基本介绍

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

    ps -ef 当前进程 ps -ef | grep atd

image.png
image.png

at命令格式

at [选项] [时间]
Ctrl + D 结束at命令的输入

at命令选项

image.png

at时间定义

➢ at指定时间的方法

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

案例

➢两天后的下午五点执行 /bin/ls /home
➢atq命令查看系统中没有执行的工作任务
image.png

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

➢删除已经设置的任务
image.png

Linux磁盘分区、挂载

Linux分区

原理介绍

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

image.png
image.png

硬盘说明

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

查看所有设备挂载情况

➢命令
lsblk 或者 lsblk -f
image.png
image.png

挂载的经典案例

说明

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

如何增加一块硬盘

  1. 虚拟机添加硬盘
  2. 分区
  3. 格式化
  4. 挂载
  5. 设置可以自动挂载

虚拟机增加硬盘步骤

  1. 在【虚拟机】菜单中,选择【设置】,然后设备列表里添加硬盘,然后一路【下一步】,中间只有选择磁盘大小的地方需要修改,至到完成。然后重启系统(才能识别)!

image.png
image.png

  1. 分区命令 fdisk /dev/sdb

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

  1. 格式化磁盘

image.png
分区命令: mkfs -t ext4 /dev/sdb1

ext4 是 分区类型

image.png

  1. 挂载

挂载:将一个分区和一个目录连接起来
mount 设备名称 挂载目录
例如: mount /dev/sdb1 /newdisk
image.png

注意:用命令行挂载重启后会失效

取消挂载: mount 设备名称 或者 挂载目录
例如: umount /dev/sdb1 或者 umount /newdisk

  1. 永久挂载

永久挂载 : 通过修改/etc/fstab 实现挂载
image.png

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

磁盘的情况查询

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

➢基本语法
df -h

➢案例
image.png

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

➢基本语法
du -h /目录 查询指定目录的磁盘占用情况,默认为当前目录
-s 指定目录占用大小汇总
-h 带计量单位
-a 含文件
—max-depth=1 子目录深度
-c 列出明细的同时,增加汇总值

➢案例
查询/opt目录的磁盘占用情况,深度为1
image.png

磁盘情况 - 工作使用指令

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

ls -l /home | grep “^-“ | wc -l
image.png

  1. 统计/home文件夹下目录的个数

ls -l /home | grep “d-“ | wc -l

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

image.png

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

ls -lR /home | grep “d-“ | wc -l

  1. 以树状显示目录结构

使用时,发现
image.png
说明没有tree这个指令服务,需要安装。使用yum install tree 安装
image.png

Linux网络配置

Linux网络配置原理图

image.png

查看网络IP和网关

查看虚拟网络编辑器和修改IP地址

image.png

查看网关

image.png

查看windows环境的中 VMnet8网络配置(ipconfig 指令)

image.png
image.png

查看linux的网络配置ifconfig

image.png

ping测试主机之间网络连通性

基本语法

ping 目的主机(功能描述:测试当前服务器是否可以连接目的主机)

案例

image.png

Linux网络环境配置

自动获取

说明:登陆后,通过界面的来设置自动获取ip,特点: linux启动后会自动获取IP)缺点是每次自动获取的 ip地址可能不一样。
image.png

指定ip

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

➢编辑 vi /etc/sysconfig/network-scripts/ifcfg-ens33
要求 : 将ip地址配置的静态的,比如: ip地址为192.168.200.130

ifcfg-ens33 文件说明
DEVICE=eth0 #接口名(设备,网卡)
HWADDR=00:0C:2x:6x:0x:xx #MAC地址
TYPE-Ethernet #网络类型(通常是 Ethemet)
UUID=926a57ba-92c6-4231-bacb-f27e5e6a9f44 #随机id
#系统启动的时候网络接口是否有效(yes/no)
ONBOOT=yes
#IP的配置方法[none|static|bootp|dhcp] (引导时不使用协议|静态分配IP|BOOTP协议|DHCP协议)
BOOTPROTO=static
#IP地址
IPADDR=192.168.200.130
#网关
GATEWAY=192.168.200.2
#域名解析器
DNS1=192.168.200.2

image.png
image.png

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

设置主机名和hosts映射

设置主机名

  1. 为了方便记忆,可以给linux系统设置主机名,也可以根据需要修改主机名
  2. 指令hostname :查看主机名
  3. 修改文件在/etc/hostname 指定
  4. 修改后,重启生效

image.png

设置hosts映射

➢思考
如何通过主机名能够找到(比如ping)某个linux系统?

➢windows
在C\Windows\System32\drivers\etc\hosts文件指定即可
案例:192.168.200.130 wexiao01

(域名劫持)

➢linux
在/etc/hosts文件 指定
案例:192.168.200.1 ThinkPad-PC

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

Hosts是什么

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

DNS

  1. DNS,就是Domain Name System的缩写,翻译过来就是域名系统
  2. 是互联网上作为域名和IP地址相互映射的一个分布式数据库

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

  1. 浏览器先检查浏览器缓存中有没有该域名解析IP地址,有就先调用这个IP完成解析;如果没有,就检查DNS解析器缓存,如果有直接返回IP完成解析。这两个缓存,可以理解为 本地解析器缓存。
  2. 一般来说,当电脑第一次成功访问某一网站后,在一定时间内,浏览器或操作系统会缓存他的IP地址(DNS解析记录) .如在cmd窗口中输入

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

  1. 如果本地解析器缓存没有找到对应映射,检查系统中 hosts文件中有没有配置对应的域名IP映射,如果有,则完成解析并返回。
  2. 如果 本地DNS解析器缓存和 hosts文件中均没有找到对应的IP,则到域名服务DNS进行解析域
  3. 示意图

image.png

(域名劫持),修改hosts文件

Linux进程管理

基本介绍

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

image.png

显示系统执行的进程

基本介绍

ps命令是用来查看目前系统中,有哪些正在执行,以及它们执行的状况。可以不加任何参数.
image.png

ps详解

指令:
ps -aux | grep xxx ,,比如我看看有没有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:启动进程所用的命令和参数,如果过长会被截断显示

➢案例
image.png

终止进程kill和killall

介绍

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

基本语法

kill [选项] 进程号 (功能描述:通过进程号杀死/终止进程)
killall 进程名称 〈功能描述:通过进程名称杀死进程及其子进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)

常用选项

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

案例

➢踢掉用户
image.png

➢终止远程登录服务sshd,在适当时候再次重启sshd服务
image.png
重启:/bin/systemctl start sshd.service

➢强制关闭
image.png

查看进程树pstree

基本语法

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

常用选项

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

服务(service)管理

介绍

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

service管理指令

  1. service 服务名[start | stop | restart | reload | status]
  2. 在CentOS7.0后,很多服务不再使用service ,而是 systemctl(后面介绍)
  3. service指令管理的服务在 letc /init.d查看

image.png

service管理指令案例

请使用service指令,查看,关闭,启动network[注意:在虚拟系统演示,因为网络连接会关闭]image.png

查看服务名

➢方式1
使用setup -> 系统服务,就可以看到全部
image.png

*自启

➢方式2
ls -l /etc/init.d

服务的运行级别(runlevel)

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

➢开机的流程说明
image.png

CentOS7后运行级别说明

/etc/inittab
image.png

chkconfig指令

➢介绍
通过chkconfig命令可以给服务的各个运行级别设置自启动/关闭
chkconfig 指令管理的服务在/etc/init.d查看
注意:Centos7.0后,很多服务使用systemctl 管理(后面马上讲)
image.png

➢chkconfig基本语法

  1. 查看服务 chkconfig —list [| grep xxx]
  2. chkconfig 服务名 —list
  3. chkconfig —level 5 服务名 on/off

➢使用细节
chkconfig重新设置服务后自启动或关闭,需要重启机器reboot生效.

systemctl指令

➢基本语法
systemctl [start | stop | restart | status] 服务名
systemctl 指令管理的服务在 /usr/lib/systemd/system查看

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

➢案例
查看当前防火墙的状况,关闭防火墙和重启防火墙。→ firewalld.service
systemctl status firewalld; systemctl stop firewalld; systemctl start firewalld.

yum install firewalld,安装防火墙命令

防火墙
image.png

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

打开或者关闭指定端口 firewall指令

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

➢fire指令
打开端口: firewall-cmd —permanent —add-port=端口号/协议
关闭端口: firewall-cmd —permanent —remove-port=端口号/协议
重新载入,才能生效: firewall-cmd —reload
查询端口是否开放: firewall-cmd —query-port=端口/协议

➢案例
image.png
image.png

动态监控进程

介绍

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

基本语法

top [选项]
image.png

选项说明

image.png

交互操作说明

在top界面中按下指定按键
image.png

案例

image.png

监控网络状态

查看系统网络情况 netstat

➢基本语法
netstat [选项]

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

netstat -an | more
image.png
两个用户在连接
image.png

检测主机连接命令ping

是一种网络检测工具,它主要是用检测远程主机是否正常,或是两部主机间的网线或网卡故障。如: ping 对方ip地址

RPM 与 YUM

rpm包的管理

介绍

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

rpm包的简单查询指令

查询已安装的rpm列表 rpm -qa | grep xx
➢举例: 看看当前系统,是否安装了firefox
➢指令: rpm -qa | grep firefox
image.png

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包的其它查询指令

rpm -qa :查询所安装的所有rpm软件包
rpm -qa | more
rpm -qa | grep X [rpm -qa | grep firefox ]

rpm -q 软件包名:查询软件包是否安装
案例: rpm -q firefox

rpm -qi 软件包名:查询软件包信息
案例: rpm -qi firefox

rpm -ql 软件包名:查询软件包中的文件
比如:rpm -ql firefox

rpm -qf 文件全路径名查询文件所属的软件包
rpm -qf /etc/passwd
image.png
rpm -qf /root/install.log

卸载rpm包

➢基本语法
rpm -e RPM包的名称 //erase
➢案例
删除Firefox 软件包
rpm -e firefox

➢细节讨论

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

如: $ rpm -e foo
removing these packages would break dependencies:foo is needed by bar-1.0.1

  1. 如果我们就是要删除foo这个rpm包,可以增加参数 —nodeps ,就可以强制删除,但是一般不推荐这样做,因为依赖于该软件包的程序可能无法运行

如: $ rpm -e —nodeps foo

安装rpm包

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

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

➢案例
演示卸载和安装firefox浏览器
rpm -e firefox
rpm -ivh firefox

查询fire全名:虚拟机->可移动设备->CD/DVD->连接->桌面CentOS光盘->Packages->搜索firefox

yum

介绍

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

yum的基本指令

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

安装指定的yum包

yum install xxx 下载安装

案例

案例:请使用yum的方式来安装firefox
rpm -e firefox
yum list | grep firefox
yum install firefox

搭建JavaEE环境

概述

如果需要在Linux下进行JavaEE的开发,我们需要安装如下软件
image.png

安装JDK

安装步骤

  1. mkdir /opt/jdk
  2. 通过xftp6上传到/opt/jdk下

image.png

  1. cd /opt/jdk
  2. 解压tar -zxvf jdk-8u261-linux-x64.tar.gz

image.png

  1. mkdir /usr/local/java
  2. 将安装好的文件移动 mv /opt/jdk/jdk1.8.0_261 /usr/local/java
  3. 配置环境变量的配置文件 vim /etc/profile

原./java -version运行,修改后即可 java -version
查看当前环境变量 echo $PATH
image.png

  1. export JAVA_HOME=/usr/local/java/jdk1.8.0_261
  2. export PATH=$JAVA_HOME/bin:$PATH
  3. source /etc/profile [让新的环境变量生效]

修改后的环境
image.png
image.png

测试是否安装成功

编写一个简单的Hello.java输出”hello,world!”
image.png

安装tomcat

步骤

  1. 上传安装文件,并解压缩到/opt/tomcat

mkdir /opt/tomcat
image.png

  1. 解压tomcat,tar -zxvf apache-tomcat-8.5.59.tar.gz

image.png

  1. 进入解压目录/bin,启动tomcat ./startup.sh

image.png

  1. 使用win访问虚拟机ip:8080端口,是否成功,若未成功则开放8080端口

界面加载不出来,失败
image.png

  1. 开放端口8080,回顾firewall-cmd

firewall-cmd —permanent —add-port=8080/tcp
重新载入,才能生效: firewall-cmd —reload

我竟然没有安装firewall,用不了firewall命令,使用 yum install firewalld安装

测试是否安装成功

在 windows、Linux下访问http://linuxip:8080
image.png

下次访问tomcat时,要进入bin目录开启服务 cd /opt/tomcat/apache-tomcat-8.5.59/bin/ ./startup.sh

安装IDEA…..

安装mysql5.7

安装步骤

  1. 新建文件夹/opt/mysql,并cd进去
  2. 运行wget http://dev.mysql.com/get/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar,下载mysql安装包,或者传输本地文件

image.png

PS:centos7.6自带的类mysql数据库是mariadb,会跟mysql冲突,要先删除。

  1. 运行tar -xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar

image.png

  1. 运行rpm -qa |grep mari,查询mariadb相关安装包
  2. 运行rpm -e —nodeps mariadb-libs,rpm -e —nodeps marisa卸载

image.png

  1. 然后开始真正安装mysql,依次运行以下几条

rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm

这里顺序依次是通用环境、库、客户端、服务端

image.png

  1. 运行systemctl start mysqld.service,启动mysql 服务
  2. 然后开始设置root用户密码
    Mysql自动给root用户设置随机密码,运行grep “password” /var/log/mysqld.log可看到当前密码

image.png

  1. 运行mysql -u root -p,用root用户登录,提示输入密码可用上述的,可以成功登陆进入mysql命令行

image.png

  1. 设置root密码,对于个人开发环境,如果要设比较简单的密码(生产环境服务器要设复杂密码),可以运行
    set global validate_password_policy=0; 提示密码设置策略
    (validate_password_policy默认值1,在设置密码时有相应的要求)

image.png

  1. set password for ‘root’@’localhost’ =password(‘hspedu100’);

    在初次设置密码时,需要按照默认的validate_password_policy修改密码。

  1. 运行flush privileges;使密码设置生效 ,quit退出

测试

image.png

Linux日志管理

基本介绍

日志文件是重要的系统信息文件,其中记录了许多重要的系统事件,包括用户的登录信息、系统的启动信息、系统的安全信息、邮件相关信息、各种服务相关信息等。
日志对于安全来说也很重要,它记录了系统每天发生的各种事情,通过日志来检查错误发生的原因,或者受到攻击时攻击者留下的痕迹。
可以这样理解日志是用来记录重大事件的工具

系统常用的日志

➢ /var/log/ 目录就是系统日志文件的保存位置
image.png

➢系统常用的日志
image.png

➢应用案例
使用root用户通过xshell6登陆,第一次使用错误的密码,第二次使用正确的密码登录成功看看在日志文件/var/log/secure里有没有记录相关信息

日志管理服务 rsyslogd

CentOS7.6日志服务是 rsyslogd ,CentOS6.x日志服务是syslogd 。rsyslogd功能更强大。rsyslogd 的使用、日志文件的格式,和 syslogd服务兼容的。
原理示意图
image.png

以后学习再补充….

Linux备份与恢复

以后学习再补充….

可视化管理-webmin和bt运维工具

webmin

基本介绍

Webmin是功能强大的基于Web的Unixlinux系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理操作。除了各版本的linux以外还可用于:AIX、HPUX、Solaris、Unixware、lrix和 FreeBSD等系统
image.png

安装 webmin&配置

  1. 下载地址 :http://download.webmin.com/download/yum/ ,用下载工具下载即可

image.png
也可以使用wget http://download.webmin.com/download/yum/webmin-1.700-1.noarchu.rpm
image.png

  1. 安装:rpm -ivh webmin-1.700-1.noarch.rpm

image.png

  1. 重置密码 /usr/libexec/webmin/changepass.pl /etc/webmin root test

root 是 webmin的用户名,不是OS的,这里就是把 webmin 的root用户密码改成了test
image.png

  1. 修改 webmin服务的端口号(默认是10000出于安全目的)

vim /etc/webmin/miniserv.conf # 修改端口

  1. 将port=10000修改为其他端口号,如 port=6666

image.png
但是我没有修改,只是用来测试这个功能。

  1. 重启webmin

/etc/webmin/restart #重启
/etc/webmin/start #启动
/etc/webmin/stop # 停止
image.png

但是访问10000端口不成功
image.png

  1. 防火墙放开10000端口

firewall-cmd —zone=public —add-port=10000/tcp —permanent #配置防火墙开放10000端口
firewall-cmd —reload # 更新防火墙配置,必须要更新
firewall-cmd —zone=public —list-ports #查看已经开放的端口号
image.png
image.png

当前开放的端口号
image.png

  1. 重启webmin

image.png

  1. 登录 webmin

http://ip:10000可以访问了
用root账号和重置的新密码test
image.png

简单使用演示

比如修改语言设置,IP访间控制,查看进程,修改密码,任务调度,mysql等.
image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

bt(宝塔)

基本介绍

bt宝塔Linux面板是提升运维效率的服务器管理软件,支持一键LAMP/LNMP/集群/监控/网站/FTP/数据库/JAVA等多项服务器管理功能。

安装和使用

➢安装
cd /opt/
mkdir bt
cd bt/
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

yum install -y wget 安装wget指令 &&:和

安装成功后控制台会显示登录地址,账户密码,复制浏览器打开登录
image.png

使用介绍,比如可以登录终端,配置,快捷安装运行环境和系统工具,添加计划任务脚本

image.png
image.png
image.png

image.png

image.png

如果bt的用户名,密码忘记了,使用bt default可以查看

image.png