Linux的学习

学习笔记,只写重点,不连贯,写得很水。


  1. 视频from:2021韩顺平 一周学会Linux。学习地址:https://www.bilibili.com/video/BV1Sv411r7vd

  1. 老师说明:后面我们的Redis、ginx包括项目都会使用到Linux,也是和我讲解的Linux版本一致,所以请小伙伴学习时,和老师使用的Linux版本一致。

  1. 对于我们Java后端来说,小伙伴学习到Shel编程即可,也就是说,对于我们Java程序员来说,你学习到我讲解的107讲-Linux Shell编程笔记梳理即可,当然如果你时间充足,也可以把老师讲解的Linux全部学完。超出的部分可用于大数据,运维等。

  1. Linux:实操篇-Vi和Vim编辑器 学习的重点。

  1. Linux实操篇-组管理和权限管理 重点和难点

  1. Linux实操篇-网络配置 重点中的重点

  1. Linux实操篇进程管理(重点)

  1. 学习方法:学习inux的时候要注意先know how再know why。也就是说我们先在知道怎么做,然后我们才知道为什么,这是学工科的一个特点。


个人学习计划:7天*15P/天=105P,基本达到老师的学习目标。

实际执行情况:

day0:预热。p1-p5背景知识了解。

day1:安装环境 p6-p8。p9-11 vmware的使用及工具包。p12 linux系统讲解 学到-p16

最后发现,还是使用 阿里云 方便(墙裂推荐)

day2:p17-p36

day3:p37-p53

day4:p54-p67

day5:p68-p84

day6:p85-p89 常用软件的安装 p90-92 Shell编程

day7:p93-107


Linux命令英文全称解释


安装vm和Centos

vmware15.5下载

官方地址:https://www.vmware.com/cn.html

其它地址:https://www.nocmd.com/windows/740.html

Centos下载地址

Centos-7-x8664-DVD-1810.iso Centos7.6DVD版4G(目前主流的生产环境)

https://mirror.iscas.ac.cn/centos/7/isos/x86_64/

Cent0S-8.1.1911-x8664-dvd1.iso Centos8.1DVD版8G(未来的主流)

https://mirrors.aliyun.com/centos/8.1.1911/isos/x86_64/


Linux目录结构

100秒解释Linux系统目录结构

具体的目录结构(不用背知道即可)

/bin【常用】(usr/bin、/usr/local/bin)

是Binary的缩写,这个目录存放着最经常使用的命令

/sbin (/usr/sbin、/usr/local/sbin)

s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。

/home【常用】

存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名

/root【常用】

该目录为系统管理员,也称作超级权限者的用户主目录

/Iib系统开机所需要最基本的动态连接共享库,其作用类似以于Vindows里的DLL文件。几乎所

有的应用程序都需要用到这些共享库

/lost+found这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件

/etc【常用】

所有的系统管理所需要的配置文件和子目录,比如安装mysql数据库my.conf

/usr【常用】

这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下

的program files目录。

/boot【常用】存放的是启动Liux时使用的一些核心文件,包括一些连接文件以及镜像文件

/proc这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息

/srv services缩写,该目录存放一些服务启动之后需要提取的数据

/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是一种安全子系统,它能控制程序只能访问特定文件,有三种工作模式,可以自行设置

一切皆文件


远程登录

Xshell7: 用于远程登录和控制

Xftp:用于文件的上传和下载

Linux-Xshell6 已经不能用了,现在是Xshell7

下载地址:https://www.xshell.com/zh/

到网页/下载 最下面,找家庭/学校免费,可以免费使用。同样可以下载Xftp

在Linux的终端上,输入ifconfig 查询linux机器的ip地址,便于它们的连接

解决Xftp连接后,出现乱码:

  • 左上角>点文件>点当前会话属性>点选项>编码换成utf-8

  • reboot 可以重启服务器


vi和vim的基本介绍

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

Vim具有程序编辑的能力,可以看做是Vi的增强版本,可以主动的以字体颜色辨别语法的正确性,

方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

vi和vim常用的三种模式

  • 正常模式

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

  • 插入模式

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

  • 命令行模式

