Linux

概述

1、linux简介:一种开源的、免费的操作系统,安装在计算机硬件上、用来管理计算机的硬件和软件资源的系统软件。
linux注重安全性、稳定性、高并发处理能力,没有优异的可视化界面;
windows用于个人计算机上,linux用于企业服务器上。
2、linux的发行版本:linus在1991年开发,linux的内核程序,后来很多软件开发组织以及软件公司在内核程序基础之上,陆续推出很多不同版本的linux操作系统:Ubuntu(乌班图)、RedHat(红帽)、CentOS......

安装linux操作系统

1、先安装虚拟机
虚拟机:可以用软件模拟出一套具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
2、安装linux(linux的镜像)
可视化界面比较单薄,很少使用;使用linux多数都是基于终端命令使用linux指令操作计算机。

inux的目录结构:

1)、linux只有一个根目录。/
2)、层级式的目录结构:
bin ->usr/bin:系统的可执行文件,可以在任何目录下执行
usr/local/bin:用户自己的可执行文件,可以在任何目录下执行
etc:存放配置文件。配置环境变量(/etc/profile)。
home:每一个用户的根目录,用来保存用户私人的数据,默认情况下,目录名和自己的用户名相同。
opt:存放额外安装的软件。相当于windows系统的中Program files目录。

linux的远程操作

1、Xshell:linux的终端模拟软件。
连接远程linux系统:创建会话。
查看linux系统的ip地址:ifconfig
2、Xftp:文件传输软件。
连接远程linux系统:创建会话:
查看linux系统的ip地址:ifconfig

vi和vim

是linux中的文本编辑器,用来在linux中创建、查看或者编辑文本文件,就好像windows中的记事本一样。
vim是vi的增强版本,vi的绝大多数用法在vim都适用。

vi和vim的使用
  • 一般模式
    用vi或者vim命令打开文件(vim test.txt),进入了一般模式;
    可以查看文件的内容,并且可以通过上下左右键移动光标,查看文件某一部分;但是不能编辑文件内容。
  • 编辑模式:在一般模式下,按i键或者a键,进入编辑模式;可以编辑文件内容;但是不能保存编辑的内容;按Esc键,可以回到一般模式。
  • 命令行模式:在一般模式下,按shift+:,进入命令行模式;
    输入: q!-----不保存强制退出编辑器
    wq-----保存并且退出编辑器
    q------只是退出编辑器
vi和vim编辑器的快捷键

1、复制当前行:在一般模式下,按yy,把光标所在行复制到剪切板;按p,把剪切板中的内容粘贴到光标所在的下一行。
2、复制当前行往下5行:在一般模式下,按5yy,把光标所在行往下5行复制到剪切板;按p,把剪切板中的内容粘贴到光标所在的下一行。
3、在文本文件中查找关键字:在命令行模式下,输入/关键字,回车;按n表示光标查找下一个关键字。
4、删除光标所在的当前行:在一般模式下,按dd,删除光标所在的当前行。
5、删除光标所在的行往下5行:在一般模式下,按5dd。
6、撤销上次编辑的内容:在一般模式下,按u。
7、显示行号:命令行模式下,设置文件的行号,取消文件的行号.[命令行下(: set nu) 和(:set nonu)]。
在这里插入图片描述

linux中的用户管理

1、任何使用linux的系统资源的用户,必须使用一个合法的账号和密码,账号和密码一般都是向系统管理员申请。
root是linux系统安装时默认创建的系统管理员账号,由root创建普通账号。
2、添加用户:useradd (-d 可选路径) 用户名
useradd lisi
|->创建一个用户lisi
|->在/home目录下创建用的根目录,目录名称默认跟用户名相同
|->在linux中任何一个用户都至少属于一个组,新建用户时如果不指定组,则会新建一个组,组名跟用户名相同,并且把该用户添加到该组中。
useradd -d /home/ww wangwu 创建用户的同时,指定用户的根目录
3、给用户设置密码:passwd 用户名
passwd lisi
密码要满足一定的复杂度(不然系统会提示失败,不满足某些条件)
4、删除用户:userdel 用户名
userdel lisi
userdel -r lisi 删除用户的同时级联删除它的主目录
5、查看用户信息:id 用户名
id zhangsan
6、切换用户:su 用户名
su zhangsan
从权限高的用户切换权限低的用户,不需要密码验证;
从权限低的用户切换到权限高的用户,必须密码验证。

