一、JavaEE定制篇

软件安装:

image-20210309224238728

1.1 安装JDK

(1)先将软件通过 xftp5 上传到 /opt 下

(2)解压缩到 /opt tar -zxvf 文件名

(3)配置环境变量的配置文件 vim /etc/profile

JAVA_HOME=/opt/jdk1.7.0_79	
PATH=/opt/jdk1.7.0_79/bin:$PATH
export JAVA_HOME PATH

(4)需要注销用户,环境变量才能生效。

1.2 安装 tomcat

  1. 解压缩到/opt

  2. 启动 tomcat

./startup.sh

先进入到 tomcat 的 bin 目录

  1. 开放端口 8080 ,这样外网才能访问到 tomcat

vim /etc/sysconfig/iptables

image-20210310114030125

重启防火墙

image-20210310114115131

1.3 Eclipse 的安装

1.4 Mysql 的安装和配置

二、VM和Linux系统安装

2.1 CentOS安装的步骤

这里在配置网络连接时,有三种形式

image-20210311173544584

2.2 vmtools 安装

(1)可以直接粘贴命令在windows 和 centos系统之间

1.进入 centos 
2.点击 vm 菜单的->install vmware tools 
3.centos 会出现一个 vm 的安装包 
4.点击右键解压, 得到一个安装文件 
5.进入该 vm 解压的目录 ,该文件在 /root/桌面/vmware-tools-distrib/下 
6.安装 ./vmware-install.pl 
7.全部使用默认设置即可
8.需要 reboot 重新启动即可生效

(2)可以设置windows和centos的共享文件夹

2.3 镜像地址

http://www.downcc.com/soft/436126.html

三、Linux的目录结构

image-20210311173903956 img img img img img

四、远程登录 Linux 系统

4.1 远程登录Linux-Xshell5

4.2 远程上传下载文件Xftp5

五、vi 和 vim 编辑器

5.1 vi和vim模式的相互切换

img

5.2 命令模式

1.光标移动:hjkl
2.移到行首:0
3.移到行首第一个非blank字符:^
4.移到尾部:$
5.移到行尾第一个非blank字符:g_
6.跳到下一个单词首:w  
7.跳到下一个单词尾:e 
8.跳到本行下一个指定字符:F/f+字符
9.跳到本行下一个指定字符的前一个字符:T/t+字符
10.文件首:gg
11.文件尾:G
12.第5行:5G
13.删除光标后面字符:x        删除 == 剪切
14.撤销:u    反撤销:ctrl+r 
15.删除光标前面字符:X
16.删除单词:dw
17.删除光标前面内容:d0    后面内容:d$或D
18.删除行:dd
19.删除5行:5dd
20.删除所有内容直到某字符:dt+字符
21.粘贴到光标所在行:P
22.粘贴到光标下一行:p
23.复制:yy  复制5行:5yy
24.重复上一个有改变文本的命令:.
25.匹配括号:%
26.匹配光标所在单词并移动:*或#
27.可视模式:v
28.行可视模式:shift+v
29.可视模式复制:y(不复制换行/回车符)
30.可视模式删除:d
31.选择”“间不包含引号内容:vi"  若包含引号:va"
32.选择()间不包含括号内容:vi)  若包含括号:va)
33.加多行注释(块模式):Ctrl+v,然后大写I,然后选择,然后Esc
34.查找:/内容(向下查找)   ?内容(向上查找)     切换:N/n
35.选中查找单词:#  切换:N/n
36.字符替换:r+字符
37.向左缩进:<<    右缩进:>>
38.打开man文档:选中后shift+k    打开第5章:5shift+k    退出:q
39.保存退出:ZZ
40.自动提示补全:Ctrl+n或Ctrl+p
41.自动对齐代码:可视状态(即v)+等号
42.合并某行:J

5.3 编辑模式(a/i/o/s)

1.小写a:光标后面    大写A:行后面
2.小写i:光标前面    大写I:行前面
3.小写o:光标下行添加新行    大写O:光标上行添加新行
4.小写s:删除光标后面字符并输入    大写S:删除光标所在行的字符并输入

5.4 末行模式

1.跳转到5行::5
2.替换本行第一个tom::s/tom/jack
3.替换本行全部的tom::s/tom/jack/g
4.替换文件所有行第一个tom::%s/tom/jack
5.替换文件所有行tom::%s/tom/jack/g
6.替换5到8行的tom::5,8s/tom/jack/g
7.x:保存退出
8.水平分屏::sp    切换:ctrl+ww
9.垂直分屏::vsp
10.隐藏当前分屏::hide
11.退出当前分屏::wq  退出所以分屏::wqall
12.不同文件分屏::vsp abc.h

5.5 Ctrl + **