按下esc键,再输入":"冒号。在这个模式当中,可以提供你相关指令,完成读取、存盘、替换、离开Vim、显示行号等的动作则是在此模式中达成的!

:wq 写入并退出write quit

:q 退出

:q! 强制退出,且不保存

各种模式的切换

  • 快捷键使用练习

  1. 拷贝当前行yy,输入p粘贴。

  1. yy拷贝当前行,5表示复制5次,输入p粘贴。就是按下:yy5p。

  1. 拷贝当前行(含)向下的5行5yy,并移动到目标位置,再进行粘贴(输入p).就是按下:5yyp

  1. 注意光标所在位置

2.删除当前行dd,删除当前行向下的5行5dd。(没有dd5)

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

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

5.编辑/etc/profile文件,一般模式下,使用快捷键到该文档的最末行[G]和最首行[gg]

6.在一个文件中输入"hello'”,一般模式下,然后又撤销这个动作u(Undo)

7.编辑/etc/profile文件,并将光标移动到20行,在一般模式下,输入20(行号)+shift(按键)+g

8.更多的看整理的文档


关机&重启命令


用户管理

添加/删除用户

添加用户基本语法: useradd用户名

修改用户密码:passwd 用户名 回车。输入新密码

如果不写用户名,就是修改当前用户的密码。需要注意

pwd :显示当前工作目录print working directory

userdel 用户名:删除该用户,但保留文件夹

userdel -r 用户名:删除该用户,并删除该用户文件夹

切换用户

普通用户登录,登录后再用"su - root"(或其他有权限的用户)命令来切换成系统管理员身份

在提示符下输入logout即可注销用户。多用户登录时,退出并返回上一次使用用户。是最后一个用户时,退出系统连接。

whoami 显示当前用户名

who am i 显示第一次登录的用户名

用户组

  • 介绍

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

  • 新增组。创建一个新的组

指令:groupadd组名

  • 删除组。删除组名为xx的组

指令(基本语法):groupdel组名

  • 增加用户时直接加上组

指令(基本语法):useradd -g 用户组 用户名

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

clear清屏

一般成功了都没有返回消息,“没有消息就是最好的消息”

id 用户名。显示用户名,和该用户所在组名

用户和组相关文件

  • /etc/passwd文件

用户(user)的配置文件,记录用户的各种信息

每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

  • /etc/shadow文件

口令的配置文件

每海行的含义:登绿名:加密口令:最后一次修改时间最小时间间隔:最大时间间隔:警告时间不活动时间失效时间标志

  • /etc/group文件

组(group)的配置文件,记录Linux包含的组的信息

每行含义:组名口令:组标识号:组内用户列表


使用指令

指定运行级别

基本介绍

运行级别说明:

0:关机

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

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

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

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

5:图形界面

6:系统重启

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

  • 应用实例

命令:init[0123456]应用案例:通过init来切换不同的运行级别,比如动5-3,然后关机。

找回root密码

面试题:如何找回root密码

需要在本地电脑端前操作。启动时按"e"操作。远程操作的话,启动之前的画面看不到。

查文档吧:韩顺平教育--linux找回root密码.doc

课堂练习

  1. 假设root密码忘记了,请问如何找回密码

  1. 设置运行级别,linux运行后,直接进入到命令行终端(3)

帮助指令

man(ual)获得帮助信息

基本语法:man【命令或酒配置文件】(功能描述:获得帮助信息)

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

输入:man ls

在linux下,隐藏文件是以. 开头

选项可以组合使用,比如: ls -al /root

help指令

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

文件目录类

  • pwd指令

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

应用实例:案例:显示当前工作目录的绝对路径

  • Is指令

基本语法:ls【选项】【目录或是文件】

常用选项

-a:显示当前目录所有的文件和目录,包括隐藏的。

-l:以列表的方式显示信息

-h: 人性化方式显示 human

  • cd指令

基本语法:cd【参数】(功能描述:切换到指定目录)

理解:绝对路径和相对路径

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

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

  • mkdir指令

mkdir指令用于创建目录

基本语法:mkdir【选项】要创建的目录

常用选项 -p:创建多级目录

应用实例

案例1:创建一个目录/home/dog

mkdir /home/dog

案例2:创建多级目录/home/animal/tiger