linux中的组管理

1、linux中的组相当于角色的概念,可以对有共性的用户进行统一管理;
每一个用户至少属于一个组,不能独立于组存在,也可以属于多个组;
新建用户时如果不指定组,则会新建一个组,组名跟用户名相同,并且把该用户添加到该组中。
2、添加组:groupadd 组名
groupadd dev
3、删除组:groupdel 组名
groupdel dev
4、把用户添加到组中:gpasswd -a 用户名 组名
gpasswd -a zhangsan dev
5、把用户从组中移除:gpasswd -d 用户名 组名
gpasswd -d zhangsan dev
6、添加用户时,指定所属的组(主组):useradd -g 组名 用户名
useradd -g dev lisi

linux中的系统操作命令

关机:shutdown now 立即关机
shutdown -h xxx 定时关机
shutdown -r now 立即重启
重启:reboot 立即重启
同步数据库:sync

linux中的帮助命令

1、用来查看linux系统手册上的帮助信息:man 命令
man ls
分屏显示、按回车翻一行、按空格翻一页、按q退出查看。
2、用来查看命名的内置帮助信息:help 命令
help cd

linux中的文件和目录操作的命令

1、查看当前所在目录:pwd
pwd
2、查看指定目录下所有的子目录和文件列表:ls (选项) (指定目录)
|->绝对目录
|->相对目录
ls /home
ls 查看当前目录下所有的子目录和文件列表
ls -l /home :以列表形式显示
ls -a /home:显示指定目录下所有的子目录和文件(包括虚拟的目录)
ls -al /home:以列表形式显示指定目录下所有的子目录和文件(包括虚拟的目录)
3、切换目录:cd 目录名
|->绝对目录:以盘符开始的目录叫绝对目录,从盘符开始查找目标目录
cd /opt/testDir
~:当前用户的根目录。在任何目录下执行:cd ~,进入当前用户的根目录。
|->相对目录:以目录名开始的目录叫相对目录,从当前目录开始查找目标目录
cd testDir
..:表示当前目录的上一级目录,从的当前目录开始查找它的上一级目录。
.:表示当前目录
xxx.sh====>./xxx.sh
4、创建目录:mkdir [选项] 目录名
|->绝对目录
|->相对目录
mkdir /opt/testDir/test1 //在/opt/testDir目录下创建一个目录test1(使用绝对目录)
mkdir test2 //在/opt/testDir目录下创建一个目录test2(使用相对目录)
mkdir -p /opt/testDir/test3/test4 //在/opt/testDir目录下创建目录test3,并且在test3下创建test4(一次创建多级目录)
mkdir -p test5/test6
5、删除一个空目录:rmdir 目录名
rmdir test1
rmdir test3
6、创建一个或者多个空文件:touch 文件名列表(文件名之间用空格隔开)
touch t1.txt
touch t2.txt t3.txt t4.txt
7、复制文件或者目录:cp [选项] source(源) dest(目标)
cp t1.txt test2:表示把t1.txt文件复制到test2目录中
cp -r test2 test5:表示把test2目录复制到test5目录中(递归地复制目录)
cp t1.txt test2:如果test2中存在t1.txt文件,系统会询问是否覆盖,覆盖输入y,否输入n。
8、删除文件或者目录:rm 文件名或者目录名
rm t1.txt 提示删除文件
rm -f t2.txt 强制删除文件(不提示)
rm -r test2 提示递归删除目录
rm -rf test5 强制递归删除目录
9、移动目录或者文件:mv source(源) dest(目标)
mv test.txt test1
mv test1 test2
mv t3.txt t3_new.txt 文件重命名
如果目标中已经存在该文件或者目录,则会提示是否覆盖。
10、查看文件内容:cat 文件名
文件内容一次性显示出来。
cat t4.txt
cat -n t4.txt 显示行号
11、分页查看文件文件内容:more 文件名 一次性加载文件所有内容到内存,分页显示
按回车翻一行、按空格翻一页
more t4.txt
12、分页查看文件文件内容:less 文件名 分页加载文件所有内容到内存,分页显示
less t4.txt
按回车翻一行、按空格翻一页,按q退出查看
13、查看文件的头10行:head [选项] 文件名
head t4.txt
head -n 5 t4.txt
14、查看文件的后10行:tail [选项] 文件名
tail t4.txt
tail -n 5 t4.txt
15、echo:输出系统变量或者常量的值到命令行终端。
echo $JAVA_HOME
echo $PATH
echo Hello World!
(Windows中如下):
JAVA_HOME=D:\DPFS\Java\jdk1.8.0_101
PATH=%JAVA_HOME%\bin;.......
CLASSPATH=%JAVA_HOME%\lib;.
16、把前一个查看命令的结果输出到指定的文件中: 查看命令 > 文件名
ls > ret.txt:如果目标文件不存在,则新建一个文件;如果目标文件已存在,则把文件以前的内容覆盖。
ls -al > ret.txt
cat ret.txt > t3_new.txt 文件内容的复制
cat t4.txt > t3_new.txt
17、把前一个查看命令的结果追加输出到指定的文件中:查看命令 >> 文件名
如果目标文件不存在,则新建一个文件
如果目标文件已存在,则在文件原来内容的基础上进行追加
ls > ret.txt
ls -al >> ret.txt
cat t4.txt >> ret.txt

