开始时间:2022-03-11
课程链接:动力节点
linux简介
一种开源的、免费的操作系统,安装在计算机硬件上、用来管理计算机的硬件和软件资源的系统软件。
linux注重安全性、稳定性、高并发处理能力,没有优异的可视化界面
linux安装
我们安装在虚拟机上的,具体操作参考动力节点的课程本身就行
我们在应用程序->终端里面键入命令行
这个类似于Windows下的cmd
Linux目录结构
Linux没有炫目的可视化操作界面,它的操作大部分都是直接执行命令,而可执行文件都是保存在相应的目录中的,所以我们对linux的操作大多数时候都是查找和执行这些可执行文件的。
linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录。
来看看目录结构
- root : 该目录为系统管理员目录,root是具有超级权限的用户。
- ==bin ->usr/bin ==: 存放系统预装的可执行程序,这里存放的可执行文件可以在系统的任何目录下执行。
- usr是linux的系统资源目录,里边存放的都是一些系统可执行文件或者系统以来的一些文件库。
- usr/local/bin:存放用户自己的可执行文件,同样这里存放的可执行文件可以在系统的任何目录下执行。
- lib->usr/lib: 这个目录存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库。
- boot : 这个目录存放启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
- dev: dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,Linux中的设备也是以文件的形式存在。
- etc: 这个目录存放所有的系统管理所需要的配置文件
9)home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名以用户的账号命名,叫作用户的根目录;用户登录以后,默认打开自己的根目录。 - var : 这个目录存放着在不断扩充着的东西,我们习惯将那些经常被修改的文件存放在该目录下,比如运行的各种日志文件。
- mnt : 系统提供该目录是为了让用户临时挂载别的文件系统,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容
- opt: 这是给linux额外安装软件所存放的目录。比如你安装一个Oracle数据库则就可以放到这个目录下,默认为空。
- tmp: 这个目录是用来存放一些临时文件的。
层级式的目录结构:
bin ->usr/bin:系统的可执行文件,可以在任何目录下执行
usr/local/bin:用户自己的可执行文件,可以在任何目录下执行
etc:存放配置文件。配置环境变量(/etc/profile)。
home:每一个用户的根目录,用来保存用户私人的数据,默认情况下,目录名和自己的用户名相同。
opt:存放额外安装的软件。相当于windows系统的中Program files目录。
linux的远程操作:
不直接在服务器上操作,而是通过远程操作
Xshell:linux的终端模拟软件。
安装并破解:解压、破解(运行两个.bat文件)、启动(Xshell)
连接远程linux系统:创建会话:
查看linux系统的ip地址:ifconfig
我的linux上的ip为 192.168.91.128
配置好xshell后就可以直接操作Linux了
这里注意设置一下字体
文件-属性-外观
我这个默认给的是黑色字体,还是日本字,啥都看不到,修改后才好
Xftp:文件传输软件。
安装并破解:解压、破解(运行两个.bat文件)、启动(Xftp)
连接远程linux系统:创建会话:
查看linux系统的ip地址:ifconfig
创建好后跟Xshell操作步骤差不多,连上的话如图所示,右边就是linux系统
在左边找到自己需要安装的软件
然后安装到右边
我们自己装的软件不要装载root下,而是要在opt下面
双击左边上传文件
上传完后可以在xshell中查询得到结果
vi和vim
- 一般模式(只读模式): 以vi/vim 命令打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中,你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』快捷键来处理档案内容,也可以使用『复制、贴上』快捷键来处理你的文件数据。
- 编辑模式:按下i, I, o, O, a, A, r, R等任何一个字母之后才会进入编辑模式, 一般来说按i即可.回到一般模式按 ESC
- 命令行模式:从一般模式,按shift+: 进入命令行模式,在这个模式当中,可以提供你相关指令,完成读取、存盘、替换、离开vim 、显示行号等的动作则是在此模式中达成的 !
- 输入: q!-----不保存强制退出编辑器
wq-----保存并且退出编辑器
q------只是退出编辑器
操作一下
[root@localhost opt]# mkdir testDir
[root@localhost opt]# ls
jdk-8u121-linux-x64.tar.gz rh testDir
[root@localhost opt]# cd testDir
[root@localhost testDir]# ls
[root@localhost testDir]# vim test.txt
vim快捷键
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下
注册账号
添加用户:useradd [选项] 用户名
useradd cancan
在/home目录下创建用的根目录,目录名称默认跟用户名相同
在linux中任何一个用户都至少属于一个组,新建用户时如果不指定组,则会新建一个组,组名跟用户名相同,并且把该用户添加到该组中
给用户设置密码:passwd 用户名
passwd lisi 敲回车
这个时候输入密码是不会回显的
删除用户
删除用户:userdel 用户名
删除用户的同时级联删除它的主目录 userdel -r 用户名
只能用root删除这些用户
查看用户信息
查看用户信息:id 用户名
切换用户
切换用户:su 用户名
su zhangsan
*从权限高的用户切换权限低的用户,不需要密码验证;
从权限低的用户切换到权限高的用户,必须密码验证。
组概念
Linux的组类似于角色,系统可以对有共性的多个用户进行统一的管理。每一个用户都至少属于一个组,创建用户时如果不指定组,会默认创建一个跟用户名相同的组,并且把新创建的用户分配到组中,root用户默认属于root组。
添加组
groupadd 组名
groupadd dev
删除组:groupdel 组名
groupdel dev
把用户添加到组中(-a就是add):gpasswd -a 用户名 组名
gpasswd -a zhangsan dev
把用户从组中移除(-d 就是delete):gpasswd -d 用户名 组名
gpasswd -d zhangsan dev
添加用户时,指定所属的组(主组):useradd -g 组名 用户名
useradd -g dev lisi
一般创建用户的时候就要指定所属的组,不要让其自成一组
linux中的系统操作命令:
关机:shutdown now 立即关机
shutdown -h xxx 定时关机
shutdown -r now 立即重启
重启:reboot 立即重启
同步数据库:sync
帮助命令
10、linux中的帮助命令:
1)、用来查看linux系统手册上的帮助信息:man 命令
man ls
分屏显示、按回车翻一行、按空格翻一页、按q退出查看。
2)、用来查看命名的内置帮助信息:help 命令
help cd
当然,有网的话直接上网查
文件目录指令
pwd
用于显示当前目录的路径
ls /home
ls 查看当前目录下所有的子目录和文件列表
ls -l /home :以列表形式显示
ls -a /home:显示指定目录下所有的子目录和文件(包括虚拟的目录)
ls -al /home:以列表形式显示指定目录下所有的子目录和文件(包括虚拟的目录)
切换到指定目录
绝对路径
[root@localhost ~]# cd /opt/testDir
相对路径
[root@localhost opt]# cd testDir
返回路径
cd ~ 或者cd :回到自己的主目录
cd .. 回到当前目录的上一级目录
cd .:当前目录
创建目录
在当前路径下创建目录
[root@localhost testDir]# mkdir test2
返回到首页用绝对路径创建目录
[root@localhost /]# mkdir /opt/testDir/test1
注意看,相对是没有斜杠的,绝对是有斜杠的
一次性创建目录以及目录中的目录
[root@localhost testDir]# mkdir -p test3/test4
这样就会在当前路径下创建test3,以及再test3下创建test4
也可以从根目录里创建
[root@localhost /]# mkdir -p /opt/testDir/test5/test6
删除一个空目录:
rmdir 目录名
rmdir test6
注意,删除的文件一定要是在当前相对路径之下,不然找不到,且必须这个目录为空,否则删不掉
创建新文件
[root@localhost testDir]# touch t1.txt t2.txt
需要创几个就写几个
复制文件或者目录:cp [选项] source(源) dest(目标)
cp t1.txt test2 //把t1.txt文件复制到test2目录中
cp -r test2 test5 //把test2目录复制到test5目录中(递归地复制目录)
注意一定要是当前目录下有的,不能隔空操作,和Windows其实是类似的。
删除文件或者目录:rm 文件名或者目录名
rm t1.txt 提示删除文件
rm -f t2.txt 强制删除文件
rm -r test2 提示递归删除目录
rm -rf test5 强制递归删除目录
注意和rmdir区分
移动目录或者文件:mv source(源) dest(目标)
mv test.txt test1
mv test1 test2
[root@localhost test1]# mv t1.txt rename_t1.txt
文件重命名
*如果目标中已经存在该文件或者目录,则会提示是否覆盖。
查看文件内容:cat 文件名
文件内容一次性显示出来。
[root@localhost test1]# cat rename_t1.txt
this is a vim file
I like linux OS
分页查看文件文件内容:more 文件名 一次性加载文件所有内容到内存,分页显示
按回车翻一行、按空格翻一页
more t4.txt
分页查看文件文件内容:less 文件名 分页加载文件所有内容到内存,分页显示
less t4.txt
按回车翻一行、按空格翻一页,按q退出查看
查看文件的头10行:head [选项] 文件名
head t4.txt
head -n 5 t4.txt
查看文件的后10行:tail [选项] 文件名
tail t4.txt
tail -n 5 t4.txt
echo:输出系统变量或者常量的值到命令行终端。
echo $JAVA_HOME
echo $PATH
[root@localhost test1]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
将环境变量配置起来,通过$符号引用
类似在Windows一样
JAVA_HOME=D:\DPFS\Java\jdk1.8.0_101
PATH=%JAVA_HOME%\bin;.......
CLASSPATH=%JAVA_HOME%\lib;.
也可以输出常量
[root@localhost test1]# echo Hello World!
Hello World!
查看命令 > 文件名
把前一个查看命令的结果输出到指定的文件中
如果目标文件不存在,则新建一个文件
如果目标文件已存在,则把文件以前的内容覆盖
比如当前目录下键入ls的结果是
[root@localhost testDir]# ls
t2.txt t3.txt test1 test.txt
那么执行以下语句
ls > ret.txt
就是把上述结果写入ret.txt中
也可以实现,文件内容的复制
cat ret.txt > t3_new.txt
这样能把文本文件的内容复制出去
而使用双箭头>>
则是实现追加
linux中关于日期和时间的操作命令
-
查看或者设置系统的日期或者时间: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' 设置当前的系统时间
-
查看系统日历:cal
cal:查看当前月份的日历
cal 2020:查看指定年份的日历
linux中关于搜索文件或者目录的命令
find [搜索范围][搜索标准] 关键字
find *.txt 搜索当前目录下,所有的.txt文件
[root@localhost testDir]# find *.txt
t2.txt
t3.txt
test.txt
find *e* 搜索当前目录下,所有名称中包含e的那些文件或者目录
目录下的文件也会搜出来
[root@localhost testDir]# find *t*
t2.txt
t3.txt
test1
test1/rename_t1.txt
test.txt
find /etc -size -5k 搜索/etc目录下所有小于5k的文件
[root@localhost testDir]# find test1 -size -5k
test1
test1/rename_t1.txt
find /etc -user zhangsan 搜索/etc目录下所有的所有者是zhangsan的文件和目录
[root@localhost testDir]# find -user root
.
./test.txt
./.test.txt.swp
./test1
./test1/rename_t1.txt
./t2.txt
./t3.txt
搜索还可以用locate,效率比find高一点
locate
在整棵目录树中搜索文件或者目录,都是根据名称搜索,效率高。
(everything软件是不是也基于此呢?)
需要先同步再使用
updatedb
locate 关键字
[root@localhost testDir]# updatedb
[root@localhost testDir]# locate *.txt
/opt/test.txt
/opt/testDir/.test.txt.swp
/opt/testDir/t2.txt
/opt/testDir/t3.txt
/opt/testDir/test.txt
准备过程长,搜索速度快
grep
使用grep进行过滤
[root@localhost testDir]# find *.txt|grep t
t2.txt
t3.txt
test.txt
[root@localhost testDir]# find -size -5k|grep 1
./test1
./test1/rename_t1.txt
[root@localhost testDir]# cat t2.txt|grep 1
[root@localhost testDir]# vim t2.txt
[root@localhost testDir]# cat t2.txt|grep this
this is the first line
this is the first line
[root@localhost testDir]# ls
t2.txt t3.txt test1 test.txt
[root@localhost testDir]# ls |grep e
test1
test.txt
压缩命令
gzip和gunzip
[root@localhost testDir]# gzip t2.txt
[root@localhost testDir]# ls
t2.txt.gz t3.txt test1 test.txt
[root@localhost testDir]# gunzip t2.txt.gz
[root@localhost testDir]# ls
t2.txt t3.txt test1 test.txt
zip和unzip
先写zip 再加打包后的名称 后面再跟文件名
[root@localhost testDir]# ls
t2.txt t3.txt test1 test.txt
[root@localhost testDir]# zip test.zip t2.txt t3.txt test.txt
adding: t2.txt (deflated 95%)
adding: t3.txt (deflated 60%)
adding: test.txt (stored 0%)
[root@localhost testDir]# ls
t2.txt t3.txt test1 test.txt test.zip
同理可以解压
unzip 压缩包 -d 指定目录
[root@localhost testDir]# unzip test.zip -d test3
Archive: test.zip
inflating: test3/t2.txt
inflating: test3/t3.txt
extracting: test3/test.txt
[root@localhost testDir]# ls
t2.txt t3.txt test1 test3 test.txt test.zip
tar命令
使用tar来打包,有几个关键词
-c:产生.tar.gz打包文件
-v:显示详细信息
-f:指定压缩后的文件名
-z:打包同时压缩
-x:解压.tar.gz文件
-C: 指定解压到哪个目录
那我们进行一个打包操作
[root@localhost testDir]# tar -zcvf mytar.tar.gz test.zip t2.txt t3.txt
test.zip
t2.txt
t3.txt
[root@localhost testDir]# ls
mytar.tar.gz t2.txt t3.txt test1 test3 test.txt test.zip
解压操作
[root@localhost testDir]# tar -zxvf mytar.tar.gz -C test1
test.zip
t2.txt
t3.txt
[root@localhost testDir]# ls
mytar.tar.gz t2.txt t3.txt test1 test3 test.txt test.zip
[root@localhost testDir]# cd test1
[root@localhost test1]# ls
rename_t1.txt t2.txt t3.txt test.zip
文件或目录与组
在文件或者目录看来,linux系统中所有的用户分为三类:
- 所有者:默认情况下,文件或者目录的所有者都是创建者,可以修改
- 同组用户:跟文件或者目录属于同一个组的用户
- 其它组用户:既不是文件或者目录的所有者,也不是同组用户
查看文件的所有者和所在的组:
[root@localhost test1]# ls -l
总用量 16
-rw-r--r--. 1 root root 35 3月 22 22:28 rename_t1.txt
-rw-r--r--. 1 root root 702 3月 23 09:07 t2.txt
-rw-r--r--. 1 root root 405 3月 23 08:48 t3.txt
-rw-r--r--. 1 root root 675 3月 23 09:16 test.zip
修改所有者
chown(change owner)
[root@localhost test1]# chown chenzhijin t2.txt
[root@localhost test1]# ls -l
总用量 16
-rw-r--r--. 1 root root 35 3月 22 22:28 rename_t1.txt
-rw-r--r--. 1 chenzhijin root 702 3月 23 09:07 t2.txt
-rw-r--r--. 1 root root 405 3月 23 08:48 t3.txt
-rw-r--r--. 1 root root 675 3月 23 09:16 test.zip
chown 新的所有者:新的组 文件名或者目录名
可以实现组的所有者也进行改变
[root@localhost test1]# chown chenzhijin:dev t3.txt
[root@localhost test1]# ls -l
总用量 16
-rw-r--r--. 1 root root 35 3月 22 22:28 rename_t1.txt
-rw-r--r--. 1 chenzhijin root 702 3月 23 09:07 t2.txt
-rw-r--r--. 1 chenzhijin dev 405 3月 23 08:48 t3.txt
-rw-r--r--. 1 root root 675 3月 23 09:16 test.zip
修改文件或者目录的所在组:chgrp 新的组 文件名或者目录名
[root@localhost test1]# chgrp dev t2.txt
[root@localhost test1]# ls -l
总用量 16
-rw-r--r--. 1 root root 35 3月 22 22:28 rename_t1.txt
-rw-r--r--. 1 chenzhijin dev 702 3月 23 09:07 t2.txt
-rw-r--r--. 1 chenzhijin dev 405 3月 23 08:48 t3.txt
-rw-r--r--. 1 root root 675 3月 23 09:16 test.zip
文件或者目录的三种权限:
在linux中,任何文件或者目录都有三种权限:读(Read)、写(Write)、执行(Execute)
对于文件而言:
- 读:可以读取、查看文件的内容, 比如:cat、more、less、head、tail等。
- 写:可以修改文件的内容,比如:vi或者vim等
- 执行:如果该文件是可执行文件(.sh),可以直接运行,比如:./xxx.sh。
对于目录而言:
- 读:可以读取、查看目录下边的内容,比如:ls等
- 写:可以修改目录中的内容,创建子目录、删除子目录、创建文件、删除文件、重名文件或者目录
- 执行:可以进入该目录, 比如:cd等。
文件或者目录的权限控制:
在linux中,任何一个文件或者目录都有三部分权限:所有者权限、同组用户权限、其它组用户权限。
- 第一部分权限:所有者权限,文件或者目录的所有者对该文件所拥有的权限,使用r、w、x分表表示读、写、执行的权限。比如:rwx:拥有读写执行的权限,r-x:拥有读和执行的权限,r–:只拥有读的权限,—:没有任何权限。
- 第二部分权限:同组用户权限,文件或者目录的同组用户对该文件所拥有的权限,使用r、w、x分表表示读、写、执行的权限。
- 第三部分权限:其它组用户权限,文件或者目录的其它组用户对该文件所拥有的权限,使用r、w、x分表表示读、写、执行的权限。
[root@localhost test1]# ls -l
总用量 16
-rw-r--r--. 1 root root 35 3月 22 22:28 rename_t1.txt
第一段rw是所有者权限rw,第二段r是同组权限,第三段r是其他组用户权限
文件是横杠
目录是d
改权限
[root@localhost test1]# chmod u-w t2.txt
[root@localhost test1]# ls -l
可以看出权限已被修改
总用量 16
-rw-r--r--. 1 root root 35 3月 22 22:28 rename_t1.txt
-r--r--r--. 1 chenzhijin dev 702 3月 23 09:07 t2.txt
-rw-r--r--. 1 chenzhijin dev 405 3月 23 08:48 t3.txt
-rw-r--r--. 1 root root 675 3月 23 09:16 test.zip
再改改不了
-- 插入 -- W10: 警告: 正在修改一个只读文件
修改文件或者目录的权限:chmod
用r、w、x分辨表示读、写、执行的权限,
用u、g、o、a分别表示给所有者、同组用户、其它组用户、所有用户修改权限
用+、-、=分别表示给指定的用户增加、减少、设置对应的权限
chmod g=rwx t2.txt
[root@localhost testDir]# chmod g=rwx t2.txt
[root@localhost testDir]# ls -l
总用量 20
-rw-r--r--. 1 root root 824 3月 23 09:33 mytar.tar.gz
-rw-rwxr--. 1 root root 702 3月 23 09:07 t2.txt
-rw-r--r--. 1 root root 405 3月 23 08:48 t3.txt
drwxr-xr-x. 2 root root 71 3月 23 09:34 test1
drwxr-xr-x. 2 root root 50 3月 23 09:19 test3
-rw-r--r--. 1 root root 33 3月 22 10:05 test.txt
-rw-r--r--. 1 root root 675 3月 23 09:16 test.zip
每一个权限可以用一个数字来表示:
r | w | x |
---|---|---|
4 | 2 | 1 |
2^2 | 2^1 | 2^0 |
每一个文件或者目录都有三部分权限,每一部分权限都可以用一组数据之和来表示,三部分权限就是一组三个数据序列:
rw- r-x r-x
6 5 5
rwx r-x -wx
7 5 3
rwx rwx rwx
7 7 7
chmod 777 t5.txt
chmod 753 t5.txt
赋予三部分所有权限
[root@localhost testDir]# chmod 777 t3.txt
[root@localhost testDir]# ls -l
总用量 20
-rw-r--r--. 1 root root 824 3月 23 09:33 mytar.tar.gz
-rw-rwxr--. 1 root root 702 3月 23 09:07 t2.txt
-rwxrwxrwx. 1 root root 405 3月 23 08:48 t3.txt
网络配置
在该目录下配置网络
/etc/sysconfig/network-scripts
[root@localhost network-scripts]# vim ifcfg-ens33
修改里面的几个字段
BOOTPROTO="static"
ONBOOT="yes"
IPADDR=192.168.91.128
GATEWAY=192.168.91.2
DNS1=192.168.11.2
TYPE="Ethernet"
BOOTPROTO="static"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="1046439a-2603-4d1b-812f-1a4b6edfda55"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.91.128
GATEWAY=192.168.91.2
DNS1=192.168.11.2
IP地址在虚拟机里面看
NAT设置和DHCP设置里面有
确保DNS和GATEWAY一致
linux中的进程管理:
- 线程:一个程序的线路
- 进程:一个程序的执行,一个进程占用一个端口
查看进程 ps
[root@localhost network-scripts]# ps
PID TTY TIME CMD
2756 pts/0 00:00:00 bash
2960 pts/0 00:00:00 ps
查看正在运行的进程:ps(process status)
ps //只会显示应用进程
ps -e //显示所有进程
ps -ef //以全格式的形式显示所有进程
//用于查看linux系统中某一些软件或者应用是否处于启动状态
ps -ef|grep mysql
终止进程
[root@localhost network-scripts]# ps
PID TTY TIME CMD
2756 pts/0 00:00:00 bash
3035 pts/0 00:00:00 ps
[root@localhost network-scripts]# kill -9 2756
Connection closing...Socket close.
kill -9 PID
表示强迫进程立即停止。
服务管理
服务是支持Linux运行的一些必要程序,本质上也是进程,叫守护进程。守护进程通常默默地运行在后台,为应用程序提供必要支撑,比如sshd、防火墙等。
防火墙操作
systemctl status firewalld 查看防火墙运行状态
systemctl stop firewalld 关闭防火墙
Active: inactive (dead) since 四 2022-03-24 09:18:40 CST; 2s ago
systemctl start firewalld 开启防火墙
systemctl enable firewalld 设置防火墙开机启动
Linux 软件包的管理(软件安装包)
一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。
它生成具有.RPM扩展名的文件。RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,类似windows的setup.exe
这一文件格式名称虽然打上了RedHat的标志,但理念是通用的。
查看当前系统中已经安装的rpm软件包:rpm -qa|grep firefox
同样使用grep实现过滤
[root@localhost ~]# rpm -qa|grep firefox
firefox-45.4.0-1.el7.centos.x86_64
卸载rpm包
卸载rpm软件包:rpm -e firefox
安装包
安装rpm包:rpm -ivh xxx.rpm
cp firefox-45.4.0-1.el7.centos.x86_64.rpm /opt
rpm -ivh firefox-45.4.0-1.el7.centos.x86_64.rpm
先拷贝,再安装
YUM包
是一种基于RPM的软件包管理工具,它能够从指定服务器上自动下载RPM包并且自动安装,可以自动处理软件包之间的依赖关系。(Linux上的类Maven工具?)
查看当前系统中已经安装的rpm软件包:yum list installed|grep firefox
卸载rpm软件包:yum remove firefox.x86_64
安装rpm包:yum install firefox
安装JDK
先将软件通过xftp5 上传到/opt 下
然后进行解压
tar -zxvf jdk-8u121-linux-x64.tar.gz -C /opt
安装后找到目录
/opt/jdk1.8.0_121
进入到 vim /etc/profile
JAVA_HOME=/opt/jdk1.8.0_121
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/lib:.
export JAVA_HOME PATH CLASSPATH
使用source重新加载一下profile
[root@localhost etc]# source profile
[root@localhost etc]# java -version
java version "1.8.0_121"
此时已经安装好了
安装Tomcat
先将软件通过xftp5 上传到/opt 下
解压到/opt
tar -zxvf apache-tomcat-9.0.0.M26.tar.gz -C/opt
进入目录下启动tomcat
[root@localhost opt]# cd apache-tomcat-9.0.0.M26
[root@localhost apache-tomcat-9.0.0.M26]# cd bin
[root@localhost bin]# ls
bootstrap.jar setclasspath.sh
catalina.bat shutdown.bat
catalina.sh shutdown.sh
catalina-tasks.xml startup.bat
commons-daemon.jar startup.sh
commons-daemon-native.tar.gz tomcat-juli.jar
configtest.bat tomcat-native.tar.gz
configtest.sh tool-wrapper.bat
daemon.sh tool-wrapper.sh
digest.bat version.bat
digest.sh version.sh
setclasspath.bat
[root@localhost bin]# ./startup.sh
装好后可以在Windows端访问,访问的前提是Linux的防火墙要关了
这里的ip是我linux配置的ip
http://192.168.91.128:8080/
安装MySQL
第一步:查看是否已经安装了mariadb
检查linux是否安装了mariadb数据库,mariadb数据库是mysql的分支。是免费开源的。mariadb和msyql会有冲突。首先要检查安装了mariadb, 卸载掉。
检查命令:yum list installed | grep mariadb
卸载命令:yum –y remove xxxx
这个 -y的作用就是用来默认选yes,防止自己在他的会话框每次都来确认
解压压缩包
[root@localhost mysoftwares]# tar -zxvf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz -C/opt
修改解压后的根目录名
[root@localhost opt]# mv mysql-5.7.18-linux-glibc2.5-x86_64 mysql-5.7.18
data文件夹是mysql用来存放数据库文件的,数据库的表数据都放在data目录
[root@localhost mysql-5.7.18]# mkdir data
创建组和用户
[root@localhost mysql-5.7.18]# groupadd mysql
[root@localhost mysql-5.7.18]# useradd -g mysql mysql
初始化mysql
在mysql下的bin目录下
[root@localhost bin]# ./mysqld --initialize --user=mysql --datadir=/opt/mysql-5.7.18/data --basedir=/opt/mysql-5.7.18
参数说明:
–initialize 初始化mysql,创建mysql的root, 随机生成密码。记住密码,登录msyql使用。
–user执行msyqld 命令的linux用户名
–datadir : mysql数据文件的存放位置,目录位置参照本机的设置。
–basedir : msyql安装程序的目录,目录位置参照本机的设置。
iSq;=uitx3*1
启用安全功能
在服务器与客户机之间来回传输的所有数据进行加密。通过证书提供了身份验证机制,mysql命令程序mysql_ssl_rsa_setup提供了开启数据加密功能,生成数字证书。
在mysql-5.7.18/bin目录下执行命令:
[root@localhost bin]# ./mysql_ssl_rsa_setup --datadir=/opt/mysql-5.7.18/data
修改mysql安装目录的权限
mysql安装后,需要更改mysql-5.7.18整个文件夹目录权限,更改所属的用户和组为之前创建的mysql用户及其所在组。在mysql安装目录的上级(/opt)位置,执行命令chown .
例如:
chown -R mysql:mysql /opt/mysql-5.7.18/
这里的-R是实现递归,让目录里面的子目录也同步修改
mysql启动
后台启动
要进入mysql文件下的bin目录
[root@localhost bin]# ./mysqld_safe &
查看启动是否成功
[root@localhost bin]# ps -ef|grep mysql
登录进入mysql,mysql-5.7.18/bin目录下执行命令:./mysql -uroot -p
-u表示使用root用户登录系统,使用第7步生成的密码。
-p表示使用密码登录
修改root密码
执行sql语句 show databases; 第一次使用将会提示修改mysql的root用户密码:
修改mysql的密码,命令语法:alter user ‘用户名’@‘主机域名或ip’ identified by ‘新密码’
例如:alter user ‘root’@‘localhost’ identified by ‘yf123’;
授权远程访问
语法:grant all privileges on *.* to root@'%' identified by 'yf123';
参数:
其中*.* 的第一个*表示所有数据库名,第二个*表示所有的数据库表;
root@'%' 中的root表示用户名,%表示ip地址,%也可以指定具体的ip地址,比如root@localhost,root@192.168.235.130等。
指定Navicat里面新建链接
从mysql中退出
mysql> exit;
关闭mysql服务
mysql-5.7.18/bin目录下执行:./mysqladmin -uroot -p shutdown输入密码关闭
结束时间:2022-03-24