【Linux 基础】

news2024/11/27 9:44:34

【Linux 基础】

一、 Linux 概述

1. Linux 介绍

UNIX 是一个强大的多用户、多任务操作系统,于1969年在贝尔实验室开发,UNIX 的商标权有国际开放组织(The Open Group)所拥有,UNIX 操作系统是商业版,需要收费
Linux 是基于 UNIX 的
Linux 是一种自由和开放源代码的操作系统,存在着许多不同的 Linux 版本,但他们都使用 Linux 内核
Linux 可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、台式计算机等

2. Linux 系统的应用

  • 服务器系统 Web 应用服务器、数据库服务器、接口服务器、DNS、FTP 等等
  • 嵌入式系统路由器、防火墙、手机、PDA、IP 分享器、交换器、家用用品的微电脑控制器等等
  • 高性能运算、计算密集型应用 Linux 有强大的运算能力
  • 桌面应用系统
  • 移动手持系统

3. Linux 的版本

Linux 的版本分为两种:内核版本发行版本:内核版本是指在 Linus 领导下的内核小组开发维护的系统内核版本号,在内核上作出一些修改就是发行版本,有些厂商拿到内核版本修改出强大的应用功能就开始提供给外界收费使用

  • Linux 主流的版本
  1. Ubuntu Linux :图形化界面较为优秀
  2. Red Hat Linux
  3. SuSE Linux
  4. Gentoo Linux
  5. CentOS Linux :免费
  6. 麒麟 Linux
  7. 红旗 Linux ……

二、 采用虚拟机安装 Linux

可以采用为电脑添加双系统,但是可以使用一种更优的解决方式,使用虚拟机的方式安装 Linux

1. 虚拟机

虚拟机:使用软件模拟一台虚拟的电脑

  • 虚拟机软件:
    • VMware:收费的
    • VirtualBox:免费的

2. 下载 CentOS

初学者推荐使用 7.6 ~ 7.9 版本
建议 CentOS 7.9 版本,稳定性较好

  • 官方下载网站较慢,不推荐使用
  • 阿里云镜像网站
    选择该版本
  • 清华镜像网站
    选择该版本
    当然还可以选择不同的版本,依据个人选择

2. 下载 VMware

  • 可以下载并使用 VMware 16 版本 官网下载 VMware
  • 需要使用许可证密钥
  • 下载安装较为简单
  • 注意更改安装位置
    安装位置
  • 建议取消检查更新
  • 当最后一步时,在“许可证”选项中添加上文中的产品密钥,最后完成即可
  • 启动该软件后,在“帮助”处仍可以输入许可证密钥
  • 在“编辑”下的“首选项”中,可以进行自定义的设置,在“显示”一栏可以更改页面的深浅色

3. 安装并配置 VMware 的 CentOS

  • 点击“文件”下的“新建虚拟机

  • 按照如下引导进行操作即可

  • 选择典型安装
    第一步

  • 注意:要选择稍后安装,否则可能会自动安装在 C 盘,导致内存问题
    第二步

  • 选择操作系统版本(依据自己下载的 CentOS 版本)
    第三步

  • 命名选择位置
    第四步

  • 推荐按图中设置磁盘容量(如果有特殊需要,可以更改大小)
    第五步

  • 点击自定义硬件
    第六步

  • 依据之前下载的镜像位置设置
    第七步

  • 选择网络适配器中的NAT 模式(也可以根据个人需求更改)
    第八步

  • 之后即可安装运行该虚拟机,如果页面字迹较小,点击红框处选择拉伸方式
    拉伸

  • 之后回车进行安装即可

  • 选择语言
    语言

  • 选择时区语言等(自行进行设置)
    设置

  • 在上图中的软件选择选项中,推荐如图选择,之后点击完成
    选择

  • 选择下图中的安装位置
    安装位置

  • 安装位置,点击完成
    位置

  • 选择标准分区
    设置

  • 分区介绍:

    1. /swap 交换分区,一般为机器内存的两倍,少于这个容量,系统无法进入休眠。存放系统内存交换文件,实质是硬盘上的交换空间而非分区,系统格式为 swap默认休眠将数据储存于此,可以取消设置该分区,如不用 swap 必须再设定机器方可休眠,多数有 1GB 内存的桌面用户只要 1.5GB swap 即可,2GB 以上内存的很多用户实际并不需要它,大量处理音频、视频、图片需要 3GB 以上的交换空间,但是如果作为模拟远程服务器则不需要,此处设置的 2GB 足够使用
    2. / 根分区,一般选择 15G 即可,系统格式默认ext4,如不独立划分以下介绍的分区,则其都归于此分区,即使初学者也应该以 30GB 为上限,不会多于此内存
    3. /boot 分区系统格式建议 ext2,默认 ext4 。 分区包含了操作系统的内核和在启动系统过程中所要用到的文件,建立这个分区是有必要的,因为目前大多数的个人电脑要受到 BIOS (基本输入输出系统)的限制(况且如果有了一个单独的 /boot 启动分区,即使主要的根分区出现了问题,计算机依然能够启动)这个分区的大小约在 60MB 到 120MB 之间,不超过150MB,研究内核设置为 1GB 足矣,,此处设置为 200MB 足够使用
    4. /home 分区,系统格式默认 ext4,私人文件,可以把剩下的空间都放在这里,一般是各种软件的配置文件或者下载的文件音乐等,就是存放用户数据和应用程序设置的文件夹,一般一个用户在 /home 下建立一个文件夹,相当于 Windows 操作系统下的 documentssettings 文件夹,由于此处当作远程服务器使用所以设置了 2GB 使用
    5. 实际上普通用户安装分配这4个分区就足够使用
  • 之后点击加号,添加挂载点
    1