linux中关于日期和时间的操作命令

1、查看或者设置系统的日期或者时间:date
date 查看系统当前的完整的日期和时间
date +%Y 系统当前的年份(加号不能省略)
date +%m 系统当前的月份
date +%d 系统当前的日期
date '+%Y-%m-%d %H:%M:%S' 按yyyy-MM-dd HH:mm:ss格式显示
date -S '2020-10-20 10:20:30' 设置当前的系统时间
2、查看系统日历:cal
cal:查看当前月份的日历
cal 2020:查看指定年份的日历

linux中关于搜索文件或者目录的命令

1、find (搜索范围)(搜索标准) 关键字
|->-name:默认按名称搜索(文件或者目录所在的路径也在搜索范围之内)
|->-size:按文件大小搜索
|->-user:按文件的所有者搜索
find *.txt:搜索当前目录下,所有的.txt文件
find *e*:搜索当前目录下,所有名称中包含e的那些文件或者目录
find /etc *.txt 搜索/etc目录下所有.txt文件
find /etc -size -5k 搜索/etc目录下所有小于5k的文件(大于5k是+5k)
find /etc -user zhangsan 搜索/etc目录下所有的所有者是zhangsan的文件和目录
2、locate:在整棵目录树中搜索文件或者目录,都是根据名称搜索,效率高。
语法:locate 要搜索的文件名
说明:locate指令可以快速在整个系统中定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻。
updatedb:更新locate数据库(要扫描所有文件,比较慢)。
locate *.txt:查找文件名含有txt的所有文件所在位置。
3、搜索过滤命令,在前一个搜索命令的结果中进行按名称进一步过滤:
搜索命令 | grep (选项) 过滤条件
查看命令 | grep (选项) 过滤条件
find *.txt | grep new:搜索当前目录下,所有名称包含new的.txt文件。
find /etc -size -5k | grep firefox:所有小于5k的名称包含new的firefox文件。
cat t1.txt | grep beijing:在t1.txt中所有名称包含beijing的字符串。
cat t1.txt | grep -ni beijin:同上,同时显示行号并忽略大小写(-n是只显示行号,-i是只忽略大小写)。
ls -al | grep new:以列表的形式显示全部的包含new的文件。

linux中有关压缩和解压的命令

压缩或者解压单个文件

1、gzip 文件名:压缩单个文件,生成一个.gz的压缩包,并且会把原来的文件删除。
示例:
gzip ret.txt

2、gunzip .gz压缩包名:解压.gz压缩包,并且会把原来的.gz压缩包删除。
示例:
gunzip ret.txt.gz

压缩(打包)或者解压多个文件和目录(zip)

1、zip [选项] XXX.zip 将要压缩的内容
功能描述:将是指定文件或目录压缩成XXX.zip文件,用于压缩所有文件结构。
 选项说明:
-r:递归压缩,即压缩目录
语法:zip 目标压缩包名称(通常使用.zip压缩包) 文件或者目录列表
示例:
zip test.zip ret.txt t1.txt test2
zip mytest.zip test.zip t3_new.txt t4.txt test2

2、unzip [选项] XXX.zip
常用选项:
 -d 目录:指定解压后文件的存放目录
