# 远程登录与文件的传输工具

## 上传文件到Linux中


```
使用ftp(File Transform protol)协议,linux自带了sftp协议可以被ssh协议直接支持
securecrt 按下ALT+P就开启新的会话 进行ftp操作。
输入:help命令,显示该FTP提供所有的命令
          pwd:  查询linux主机所在目录(也就是远程主机目录)
          lpwd: 查询本地目录(一般指windows上传文件的目录:我们可以通过查看”选项“下拉框中的”会话选项“,如图二:我们知道本地上传目录为:D:/我的文档)
          ls:   查询连接到当前linux主机所在目录有哪些文件
          lls:  查询当前本地上传目录有哪些文件
          lcd:  改变本地上传目录的路径
          cd:   改变远程上传目录
          get:  将远程目录中文件下载到本地目录
          put:  将本地目录中文件上传到远程主机(linux)
        quit: 断开FTP连接  
```
## 解压文件
```
tar 文件、目录打(解)包
    -c 建立一个压缩文件的参数指令(create)
    -x 解开一个压缩文件的参数指令(extract)
    -z 是否需要用 gzip 压缩
    -j 是否需要用 bzip2 压缩
    -v 压缩的过程中显示文件(verbose)
    -f 使用档名,在 f 之后要立即接档名(file)
案例:
    tar -ivh /压缩文件路径信息 /解压到那个路径的信息
```
## vim 文本编辑器

```
1、VIM简介
    vi / vim是Unix / Linux上最常用的文本编辑器而且功能非常强大。只有命令,没有菜单。
2、插入命令
    i    在光标前插入
    I    在光标当前行开始插入
    a    在光标后插入
    A    在光标当前行末尾插入
    o    在光标当前行的下一行插入新行
    O    在光标当前行的上一行插入新行
3、定位命令
    :set nu    显示行号
    :set nonu    取消行号
    gg    到文本的第一行
    G    到文本的最后一行
    :n    到文本的第n行
4、删除命令
    x    删除光标所在处字符
    nx    删除光标所在处后的n个字符
    dd    删除光标所在行。ndd删除n行
    dG    删除光标所在行到末尾行的所以内容
    D    删除光标所在处到行尾的内容
    :n1,n2d    删除指定范围的行
5、替换和取消命令
    u    undo,取消上一步操作
    Ctrl + r      redo,返回到undo之前
    r    替换光标所在处的字符
    R    从光标所在处开始替换,按Esc键结束
6、常用快捷键
    Shift+ zz    保存退出,与“:wq”作用相同
    v    进入字符可视模式
    V  或  Shift + v    进入行可视模式
    Ctrl + v    进入块可视模式
```

## Linux的常用安装模式
1,绿色版,使用tar直接解压(jdk)
2,源码版,使用make编辑安装
3,rpm安装版本
4,在线安装,YUM

# JDK的安装
```
*添加执行权限    (这个可以忽视)
    chmod u+x jdk-7u45-linux-i586.bin
    *解压
        ./jdk-7u45-linux-i586.bin
    *在/usr目录下创建java目录
        mkdir /usr/java
    *将/soft目录下的解压的jdk1.7.0_45剪切到/usr/java目录下
        mv jdk1.7.0_45/ /usr/java/
 直接解压拷贝(tar -zxvf /home/aya4/jdk-7u55-linux-i586.tar.gz -C /usr/java/)
    *添加环境变量
        vim /etc/profile
        *在主目录下查找:/etc/profile文件最后添加
            export JAVA_HOME=/usr/java/jdk1.7.0_45
            export PATH=$JAVA_HOME/bin:$PATH
    *更新配置
        source /etc/profile
```

## tomcat 的安装
```
tar -zxvf /soft/apache-tomcat-7.0.47.tar.gz -C /programs/
    cd /programs/apache-tomcat-7.0.47/bin/
    ./startup.sh    开启服务
./shutdown.sh    关闭服务
    ps aux | grep tomcat //查看tomcat是否启动

    强制关闭 kill -9 端口号
```
## 防火墙的管理

```
(1)防火墙开放端口
    敲入命令  vim /etc/sysconfig/iptables
    
    让防火墙重启:  /etc/init.d/iptables restart
(2)临时开启或关闭防火墙
    开启:service iptables start
    关闭:service iptables stop
    判断是否开启:service iptables status
(3)永久开启或关闭防火墙
    开启:chkconfig iptables on
    关闭:chkconfig iptables off
```

## RPM的安装命令使用
```
(RedHat软件包管理工具)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括RedHat、CentOS、SUSE等Linux的分发版本都有采用,可以算是公认的行业标准了。RPM文件在Linux系统中的安装最为简便。
rpm的常用参数
    i:安装应用程序(install)
    e:卸载应用程序(erase)
    vh:显示安装进度;(verbose   hash)
    U:升级软件包;(update)
    qa: 显示所有已安装软件包(query all)
    结合grep命令使用
    例子:rpm  -ivh  gcc-c++-4.4.7-3.el6.x86_64.rpm
    如果有冲突则需要添加--replacefiles
    rpm  -ivh  --replacefiles  4.4.7-3.el6.x86_64.rpm
```

# mysql的安装
mysql就是用RPM命令来进行安装的