1.ctrl + p: 向上滚动
2.ctrl + a: 移动行首
3.e: 行尾
4.b: 前移动
5.f: 后移动
6.h: 删除前一字符
7.d:删除后一字符
8.u: 删除光标前的
9.代码格式化:gg=G

六、开机、重启和用户登录注销

6.1 基本介绍:

shutdown –h now			立该进行关机 
shudown -h 1		 		"hello, 1 分钟后会关机了" 
shutdown –r now 			现在重新启动计算机 
halt 						关机,作用和上面一样. 
reboot 						现在重新启动计算机 
sync 						把内存的数据同步到磁盘.
logout 						即可注销用户

七、用户管理

7.1 添加用户

useradd [选项] 用户名

7.2 指定或修改密码

passwd 用户名

7.3 删除用户

1、删除用户 xm,但是要保留家目录
userdel xm

2、删除用户 xh 以及用户主目录
userdel -r xh

在删除用户时,我们一般不会将家目录删除。

7.4 查询用户信息

id 用户名
image-20210426133829226

7.5 切换用户

su – 切换用户名

1)从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。 
2)当需要返回到原来用户时,使用 exit 指令

7.6 用户组

类似于角色,系统可以对有共性的多个用户进行统一的管理。

1、增加组

groupadd 组名

2、删除组

groupdel 组名

7.7 增加用户时加上组

useradd -g 用户组 用户名

7.8 修改用户的组

usermod -g 用户组 用户名

八、实用指令

8.1 指定运行级别

运行级别说明: 
0 :关机 
1 :单用户【找回丢失密码】 
2:多用户状态没有网络服务 
3:多用户状态有网络服务 
4:系统未使用保留给用户 
5:图形界面 
6:系统重启 
常用运行级别是 3 和 5 ,要修改默认的运行级别可改文件 /etc/inittab 的 id:5:initdefault:这一行中的数字

切换到指定运行级别的指令

init [012356]

@面:找回 root 密码

进入到单用户模式,然后修改 root 密码。因为进入单用户模式,root 不需要密码就可以登录。

开机->在引导时输入 回车键-> 看到一个界面输入 e -> 看到一个新的界面,选中第二行(编辑 内核)在输入 e-> 在这行最后输入 1 ,再输入 回车键->再次输入 b ,这时就会进入到单用户模式。 
这时,我们就进入到单用户模式,使用 passwd 指令来修改root密码。

8.2 帮助指令

man [命令或配置文件]
功能描述:获得帮助信息

help 命令 
功能描述:获得 shell 内置命令的帮助信息

8.3 文件目录类

1、pwd 指令

显示当前工作目录的绝对路径

2、ls 指令

基本语法
ls [选项] [目录或是文件] 

常用选项
-a :显示当前目录所有的文件和目录,包括隐藏的。 
-l :以列表的方式显示信息

3、mkdir 指令

用于创建目录

基本语法 
mkdir [选项] 要创建的目录 

常用选项 
-p :创建多级目录

4、rmdir 指令

删除空目录,如果目录下有内容时无法删除的,需要使用rm -rf 要删除的目录

rmdir [选项] 要删除的空目录

5、touch 指令

创建空文件

touch 文件名称

6、cp 指令

拷贝文件到指定目录

基本语法 
cp [选项] source dest 

常用选项
-r :递归复制整个文件夹

7、rm 指令

移除文件或目录

基本语法rm [选项] 要删除的文件或目录 

常用选项
-r :递归删除整个文件夹 
-f : 强制删除不提示

8、mv 指令

移动文件与目录或重命名

基本语法
mv oldNameFile newNameFile 			(功能描述:重命名) 
mv /temp/movefile /targetFolder 	(功能描述:移动文件)

9、cat 指令

查看文件内容,是以只读的方式打开

基本语法
cat [选项] 要查看的文件 

常用选项
-n :显示行号

10、more 指令

以全屏幕的方式按页显示文本文件的内容

more 要查看的文件

more 指令中内置了若干快捷键

image-20210426135918883

11、less 指令

用来分屏查看文件内容,它的功能与 more 指令类似,但是比 more 指令更加强大,支持各种显示终端。less 指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示 需要加载内容,对于显示大型文件具有较高的效率。

less 要查看的文件
image-20210426140039122

12、echo 指令

输出内容到控制台

echo [选项] [输出内容]

13、head 指令

用于显示文件的开头部分内容,默认情况下 head 指令显示文件的前 10 行内容

基本语法
head 文件 (功能描述:查看文件头 10 行内容) 
head -n 5 文件 (功能描述:查看文件头 5 行内容,5 可以是任意行数)

14、tail 指令

用于输出文件中尾部的内容,默认情况下 tail 指令显示文件的后 10 行内容。

1) tail 文件 (功能描述:查看文件后 10 行内容) 
2) tail -n 5 文件 (功能描述:查看文件后 5 行内容,5 可以是任意行数) 
3) tail -f 文件 (功能描述:实时追踪该文档的所有更新,工作经常使用)