语法:unzip 压缩包名(.zip) -d 解压目录名:将指定的.zip压缩包解压到当前目录(或者指定目录)。
示例:
unzip test.zip -d test3

压缩(打包)或者解压多个文件和目录(tar)

tar [选项] XXX.tar.gz [打包的内容]
功能描述:打包或者解压文件
 选项说明:
-c:产生.tar.gz打包文件
-v:显示详细信息
-f:指定压缩后的文件名
-z:打包同时压缩
-x:解压.tar.gz文件
-C: 指定解压到哪个目录

|->c:打包或者压缩(通用语法:tar -zcvf)
语法:tar [选项] 目标压缩包名称(xxx.tar.gz) 文件或者目录列表
tar -zcvf xxx.tar.gz 文件或者目录列表
tar -zcvf mytar.tar.gz mytest.zip ret.txt t1.txt test2

|->x: 解压(通用语法:tar -zxvf)
语法:tar [选项] 压缩包名(xxx.tar.gz) -C 解压目录名
将指定的.tar.gz压缩包解压到当期目录(或者指定目录)
tar -zxvf xxx.tar.gz -C 解压目录名
tar -zxvf mytar.tar.gz -C /opt/testDir/test5

文件或者目录与组

文件或者目录与组基本介绍

1、在linux中,每一个用户都至少属于一个组,用户不能独立于组存在,一个用户可以属于多个组。
2、在linux中,每一个文件或者目录也必须属于一个组,而且只能属于一个组,默认情况下,文件所有者所属的主组就是文件所属的组。
3、文件或者目录通过组来控制哪些用户可以对它进行哪些操作,即文件或者目录的访问权限。
4、在文件或者目录看来,linux系统中所有的用户分为三类:
所有者:默认情况下,文件或者目录的所有者都是创建者,可以修改;
同组用户:跟文件或者目录属于同一个组的用户;
其它组用户:既不是文件或者目录的所有者,也不是同组用户。

查看文件的所有者和所在的组:

语法:ls -l

ls –ahl 文件名
(a-all,h-human,l-list)

修改文件或者目录的所有者

chown 新所有者 文件名
chown newowner:newgroup file 同时修改用户的所有者和所有组
-R 如果是目录则使其下所有子文件或目录递归生效
功能说明:把文件所有者修改为指定的用户(子目录不会生效,要改子目录的话要加上 -R 关键字)。

语法:chown 新的所有者 文件名或者目录名
示例:
chown zhangsan t1.txt
chown -R zhangsan test3

语法:chown 新的所有者:新的组 文件名或者目录名(改所在组)
示例:
chown zhangsan:dev t4.txt
chown zhangsan:dev test2
chown -R zhangsan:dev test2 递归修改目录的所有者和所在的组

修改文件或者目录的所在组

chgrp 新组名 文件名
-R 如果是目录则使其下所有子文件或目录递归生效
功能描述:把文件所在组改为指定组

语法:chgrp 新的组 文件名或者目录名
chgrp dev t2.txt 表示将t2.txt所在组改为dev。
chgrp -R dev test3 表示将test3所在组改为dev,递归改,包括所有子目录。

Linux 中文件或者目录的权限管理

准备工作:

1、一个用户至少属于一个组,也可以属于多个组;
一个文件或者目录也必须属于一个,并且只能属于一个组;
在一个文件或者目录看来,linux 系统中所有的用户可以分为三类:
所有者、同组用户、其它组用户。
2、这里所说的权限都是文件和目录的权限。在 Linux 中,每一个文件和目录都有自己的访问权限,通过文件列表可以查看到。

RWX 权限详解
  • rwx 作用到文件
  1. [ r ]代表可读(read): 可以读取,查看
  2. [ w ]代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.
  3. [ x ]代表可执行(execute):可以被执行
  • rwx作用到目录
  1. [ r ]代表可读(read): 可以读取,ls查看目录内容
  2. [ w ]代表可写(write): 可以修改,目录内创建+删除+重命名目录
  3. [ x ]代表可执行(execute):可以进入该目录
    rwx用数字表示
    r=4(即2²),w=2(即2¹),x=1(即2º)
文件或者目录的三种权限