2
3
4

  • 选择文件系统
    1
    2
    3

4
完成

  • 接受更改即可

  • 其他选项暂且不需要设置

  • 点击开始安装

  • 设置系统的 Root 密码,自行设置,之后等待完成即可
    root
    密码

  • 完成之后重启即可使用

  • 许可证,点击进入页面接受
    许可证

  • 完成配置,进入后选择语言位置信息
    位置

  • 选择时区
    时区

  • 连接在线账号,可以跳过
    连接

  • 设置用户
    用户

  • 设置用户密码
    用户密码

  • 之后即可正常使用
    使用

4. 下载 Xshell

Xshell 用于远程操作虚拟机中的操作系统,强大的 SSH 客户机

  • 官网下载
  • 可以选择免费的许可证,用于家庭和学校
    免费
  • 可以使用昵称(非真实)和临时邮箱,进行申请
  • 实用的临时邮箱

5. 配置远程操作虚拟机中的 CentOS

  • 点击虚拟机中的编辑处的虚拟网络编辑器
    设置

  • 点击其中的 NAT 设置,基本上不需要修改,查看是否是如下样式即可,如不是需要更改
    设置

  • 之后运行虚拟机,进入系统后右击鼠标打开命令行,此处使用的是非 root 账户

  • 通过 sudo yum install openssh-server 命令进行下载 SSH 服务安装

  • 通过 sudo yum list installed | grep openssh-server 命令检查 SSH 有没有安装

  • 通过 systemctl start sshd.service 开启 SSH 服务

  • 通过 systemctl status sshd.service 查看 SSH 服务状态
    图片

  • 通过 systemctl restart sshd.service 重启 SSH 服务

  • 通过 systemctl enable sshd.service 开机自启 SSH 服务

  • 通过 ssh -V 查看版本信息

  • 也可以通过 ps -e | sshd 检查是否开启 SSH 服务,如下显示
    图片

  • 有些设置需要 Root 账户权力,需要输入密码,注意:在该命令行中输入密码不会显示,光标在命令行不会变化,输完密码直接回车即可

  • 通过 sudo gedit /etc/ssh/sshd_config 命令打开配置文件,添加如图所示命令,这样可以之后在虚拟机之外可以操作其中的系统,模拟远程操作系统
    添加

6. 使用 Xshell 连接

  • 在 CentOS 命令行中使用 ifconfig 命令,找到 IP 地址
    连接ip
  • 对于高级网络设置中的更多网络适配器中,即使它显示未识别网络不影响在此使用,如果是显示已禁用,需要开启,已开启 状态最好
    显示
  • 打开 Xshell ,点击文件中的新建,输入刚才在虚拟机中得到的 IP 地址,名称自拟
    IP
  • 点击连接,会出现 SSH 安全警告选择接收并保存
    选择
  • 之后输入用户名,建议使用 root 用户名登录,权限最大,之后输入密码即可使用
    成功

三、 学习并使用 Linux 操作系统

1. Linux 目录结构

  • / :根目录
  • bin(binaries):存放二进制可执行文件
  • sbin(super user binaries)存放二进制可执行文件,只有 root 账户才能访问
  • etc(etcetera):存放系统配置文件
  • usr(unix shared resources):用于存放共享的系统资源
  • home :存放用户文件的根目录
  • root :超级用户目录
  • dev(devices):用于存放设备文件
  • lib(library):存放跟文件系统中的程序运行所需要的共享库及内核模块
  • mnt(mount):系统管理员安装历史文件系统的安装点
  • boot :存放用于系统引导时使用的各种文件
  • tmp(temporary):用于存放各种临时文件
  • var(variable):用于存放运行时所需要改变数据的文件

注意:

  • root 管理员的用户操作目录(即 home 目录)为 /root 目录
  • 其他用户的用户操作目录(即 home 目录)在 /home 目录中
  • 在 Linux 系统的命令行中,~ 表示用户的 home 目录
    例如:假设当前目录在 /usr/local 下使用 pwd 命令: [root@xry local]# pwd 则之下显示/usr/local