8.4 时间日期类

显示日期:
1) date (功能描述:显示当前时间) 
2) date +%Y (功能描述:显示当前年份) 
3) date +%m (功能描述:显示当前月份) 
4) date +%d (功能描述:显示当前是哪一天) 
5) date "+%Y-%m-%d %H:%M:%S"(功能描述:显示年月日时分秒)

设置日期:
date -s 字符串时间

8.5 压缩和解压类

1、gzip/gunzip 指令

gzip 用于压缩文件, gunzip 用于解压的

gzip 文件 (功能描述:压缩文件,只能将文件压缩为*.gz 文件) 
gunzip 文件.gz (功能描述:解压缩文件命令)

当我们使用 gzip 对文件进行压缩后,不会保留原来的文件。

2、zip/unzip 指令

zip 用于压缩文件, unzip 用于解压的,这个在项目打包发布中很有用的

基本语法
zip [选项] XXX.zip 将要压缩的内容(功能描述:压缩文件和目录的命令) 
unzip [选项] XXX.zip (功能描述:解压缩文件) 

zip 常用选项 
-r:递归压缩,即压缩目录

unzip 的常用选项 
-d<目录> :指定解压后文件的存放目录

3、tar 指令

是打包指令,最后打包后的文件是 .tar.gz 的文件。

基本语法 
tar [选项] XXX.tar.gz 打包的内容 (功能描述:打包目录,压缩后的文件格式.tar.gz) 
image-20210426140936640

九、组管理和权限管理

在 linux 中的每个用户必须属于一个组,不能独立于组外。在 linux 中每个文件有所有者、所在组、其它组的概念。

image-20210426141536849

9.1 文件/目录 所有者

一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。

1、查看文件的所有者

指令:ls -ahl
image-20210426141753606

2、修改文件所有者

chown 用户名 文件名
image-20210426141826651

9.2 组的创建

groupadd 组名

9.3 文件/目录 所在组

当某个用户创建了一个文件后,默认这个文件的所在组就是该用户所在的组。

1、查看文件/目录所在组

ls –ahl

2、修改文件所在的组

chgrp 组名 文件名
image-20210426142025361

9.4 改变用户所在组

在添加用户时,可以指定将该用户添加到哪个组中,同样的用 root 的管理权限可以改变某个用户

所在的组。

1、改变用户所在组

1) usermod –g 组名 用户名 
2) usermod –d 目录名 用户名 改变该用户登陆的初始目录。
应用实例 
创建一个土匪组(bandit)将 tom 这个用户从原来所在的 police 组,修改到 bandit(土匪) 组
image-20210426142236609

9.5 权限的基本介绍

-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc 
0-9 位说明 
1)第 0 位确定文件类型(d, - , l , c , b) 
2)第 1-3 位确定所有者(该文件的所有者)拥有该文件的权限。---User 
3)第 4-6 位确定所属组(同用户组的)拥有该文件的权限,---Group 
4)第 7-9 位确定其他用户拥有该文件的权限 ---Other

第一个字符代表文件类型: 文件 (-),目录(d),链接(l) 
其余字符每 3 个一组(rwx) 读(r) 写(w) 执行(x) 
第一组 rwx : 文件拥有者的权限是读、写和执行 
第二组 rw- : 与文件拥有者同一组的用户的权限是读、写但不能执行 
第三组 r-- : 不与文件拥有者同组的其他用户的权限是读不能写和执行
1 文件:硬连接数或 目录:子目录数 
root 用户 
root 组 
1213 文件大小(字节),如果是文件夹,显示 4096 字节 
Feb 2 09:39 最后修改日期 
abc 文件名
image-20210426142352767

9.6 rwx 权限详解

rwx 作用到文件 
1) [ r ]代表可读(read): 可以读取,查看 
2) [ w ]代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该 文件所在的目录有写权限,才能删除该文件. 
3) [ x ]代表可执行(execute):可以被执行 

rwx 作用到目录 
1) [ r ]代表可读(read): 可以读取,ls 查看目录内容 
2) [ w ]代表可写(write): 可以修改,目录内创建+删除+重命名目录 
3) [ x ]代表可执行(execute):可以进入该目录

可用数字表示为: r=4,w=2,x=1 因此 rwx=4+2+1=7

9.7 修改权限

第一种方式:+ 、-、= 变更权限 
u:所有者 g:所有组 o:其他人 a:所有人(u、g、o 的总和) 
1) chmod u=rwx,g=rx,o=x 文件目录名 
2) chmod o+w 文件目录名 
3) chmod a-x 文件目录名

第二种方式:通过数字变更权限 
规则:r=4 w=2 x=1 ,rwx=4+2+1=7 
chmod u=rwx,g=rx,o=x 文件目录名 
相当于 chmod 751 文件目录名