在linux中,任何文件或者目录都有三种权限:读(Read)、写(Write)、执行(Execute)。

  • 对于文件而言:
    读:可以读取、查看文件的内容, 比如:cat、more、less、head、tail等。
    写:可以修改文件的内容,比如:vi或者vim等。
    执行:如果该文件是可执行文件(.sh),可以直接运行,比如:./xxx.sh。
  • 对于目录而言:
    读:可以读取、查看目录下边的内容,比如:ls等。
    写:可以修改目录中的内容,创建子目录、删除子目录、创建文件、删除文件、重名文件或者目录。
    执行:可以进入该目录, 比如:cd等。
文件或者目录的权限控制

在linux中,任何一个文件或者目录都有三部分权限:所有者权限、同组用户权限、其它组用户权限。
1、第一部分权限
所有者权限,文件或者目录的所有者对该文件所拥有的权限,使用r、w、x分表表示读、写、执行的权限。比如:rwx:拥有读写执行的权限,r-x:拥有读和执行的权限,r--:只拥有读的权限,---:没有任何权限。
2、第二部分权限
同组用户权限,文件或者目录的同组用户对该文件所拥有的权限,使用r、w、x分别表示读、写、执行的权限。
3、第三部分权限
其它组用户权限,文件或者目录的其它组用户对该文件所拥有的权限,使用r、w、x分别表示读、写、执行的权限。
在这里插入图片描述

查看文件或者目录的权限:

ls -aul

修改文件/目录权限的指令chmod

1、第一种方式:通过r、w、x变更变更权限

  1. chmod u=rwx,g=rx,o=x 文件目录名
  2. chmod o+w 文件目录名
  3. chmod a-x 文件目录名
    说明:u、g、o、a分别代表文件所有者、文件所在组用户、其它组用户、所有用户
    =、+、-分别代表设置权限、增加权限、去掉权限

2、第二种方式:通过数字变更权限
chmod 一组三个数字 文件目录名
说明:r=4,w=2,x=1,rwx=4+2+1=7

每一个文件或者目录都有三部分权限,每一部分权限都可以用一组数据之和来表示,三部分权限就是一组三个数据序列:
rw- r-x r-x:代表655;
rwx r-x -wx:代表753;
rwxrwxrwx:代表777;

示例:
chmod 777 t5.txt
chmod 753 t5.txt

  • 修改文件或者目录的权限
    chmod
    用r、w、x分辨表示读、写、执行的权限,
    用u、g、o、a分别表示给所有者、同组用户、其它组用户、所有用户修改权限
    用+、-、=分别表示给指定的用户增加、减少、设置对应的权限
    chmod g-w,o+w t5.txt
    chmod g=rwx t5.txt
    chmod a-r t5.txt

linux中的网络管理

(快捷键:tab键自动补全)
1、linux中的配置文件: vim /etc/sysconfig/network-scripts/ifcfg-ens33
2、其中以下几项需要配置:
BOOTPROTO="static"
ONBOOT="yes"
IPADDR=?(设置静态IP地址,从虚拟网络编辑器设置的范围中选取一个)
GATEWAY=?(设置网关,从虚拟网络编辑器NAT设置中查看)
DNS=?(设置DNS,和网关保持一致)
例如:

IPADDR=192.168.11.128
GATEWAY=192.168.11.2
DNS=192.168.11.2

3、其中IPADDR、GATEWAY、DNS在VMware中查看(编辑--虚拟网络编辑器--选择外部连接方式为NAT模式的)。
在这里插入图片描述
修改配置后重启linux才生效:reboot

  • 测试
    Linux终端查看配置后的IP地址:ifconfig
    Windows终端查看IP地址:ipconfig
    1、Linux终端ping外网:ping www.baidu.com
    2、Linux终端ping Windows:ping Windows终端IP
    3、Windows ping Linux:ping Linux终端IP
    都是通的。至此,Linux静态IP设置完成。
    (如果还不行将DNS改为DNS1)

linux中的进程管理

概述

1、线程:一个程序的线路;进程:一个程序的执行,一个进程占用一个端口。
2、在Linux中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个ID号。每一个进程,都会对应一个父进程。
3、进程有两种运行方式:前台和后台。前台方式是目前用户可以在前台操作的,后台方式是实际在运行,但用户在前台看不见。
4、一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才结束。

查看系统运行的进程(基本语法)