2. Linux 的常用命令

(1) 切换目录命令:cd

  • cd app :切换到 app 目录
  • cd .. :切换到上一层目录
  • cd / :切换到系统根目录
  • cd ~ :切换到用户主目录
  • cd - :切换到上一次所在目录
  • 使用 tab 键来补全文件路径

(2) 列出文件列表:ls ll

ls(list)是一个非常有用的命令,用来显示当前目录下的内容,配合参数使用,能以不同的方式显示目录内容

  • 格式:ls[参数] [路径或文件名]
  • 常用:在 Linux 操作系统中以:. 开头的文件都是隐藏的文件
  • ls
  • ls -a:显示所有文件或者目录(包含隐藏的文件)
  • ls -l:缩写成 ll

(3) 创建目录和移除目录:mkdir rmdir

  1. mkdir(make directory)命令可用来创建子目录
    • mkdir app :在当前目录下创建 app 目录
    • mkdir -p app2/test :级联创建 app2 以及 test 目录
  2. rmdir(remove directory)命令可以用来删除“空”的子目录(只能用于删除空目录)
    • rmdir app :删除 app 目录

(4) 浏览文件:cat、more、less、tail

  1. cat :用来显示文件的内容,格式:cat[参数]<文件名>
    • cat yum.conf
  2. more :一般用来用于要显示的内容会超过一个画面的长度的情况
    • 按空格键显示下一个画面
    • 按回车显示下一行内容
    • 按 Q 键退出查看
    • more yum.conf
      • 空格显示下一页数据
      • 回车显示下一行数据
  3. less :用法和 more 类似,不同的是 less 可以通过 PageUp、PageDown 键来控制
    • less yum.conf
      • PageUp 和 PageDown 进行上下翻页
  4. tail :命令实在实际使用过程中使用非常多的一个命令,它的功能是:用于显示文件的后几行内容
    • 用法:
      • tail -10 /etc/passwd :查看后10行数据
      • tail -f catalina.log :动态查看日志
      • CTRL + C :结束查看