9.8 修改文件所有者

chown newowner file 改变文件的所有者 
chown newowner:newgroup file 改变用户的所有者和所有组 
-R 如果是目录 则使其下所有子文件或目录递归生效

9.9 修改文件所在组

chgrp newgroup file 改变文件的所有组

#常见出错

1、错误:Cannot find a valid baseurl for repo: base

[root@QingXi opt]# sudo yum install gcc
已加载插件:fastestmirror, refresh-packagekit, security
设置安装进程
Loading mirror speeds from cached hostfile
YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
 Eg. Invalid release/repo/arch combination/
removing mirrorlist with no valid mirrors: /var/cache/yum/x86_64/6/base/mirrorlist.txt
错误:Cannot find a valid baseurl for repo: base

解决方法:

 echo "http://vault.centos.org/6.9/os/x86_64/" > /var/cache/yum/x86_64/6/base/mirrorlist.txt 
 echo "http://vault.centos.org/6.9/extras/x86_64/" > /var/cache/yum/x86_64/6/extras/mirrorlist.txt 
 echo "http://vault.centos.org/6.9/updates/x86_64/" > /var/cache/yum/x86_64/6/updates/mirrorlist.txt

来自:https://blog.csdn.net/weixin_47448904/article/details/111084842?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161535060616780262585112%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=161535060616780262585112&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v29-15-111084842.first_rank_v2_pc_rank_v29&utm_term=%E9%94%99%E8%AF%AF%EF%BC%9ACannot+find+a+valid+baseurl+for+repo%3A+base

2、Centos添加用户并获得root权限

(1)添加用户

adduser zutian

(2)修改/etc/sudoers文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aPZKMe6e-1648185116625)(Pic/image-20210311224734976.png)]

(3)赋予root权限

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K0G6WOZD-1648185116626)(Pic/image-20210311224815781.png)]

3、安装gcc-c++报错解决办法

(1)原因
yum源没有对应版本包匹配

(2)解决方法

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
sed -i  's/$releasever/7/g' /etc/yum.repos.d/CentOS-Base.repo
yum repolist 

4、代码和注释不能在同一行!!!

#常见技巧

1、让所有用户显示行号

(1)在/etc/目录下编辑vimrc文件

vim /etc/vimrc

(2)加入以下内容:

set number

(3)末行模式:wq保存文件,手动加载配置:

source /etc/bashrc

2、防火墙开放端口

2.1

(1)修改防火墙配置文件 vim /etc/sysconfig/iptables

(2)service iptables save
(3)service iptables restart

2.2 关闭防火墙

1、直接关闭防火墙

systemctl stop firewalld.service

2、禁止firewall开机启动

systemctl disable firewalld.service
sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service
sudo systemctl stop iptables.service
sudo systemctl disable iptables.service

sudo vim /etc/selinux/config

注释下面两行:

#SELINUX=enforcing

#SELINUXTYPE=targeted

sudo setenforce 0

3、centos6yum源失效配置

最近CentOS 6已经停止更新支持,同时官方也把yum源删除了,目前CentOS 6系统使用yum命令安装软件包基本都是失败,因此需要更换yum源。

在ssh界面执行以下命令即可一键更换yum源为CentOS的Vault源(包括CentOS官方和阿里云的源):


wget -O /etc/yum.repos.d/CentOS-Base.repo http://file.kangle.odata.cc/repo/Centos-6.repo
wget -O /etc/yum.repos.d/epel.repo http://file.kangle.odata.cc/repo/epel-6.repo
yum makecache

4、CentOS 8 更换为阿里云的源

首选配置:

B站:
https://www.bilibili.com/video/BV1uZ4y1W7NT?from=search&seid=11695444536734456888

其他:

(1)备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

(2)下载新的CentOS-Base.repo 到/etc/yum.repos.d/
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo

(3)生成缓存
yum makecache

5、git clone 速度慢的问题

使用国内镜像,目前已知Github国内镜像网站有github.com.cnpmjs.org和git.sdut.me/。速度根据各地情况而定,在clone某个项目的时候将github.com替换为github.com.cnpmjs.org即可。

//这是我们要clone的
git clone https://github.com/Hackergeek/architecture-samples
 
//使用镜像
git clone https://github.com.cnpmjs.org/Hackergeek/architecture-samples
 
//或者
//使用镜像
git clone https://git.sdut.me/Hackergeek/architecture-samples

6、修改主机名,配置对应IP

hostnamectl set-hostname linux

vim /etc/hosts
添加  192.168.0.201 linux

7、解决***慢更换下载源

cd /etc/yum.repos.d/

mv CentOS-Base.repo CentOS-Base.repo.back  #建议备份或者改名

wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo #CentOS8用

yum makecache #生成缓存