1、ps 参数
参数说明:
ps –a:显示当前终端下的所有进程信息
ps –u:以用户的格式显示进程信息
ps –x:显示后台进程运行的参数
ps –e:显示所有进程信息
ps –f:以全格式显示进程信息
示例:
ps //只会显示应用进程
ps -e //显示所有进程
ps -ef //以全格式的形式显示所有进程

2、结果说明:
•USER:用户名称
•PID:进程号
•%CPU:进程占用CPU的百分比
•%MEM:进程占用物理内存的百分比
•VSZ:进程占用的虚拟内存大小(单位:KB)
•RSS:进程占用的物理内存大小(单位:KB)
•TT:终端名称,缩写.
•STAT:进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等
•STARTED:进程的启动时间
•TIME:CPU时间,即进程使用CPU的总时间
•COMMAND:启动进程所用的命令和参数,如果过长会被截断显示
•PPID 父进程的ID
•C CPU使用的资源百分比
•PRI指进程的执行优先权(Priority的简写),其值越小越早被执行
•SZ 使用掉的内存大小
在这里插入图片描述
在这里插入图片描述

3、查看linux系统中某一些软件或者应用是否处于启动状态
ps -ef | grep mysql

4、关闭进程
kill 选项 进程ID
killall 进程名称(支持通配符)
选项说明:
-9:表示强迫进程立即停止。
先使用ps命令查看进程的PID,再使用命令:kill -9 PID。
5、根据进程查看端口号:
sudo netstat -naop | grep 进程的PID

linux中服务管理

概述

服务是支持Linux运行的一些必要程序,本质上也是进程,叫守护进程。守护进程通常默默地运行在后台,为应用程序提供必要支撑,比如sshd、防火墙等。

服务管理指令的基本语法(防火墙)

1、命令:
systemctl [start、stop、restart、reload、status、enable] 服务名称
2、功能描述:开启、关闭、重启、重新加载、查看服务状态、开机启动
3、CentOS7之前,使用命令service 服务名称 [start、stop、restart、reload、status、enable]
4、示例:
systemctl status firewalld 查看防火墙运行状态
systemctl stop firewalld 关闭防火墙
systemctl start firetalld 开启防火墙
systemctl enable firewalld 设置防火墙开机启动

netstat命令

1、netstat命令用于查看系统网络服务情况。

2、语法:netstat 选项
选项说明:
-an 按一定顺序排列输出
-p 显示哪个进程在调用

3、示例:
netstat -anp 查看所有
netstat -anp|grep sshd 查看网络服务sshd的状态

ping命令

1、语法:
ping 选项 目标主机

2、功能描述:
是一种网络检测工具,它主要是用检测远程主机是否正常,或是两部主机间的介质是否为断、网线是否脱落或网卡故障。

curl命令

1、语法:
curl 选项 url

2、功能描述:用来发送HTTP请求。
-X参数:指定请求方式
-v参数:显示响应结果
-u参数:携带用户名/密码
-H参数:携带请求消息头信息
在这里插入图片描述

linux中软件包的管理:软件安装包

RPM包管理
  • 概述
    1、一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。
    2、它生成具有.RPM扩展名的文件。RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,类似windows的setup.exe,这一文件格式名称虽然打上了RedHat的标志,但理念是通用的。
    3、Linux的分发版本都有采用(suse,redhat, centos等等),可以算是公认的行业标准了。
  • RPM包的查询指令
    rpm –qa:查询所安装的所有软件包
    rpm –qa|more:分页查询所安装的所有软件包
    rmp –qa|grep xxx:过滤查询安装的指定软件包
    示例:
    查看当前系统中已经安装的rpm软件包:rpm -qa|grep firefox
  • RPM包的卸载指令
    语法:rpm –e 选项 软件包名称
    选项说明:
    --nodeps 表示强制删除,用于被删除的软件包有依赖的情况
    示例:
    rpm -e firefox(卸载rpm软件包)
  • RPM包的安装指令
    语法:rpm 选项 RPM包全路径名
    选项说明:
    -i=install 安装
    -v=verbose 提示
    -h=hash 进度条
    示例:
    安装rpm包:rpm -ivh xxx.rpm
  • 安装firefox
    1、在目录/run/media/root/CentOS-8-4-2105-x86_64-dvd/AppStream/Packages下找到firefox安装包。
    2、将安装包拷贝到opt目录
    cp firefox-45.4.0-1.el7.centos.x86_64.rpm /opt
    3、安装firefox
    rpm -ivh firefox-45.4.0-1.el7.centos.x86_64.rpm