```
rpm -ivh MySQL-server-community-5.1.68-1.rhel5.i386.rpm
 
1,先将mysql的server和client上传到linux(可以安装到任意机器上)上

2,首先安装Server版本,使用RPM命令进行安装(必须要有perl在linux中)
#会出现mysql冲突问题呢,
#方案一,使用rpm -qa | grep mysql 查询,然后代码删除
    Rpm -e mysql-libs-5.1.71-1.el6.x86_6 --nodeps
#方案二,强制安装
    rpm -ivh --replacefiles MySQL-server-5.5.54-1.linux2.6.x86_64.rpm

3,安装完毕之后,安装Client版本
     rpm -ivh MySQL-client-5.5.54-1.linux2.6.x86_64.rpm
 
4,启动mysql的服务
    Service mysql start


5,使用client提供的默认配置文件进行配置

    /usr/bin/mysql_secure_installation


6,进入到mysql中
    mysql -uroot -p123456


(1)开放3306端口的远程连接权限:(可以关闭防火墙 )
        在“-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited”这一行的上面(注意,一定是上面),添加如下一行:
        -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
        然后重启iptables:
        [root@localhost ~]# service iptables restart
(2)为MySQL的root用户添加远程访问权限:
        [root@localhost ~]# mysql -uroot -p
        Enter password: (此处输入密码登录)
        mysql> grant all on *.* to root@'%' identified by 'your_password';    //设置远程登陆密码           
        Query OK, 0 rows affected (0.01 sec)
        mysql> exit
        Bye
        [root@localhost ~]# /etc/init.d/mysql restart

(3)执行sql脚本
        进入mysql的控制台后,使用source命令执行
        Mysql>source 【sql脚本文件的路径全名】 或 Mysql>\. 【sql脚本文件的路径全名】,示例:
        //方法一
        source \test\ss.sql
        //方法二
        \. \test\ss.sql
        
```
## 彻底的删除安装过的mysql

```

1、使用该命令找到当前mysql的安装信息:rpm -qa\grep -i mysql

2、删除命令:rpm -e –nodeps 包名

3、找到老版本的mysql目录:find / -name mysql

4、手动删除.cnf文件:rm -rf ..../my.cnf

```


# java项目的导入

## springboot 打war包



```


1,一般的war结构大致是这样的


        


        └── META-INFO


        └── WEB-INFO


            └── lib   #一些依赖的jar包


            └── classes #classpath目录


            └── web.xml  


            └── 其它配置文件、属性文件等  


        └── 其它资源文件


        Servlet 3.0之后可以使用注释定义Servlet和过滤器,就无需在web部署描述符(web.xml)中建立Servlet/过滤器配置了,tomcat7.0以上版本支持Servlet 3.0。





2,修改pom.xml


2.1 修改packaging为war


        <packaging>war</packaging>



2.2 修改打包war的插件


        <plugin>


           <groupId>org.apache.maven.plugins</groupId>


           <artifactId>maven-war-plugin</artifactId>


           <version>2.4</version>


           <configuration>


              <failOnMissingWebXml>false</failOnMissingWebXml>


           </configuration>


        </plugin>



3,修改入口的main方法


        @SpringBootApplication


        public class Springboot1Application extends SpringBootServletInitializer {


           public static void main(String[] args) {


              SpringApplication.run(Springboot1Application.class, args);


           }


           @Override


           protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {


              // TODO Auto-generated method stub


              return builder.sources(Springboot1Application.class);


           }


        }



            <dependency>


               <groupId>org.springframework.boot</groupId>


               <artifactId>spring-boot-starter-tomcat</artifactId>


               <scope>provided</scope>


            </dependency>




4,配置maven打包命令


        clean package spring-boot:repackage



```


## maven的热部署



```


1、使用package命令直接将maven工程打包成.war,上传到webapp的目录下


    


    如果需要指定的导入的jar包的话,可以配置:

<plugin> 

                    <groupId>org.apache.maven.plugins</groupId> 

                    <artifactId>maven-war-plugin</artifactId> 

                    <configuration> 

                        <webResources> 

                            <resource> 

                                <directory>${project.basedir}/lib</directory> 

                                <targetPath>WEB-INF/lib</targetPath> 

                                <filtering>true</filtering> 

                                <includes> 

                                    <include>**/*.jar</include> 

                                </includes> 

                            </resource> 

                        </webResources> 

                    </configuration> 

            </plugin>

2、热部署


2.1启动热部署前需要配置tomcat密码,进入到下面文件夹中


    最后添加:


        .<rolerolename="manager-gui"/>


        .<rolerolename="manager-script"/>


        .<userpassword="123456"roles="manager-gui, manager-script"username="tomcat"/>


2.2 启动tomcat 在浏览器中访问tomcat点击managerApp 输入刚刚配置tomcat的用户名和密码


    完成后的效果:就是对应webapp目录下的内容


    


2.3修改项目的pom.xml


    修改<build>标签下的<configuration>中的<url>路径作为<path>中的发布路径



2.4 maven项目build


    Goals:tomcat7:deploy


    注意:发布路径第一次是:deploy ,第二次就是:redploy(从新部署)



2.5 部署完后就可以通过地址+项目名称来进行访问啦


2.6:去掉项目名称的访问


        。。。。。。。。。


2.7 从新发布:


    发布命令:tomcat7:redploy


    如果使用deploy命令的话会失败,因为工程已经部署过了,现在要重新部署一次


```


## YUM命令的使用



```


Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE、CentOS中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。



命令的使用:


    查看已安装  yum list installed |grep java。


    卸载  yum -y remove java-1.7.0-openjdk*


    测试网络是否通畅  ping www.baidu.com


    搜索yum库  yum -y list java*


    安装 yum -y install java-1.7.0-openjdk*


```