关于Linux服务器的一些小细节

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解决方案

进入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 &quot;%r&quot; %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.可在构建这里重新构建模块和编译
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页