YUM包管理
  • 概述
    1、Yum 是一个Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器(在公网上)自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。
    2、注意:使用YUM的前提是可以连接外网。
  • 查询指令
    yum list(installed) | grep xx
    功能描述:查询YUM服务器上的[已经安装到本地的]软件包
    示例:
    yum list installed | grep firefox:表示查看当前系统中已经安装的rpm软件包
  • 安装及卸载
    1、yum install 包名
    功能描述:下载安装
    示例:
    安装rpm包:yum install firefox
    2、yum remove 包名
    功能描述:YUM包的卸载
    示例:
    卸载rpm软件包:yum remove firefox.x86_64

linux中搭建JavaEE开发环境

安装JDK

1、解压
在这里插入图片描述
2、配置环境变量
在这里插入图片描述

export JAVA_HOME=/opt/jdk8/inspath/jdk1.8.0_121
export JRE_HOME=/opt/jdk8/inspath/jdk1.8.0_121/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH

在这里插入图片描述
3、使配置文件生效
在这里插入图片描述
4、测试安装成功
在这里插入图片描述
5、编写h.java编译并运行
在这里插入图片描述

安装 Tomcat

1、解压文件
在这里插入图片描述
2、启动Tomcat
在这里插入图片描述
查看进程:
在这里插入图片描述
3、Linux里面访问:
在这里插入图片描述
4、外部访问:
要使用Linux的IP(不能再是localhost了)
在这里插入图片描述
这里访问不到,所以要关闭 Linux 的防火墙。
查看防火墙状态:
在这里插入图片描述
关闭防火墙:
在这里插入图片描述
再次访问:
在这里插入图片描述

安装 MySQL

参考8.0版本安装指南链接
1、解压文件
在这里插入图片描述

2、修改存放解压文件的文件名
在这里插入图片描述

3、进入解压目录创建 data 文件夹
在这里插入图片描述

4、创建 /etc/my.cnf
8.0 这个版本通过二进制文件解压安装的话是不存在的,需要手动创建一个。
在这里插入图片描述
输入以下信息:

[mysqld]
port=3306
basedir=/opt/mysql/mysql-8.0.22
datadir=/opt/mysql/mysql-8.0.22/data
max_connections=10000
max_connect_errors=10
character-set-server=UTF8MB4
default-storage-engine=INNODB
lower_case_table_names=1
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

在这里插入图片描述

5、创建用来执行 mysqld 命令的 Linux 用户
创建 MySQL 用户,用来执行 MySQL 的命令 mysqld,此命令用来初始化 msyql 基础信息。可以使用其他用户,例如叫做 mydb 等,但不推荐。
创建组 mysql, 创建用户,并指定组。
在这里插入图片描述

6、授权

chown -R mysql.mysql /opt/mysql/mysql-8.0.22
chmod 755 /opt/mysql/mysql-8.0.22
chmod 644 /etc/my.cnf

在这里插入图片描述

7、初始化 MySQL
使用 MySQL 的 mysqld 命令初始化数据库的基本信息。切换到 mysql-8.0.22/bin目录下执行。
命令(生成 MySQL 数据库基础数据):

./mysqld --user=mysql --basedir=/opt/mysql/mysql-8.0.22 --datadir=/opt/mysql/mysql-8.0.22/data --lower_case_table_names=1 --initialize

参数说明:
--initialize:初始化 mysql,创建 mysql 的 root, 随机生成密码。记住密码,登录 msyql 使用。
--user:执行 msyqld 命令的 linux 用户名。
--datadir:mysql 数据文件的存放位置,目录位置参照本机的设置。
--basedir : msyql 安装程序的目录,目录位置参照本机的设置。
--lower_case_table_names=1:不区分大小写(这个根据自己需求来,可以先搜索看看)

该命令执行后,会生成一个临时的 mysql 数据库 root 用户的密码,请先拷贝出来记住,后续第一次登录 mysql 需要使用。
在这里插入图片描述
最后一行登录密码:pN)O%l1pR42D

