一.云服务器
1.1 云服务器的必要设置+宝塔
- 服务器就是一个远程的linux;
1.第一步: 开通安全组设置; 端口映射[端口映射都需要在阿里云的面板安装];
[参考链接1: https://blog.csdn.net/weixin_42488091/article/details/108776408?spm=1001.2101.3001.6650]
[参考链接2: 狂神说_Linux04集]
2.第二步: 获取服务器的公网ip地址; [修改实例名称和密码!]
3.第三步: 安装宝塔面板://(第一步一定要完成.)
外网面板地址: http://8.136.217.144:8888/ayang
内网面板地址: http://172.16.22.81:8888/ayang
username: ayang
password: cc8d11e4
若无法访问面板,请检查防火墙/安全组是否有放行面板[8888]端口
4.使用"宝塔+域名"建立站点:
- 已经上传的项目以及项目访问地址
项目名 项目地址 员工管理系统 [jar包] http://8.136.217.144:9000/index.html
1.3 项目的打包和发布
1.
* springboot -> jar包 -> [执行jar包的命令: java -jar jar包名]/[后台执行命令: java -jar noxxx]
* ssm框架 -> war包 -> 打包放在tomcat/webapps目录下
//网站如果访问测试失败, 一定是防火墙;(问题排查: 一是Linux服务器; 二是阿里云安全组面板设置;)
2.项目在CentOS7的存放路径:
* 根目录/root/
* 根目录/www/wwwroot/
二. Linux
1.1 遇到的问题以及解决方法:
VMware安装以及遇到的问题:
1.第一个问题: VMware15.5 安装后一旦打开虚拟机就会蓝屏显示? 升级VMware即可.[现在使用VMware16.2.3] 2.第二个问题: VMware16打开虚拟机CentOS7后出现"A problem has occurred and the system can‘t recover.Please contact a system administrator"? 解决: 打开"编辑虚拟机设置"-> "显示器" -> 勾选"加速3D图形" [参考链接: https://blog.csdn.net/qq_42240249/article/details/118095598?spm=1001.2014.3001.5502]
1.通常服务器使用
LAMP(Linux + Apache + MySQL + PHP)
或 LNMP(Linux + Nginx+ MySQL +PHP)组合
2.问题描述:在开启此虚拟机时,提示在该系统上全局禁用了虚拟打印功能,不会为该虚拟机启用此功能。
解决办法:在VMware workstation页面依次点击-> 编辑--首选项--设备--启用虚拟机打印--确定, 即可解决此问题。
1.2 基本目录
目录 | 解释 |
---|---|
/bin | bin是Binary的缩写, 这个目录存放着最经常使用的命令。 |
/boot | 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。 |
/dev | dev是Device(设备)的缩写, 存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。 |
/etc | 这个目录用来存放所有的系统管理所需要的配置文件和子目录。 |
/home | 用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。 |
/lib | 这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。 |
/lost+found | 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。 |
/media | linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。 |
/mnt | 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。 |
/opt | 这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。 |
/proc | 这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。 |
/root | 该目录为系统管理员,也称作超级权限者的用户主目录。 |
/sbin | s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。 |
/srv | 该目录存放一些服务启动之后需要提取的数据。 |
/sys | 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 |
/tmp | 这个目录是用来存放一些临时文件的。 |
/usr | 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。 |
/usr/bin | 系统用户使用的应用程序。 |
/usr/sbin | 超级用户使用的比较高级的管理程序和系统守护程序。 |
/usr/src | 内核源代码默认的放置目录。 |
/var | 这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。 |
/run | 是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。 |
/www | 存放服务器网站相关的资源, 环境, 网站的项目。 |
1.3 Linux基本命令:
注意: linux中一切皆为文件.⭐⭐⭐
//1.关于目录
ls ->查看文件;[简单陈列]
ls -a ->查看全部文件[包括隐藏文件, 可以显示权限, 日期等信息.];
ls -l ->查看文件;[详细陈列]
ls -al ->
cd /: 进入根目录;["/": 代表根目录]
cd ../: 返回上一级;
cd /xxx: 进入某目录;
mkdir dirName ->创建一个目录;
mkdir -p dirName1/dirName2/dirName3 ->递归创建多个目录;
touch xxxfName ->创建一个文件;
cp [文件名] [目录名] ->拷贝文件至目录;
//rmdir: 仅移除目录;
//-f: 强制删除;
//-r: 递归删除目录;
//-i: 互动, 删除时询问是否删除;
rmdir dirName1 ->删除一个空目录[如果目录下存在文件, 需要先删除文件];
rmdir -p dirName1/dirName2/dirName3 ->递归删除多个目录;
//rm: 移除文件或目录; ( "rm -rf /" ->递归删除根目录;[切勿在Linux中尝试!!!] )
rm -rf [文件名或目录名] ->删除文件;
//mv: 1.移动文件或目录; 2.重命名文件;
mv xxx文件名 xxx目录名 ->移动文件;
mv xxx文件名 xxx文件名 ->重命名文件名;
tar -zxvf xxxxxx.tar.gz ->解压tar压缩包;
//2.其他常用命令:
clear: 清屏;
pwd: 显示当前用户所在的目录;
shutdown: 关机指令;
sync: 将数据由内存同步到硬盘中;
1.4 文件属性查看和修改
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZVoFEIKo-1686703380699)(D:\MyAllCode\JavaCode_House\0_后端笔记\09_云服务器+Linux+Git.assets\image-20220414194013043.png)]
解析: drwxr-xr-x 3 root root 4096 Apr 13 18:59 myFile
在Linux中第一个字符代表这个文件是目录、文件或链接文件等等:
当为[ d ]则是目录
当为[ - ]则是文件;
若是[ l ]则表示为链接文档 ( link file );
若是[ b ]则表示为装置文件里面的可供储存的接口设备 ( 可随机存取装置 );
若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标 ( 一次性读取装置 )。
接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。
其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。
要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。
//1.
1、chgrp:更改文件属组
[-R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。]
chgrp [-R] 属组名 文件名 1
2、chown:更改文件属主,也可以同时更改文件属组
chown [–R] 属主名 文件名
chown [-R] 属主名 属组名 文件名
3、chmod:更改文件9个属性//[r:4 w:2 x:1]
chmod [-R] xyz 文件或目录 //比如: chmod 770 filename
Linux文件属性有两种设置方法,一种是数字,一种是符号。
//2.Linux系统中使用以下命令来查看文件的内容:
# cat 由第一行开始显示文件内容;
# tac 从最后一行开始显示,可以看出 tac 是 cat 的倒著写;
->cat 文件名
# nl 显示的时候,顺道输出行号;
->nl 文件名
# more 一页一页的显示文件内容;
# less 与 more 类似,但是比 more 更好的是,他可以往前翻页;["空格向下翻页"]
# head 只看头几行;
# tail 只看尾巴几行;
->head -n 数字 文件名
1.5 硬链接和软连接
硬连接
硬连接指通过索引节点来进行连接。在 Linux 的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在 Linux 中,多个文件名指向同一索引节点是存在的。
比如:A 是 B 的硬链接(A 和 B 都是文件名),则 A 的目录项中的 inode 节点号与 B 的目录项中
的 inode 节点号相同,即一个 inode 节点对应两个不同的文件名,两个文件名指向同一个文件,A 和 B
对文件系统来说是完全平等的。删除其中任何一个都不会影响另外一个的访问。
软连接
另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于 Windows 的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。
比如:A 是 B 的软链接(A 和 B 都是文件名),A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号不相同,A 和 B 指向的是两个不同的 inode,继而指向两块不同的数据块。但是A 的数据块中存放的只是 B 的路径名(可以根据这个找到 B 的目录项)。A 和 B 之间是“主从”关系,如果 B 被删除了,A 仍然存在(因为两个是不同的文件),但指向的是一个无效的链接。
[root@kuangshen /]# cd /home
[root@kuangshen home]# touch f1 # 创建一个测试文件f1
[root@kuangshen home]# ls
f1
[root@kuangshen home]# ln f1 f2 # 创建f1的一个硬连接文件f2
[root@kuangshen home]# ln -s f1 f3 # 创建f1的一个符号连接文件f3
[root@kuangshen home]# ls -li # -i参数显示文件的inode节点信息
397247 -rw-r--r-- 2 root root 0 Mar 13 00:50 f1
397247 -rw-r--r-- 2 root root 0 Mar 13 00:50 f2
397248 lrwxrwxrwx 1 root root 2 Mar 13 00:50 f3 -> f1
1.6 Vim编辑器的基本使用
基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和
底线命令模式(Last line mode)。以下是常用的几个命令:
- i 切换到"输入模式",以输入字符。
- x 删除当前光标所在处的字符。
- : 切换到"底线命令模式",以在最底一行输入命令。[ 如果当前处于"输入模式", 则通过’Esc’进入命令模式 ]
- q ->退出;
- wq ->保存并退出; [如果添加"!", 则代表强制的意思.]
vim 文件名 //如果文件存在则进行编辑; 如果文件不存在则创建文件并编辑;
1.7.1 Linux账号管理
# 1.添加账号 useradd:
/* 选项 :
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-m 使用者目录如不存在则自动建立。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。 */
useradd 选项 用户名
# 2.删除帐号:
userdel 选项 用户名 //常用的选项是 -r,它的作用是把用户的主目录一起删除。
# 3.修改用户组的属性使用groupmod命令
usermod 选项 用户名
# 4.用户口令的管理;
passwd 选项 用户名
1.7.2 Linux用户组管理
1.用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。
2.三个重要的目录:
/etc/passwd: 用户的主目录信息;
/etc/group: 用户组信息;
/etc/shadow: 加密后的用户口令;
# 1.增加一个新的用户组使用groupadd命令;
/* 可以使用的选项有:
-g GID 指定新用户组的组标识号(GID)。
-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。 */
groupadd 选项 用户组;
# 2.如果要删除一个已有的用户组,使用groupdel命令
groupdel 用户组;
# 3.修改用户组的属性使用groupmod命令
/* 常用的选项有:
-g GID 为用户组指定新的组标识号。
-o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
-n新用户组 将用户组的名字改为新名字 */
groupmod 选项 用户组
# 4.切换用户组;
$ newgrp root;
1.7.3 Linux磁盘管理
ctrl + z: 终止某个命令的执行;
df ->列出文件系统整体的磁盘使用量;//df -h ->并且显示使用量单位:\MB;
du ->检查磁盘空间使用量;//du -sm /* ->检查根目录下,每个目录所占有的容量;
1.7.4 Linux进程管理
1、在LINUX中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个ID号。
2、每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。
# 使用ps指令即可查看当前系统中正在执行的进程的各种进程信息;
ps -xxx
/* "ps -选项"
以下为选项说明:
-a:显示当前终端的所有进程信息;
-u:以用户的形式显示进程信息;
-x:显示后台进程运行的参数; */
# grep 命令用于查找文件里符合条件的字符串。
ps -aux|grep xxx //查看某个服务的进程 如,ps -aux|grep mysql
//常用选项 "-9": 表示强迫进程立即停止
kill [选项] 进程号(功能描述:通过进程号杀死进程)//形如: kill -9 进程Id
1.8 SpringBoot项目部署云服务器
1./etc/profile: 配置环境变量;
2.远程连接数据库失败解决办法
[参考链接: https://blog.csdn.net/moveym/article/details/101022112]原因一: 检查是否账号/密码错误 原因二: 检查防火墙是否允许3306这个端口连接, 需要同时在云服务器和宝塔面板设置安全组; 原因三: 如果以上都不是,能用Linux命令本地连接但不能远程连接?那就是安装Mysql时默认不允许远端连接, 需要将root用户的"host='localhost'"更改为"host='%'"。 # 首先运行下面命令进入数据库, -u后跟用户名, -p后跟密码; mysql -u root -p # 切换mysql数据库 mysql>use mysql; mysql>select `host`,`user` from user where user='root'; mysql>update user set host = '%' where user ='root'; # 刷新权限即可; mysql>flush privileges;
firewall-cmd --list-ports ->查看服务器开启的端口;
-----------------------------------------------------------------------
1.SpringBoot项目部署云服务器, 并且后台运行项目:
[参考链接: https://blog.csdn.net/qq_46611668/article/details/116724527]
java -jar test.jar //直接运行jar包;
nohup java -jar test.jar>log.txt & //后台运行jar包; log.txt 为日志输出文件;
/*
[root@iZbp1f08gmoioabf8txyenZ kuangstudy]# nohup java -jar springboot-03-web-0.0.1-SNAPSHOT.jar>log.txt & =>回车确定
[1] 9353
[root@iZbp1f08gmoioabf8txyenZ kuangstudy]# nohup: ignoring input and redirecting stderr to stdout =>回车确定 */
1.2 关闭服务进程
ps -ef|grep java //查找关于java的进程
kill -9 进程Id //杀死进程
三. Git
Git 安装:
- 直接下载安装最新的Git; [一般使用Git bash: 与Linux命令相同]
- 设置环境变量; [安装时自动设置]
- 设置用户名和邮箱;
- 设置ssh公钥; [生成公钥的命令: ssh-keygen -t rsa]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9xkPpO5g-1686703380700)(D:\MyAllCode\JavaCode_House\0_后端笔记\09_云服务器+Linux+Git.assets\git流程图.jpg)]
1.1 Git 最常用的基本命令 [参考: 狂神说]
//1.上传
git add . -> 添加所有文件到暂存区;
git commit -m "xxx提交说明" -> 提交暂存区的内容至本地仓库;
git push -> 推送;
//2.下载;
git pull;
git clone [xxxUrl链接] ->下载一个项目和它的整个代码历史;
//3.分支操作
git branch -a ->列出所有本地分支和远程分支
git branch xxxName ->新建一个分支, 但是依然停留在当前分支;
git checkout [branch] ->切换到该分支
1.2 其他命令
Git 常用命令: https://gitee.com/all-about-git
七、Git 常用命令 [来自阮一峰老师的博客文章《常用 Git 命令清单》]
//1.仓库
# 在当前目录新建一个Git代码库
$ git init
# 新建一个目录,将其初始化为Git代码库
$ git init [project-name]
# 下载一个项目和它的整个代码历史
$ git clone [url]
//2.配置
git config --list ->显示当前的Git配置
git config -l ->查看git配置;
git config --system --list ->查看系统的配置;
git config --global --list ->查看当前用户的配置;
# 编辑Git配置文件
$ git config -e [--global]
# 设置提交代码时的用户信息和邮箱
$ git config [--global] user.name "[name]" //用户名称
$ git config [--global] user.email "[email address]" //邮箱
//3.增加/删除文件
# 添加当前目录的所有文件到暂存区
$ git add .
# 添加指定文件到暂存区
$ git add [file1] [file2] ...
# 添加指定目录到暂存区,包括子目录
$ git add [dir]
# 删除工作区文件,并且将这次删除放入暂存区
$ git rm [file1] [file2] ...
# 改名文件,并且将这个改名放入暂存区
$ git mv [file-original] [file-renamed]
//4.代码提交
# 提交暂存区到仓库区
$ git commit -m [message]
# 提交暂存区的指定文件到仓库区
$ git commit [file1] [file2] ... -m [message]
//5.分支
# 列出所有本地分支
$ git branch
# 列出所有远程分支
$ git branch -r
# 列出所有本地分支和远程分支
$ git branch -a
# 新建一个分支,但依然停留在当前分支
$ git branch [branch-name]
# 新建一个分支,并切换到该分支
$ git checkout -b [branch]
# 切换到该分支
$ git checkout [branch]
# 合并指定分支到当前分支
$ git merge [branch]
# 删除分支
$ git branch -d [branch-name]
# 删除远程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]
//6.查看信息
# 显示有变更的文件
$ git status
# 显示今天你写了多少行代码
$ git diff --shortstat "@{0 day ago}"
//7.远程同步
# 显示所有远程仓库
$ git remote -v
# 增加一个新的远程仓库,并命名
$ git remote add [shortname] [url]
# 上传本地指定分支到远程仓库
$ git push [remote] [branch]
# 推送所有分支到远程仓库
$ git push [remote] --all
//8.撤销
# 恢复暂存区的指定文件到工作区
$ git checkout [file]
# 恢复某个commit的指定文件到暂存区和工作区
$ git checkout [commit] [file]
# 恢复暂存区的所有文件到工作区
$ git checkout .