mkdir -p /home/animal/tiger

  • rmdir指令

rmdir指令删除空目绿

基本语法

rmdir【选项】要删除的空目录

应用实例

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

使用细节:rmdir 删除的是空目录,如果目录下有内容时无法删除的。

语法:rm -rf [要删除的目录] 。作用:用于删除非空目录。递归强制删除

(Recursion递归)(Force强制)

  • touch指令

touch指令创建空文件

基本语法:touch 【文件名称】。例:touch -hello.txt

  • cp指令

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

√基本语法:

cp【选项】source[源] dest[目标]

√常用选项:

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

-强制覆盖不提示的方法:\cp 【选项】source[源] dest[目标]。可以不用逐个确认是否覆盖

  • rm指令

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

基本语法:rm【选项】要删除的文件或目录

常用选项

-r:递归删除整个文件夹

-f:强制删除不提示

  • mv指令

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

基本语法:

mv oldNameFile newNameFile (功能描述:重命名)

mv /temp/movefile /targetFolder (功能描述:移动文件)

mv oldNameFile /directory/newNameFile 可以移动,并且重命名,同时使用

  • cat指令

cat查看文件内容

基本语法: cat【选项】要查看的文件

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

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

enter 显示more一行;space空格显示more翻页。

  • more指令

more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more

指食中内置了若干快捷键(交互的指令),详见操作说明

基本语法:more 【要查看的文件】

  • less指令

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

基本语法:Iess [要查看的文件]

  • echo指令

echo输出内容到控制台

√基本语法:echo【选项】【输出内容】

  • 指令和>>指令

>输出重定向(覆盖) 和 >>追加

基本语法

1)ls -l>文件 (功能描述:列表的内容写入文件a.txt中(覆盖写))

2)ls -al>>文件 (功能描述:列表的内容追加到文件aa.txt的未尾)

3)cat 文件1>文件2 (功能描述:将文件1的内容覆盖到文件2)

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

Ctrl+C 退出

  • ln指冷软链接也称为符号链接(link),类似于windows里的快捷方式,主要存放了链接其他文件的路径

基本语法:

ln -s【原文件或目录】【软链接名】(功能描述:给原文件创建一个软链接)

!+行号 执行曾经执行过的,行号是多少的指令

压缩和解压类

●gzip/gunzip指令

基本语法:

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

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

●tar指令

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

基本语法:

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

选项说明:

-z 用gzip对存档压缩或解压

-x 解压缩文件 //通常在x,c中二选一,进行解压或压缩。比如-zxvf 或 -zcvf

-c 创建一个压缩文件

-v 详细显示处理的文件

-f 指定存档或设备

Linux实操篇

组管理和权限管理

Linux组基本介绍

在inux中的每个用户必须属于一个组,不能独立天组外。在iux中每个文件

有所有者、所在组、其它组的概念。

1.所有者

2.所在组

3.其它组

4.改变用户所在的组

权限的基本介绍

ls-l 中显示的内容如下:

-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc

0-9位说明:

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

d是目录,相当于windows的文件夹

-是普通文件

I是链接,相当于windowsl的快捷方式

c是字符设备文件,鼠标,键盘

b是块设备,比如硬盘

2.第1-3位确定所有者(该文件的所有者)拥有该文件的权限。--User

3.第4-6位确定所属组(同用户组的)拥有该文件的权限,-Group

4.第7-9位确定其他用户拥有该文件的权限-Other

rwx说明:

作用到文件:

read读

write可写,可修改。不代表删除,删除的前提是对文件所在目录有write权限。

理解:将目录看做文件。目录有w权限,才能修改里面的内容。

execute可执行文件

作用到目录:

r:表示可以ls,将目录的内容显示

w:表示可以在该目录,删除、创建、或者重命名文件

x:表可以进入到该目录,比如cd

可用数字表示为:r=4,w=2,x=1因此rwx=4+2+1=7

理解:想成3位二进制,即000。高位到低位的值,依次为4、2、1

其它内容说明

1文件:硬连接数或目录:子目录数4

root用户

root组

1213文件大小(字节),如果是文件夹,显示4096字节

Feb 2 09:39最后修改日期:月 日 时:分

abc文件名

修改权限-chmod

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