8、启用安全功能
在服务器与客户机之间来回传输的所有数据进行加密。通过证书提供了身份验证机制,MySQL 命令程序 mysql_ssl_rsa_setup 提供了开启数据加密功能,生成数字证书。
在mysql-8.0.22/bin目录下执行命令:
./mysql_ssl_rsa_setup --datadir=/opt/mysql/mysql-8.0.22/data
在这里插入图片描述

9、添加 MySQL 服务到系统,并完成授权
(1)cd /opt/mysql/mysql-8.0.22
(2)cp -a ./support-files/mysql.server /etc/init.d/mysql
(3)chmod +x /etc/init.d/mysql
(4)chkconfig --add mysql
在这里插入图片描述

10、启动 MySQL
启动 MySQL 服务,mysql-8.0.22/bin 目录下执行命令:
./mysqld_safe &
(其中&符号表示后台启动,不加&符号代表前台启动),输入命令后按Enter。

  • 前台启动
    在这里插入图片描述
    启动后 MySQL 会一直占用这个命令行终端,所以我们再开一个窗口:
    在这里插入图片描述
  • 后台启动
    在这里插入图片描述
  • MySQL 启动(便捷版)
    service mysql start
    在这里插入图片描述
    这种方式,方便快捷!
  • 查看进程
    确认msyql是否启动,查看进程 ,使用:ps -ef | grep mysql
    在这里插入图片描述
    登录过程中遇到此问题,加上以下命令:
    sudo ln -s /usr/lib64/libtinfo.so.6.1 /usr/lib64/libtinfo.so.5
    再次登录即可
    在这里插入图片描述
    登录成功:
    在这里插入图片描述

11、修改密码
修改 MySQL 的密码。
命令语法:
alter user '用户名'@'主机域名或ip' identified by '新密码'
例如:
alter user 'root'@'localhost' identified by '123';
在这里插入图片描述

12、授权远程访问
授权远程访问,在没有授权之前只能在本机访问 MySQL,远程授权就是让其他计算机通过网络访问 MySQL(这样远程客户端才能访问)。
授权命令:grant
语法:grant all privileges on *.* to root@'%' identified by '123';
参数:
其中*.* 的第一个*表示所有数据库名,第二个*表示所有的数据库表;
root@'%' 中的 root 表示用户名,%表示ip地址,%也可以指定具体的 ip 地址,比如 root@localhost,root@192.168.235.130等。
(以上为 5.7.18 版本)
---------------------------分割线---------------------------
(以下为8.0.22版本)
执行授权命令:
(1)use mysql;
(2)update user set host='%' where user='root';
更新权限信息,执行flush刷新权限:flush privileges;
在这里插入图片描述
关闭防火墙:systemctl stop firewalld
注:成功执行后, 表明该 MySQL已经启动了远程连接登录,如果这时候你使用工具进行连接时候是失败的,你需要查看下你的服务器安全组是否开放了 3306(MySQL 连接默认端口)端口。
在这里插入图片描述
测试连接成功。
13、设置 MySQL, 开机自启动
(1)复制 MySQL 安装目录下的 mysql.server:
cp /opt/mysql/mysql-8.0.22/support-files/mysql.server /etc/rc.d/init.d/mysqld
(2)赋予权限:
chmod +x /etc/init.d/mysqld
(3)添加服务:
chkconfig --add mysqld
(4)查看服务列表:
chkconfig --list
注:
1、MySQL 安装目录为: /usr/lcoal/mysql - 执行第一个命令时,注意路径。
2、执行(4)后,看到 MySQL 行数据 - 3,4,5 都为 "开" 或 "on" 表示成功。
在这里插入图片描述
14、关闭mysql服务
mysql-5.0.22/bin 目录下执行:
./mysqladmin -uroot -p shutdown
输入密码关闭
查看 MySQL 进程,已经没有 mysqld_safe
15、修改数据库编码
查看数据库编码:
show variables where Variable_name like '%char%';
修改 MySQL 的字符集:在 MySQL 客户端执行如下命令
set character_set_client=utf8;
set character_set_connection=utf8;
set character_set_database=utf8;
set character_set_results=utf8;
set character_set_server=utf8;
set character_set_system=utf8;
set collation_connection=utf8;
set collation_database=utf8;
set collation_server=utf8;

posted @ 2022-05-17 21:51  YU_UY  阅读(244)  评论(0编辑  收藏  举报