Linux
pwd print work directory 打印工作目录,当前所在的位置
/home/xiangwei
/ 表示当前系统的根目录,Linux是一个单盘的操作,不知识多个盘,系统、自己的文件都在同一个盘下
home 默认用来配置用户信息,当前用户的主目录,用户通过自己的账号登录到系统上默认的工作路径就在home对应的账号下
ls list 列表 默认情况下查看当前工作目录下的非隐藏的文件及文件夹(目录)
-a all 查看所有
. 当前目录 ./js/xxx.js
.. 上一级目录 ../js/xxx.js
每一个目录中都有这两个目录,Linux操作就是根据.和..形成树形结构、
-l list 查看文件属性
d rwxr-xr-x 2 xiangwei xiangwei 6 10月 13 14:59 公共
d 所在的位置标示文件类:d标示为directory ,而 - 表示为普通文件
rwxr-xr-x 当前文件的权限
2 软连接数(快捷方式)
xiangwei 属主名
xiangwei 属组名
6 文件大小
10月 13 14:59 最后修改时间
公共 文件名
cd change directory 切换工作路径
cd .. 切换到上一级目录
cd . 切换到当前目录
cd / 切换到系统跟路径
cd ~ 切换到当前用户主目录(/home/用户名)
cd 同上
cd ../.. 切换到上上级目录 相对路径
cd /home/zhangsan/abc 绝对路径
mkdir make directory 创建目录
mkdir 目录名
mkdir 目录名1 目录名2 ....... 一次性创建多个目录
mkdir -p 目录名1/目录名2/..... 创建父子结构的目录
rm remove 删除文件或者目录
rm -r 目录名
rm 文件名 删除文件
clear 清屏 与windows中cls 作用一样
touch 创建文件(空文件)
cp copy 拷贝文件
cp 文件1 文件2 将文件1拷贝一份重命名为文件2
cp 文件 目录 将文件拷贝到指定目录中
cp 文件1 目录/文件2 将文件1拷贝到目录下,并重命名为文件2
mv move 移动:剪切或者重命名
mv 文件名 目录名 将文件移动到目录中
mv 文件名1 文件名2 重命名
mv 文件名1 目录/文件名2 将文件移动到目录并且重名为文件名2
vi vi编辑器,用来编辑文件的指令
使用vi编辑器编辑文件时有三种状态,每一种状态能够做的事不一样
打开状态(打开模式) 刚打开文件时的状态,在此状态下文件不可用编辑
↓ 切换 i insert o下一行插入 O上一行插入 a当前光标后插入 A行尾插入
编辑状态(编辑模式) 在此状态下可以修改文件
↓ 切换 首先按"Esc"键,切换到打开状态,然后再输入一个:才会切换到命令状态
命令状态(命令模式) 在此状态输入一些命令对当前文件进行操作
w write 写入,保存
q quit 退出,退出之前应该先保存文件
wq 保存并退出
! 强制执行
打开状态下的快捷键:(按Esc)
yy 复制行 5yy 复制行
p 粘贴
dd 删除、剪切 5dd
u 撤销
ctrl+r 反撤销
/字符串 查找字符串 n定位到下一个
cat 不打开文件的情况下查看文件内容,只适合查看内容较少的文件
more 不打开文件的情况下分页查看文件 只支持后翻
回车 查看下一行
空格 下一页
q 退出查看
less 不打开文件的情况下分页查看文件 支持前后翻
ctrl+n 下一行
Ctrl+f 下一页
Ctrl+b 上一页
Ctrl+d 下半页
Ctrl+u 上半页
回车 下一行
空格 下一页
q 退出
管道 |
用法: 命令1 | 命令2
先执行命令1,将命令1的输出作为命令2的输入
例如:ls /etc | less 使用less分页查看ls /etc的结果
案例:cat a.txt | grep -n ‘abc’
grep分析内容 -n包含行 ‘abc’
案例:cat a.txt | grep -n -c ‘abc’ count
-c:统计包含字符串的行数
案例:cat a.txt | grep -n -v ‘abc’
-v:统计哪些行不包含字符串
find 查找文件、目录
目录:find 范围 -name '关键字' -type d 精确查找
例如:find . -name 'dir1' -type d
文件:find 范围 -name '关键字' -print 精确查找
例如:find . -name 'a.txt' -print
通配符 * 表示任意多个字符
例如:find . -name '*.txt' -print 查找当前目录及其子目录中所有的txt文件
用户管理
Linux是一种多用户的操作,运行多个用户同时登录该系统进行各自操作
root 超级管理员,可以对系统任何文件、目录做任何事
普通用户 就只能操作自己的文件、目录
属主:创建文件、目录的用户
属组(群组):属主所在组,组是为了方便管理不同用户权限设置的,同一个组里面用户权限是一样的
其他:其它人
1、在Linux系统的/etc/group文件记录了当前系统上组信息
xiangwei 1000:
组名 组密码的占位符 组id
2、/etc/shadow 记录了当前系统上所有用户信息
切换到root用户进行以下操作
useradd 用户名 新建用户
用法
useradd -d 用户主目录 用户名
例如:useradd -d /home/zhangsan zhangsan 新建一个用户叫zhangsan,他的主目录是/home/zhangsan
passwd 用户名 设置密码
例如:passwd zhangsan
userdel -r 用户名 删除用户同时删除该用户主目录
su 切换账号
su root 切换到root用户
chmod 修改文件或者目录的权限
ls -l 查看文件、目录详情
在Linux系统中文件、目录操作权限有三个
r read 读 读取、查看
w write 写 修改
x execute 执行权限
rw- rw- r— 分别标注了三类用户操作权限 属主 属组 其他人
110 110 100
6 6 4
添加权限
chmod +权限 文件
去掉权限
chmod -权限 文件
用数字代替权限
例如:chmod 777 a.txtz
归档
压缩
Linux系统中常见有两种压缩格式:xxx.tar xxx.tar.gz xxx.zip
tar
压缩 tar -cf xxx.tar 文件名/目录名 将文件、目录压缩tar文件
解压 tar -xf xxx.tar
tar.gz
压缩 tar -czf xxx.tar.gz 文件/目录
解压 tar -zxvf xxx.tar.gz
安装JDK
1、先卸载系统自带的OpenJDK
openjdk是jdk的开放原始码版本,以GPL协议的形式放出。在JDK7的时候,openjdk已经成为jdk7的主干开发,sun jdk7是在openjdk7的基础上发布的,其大部分原始码都相同,只有少部分原始码被替换掉。
1.1、输入:java -version 查看OpenJDK版本
1.2、输入:rpm -qa|grep java 查找包含java的套件
rpm 管理套件
-qa 使用询问模式,查询所有套件
grep 查找文件里符合条件的字符串
java 查找包含java字符串的文件
其中下列几个是可以删除的
1.3、输入:su root切换到root用户
1.4、输入命令删除指定的套件
命令介绍:
rpm 管理套件
-e 删除指定的套件
--nodeps 不验证套件档的相互关联性
将四个都删除
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.191-2.6.15.5.el7.x86_64
rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.191-2.6.15.5.el7.x86_64
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.181-7.b13.el7.x86_64
1.5、检查是否删除成功:java -version 出现java:未找到命令说明卸载成功
2、下载JDK 8
下载地址:
https://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html
没有账号的可以自己免费注册一个。
2.1、使用root用户创建/usr/java目录
mkdir /usr/java
2.2、将工作目录切换到/usr/java
cd /usr/java
2.3、将下载好的压缩包通过xshell上传到/usr/java
2.4、切换到/usr/java目录下解压安装包,输入:tar -zxvf jdk-8u192-linux-x64.tar.gz
命令介绍:
tar 解压文件
-zxvf
-z 通过gzip指令处理备份文件
-x 从备份文件中还原文件
-v 显示指令执行过程
-f 指定备份文件
3、配置环境变量
3.1、输入 vi /etc/profile打开文件进行编辑
3.2、在文件最后添加以下代码
\#java environment
export JAVA_HOME=/usr/java/jdk1.8.0_***\*192\****
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin
3.3、保存退出
3.4、输入命令让刚才的配置生效
source /etc/profile
3.5、输入 java -version验证JDK是否安装成功
安装Tomcat
1、检查是否安装过Tomcat
rpm -qa|grep tomcat 检查是否安装过Tomcat
ps -ef|grep tomcat 检查系统中是否有运行Tomcat
2、到Tomcat官网下载Tomcat:https://tomcat.apache.org/download-80.cgi
3、将下载好的压缩包放到/usr/local目录下并解压
4、将Tomcat解压后的目录名修改为tomcat
5、启动Tomcat
/usr/local/tomcat/bin/startup.sh
6、修改防火墙,放行8080端口
将tomcat.xml拷贝到/etc/firewalld/services/中
7、执行命令将tomcat.xml加入到防火墙规则中
firewall-cmd --reload
firewall-cmd --add-service=tomcat
firewall-cmd --permanent --add-service=tomcat
8、在windows的浏览器中输入
http://192.168.0.104:8080 检测tomcat是否安装成功,其中192.168.0.104是虚拟机的IP地址
安装MySQL
一、卸载centos7自带的数据库
在新版本的CentOS7中,默认的数据库已更新为了Mariadb,而非 MySQL,所以执行 yum install mysql 命令只是更新Mariadb数据库,并不会安装 MySQL 。
1、查看已安装的 Mariadb 数据库版本。
rpm -qa|grep -i mariadb
2、卸载已安装的 Mariadb 数据库。
rpm -qa|grep mariadb|xargs rpm -e --nodeps
二、离线安装MySQL
1、卸载系统自带的Mariadb
rpm -qa|grep mariadb|xargs rpm -e --nodeps
2、删除etc下的my.cnf配置文件
rm -f /etc/my.cnf
3、创建MySQL用户组
groupadd mysql
4、创建mysql用户并加入mysql用户组
useradd -g mysql mysql
5、下载MySQL安装包
https://dev.mysql.com/downloads/mysql/5.6.html#downloads
6、利用xshell将安装包上传到Linux的/usr/local目录下,解压并重命名为mysql
tar -zxvf mysql-5.6.44-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.6.44-linux-glibc2.12-x86_64 mysql
7、在etc下新建配置文件my.cnf,并在该文件内添加以下代码 vi /etc/my.cnf
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
[mysqld]
skip-name-resolve
#设置3306端口
port=3306
socket=/var/lib/mysql/mysql.sock
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
8、创建步骤9中用到的目录并将其用户设置为mysql
mkdir /var/lib/mysql
mkdir /var/lib/mysql/mysql
chown -R mysql:mysql /var/lib/mysql # 授权,授予mysql用户对/var/lib/mysql的读操作权限
chown -R mysql:mysql /var/lib/mysql/mysql
9、进入mysql主目录执行以下操作
cd /usr/local/mysql
chown -R mysql:mysql ./ #修改当前目录拥有者为mysql用户
yum -y install autoconf #安装autoconf库(在线)
./scripts/mysql_install_db --user=mysql #安装数据库
chown -R mysql:mysql data #修改当前data目录拥有者为mysql用户
如果在线安装autoconf非常慢,也可以采用离线安装的方式,步骤如下:
注:离线安装autoconf
将autoconf-2.69.tar.gz上传到当前用户主目录并解压
tar -zxvf autoconf-2.69.tar.gz
进入该目录执行以下命令进行安装
./configure #配置编译环境
make;make install #编译并安装autoconf
autoconf --version #检查是否安装成功
安装完毕,但此时还暂时不能使用
10、授予my.cnf权限
chmod 644 /etc/my.cnf
11、设置启动脚本、启动MySQL
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld #复制启动脚本到资源目录
chmod +x /etc/rc.d/init.d/mysqld #增加mysqld服务控制脚本执行权限
chkconfig --add mysqld #将mysqld服务加入到系统服务
service mysqld start #启动msql
12、将mysql的bin目录加入PATH环境变量,编辑/etc/profile文件,在文件最后添加如下信息
export PATH=$PATH:/usr/local/mysql/bin
13、保存退出,使用以下命令使配置生效
source /etc/profile
14、以root账户登陆mysql,默认是没有密码,直接回车
mysql -u root -p
15、设置密码
set password for 'root'@'localhost'=password('**_*你的密码*_**');
16、设置开机启动
输入:exit退出mysql
再执行以下命令
systemctl enable mysqld 让mysql服务可用
systemctl daemon-reload 让mysql以后台任务的方式执行
17、开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
systemctl restart firewalld.service
至此MySQL安装完毕!!!
项目部署
1、将写好的项目打成war包
2、利用xshell将war上传到tomcat的webapps目录下
3、启动tomcat
4、打开浏览器访问项目
数据库迁移
1.导出原数据库数据
进入cmd (注意在os cmd中 而不是在mysql中)
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
导出的文件就在当前工作目录中
2.在新数据库中创建数据库
3.导入数据到新数据库
利用xshell上传导出的sql文件到Linux
4、在Linux上创建一个与Windows上名字一模一样的数据库
5.退出数据库,输入
mysql -u 用户名 -p 数据库名 < 文件名
项目部署起来之后可能存在以下问题
问题1
项目部署起来之后无法访问数据库,可能有两种原因
原因一:数据库没有授权
解决办法
对于mysql数据库没有授权,只需要用一条命令就可以了。
mysql>GRANT ALL PRIVILEGES ON _._ TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
//远程连接数据库的时候需要输入用户名和密码
用户名:root
密码:123456
输入后使修改生效还需要下面的语句
mysql>FLUSH PRIVILEGES;
原因二:没有开放3306端口
解决办法
firewall-cmd --zone=public --add-port=3306/tcp --permanent
systemctl restart firewalld.service
问题2:
验证码无法显示
原因:java在图形处理时调用了本地的图形处理库。在利用Java作图形处理(比如:图片缩放,图片签名,生成报表)时,如果运行在windows上不会出问题。如果将程序移植到Linux/Unix上的时候有可能出现图形不能显示的错误。
解决办法:
编辑Tomcat下的bin/catalina.sh文件
vi /usr/local/tomcat/bin/catalina.sh
在文件中添加如下命令,(解决LINUX字符模式无法支持java图形处理问题) (大概位置在392行)
-Djava.awt.headless=true \