(5) 文件操作

  1. rm :删除文件
    • 用法:rm [选项]... 文件...
      • rm a.txt 删除 a.txt 文件
        • 删除需要用户确认,y/n
      • rm -f a.txt :不询问,直接删除文件
      • rm -r a :删除目录,询问
      • rm -rf a :不询问,递归删除目录(慎用)
      • rm -rf * :删除所有文件
      • rm -rf /* :自杀(禁用)
  2. cp(copy):命令可以将文件从一处复制到另一处,一般在使用 cp 命令时将一个文件复制成另一个文件或者复制到某目录时,需要指定源文件名与目标文件名或目录
    • cp a.txt b.txt :将 a.txt 复制为 b.txt 文件
    • cp a.txt ../ :将 a.txt 文件复制到上一层目录中
  3. mv :移动或者重命名
    • mv a.txt ../ :将 a.txt 文件移动到上一层目录中
    • mv a.txt b.txt :将 a.txt 文件重命名为 b.txt

(6) 压缩、解压缩

tar 命令位于 /bin 目录下,它能够将用户所指定的文件或目录打包成一个问价,但不做压缩,一般 Linux 上常用的压缩方式是选用 tar 将许多文件打包成一个文件,再以 gzip 压缩命令压缩成 xxx.tar.gz (或称为 xxx.tgz 文件),常用参数:

  • -c :创建一个新的 tar 文件
  • -v :显示运行过程中的信息
  • -f :指定文件名
  • -z :调用 gzip 压缩命令进行压缩或者解压
  • -t : 查看压缩文件的内容
  • -x :解开 tar 文件
  • -C :指定解压目录
  1. 打包:tar -cvf xxx.tar ./*
  2. 打包并且压缩:tar -zcvf xxx.tar.gz ./*
  3. 解压:
    • tar -xvf xxx.tar(解压到当前目录下)
    • tar -zxvf xxx.tar.gz -C /user/aaa(解压到指定目录下)

(7) 查找文件、内容

  1. find: 指令用于查找符合条件的文件
    • find / -name ins* :查找文件名称是以 ins 开头的文件(* 通配符)
    • find / -name ins* -ls :(-ls 显示文件大致信息)
    • find / -user name -ls :查找用户 name 的文件
    • find / -user name -type d -ls :查找用户 name 的目录
    • find / -perm -777 -type d -ls :查找权限是 777 的文件
  2. grep :查找文件里符合条件的字符串
    • 用法:grep [选项]... PATTERN [FILE]...
    • grep lang anaconda-ks.cfg :在文件中查找 lang 字符或字符串
    • grep lang anaconda-ks.cfg --color :在文件中查找 lang 字符或字符串,并且高亮显示
    • grep debug yum.conf --color
    • grep debug yum.conf --color -A5 :在文件中查找 debug 字符或字符串,高亮显示,并且显示出现该字符或字符串的后5行(-A5
    • grep debug yum.conf --color -A5 -B5 :在文件中查找 debug 字符或字符串,高亮显示,并且显示出现该字符或字符串的前5行(-B5

(8) 其他常用命令

  • pwd :显示当前所在目录
  • touch :创建一个空文件
    • touch a.txt
  • clear 或 CTRL+L :清屏

3. Vi 和 Vim 编辑

在 Linux 下一般使用 Vi 编辑器来编辑文件,Vi 既可以查看文件也可以用来编辑文件。一共有三种模式:命令行、插入、底行模式
Vim 属于 Vi 的升级模式,多数使用 Vim 命令操作,具有高亮显示

(1) Vim 编辑器

  1. 切换到命令行模式:按 Esc 键
  2. 切换到插入模式:按 i、I、o、O、a、A 键
    • i :在当前位置前插入
    • I :在当前行首插入
    • a :在当前位置后插入
    • A :在当前行尾插入
    • o :在当前行之后插入一行
    • O :在当前行之前插入一行
  3. 切换到底行模式:按 :(冒号),更多详细用法查询文档《Vim 命令合集.docx》和《Vi 使用方法详细介绍.docx》
  • 操作过程

    • 打开文件:vim file (一进入就是命令行模式)
      • 直接打开未曾创建的文件,会直接在当前目录下创建需要打开的文件
    • 未曾改动文件,不保存退出:进入命令行模式 Esc 之后 :q
    • 修改文件:输入 i 进入插入模式
    • 保存并退出:进入命令行模式 Esc 之后 :wqw 是保存命令)
    • 改动文件后不保存退出:进入命令行模式 Esc 之后 :q!
  • 三种进入插入模式的命令:

    • i :在当前的光标所在处插入
    • o :在当前光标所在的行的下一行插入
    • a :在光标所在的下一个字符插入
  • 快捷键:

    • dd :快速删除一行
    • yy :复制当前行
    • nyy :从当前行向后复制几行
    • p :粘贴
    • R :替换

(2) 重定向输出: >>>

  • > :重定向输出,覆盖原有内容
  • >> :重定向输出,有追加功能
    • cat /etc/passwd > a.txt :将输出定向到 a.txt
    • cat /etc/passwd >> a.txt :输出并且追加
    • ifconfig > ifconfig.txt

(3) 系统管理命令: pskill

  • ps :正在运行的某个进程的状态
    • ps -ef :查看所有进程
    • ps -ef | grep ssh :查找某一进程(包含 ssh 的进程)
    • kill 2868 :杀掉 2868 编号的进程
    • kill -9 2868 :强制杀死进程

(4) 管道: |

管道是 Linux 命令中重要的一个概念,其作用是将一个命令的输出用作另一个命令的输入

  • ls --help | more :分页查询帮助信息(查询出的结果作为分页查询的输入进行信息查询)
  • ps -ef | grep java :查询名称中包含 Java 的进程
  • ifconfig | more
  • cat index.html | more
  • ps -ef | grep aio

四、 Linux 的权限

1. Linux 权限

文件权限

属主(user)属组(group)其他用户
rwxrwxrw
42142142
  • r(可以用数字4代替) :对文件是指可读取的内容,对目录是可以 ls (列出文件列表)
  • w(可以用数字2代替) :对文件是指可修改文件内容,对目录是指可以在其中创建或删除子节点(目录或文件)
  • x(可以用数字1代替) :对文件是指是否可以运行这个文件,对目录是指是否可以 cd(切换目录) 进入这个目录
  • 一共分为十位:- --- --- --- (就像此种分类,分为四部分)
  1. 第一部分:代表文件类型
    • - :表示文件
    • d :表示文件夹
    • l :表示链接(类似于 Windows 操作系统上的快捷方式)
  2. 第二部分:代表当前用户具有该文件或文件夹的操作权限
    • r :read 读取
    • w :write 写入
    • x :excute 执行
  3. 第三部分:代表当前组内其他用户具有该文件或文件夹的操作权限
    • r :read 读取
    • w :write 写入
    • x :excute 执行
  4. 第四部分:代表其他组的用户具有该文件的操作权限
    • r :read 读取
    • w :write 写入
    • x :excute 执行

2. Linux 的三种文件类型

  • 普通文件:包括文本文件、数据文件、可执行的二进制程序文件等
  • 目录文件:Linux 系统把目录看成是一种特殊的文件,利用它构成文件系统的树形结构
  • 设备文件:Linux 系统把每一个设备都看成是一个文件

3. 文件类型标识

  • 普通文件:-
  • 目录:d
  • 符号链接:l(相当于快捷方式)
  • 字符设备文件:c
  • 块设备文件:s
  • 套接字:s
  • 命名管道:p

4. 文件权限管理

  • chmod :变更文件或目录的权限
    • chmod u=rwx,g=rx,o=rx a.txt
  • 简便的更改方式,利用 r、w、x 的数字命令进行加法运算
    • chmod 755 a.txt

五、 Linux 上常用的网络操作

1. 主机名配置

  • hostname :查看主机名
  • hostname xxx :修改主机名,重启后无效
    • 如果想要永久生效,可以修改 /etc/sysconfig/network 文件

2. IP 地址配置

  • ifcongfig :查看(修改)IP 地址(重启后无效)
    • ifconfig eth0 192.168.12.22 :修改 IP 地址
    • 如果想要永久生效,修改 /etc/sysconfig/network-scripts/ifcfg-eth0 文件
  • DEVICE=eth0 :网卡名称
  • BOOTPROTO=static :获取 IP 的方式(static/dhcp/bootp/none
  • HWADDR=00:0C:29:B5:69 :MAC 地址
  • IPADDR=192.168.77.129 :IP 地址
  • NETMASK=255.255.255.0 :子网掩码
  • NETWORK=192.168.177.0 :网络地址
  • BROADCAST=192.168.0.225 :广播地址
  • NBOOT=yes :系统启动时是否设置此网络接口,设置为 yes 时,系统启动时激活此设备

3. 域名映射

/etc/hosts 文件用于在通过主机名进行访问时 IP 地址解析时使用,相当于 Windows 系统的 C:\Windows\System32\drivers\etc\hosts 文件的功能

  • 直接打开 /etc/hosts 文件显示:
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
  • 可以进行配置
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.19.129 name
或者
192.168.19.128 name 
等 IP 地址

4. 网络服务管理

  • service network status :查看指定服务的状态
  • service network stop :停止指定服务
  • service network start :启动指定服务
  • service network restart :重启指定服务
  • service --status-all :查看系统中所有后台服务
  • netstat -nltp :查看系统中网络进程的端口监听情况

5. 防火墙设置

防火墙根据配置文件 /etc/sysconfig/iptables 来控制本机的“出”、“入”网络访问行为

  • service iptables status :查看防火墙状态

  • service iptables stop :关闭防火墙

  • service iptables start :启动防火墙

  • chkconfig iptables off :禁止防火墙自启

  • CentOS 7.9 关闭防火墙

    • systemctl stop firewalld.service:停止 firewall
    • systemctl disable firewalld.service:禁止 firewall 开机启动
    • firewall-cmd --state:查看防火墙状态,是否是运行

六、 Linux 上软件的安装

1. 安装方式

Linux 上的软件安装有以下几种常见方式介绍

  1. 二进制发布包
    • 软件已经针对具体平台编译打包发布,只要解压,修改配置即可(缺点:会出现平台发布出的二进制发布包不兼容)
  2. RPM 包
    • 软件已经按照 Redhat 的包管理工具规范 RPM 进行打包发布,需要获取到相应的软件 RPM 发布包,然后用 RPM 命令进行安装(缺点:不会安装需求软件所依赖的软件包)
  3. Yum 在线安装
    • 软件已经以 RPM 规范打包,但发布在网络上的一些服务器上,可用 Yum 在线安装服务器上的 RPM 软件,并且会自动解决软件安装过程中库依赖问题
  4. 源码编译安装
    • 软件以源码工程的形式发布,需要获取到源码工程后用相应的开发工具进行编译打包部署

2. 上传与下载工具介绍

  1. FileZilla
  2. lrzsz
    • 使用 Yum 安装方式安装 yum install lrzsz
    • 注意:必须有网络,可以在 crt 中设置上传与下载目录
  3. sftp
    • 使用 ALT + P 组合键打开 sftp 窗口
      • put 文件索引 :将文件下载到 Linux 系统中当前用户操作目录下
      • get 文件索引 :将文件下载到 Windows 系统中的 Downloads 文件夹中
  4. Xshell
    • 需要下载安装 lrzsz
    • 在 Xshell 命令框中输入 rz
    • 选择文件,等待传输完毕即可

3. Linux 安装 JDK

(1) 确定安装版本型号

  • 获取操作系统的位数
getconf LONG_BIT

(2) 查看原本自带版本并卸载删除

  • 其实安装 Linux 系统中自带一个 JDK 是OpenJDK(版本根据系统版本变化)
  • 查看本机安装的 JDK 版本:java -version
  • 查看安装的 JDK 信息:rpm -qa | grep java
javapackages-tools-3.4.1-11.el7.noarch
python-javapackages-3.4.1-11.el7.noarch
java-1.8.0-openjdk-headless-1.8.0.342.b07-1.el7_9.x86_64
java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_64
java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64
java-1.8.0-openjdk-1.8.0.342.b07-1.el7_9.x86_64
tzdata-java-2022a-1.el7.noarch
  • 卸载 JDK :rpm -e --nodeps 版本号
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.342.b07-1.el7_9.x86_64
rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_64
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.342.b07-1.el7_9.x86_64
rpm -e --nodeps tzdata-java-2022a-1.el7.noarch

(3) 安装所需版本 JDK

  • 在 Linux 服务器上安装 JDK
    • 通常将软件安装到 /usr/local
    • 直接解压就可以:tar -zxvf jdk-8u351-linux-x64.tar.gz
    • 通常这种情况就已经可以使用了,还可以配置环境变量,使得使用更加方便

(4) 配置 JDK 环境变量

  1. vi /etc/profile
  2. 在末尾添加
JAVA_HOME=/usr/local/jdk/jdk版本号
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
  1. source /etc/profile :使更改的配置立即生效
  2. 最后使用 Java -version 命令检查版本是否对应

4. Linux 上安装 MySQL

(1) MySQL 的安装

  • 可以到 MySQL 官网找到,如下图版本号的 tar 包(示例中采用 CentOS 7.9 操作系统和 MySQL 5.7.40 该版本捆绑包)
    版本

  • 上传文件到 Linux 系统中

  • 将系统自带的 MySQL 卸载

    • 查看自带版本型号 rpm -qa | grep mysql
    • 使用 rpm -e --nodeps 版本号 命令进行卸载(如果没有,不需要删除)
  • 将 MySQL 的 tar 进行解压

    • 使用 tar -xvf 文件 会生成多个后缀 rpm 文件
    • 使用 rpm -ivh mysql-community-server-版本号.rpm 安装服务器端
    • 如果出现依赖报错:可进行强制安装:rpm -ivh mysql-community-server-5.7.40-1.el7.x86_64.rpm --force --nodeps
      强制安装
  • 安装 MySQL 客户端依旧可以采用强制安装的形式进行:rpm -ivh mysql-community-client-5.7.40-1.el7.x86_64.rpm --force --nodeps

  • 之后采用 mysqld --initialize --user=mysql 命令初始化数据库,会生成一个临时密码(以 root 身份运行,如果是以 MySQL 身份运行,则不用输入 --user 部分)

  • 之后使用 cat /var/log/mysqld.log 命令,查看日志文件找到密码 root@localhost: 之后的即是生成的密码

  • 此时开启 MySQL 服务 service mysql start
    启动

  • 之后就可以进行登录 MySQL 服务 mysql -uroot -p(Enter password 部分不会显示输入的密码,光标不会移动)
    登录

  • 进入 MySQL 之后必须首先进行更改密码,才可以进行后续操作
    更改密码

  • 重新进入 MySQL(-p 之后是密码)
    重新进入

(2) MySQL 远程访问设置

  • 使用命令:grant all privileges on *.* to 'root' @'%' identified by 'root';identified by 之后是密码)
  • 进行刷新操作 flush privileges;

远程访问设置

  • 这时即可以使用数据库连接软件进行远程连接
  • 但是在 Linux 中很多软件的端口都被“防火墙”限制,需要先将防火墙关闭或者放行 3306 端口(MySQL 端口)
/sbin/iptables -1 INPUT -p tcp --dport 3306 -j ACCEPT
/etc/rc.d/init.d/iptables save
/etc/init.d/iptables status
  • 学习阶段,也可以直接将防火墙关闭 service iptables stop

5. Linux 上安装 Tomcat

  1. Tomcat 上传到 Linux 上
  2. 将上传的 Tomcat 进行解压
  3. tomcat/bin 目录下执行 ./startup.sh (注意防火墙)
  4. 查看目标:tomcat/logs/catalina.out

安装 Tomcat

  • 浏览器访问 IP 地址加端口号8080,查看是否会出现 Tomcat 页面(记得关闭 Linux 的防火墙)

6. 在 Linux 上安装 Redis

(1) 安装 gcc-c++

Redis 是 C 语言开发,安装 Redis 需要先将官网下载的源码进行编译,编译依赖 gcc 环境

  • 输入命令:yum install gcc-c++
  • 输入 y 确认下载安装
    下载安装

(2) 安装 Redis

  1. 下载 Redis :wget http://download.redis.io/redis-stable.tar.gz (这里也可以选择其他版本,这里的 stable 是实时更新的稳定版本)

  2. 解压:tar -xzvf redis-stable.tar.gz
    下载

  3. 编译安装,切换到程序目录,执行 make 命令编译:cd redis-stable 之后 make
    编译

  4. 执行安装命令:make PREFIX=/usr/local/redis install

    • make install 安装完成后,会在 /usr/local/bin 目录下生成下面几个可执行文件,他们的作用分别是:
      • redis server :Redis 服务器端的启动程序
      • redis-cli :Redis 客户端操作工具,也可以用 telnet 根据其文本协议来操作
      • redis-benchmark :Redis 性能测试工具
      • redis-check-aof :数据修复工具
      • redis-check-dump :检查导出工具
        安装
        目录

(3) 配置 Redis

  1. 复制配置文件到 /usr/local/redis/bin 目录:
    • cd redis-stable
    • cp redis.conf /usr/local/redis/bin
  2. bin 目录下输入命令: ./redis-server redis.conf 开启 Redis
  3. 直接在 Xshell 中复制会话,进行客户端的访问,在 bin 目录下:./redis-cli 启动客户端
    访问

7. 部署项目到 Linux

  1. 修改项目中的 pom.xml 文件:在 pom.xml 中添加 <finalName><finalName> (在<build> 标签中)设置部署到 Linux 中的访问名称(简化名称)
  2. 修改 JDK 版本,要与部署到 Linux 中安装的 JDK 版本一致
  3. 进行项目的部分修改
    • druid.properties
      • 其中的 url 路径需要进行设置,例如:url=jdbc:mysql:///name?characterEncoding=utf-8
      • 数据库访问密码需要进行更改
    • 修改项目中所有的绝对路径变更为相对路径
  4. 使用 Maven 中的 package 命令,进行项目的打包
  5. 将本机中的 MySQL 数据库项目的表进行导出,导成一个 SQL 文件,再连接到 Linux 服务器中进行导入,通过 SQL 文件进行还原
  6. 进入 Tomcat 中的 webapps 目录中进行 war 的上传,自动解压缩(如果没有解压缩成功,可以进行重新启动服务器的命令:在 Tomcat 的 bin 目录下 ./shutdown.sh./startup.sh
    进入目录
  7. 输入命令: cd /usr/local/tomcat/apache-tomcat-版本号/logs/ 目录下进行信息的查看
    • 其中的 catalina.out 就是和控制台输出信息一致
    • tail -f catalina.out 进行文件查看

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

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

相关文章

【OpenGL学习】Shader和Shader类的抽象

Shader 本节学习OpenGL中Shader的使用并将其抽象为类&#xff0c;简要介绍OpenGL所使用的着色器语言GLSL。 一、什么是Shader&#xff1f; 参考维基百科中对Shader的定义&#xff1a;着色器 - 维基百科&#xff0c;自由的百科全书 (wikipedia.org) 计算机图形学领域中&…

SpringBoot处理跨域总结

解决跨域的五种方法1、CorsFilter新建一个类Configuration public class CorsConfig {Beanpublic CorsFilter corsFilter() {//1. 添加 CORS配置信息CorsConfiguration config new CorsConfiguration();//放行哪些原始域//springboot版本为2.4.0以前写法config.addAllowedOrig…

kaggle竞赛 | Instant Gratification

kaggle比赛链接&#xff1a; https://www.kaggle.com/competitions/instant-gratification/data 目录普通方案优胜方案1. 用方差筛选特征2.QDA二次判别分析3.数据分组&#xff08;伪标签&#xff09;4.查看结果赛题总结普通方案 # 数据集路径 INPUT_PATH ../input/import num…

python学习笔记---进程和线程【廖雪峰】

进程和线程 现在&#xff0c;多核CPU已经非常普及了&#xff0c;但是&#xff0c;即使过去的单核CPU&#xff0c;也可以执行多任务。由于CPU执行代码都是顺序执行的&#xff0c;那么&#xff0c;单核CPU是怎么执行多任务的呢&#xff1f; 答案就是操作系统轮流让各个任务交替…

ESP-IDF:企业链表例程,实现初始化,插入,打印等功能。

例程&#xff1a; 简单地写一下企业链表&#xff0c;实现初始化&#xff0c;插入&#xff0c;打印等功能。 /企业链表/ typedef struct LINKNODE09 { // 定义节点 LINKNODE09 *next; } linknode09; // 定义表头 typedef struct LINKLIST09 { // 定义表头 linknode09 head; in…

【胖虎的逆向之路】03——Android一代壳脱壳办法罗列实操

【胖虎的逆向之路】03——Android脱壳办法罗列&脱壳原理详解 【胖虎的逆向之路】01——动态加载和类加载机制详解 【胖虎的逆向之路】02——Android整体加壳原理详解&实现 文章目录【胖虎的逆向之路】03——Android脱壳办法罗列&脱壳原理详解前言一、主流脱壳方法…

uefi和legacy的区别对比

legacy&#xff1a;[ˈleɡəsi]&#xff0c;遗产、遗留。 uefi&#xff1a;Unified Extensible Firmware Interface&#xff0c;统一可扩展固件接口。 当我们自己重装或安装操作系统的时候&#xff0c;可能会遇到硬盘的uefi和legacy两种&#xff0c;不过大多数人并不知道uefi和…

低代码开发前景如何?大家都真的看好低代码开发吗?

栖低代码开发前景如何&#xff0c;大家都真的看好低代码开发吗&#xff1f;之前有些过很多关于低代码的内容&#xff0c;这篇就来梳理下国内外低代码开发平台发展现状及前景。 关于低代码解读看这篇>> 什么是低代码&#xff08;Low-Code&#xff09;&#xff1f; 关于低…

SpreadJS.Release.16.0.2 Crack by Xacker

SpreadJS拥有 500 多个 Excel 函数的世界销量第一的 JavaScript 电子表格 快速提供真正类似 Excel 的电子表格体验 - 对 Excel 零依赖。创建财务应用程序&#xff0c;仪表板,图表,数据透视表,性能基准,科学实验室笔记本&#xff0c;以及其他类似的 JavaScript 电子表格应用程序…

77. 语言模型以及代码实现

1. 语言模型 给定文本序列 x1,…,xT,语言模型的目标是估计联合概率p&#xff08;x1,…,xT&#xff09;它的应用包括 做预训练模型&#xff08;eg BERT&#xff0c;GPT-3&#xff09;生成文本&#xff0c;给定前面几个词&#xff0c;不断使用xt~p(x1,…,xt-1) 来生成后续文本判…

CSS选择器整理学习(上)

在前端项目开发中&#xff0c;有时候需要对特殊的元素进行特殊的处理&#xff0c;但有时候元素的位置不确定、层级不确定、数量不确定等问题&#xff0c;导致我们没办法进行元素的选择&#xff0c;这个时候我们就需要用到元素选择器了。 一、CSS选择器 1、.class 选择器例子…

图像处理解决流程--外观检测

一、图像外观检测和面积计算 1、获取标准图像&#xff0c;提取要测定的区域&#xff08;截取成多个ROI&#xff09; 2、将目标图像的位置进行平移和旋转&#xff08;将目标图像和标准图像进行重叠&#xff09; 3、根据标准图像的区域进行以此计算目标图像的信息 4、判断统计 二…

Ajax基础

Ajax 是 Asynchronous JavaScript and XML&#xff08;异步 JavaScript 和 XML&#xff09;的简写 Ajax 中的异步&#xff1a;可以异步地向服务器发送请求&#xff0c;在等待响应的过程中&#xff0c;不会阻塞当前页面&#xff0c;浏览器可以做自己的事情。直到成功获取响应后…

Maven高级进阶

文章目录1&#xff0c;分模块开发1.1 分模块开发设计1.2 分模块开发实现1.2.1 环境准备1.2.2 抽取domain层步骤1:创建新模块步骤2:项目中创建domain包步骤3:删除原项目中的domain包步骤4:建立依赖关系步骤5:编译maven_02_ssm项目步骤6:将项目安装本地仓库1.2.3 抽取Dao层步骤1:…

iOS vue devtools工具的手把手安装,及Vue.js not detected的解决

使用vue插件Vue.js devtools 一.通过谷歌商店直接下载&#xff08;要翻墙&#xff09; 二.不翻墙的方法&#xff1a; 1.官网下载 git地址&#xff1a;https://github.com/vuejs/devtools git clone https://github.com/vuejs/devtools2.完成后命令行里切到该目录下&#x…

AppScan绕过登录验证码深入扫描

系列文章 AppScan介绍和安装 AppScan 扫描web应用程序 AppScan被动手动探索扫描 第四节-绕过登录验证码深入扫描 我们工作中最长碰到的工作场景是网站采用https协议&#xff0c;这时我们要用appScan进行扫描时&#xff0c;就需要先安装证书 1.证书安装 1.新建一个文件&…

渗透测试— —扫描与爆破账号

渗透测试— —扫描与爆破靶机账号 1 扫描与爆破账号流程 注意&#xff1a;仅用于教学与实验&#xff0c;不能用于攻击&#xff0c;否则后果自负 扫描&#xff1a;主机探测与端口扫描。&#xff08;主机探测&#xff1a;目标主机是存活&#xff0c;端口扫描&#xff1a;在线主…

总结 62 种在深度学习中的数据增强方式

数据增强 数据增强通常是依赖从现有数据生成新的数据样本来人为地增加数据量的过程 这包括对数据进行不同方向的扰动处理 或使用深度学习模型在原始数据的潜在空间(latent space)中生成新数据点从而人为的扩充新的数据集 这里我们需要区分两个概念&#xff0c;即增强数据和…

SpringBoot的filter过滤器

SpringBoot的filter过滤器 目录SpringBoot的filter过滤器一、过滤器的作用和概述1.1 简述1.2 使用场景二、自定义过滤的两种方式2.1 第一种方式2.1.1 启动类增加注解ServletComponentScan2.1.2 定义一个filter类2.1.3. 测试2.2 第二种方式2.2.1 自定义fitler类2.2.4 在启动类中…

《Linux Shell脚本攻略》学习笔记-第五章

5.1 简介 借助HTTP协议所提供的功能以及命令行实用工具&#xff0c;我们可以用脚本满足大量的web自动化需求。 5.2 web页面下载 wget是一个用于文件下载的命令行工具&#xff0c;选项繁多且用法灵活。 下载单个文件或web页面 指定从多个URL处进行下载 我们可以通过选项-O指定输…