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 切换工作路径

  1. cd .. 切换到上一级目录
  2. cd . 切换到当前目录
  3. cd / 切换到系统跟路径
  4. cd ~ 切换到当前用户主目录(/home/用户名)
  5. cd 同上
  6. cd ../.. 切换到上上级目录 相对路径
  7. 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 59 - Linux 基础命令 JDK等安装 - 图1 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版本

59 - Linux 基础命令 JDK等安装 - 图2

1.2、输入:rpm -qa|grep java 查找包含java的套件

        rpm  管理套件

        -qa  使用询问模式,查询所有套件

        grep  查找文件里符合条件的字符串

        java  查找包含java字符串的文件

59 - Linux 基础命令 JDK等安装 - 图3

其中下列几个是可以删除的

59 - Linux 基础命令 JDK等安装 - 图4

1.3、输入:su root切换到root用户

59 - Linux 基础命令 JDK等安装 - 图5

1.4、输入命令删除指定的套件

命令介绍:

    rpm    管理套件

    -e     删除指定的套件

    --nodeps  不验证套件档的相互关联性

59 - Linux 基础命令 JDK等安装 - 图6

将四个都删除

        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

59 - Linux 基础命令 JDK等安装 - 图7

1.5、检查是否删除成功:java -version 出现java:未找到命令说明卸载成功

59 - Linux 基础命令 JDK等安装 - 图8

2、下载JDK 8

下载地址:

https://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html

59 - Linux 基础命令 JDK等安装 - 图9

没有账号的可以自己免费注册一个。

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、在文件最后添加以下代码

59 - Linux 基础命令 JDK等安装 - 图10

\#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

59 - Linux 基础命令 JDK等安装 - 图11

2、到Tomcat官网下载Tomcat:https://tomcat.apache.org/download-80.cgi

59 - Linux 基础命令 JDK等安装 - 图12

3、将下载好的压缩包放到/usr/local目录下并解压

4、将Tomcat解压后的目录名修改为tomcat

59 - Linux 基础命令 JDK等安装 - 图13

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地址

59 - Linux 基础命令 JDK等安装 - 图14

安装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

59 - Linux 基础命令 JDK等安装 - 图15

5、下载MySQL安装包

https://dev.mysql.com/downloads/mysql/5.6.html#downloads

59 - Linux 基础命令 JDK等安装 - 图16

6、利用xshell将安装包上传到Linux的/usr/local目录下,解压并重命名为mysql

    tar -zxvf mysql-5.6.44-linux-glibc2.12-x86_64.tar.gz

59 - Linux 基础命令 JDK等安装 - 图17

    mv  mysql-5.6.44-linux-glibc2.12-x86_64 mysql

59 - Linux 基础命令 JDK等安装 - 图18

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 数据库名 > 导出的文件名

导出的文件就在当前工作目录中

59 - Linux 基础命令 JDK等安装 - 图19

2.在新数据库中创建数据库

59 - Linux 基础命令 JDK等安装 - 图20

3.导入数据到新数据库

利用xshell上传导出的sql文件到Linux

4、在Linux上创建一个与Windows上名字一模一样的数据库

5.退出数据库,输入

mysql -u 用户名 -p 数据库名 < 文件名

59 - Linux 基础命令 JDK等安装 - 图21

项目部署起来之后可能存在以下问题

问题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 \

59 - Linux 基础命令 JDK等安装 - 图22