Linux的学习

news2024/12/24 21:55:04

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


  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=端口/协议

动态监控进程

  • 介绍

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; 查看数据库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/567061.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

开源网安受邀参加2023澳门万讯论坛,引领软件安全领域国产化替代浪潮

近日&#xff0c;2023万讯论坛在澳门成功举办。本次论坛由万讯电脑科技主办&#xff0c;旨在为澳门引入更多具有市场竞争力且自主研发的国内科技产品。开源网安作为拥有软件安全领域全链条产品的厂商&#xff0c;受邀参加本次论坛并分享软件安全领域国产化替代方案。 随着全球通…

Typescript ?问号的几种不同用法

1、作为Typescript 接口属性数量不确定时的定义方法 如果使用接口来限定了变量或者形参, 那么在给变量或者形参赋值的时候, 赋予的值就必须和接口限定的一模一样才可以, 多一个或者少一个都不行。 但是开发中我们往往可能会遇到少一个或者多一个的场景。 &#xff08;1&#…

Springboot +spring security,如何解决Session共享问题

一.简介 前一篇文章的所有的会话都是基于单机&#xff0c;如果服务部署在集群中&#xff0c;就会出现session失效的问题&#xff0c;为什么在集群环境下会出现session失效呢&#xff1f; 二.集群环境下session失效的原因 当用户第一次访问项目时&#xff0c;是机器1处理了登…

Kubernetes1.22.0 部署 metricis-service