chmod=change+modify

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

user:所有者 group:所有组 other:其他人 all:所有人(user、group、other的总和)

1)chmod u=rwx,g=rx,o=x 文件/目录名

2)chmod o+w 文件/目录名 在1)的基础上进行,给组增加w权限

3)chmod a-x 文件/目录名 在1)的基础上进行,给所有人减去x权限

  • 第二种方式:通过数字变更权限

r=4 w=2 x=1 rwx=4+2+1=7

chmod u=rwx,g=rx,o=x文件/目录名 相当于:

chmod 751 文件/目录名

chown -R 递归


任务调度

crontab进行定时任务的设置

概述

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

任务调度分类:1系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等

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

快速入门

设置任务调度文件:/etc/crontab

设置个人任务调度。执行crontab-e命令。

接着输入任务到调度文件

如:*/1 * * * * ls -l /etc/ > /tmp/to.txt

意思说每小时的每分钟执行ls -l /etc/ > /tmp/to.txt 命令

参数细节说明

5个占位符的说明

crond相关指令

crontab -r:终止任务调度。

crontab -l:列出当前有那些任务调度。列出当前待执行的crontab

service crond restart【重启任务调度】

at定时任务

基本介绍

1.at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行。

2.默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业。

3.at命令是一次性定时计划任务,执行完一个任务后不再执行此任务了

4.在使用at命令的时候,一定要保证atd进程的启动,可以使用相关指令来查看:

ps -ef | grep atd //检测atd是否在运行

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

at命令格式

at【选项】【时间】

Ctrl+D结束at命令的输入,需要按2次

atrm + 编号 //删除该编号的at任务

at命令选项

Linux磁盘分区、挂载

查看所有设备挂载情况

命令:Isblk 或者 Isblk -f

全拼: list block

永久挂载:通过修改/etc/fstab实现挂载。否则重启后需要重新手动挂载

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

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

基本语法:du- h /目录 //disk usage

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

-s指定目录占用大小汇总

-h带计量单位

-a含文件

--max-depth=1子目录深度 //没错,这个选项的开头确实就是两个“--”

-c列出明细的同时,增加汇总值

以树状显示目录结构: tree 目录

默认需要安装:yum install tree


网络配置

查看网络IP和网关

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

查看linux的配置ifconfig

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

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

比如:ping www.baidu.com

网络环境配置

第二种方法(指定ip):

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

编辑:vim /etc/sysconfig/network-scripts/ifcfg-ens33

要求:将ip地址配置的静态的,比如:ip地址为192.168.200.130

hostname:查看主机名

vim /etc/hostname :修改主机名

vim /etc/hosts :建立ip地址与主机名的映射

DNS

  1. DNS,就是Domain Name System的缩写,翻译过来就是域名系统

  1. 是互联网上:作为域名和IP地址相互映射的一个分布式数据库

主机名解析机制分析(Hosts、DNS)

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

  1. 浏览器先检查浏览器缓存中有没有该域名解析IP地址,有就先调用这个IP完成解析;如果没有,就检查DNS解析器缓存,如果有直接返回IP完成解析。这两个缓存,可以理解为本地解析器缓存

  1. 一般来说,当电脑第一次成功访问某一网站后,在一定时间内,浏览器或操作系统会缓存他的IP地址(DNS解析记录)。如在cmd窗口中输入

ipconfig /displaydns //DNS域名解析缓存 (Windows-cmd)

ipconfig /flushdns //手动清理dns缓存(Windows-cmd)

  1. 如果本地解析器缓存没有找到对应映射,检查系统中hosts:文件中有没有配置对应的域名IP映射,如果有,则完成解析并返回。

  1. 如果本地DNS解析器缓存和hosts)文件中均没有找到对应的IP,则到域名服务DNS进行解析域

还讲了个,DNS劫持的例子,有点意思。


进程管理

基本介绍

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

2.每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作

的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。

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

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

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

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

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

显示系统执行的进程

ps详解

1.指令:ps -aux | grep xxx,比如我看看有没有sshd服务

2.指令说明

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:启动进程所用的命令和参数,如果过长会被截断显示

应用实例

要求:以全格式显示当前所有的进程,查看进程的父进程。查看Sshd的父进程信息

