文章目录
1.使用vim编辑器
vim 文件名
按insert进入编辑模式
按esc,然后:wq保存退出
2.如何编写运行Java程序:
1.vim HelloWorld.java
//编写代码
//按insert键编写
//先按esc,然后按":",然后wq回车 保存退出
2.javac HelloWorld.java
//编译源文件
3.java -cp . HelloWorld
//HelloWorld是类名:(HelloWorld.class)
//运行脚本
//假如要运行jar包:
4.java -jar test.jar
//要一直在后台运行
5.nohup java -jar test.jar &
//nohup为不断运行 &为在后台运行
6.jobs -l
//查看运行的进程
//若是关掉终端,再打开新的终端,则此命令不能查看,此时使用:
ps -ef //或者一些其他命令也可以,例如:ps -aux|grep
7. kill -9 5701
//杀掉进程 -9是kill命令的一个参数,可以理解为“强杀”,比起不带参数杀伤力更强。
//5701是进程号
3.Nginx停止服务和各种命令:
1.停止Nginx服务的四种方法
从容停止服务
这种方法较stop相比就比较温和一些了,需要进程完成当前工作后再停止。
nginx -s quit
立即停止服务
这种方法比较强硬,无论进程是否在工作,都直接停止进程。
nginx -s stop
systemctl 停止
systemctl属于Linux命令
systemctl stop nginx.service
killall 方法杀死进程
直接杀死进程,在上面无效的情况下使用,态度强硬,简单粗暴!
killall nginx
2.启动Nginx
nginx直接启动
nginx
1
systemctl命令启动
systemctl start nginx.service
1
3.查看启动后记录
ps aux | grep nginx
1
4.重启Nginx服务
systemctl restart nginx.service
1
5.重新载入配置文件
当有系统配置文件有修改,用此命令,建议不要停止再重启,以防报错!
nginx -s reload
1
6.查看端口号
netstat -tlnp
//或者netstat -atulnp
1.关于nginx重启异常nginx: [error] invalid PID number “” in "/usr/local/nginx/conf/nginx.pid解决方案
2.nginx做负载均衡
http {
upstream dalaoyang-server {
server localhost:10001;
server localhost:10002;
}
server {
listen 10000;
server_name localhost;
location / {
proxy_pass http://dalaoyang-server;
proxy_redirect default;
}
}
}
进入nginx目录下,比如我的目录 /usr/local/nginx/sbin
执行以下命令,重新加载下nginx.conf配置文件:
./nginx -c /usr/local/nginx/conf/nginx.conf
然后重新启动nginx:
./nginx -s reload
4.查看某个端口被哪个程序占用
//查询所有侦听端口
netstat -atulnp
netstat -tunpl |grep 端口号
//例如netstat -tunpl |grep 80
ps -ef|grep 进程ID
//例如 ps -ef|grep 33777
kill -9 进程ID
//关掉进程
5.查看内存使用情况
free -h
查看某一进程所占用内存的方法:
ps -ef | grep 进程名字//找到进程ID
top -p ID//通过进程ID显示
//或者
pidof nginx //查询该服务的pid
//然后
cat /proc/PID/status | grep VmRSS
6.关于云服务器上的MySQL自动安装后root默认密码的修改
1. 跳过MySQL的密码认证过程
//进入 my.cnf 文件,
vim /etc/my.cnf (Linux)
//在vim编辑状态下, 按 “i” 进入编辑状态, 添加(在开头前几行中添加即可)
skip-grant-tables
//编辑完之后是 esc ,退出编辑模式,
//然后输入 :wq 就可以保存修改的内容
2.重启MySQL:
service mysql restart
//service mysqld restart
3. 输入mysql进入mysql操作目录
mysql -u root -p (弹出输入密码直接回车就可以登录进去)
mysql> use mysql;
mysql> update user set password=password('你的密码') where user='root';
mysql> flush privileges;
//如果 update user set password=password(‘你的密码’) where user=‘root’; 报错换成
update mysql.user set authentication_string=password('你的密码') where user='root';
4.编辑my.cnf,去掉刚才添加的内容 “skip-grant-tables” ,然后重启MySQL。
5.然后重新进入服务器,重新输入
mysql -u root -p
1.如何远程连接服务器MySQL
1.在服务器端开启远程访问
首先进入mysql数据库,然后输入下面两个命令:
grant all privileges on *.* to 'root'@'%' identified by 'password';
flush privileges;
//第二个* 是数据库的表名称,*代表允许访问任意的表//也有说法说是* .* 前面的※号表示对所有用户,后面的※表示公开所有的数据
//root代表远程登录使用的用户名,可以自定义
//%代表允许任意ip登录,如果你想指定特定的IP,可以把%替换掉就可以了
//password代表远程登录时使用的密码,可以自定义
//flush privileges;这是让权限立即生效
2.在本地远程连接
在终端输入:
mysql -h 服务器ip地址 -P 3306 -u root -p
然后输入密码即可。
root是第1点设置的用户名,密码也是第1点设置的密码
7.Tomcat
1.Tomcat的关闭启动和端口的修改
1.启动
切换到root用户,进入Tomcat安装路径下的bin目录,执行“./startup.sh”命令,即可启动Tomcat服务器。
2.关闭
切换到root用户,进入Tomcat安装路径下的bin目录,执行“./shutdown.sh”命令,即可关闭Tomcat服务器。
3.修改端口
切换到root用户,进入Tomcat安装路径下的conf目录,编辑server.xml文件
2.腾讯云服务器自动安装的Tomcat遇到的一些问题
1.打开页面访问时不是Tomcat默认主页
1.修改 /usr/local/tomcat/conf/vhost 下的localhost.xml文件
修改成:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="ROOT" reloadable="false" crossContext="true"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" />
<Valve className="org.apache.catalina.valves.RemoteIpValve" remoteIpHeader="X-Forwarded-For"
protocolHeader="X-Forwarded-Proto" protocolHeaderHttpsValue="https"/>
</Host>
2.若要修改监听端口,可修改/usr/local/tomcat/conf下的server.xml文件
3.若要使用jsp连接MySQL数据库,直接将jdbc驱动即mysql-connector-java-8.0.21.jar上传到Tomcat的lib目录下即可
jsp中使用jdbc驱动代码:
Class.forName("com.mysql.cj.jdbc.Driver");
1.Tomcat使用javabean
1.先在webapps/ROOT目录下新建WEB-INF/classes文件夹(已建跳过),然后看你要编译的*.java的文件打包在哪里,若是package com.demo 则在classes文件下下新建com/demo,然后把.java文件上传到demo目录下,然后javac .java 编译即可。
2.一些错误:
(1).Tomcat运行jsp报错:javax.servlet.ServletException: java.lang.NoClassDefFoun或者javax.servlet.ServletException: java.lang.NoClassDefFoundError: demo1/LoginDao
这种情况有可能是
(a.)由于java的重复编译造成的,解决方法:
进入Tomcat的work目录下,把ROOT目录下的文件都删除。
(b)可能是包路径下没有.class文件,检查是否有,如果没有重新上传文件到包路径下。然后重启Tomcat。
(2).Tomcat运行jsp报错:ClassNotFoundException或者 xxx not class type之类的。可以尝试解决方法:
先在tomcat/或者在根目录下新建WEB-INF文件夹,在WEB-INF/ 下新建classes/ 在classes目录下放置.java文件,然后 javac .java 编译,若.java文件是package xxx,即打包在xxx中,则在classes下再建一个xxx目录,把.java编译后的.class文件复制进入。
然后把整个WEB-INF文件夹移动到webapps的ROOT目录下。
(3).若出现一些类似Exception org.apache.jasper.JasperException: An exception occurred processing 看看是不是没有上传jdbc驱动到Tomcat的lib目录下,导致连接数据库失败
3.使用eclipse导出web工程war包并上传到tomcat。
注意:本地的jdk版本要和云服务器上的jdk版本一致
如果要使用jdbc,则要把jdbc驱动放到tomcat的lib目录下,而不是项目的lib目录或者项目的其他目录下
1.eclipse新建web工程,file->new->other,输入web,选择Dynamic web project
2.Target runtime 运行环境选择你下载的tomcat版本
3.点击next,把Generate web.xml这个勾打上,finish。
4.在webcontent下新建jsp文件,在java Resources下新建java文件
5.项目完成后。导出war包。右键项目名字,选择export ->war file 即可。
6.上传到tomcat,直接把war上传到webapps目录下即可。注意:若tomcat的server.xml的工作目录为webapps/web,则要把war文件名字改为相对应的名字即web.war。或者工作目录为webapps,则可以通过http;ip/war名字访问
4.使用idea新建web工程,并导出war包
测试为idea2020.2版本
1.新建项目java普通项目
2.右键项目名字,点击推荐框架支持,然后推荐web即可。
3.导出war。点击文件,选择项目结构
4.选择web Application Active,然后确定即可
5.可在构建这里重新构建模块和编译