概述 Install cfssl cat > proxy-client-csr.json<<EOF {"CN": "aggregator","hosts": [],"key": {"algo": "rsa","size": 2048},"names": [{"C": "CN",&quo…

SVD求解两组多维点之间的欧式变换矩阵,及halcon代码实现

之前研究了二维点的仿射变换&#xff0c;用解矩阵的方式求解了两组二维点之间的变换矩阵。 学习了下SVD&#xff0c;看到可以用SVD求解两组多维点之间的欧式变换矩阵&#xff0c;当然也是个最优化问题。 这里的变换只有平移和旋转&#xff0c;没有缩放。 一、先说结论&#…

【DNDC模型】农田生态、陆地生态系统的动态模拟模型

DNDC模型 DNDC模型是一个用于模拟和追踪农业生态系统中碳氮生物地球化学循环的过程模型&#xff0c;可以用来模拟农业生态系统碳氮排放、农作物产量、土壤固碳作用以及硝酸盐淋失等过程。 模型由两部分组成&#xff1a;第一部分包括土壤气候、植物生长和有机质分解等3个子模型…

整理6个超好用的在线编辑器!

随着 Web 开发对图像可扩展性、响应性、交互性和可编程性的需求增加&#xff0c;SVG 图形成为最适合 Web 开发的图像格式之一。它因文件小、可压缩性强并且无论如何放大或缩小&#xff0c;图像都不会失真而受到欢迎。然而&#xff0c;为了编辑 SVG 图像&#xff0c;需要使用 SV…

【共享内存】

1 共享内存示意图 共享内存区是最快的 IPC 形式。一旦这样的内存映射到共享它的进程的地址空间&#xff0c;这些进程间数据传递不再涉及到 内核&#xff0c;换句话说是进程不再通过执行进入内核的系统调用来传递彼此的数据。 2 共享内存数据结构 struct shmid_ds {struct ipc_…

Mysql 学习(十 三)InnoDB的BufferPool

为什么要有缓存&#xff1f; 我们知道每次获取数据我们都需要从磁盘获取&#xff0c;磁盘的运行速度又慢的不行&#xff0c;对于这一个问题我们要怎么解决呢&#xff1f;我们把查询结果存储起来不就行了&#xff0c;因为当需要访问某个页的数据时&#xff0c;就会把完整的页的…

再见SpringSecurity,比Shiro更简单优雅的轻量级Sa-Token框架我粉了

1. 技术选型 最近在做登录、授权的功能&#xff0c;一开始考虑到的是spring boot spring security&#xff0c;但spring security太重&#xff0c;而我们是轻量级的项目&#xff0c;所以&#xff0c;spring security不适合我们。 而后考虑spring boot shiro&#xff0c;但s…

SSD202 Linux开发日志记录

一、挂载U盘 SDK默认自动加载USB存储模块&#xff0c;但没有自动挂载&#xff0c;插上U盘后识别sda mount /dev/sda /mnt/即可在/mnt查看U盘文件 二、make & make menuconfig提示失败 打开新终端后输入 declare -x ARCH"arm" declare -x CROSS_COMPILE"…

记一次php 导出word文档

导出试卷 先看效果 $paper Exam::where(id, $data[examid])->field(paper_id,title)->find();$bankIds PaperStorehouse::where(id, $paper[paper_id])->value(banks);$field type,rate,name,options,parsing,value,question_id,parsing_id;$bankInfo Banks::whe…

北邮22信通:二叉树显示路径的两种方法 递归函数保存现场返回现场的实例

北邮22信通一枚~ 跟随课程进度每周更新数据结构与算法的代码和文章 持续关注作者 解锁更多邮苑信通专属代码~ 获取更多文章 请访问专栏~ 北邮22信通_青山如墨雨如画的博客-CSDN博客 一.讲解 要想实现二叉树的路径显示&#xff0c;我们要按照…

gitbook在centos上安装

1&#xff09;官网下载Node.js的Linux64位的二进制包:Download | Node.js 或者在线下载&#xff1a; wget https://nodejs.org/dist/v12.16.1/node-v12.16.1-linux-x64.tar.xz ​​2)到指定目录​解压 cd /opt/gitbook tar -xJf node-v12.16.1-linux-x64.tar.xz mv node-…

记录--按钮级别权限怎么控制

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 最近的面试中有一个面试官问我按钮级别的权限怎么控制&#xff0c;我说直接v-if啊&#xff0c;他说不够好&#xff0c;我说我们项目中按钮级别的权限控制情况不多&#xff0c;所以v-if就够了&#xff…

wifiWG233移植

驱动的移植 交叉编译WIFI原厂固件驱动 根据网上资料&#xff0c;和官方文档编译成功。 修改Makefile 修改交叉编译环境 执行 make 编译成功&#xff0c;生成88x2bu.ko 加载原厂驱动 Insmod 88x2bu.ko 生成wlan0 Hostapd工具移植生成可连接热点AP 安装libnl库 使用命令tar …

ApiKit 接口调用、自动化测试工具

作为一位后端开发&#xff0c;我们平时经常需要维护API文档、对API接口进行调试、有时候还得Mock数据。Postman虽然作为接口调试工具非常好用&#xff0c;但是对于维护API文档这类工作却不太合适。今天给大家推荐一款功能更强大的工具ApiKit&#xff0c;足以满足我们对API的各种…

如何清除电脑缓存?分享3个有效的方法!

案例&#xff1a;我发现我的电脑运行速度越来越慢&#xff0c;影响使用体验。朋友说可能是我没有及时清理电脑缓存文件所致&#xff0c;那如何清理缓存的文件&#xff1f; 【我想通过清理电脑缓存文件的方法&#xff0c;提高我电脑运行的速度&#xff0c;但是我不知道具体的操…

如何利用Citespace和vosviewer既快又好地写出高质量的论文及快速锁定热点和重点文献进行可视化分析?

基于Citespace和vosviewer文献计量学可视化SCI论文高效写作方法 CiteSpace是什么&#xff1f; 简单来说&#xff0c;它一款通过将国内外文献进行可视化分析来帮助你了解一门学科前世今生的软件。 面对成千上万篇的文献&#xff0c;怎样才能快速锁定自己最感兴趣的主题及科学…

取代 Docker Desktop?Podman Desktop 发布 GA 版本 1.0

Podman&#xff08;POD MANager&#xff09;是一个跨平台的容器管理工具&#xff0c;可用于管理容器、镜像、卷以及以容器组形式存在的 Pod。Podman 可以在 Linux 上直接运行容器&#xff0c;但在像 macOS 和 Windows 这样的平台&#xff0c;是通过虚拟机间接运行容器。 Podma…