整全格金

ps -ef | grep xxx

是BSD风格

UID:用户ID user

PID:进程ID process

PPID:父进程ID parent

C:CPU用于计算执行优先级的因子。

数值越大,表明进程是CPU密集型运算,执行优先级会降低;

数值越小,表明进程是/O密集型运算,执行优先级会提高

STIME:进程启动的时间

TTY:完整的终端名称

TIME:CPU时间

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

终止进程kill和killall

·介绍:

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

命令来完成此项任务。

  • 基本语法

kill【选项】进程号 (功能描述:通过进程号杀死/终止进程)

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

  • 常用选项

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

killall gedit //关闭所有gedit。graphical edit 图形编辑器

查看进程树pstree (process

  • 基本语法

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

  • 常用选项

-p:显示进程的PID

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

service管理指令

service 服务名 [start|stop|restart|reload|status]

服务管理,查看全部服务,使用setup -> 系统服务

使用setup工具,需要先安装:

yum install -y setuptool

服务的运行级别(runlevel):

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

运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动

运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆

运行级别2:多用户状态(没有NFS),不支持网络

运行级别3:完全的多用户状态(有NFS),无界面,登陆后进入控制台命令行模式

运行级别4:系统未使用,保留

运行级别5:X11控制台,登陆后进入图形GUI模式

运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

开机流程:

CentOS7后运行级别说明

在/etc/initab

进行了简化,如下:

multi-user.target : analogous to runlevel 3 //系统在级别3运行

graphical.target: nalogous to runlevel 5 //系统在级别5运行

查看当前默认运行级别,执行语句:

systemctl get-default

设置一个默认的(重启后也有效果)运行级别,执行语句:

systemctl set-default [TARGET].target 比如:

systemctl set-default graphical.target //设置为级别5

systemctl set-default multi-user.target //设置为级别3

systemctl管理指令

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

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

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

1.systemct Iist-unit-files [|grep服务名](查看服务开机启动状态,grep可以进行过滤)

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

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

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

●应用案例:

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

systemctl status firewalld

systemctl stop firewalld

防火墙 firewall

  • 打开或者关闭指定端口

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

  • firewall指令

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

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

重新载入,才能生效:firewall-cmd --reload

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

查看所有端口的情况:firewall-cmd --list-all //查看ports:里面的内容

动态监控进程

  • 介绍

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

  • 基本语法

top【选项】

  • 选项说明:

交互操作说明:

注意是大写。在查看数据出来以后,在列表显示时输入,而不是当做选项输入。

查看系统网络情况netstat

基本语法:netstat【选项】

选项说明:

-an 按一定顺序排列输出

-p 显示哪个进程在调用

ESTABLISHED 表示已连接

LISTEN 表示监听


软件安装

rpm包的管理

  • 介绍

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

Linux的分发版本都有采用(suse,redhat,centos等等),可以算是公认的行业标准了。

  • rpm包的简单查询指令

查询已安装的rpm列表rpm -qa | grep xx

举例:看看当前系统,是否安装了firefox

  • 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

rpm -qf /root/install.log

  • 卸载rpm包

基本语法:rpm -e RPM包的名称 (erase擦除)

应用案例:删除firefox 软件包

强制删除,忽略依赖问题:rpm -e --nodeps 软件名

  • 安装rpm包

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

√参数说明

i=install安装

v=verbose提示

h=hash进度条

yum

● 介绍:

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

  • yum的基本指令

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

安装指定的yum包:yum install xxx下载安装


搭建环境

概述

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

名称:

ideaIU-2020.2.3.tar.gz

apache-tomcat-8.5.59.tar.gz

mysqI-5.7.26-1.el7.x86_64.rpm-bundl..

jdk-8u261-linux-x64.tar.gz

CentOS-7-x86_64-DVD-1810.iso

安装JDK

安装步骤

一、上传

  1. mkdir /opt/jdk

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

二、解压

  1. cd /opt/jdk

  1. 解压:tar -zxvf jdk-8u261--linux-x64.tar.gz

三、移动解压后的文件夹到指定目录

  1. mkdir /usr/local/java

  1. mv /opt/jdk/jdk1.8.0_261 /usr/local/java

四、配置环境变量

  1. 配置环境变量的配置文件vim /etc/profile

  1. export JAVA_HOME=/usr/local/java/jdk1.8.0_261

  1. export PATH=$JAVA_HOME/bin:$PATH

//这儿的$PATH是将以前的路径变量带上,否则覆盖了

// ":"冒号,个人理解是起到一个分隔符的作用,可理解为"追加"。类似于 a | b | c这种“|”

五、刷新环境变量,使其生效

  1. source /etc/profile

六、测试是否安装成功

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

tomcat的安装

说明:tomcat依赖jdk。

步骤:

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

  1. 进入解压目录/bin,启动tomcat: ./startup.sh。以下是一些排错,正确使用不需要:

  • 查看 vim /usr/local/tomcat/apache-tomcat-10.1.9/logs/catalina.out 报错的原因

  • 最后估计是版本兼容原因或者路径配置原因吧。删除tomcat,按照老师的版本来吧。

  • rm -rf /usr/local/tomcat 删除该文件

  • 经测试,后来重新安装了,即使服务没有启动,也正常访问了。

("Tomcat started."不代表服务正常运行了。首先用下面的命令可以查看 tomcat 服务的状态:systemctl status tomcat.service 或者:systemctl status tomcat)

  1. 开放端口 8080

  • 开启防火墙:

直接开启,会报错:FirewallD is not running

需要: systemctl start firewalld.service #开启服务

打开端口:firewall-cmd --permanent --add-port=8080/tcp

确定是否打开:firewall-cmd --query-port=8080/tcp

重新载入,才能生效:firewall-cmd --reload

  • 使用阿里云服务器的,还需要开放安全组

配置安全组规则-配置规则-手动添加-8080

  1. 测试是否安装成功:在windows、Linux下访问 http://linux的ip:8080

  1. 测试自己写的页面: cd 到tomcat/webapp/ROOT/目录下,vim stein.html一个自己的页面:

<h1>write down what u think</h1>

然后在windows浏览器访问Linux: http://linux的ip:8080/stein.html

idea2020的安装

说明:通常在本地开发,只是上传到Linux去运行,所以这个不常安装。而且太大了,阿里云运行不了。

●步骤

1.下载地址:https://www.jetbrains.com/idea/downloadsection=windows

2.解压缩到/opt/idea

3.启动idea /bin目录下执行idea.sh,配置jdk

4.编写Hello world程序并测试成功!

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安装包

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

Ctrl+C 可以中断正在进行的任务,比如这儿中断下载

3.tar -xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar (因为是tar文件,所以这儿不用 -z)

4. 运行rpm -qa | grep mari,查询系统里面有没有mariadb相关安装包。找到2个:

marisa-0.2.4-4.el7.x86_64

mariadb-libs-5.5.68-1.el7.x86_64

5.运行rpm -e --nodeps mariadb-libs 卸载

运行rpm -e --nodeps marisa 卸载

再用rpm -qa | grep mari 检查是否还有

6.然后开始真正安装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

7.运行systemctl start mysqld.service,启动mysql

8.然后开始设置root用户密码

Mysql自动给root用户设置随机密码,运行grep "password" /var/log/mysqld.log可看到当前密码

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

10.设置root密码,对于个人开发环境,如果要设比较简单的密码(生产环境服务器要设复杂密码),可以运行set global validate_password_policy=0; 注意sql语句有分号“;”

提示密码设置策略(validate_password_policy默认值1)

//MySQL密码复余度要求分三种

//低:0 or Low | Length只更求长度(默认8位)

//中:1 or MEDIUM | Length:numeric,lowercase/uppercase,and special characters

//要求长度 数字 大小写 特珠字符

//高:2 or STRONG | Length:numeric,lowercase/uppercase,and special characters;dictionary file

//要求长度 数字 大小写 特殊字符 字典文件

11.set password for 'root'@'localhost'=password('hspedu100'); 注意sql语句有分号“;”

12.运行flush privileges;使密码设置生效.注意sql语句有分号“;”quit退出后,重新登录检查密码是否生效。

show databases; 查看数据库


常用命令补充

ifconfig ens33 192.168.198.135 修改自己的ip地址为。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值