Linux的基础知识、tomcat安装、nginx安装、servlet项目创建

Linux基础知识

Linux初始化设置

设置主机名
[root]
hostnamectl set-hostname train2022
su
hostname
train2022
创建用户
[root]
useradd definesys
passwd definesys
输入definesys密码

常用命令

cd

cd是最常用的命令,用于目录的切换

cd /path/
#回到上级目录
cd ..
ls

ls可以列出当前目录所有文件

# ls
lsb_killproc  lsb_log_message  lsb_pidofproc  lsb_start_daemon

不过我们更常用的是 ls -l以列表形式列出

# ls -l
总用量 16
drwxr-xr-x 1 root root  70 327 2015 lsb_killproc
-rwxr-xr-x 1 root root 243 327 2015 lsb_log_message
-rwxr-xr-x 1 root root  59 327 2015 lsb_pidofproc
-rwxr-xr-x 1 root root 650 327 2015 lsb_start_daemon
cp

cp是复制文件和文件夹命令

cp /path/a/a.txt /path/b/b.txt
cp -r /path/a /path/
mv

mv是移动文件夹和文件的命令,也可以用来修改文件名

mv a.txt b.txt
mv a ../
rm

rm是删除文件命令,这个命令在生产环境中要慎用

#会进行确认
rm a.txt

#强制删除,不会确认
rm -rf a.txt
free

查看当前内存使用情况

# free -m
              total        used        free      shared  buff/cache   available
Mem:           7821         206        7287           0         327        7381
Swap:             0           0           0
  • Mem:物理内存
  • Swap:交换内存(本质上是硬盘)
  • total:总物理内存
  • used:目前已使用(包括缓存)
  • free:空闲内存
  • buf/cache:缓存(可以随时释放)
  • availabe:缓存+free,该指标比free更能准确反映当前内存使用情况
top

top查看当前系统进程列表以及当前系统运行情况

top - 16:06:49 up  3:51,  2 users,  load average: 0.00, 0.01, 0.05
Tasks:  82 total,   1 running,  81 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.5 sy,  0.0 ni, 99.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  8008932 total,  7460024 free,   212044 used,   336864 buff/cache
KiB Swap:        0 total,        0 free,        0 used.  7558348 avail Mem 
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                           
 1562 root      10 -10  134672  14072  11212 S   1.0  0.2   2:49.29 AliYunDun                                                         
 1400 root      20   0  889948  24324   7320 S   0.3  0.3   0:30.66 exe                                                               
    1 root      20   0  125456   3956   2624 S   0.0  0.0   0:00.96 systemd                                                           
    2 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kthreadd                                                          
    4 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H   
  • load average:当前系统负载情况,与uptime功能一样
  • cpu:cpu使用情况,us:用户,sy:系统,id:空闲,wa:等待
  • PID:进程id,每个进程都存在一个文件夹,位于/proc/PID
  • USER:进程启动用户,意味着该进程里的代码拥有该用户的权限,所以不建议业务应用使用root启动
  • RES:实际使用的内存,VIRT,使用虚拟内存
  • CPU:进程所占CPU(注意,有可能超过100%)
  • MEM:进程所使用内存百分比
fdisk

fdisk可以查看当前磁盘列表

[root@iZbp13nm23h1duwm5hgbziZ ~]# fdisk -l

磁盘 /dev/vda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000b6c99

   设备 Boot      Start         End      Blocks   Id  System
/dev/vda1   *        2048    83886046    41941999+  83  Linux
df

df可以显示当前磁盘使用情况

[root@iZbp13nm23h1duwm5hgbziZ ~]# df -Th
文件系统       类型      容量  已用  可用 已用% 挂载点
devtmpfs       devtmpfs  3.9G     0  3.9G    0% /dev
tmpfs          tmpfs     3.9G     0  3.9G    0% /dev/shm
tmpfs          tmpfs     3.9G  552K  3.9G    1% /run
tmpfs          tmpfs     3.9G     0  3.9G    0% /sys/fs/cgroup
/dev/vda1      ext4       40G  2.1G   36G    6% /
tmpfs          tmpfs     783M     0  783M    0% /run/user/0
curl

curl可以发起一个http请求,一般用来请求接口,测试接口连通性

# curl http://www.baidu.com
<!DOCTYPE html>
<!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content=always name=referrer><link rel=stylesheet type=text/css href=http://s1.bdstatic.com/r/www/cache/bdorz/baidu.min.css><title>百度一下,你就知道</title></head> <body link=#0000cc> <div id=wrapper> <div id=head> <div class=head_wrapper> <div class=s_form> <div class=s_form_wrapper> <div id=lg>....
ping

ping可以测试主机连通性,也可以通过ping获取域名的ip地址

ping www.baidu.com
PING www.a.shifen.com (180.101.49.11) 56(84) bytes of data.
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=1 ttl=50 time=11.7 ms
history

history可以显示命令历史记录

[root@iZbp13nm23h1duwm5hgbziZ ~]# history
    1  clear
    2  lear
    3  clear
    4  free -m
    5  top
    6  unmae -a

可以在命令编号前面增加一个!就可以再次执行

!5
表示重新执行编号为5的命令
vi

vi是Linux上常用的文本编辑器,需要掌握一些vi的基本用法

tail

tail可以用于查看日志文件,当日志文件有新数据进来,会自动进行滚动

安装Tomcat

上传安装文件

创建文件夹/u01/installer

[root]
mkdir -p /u01/installer
chown -R definesys:definesys /u01

将以下文件上传到/u01/installer文件夹下

  • openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz
  • apache-tomcat-8.5.81.zip

如果没有unzip工具需要安装unzip工具

[root]
yum install unzip

安装JDK

[definesys]
$ cd /u01/installer
$ tar -xvf openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz
$ mv java-se-8u41-ri ../
$ vi ~/.bash_profile
...
JAVA_HOME=/u01/java-se-8u41-ri/
export PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME

$ source ~/.bash_profile 
$ java -version
openjdk version "1.8.0_41"
OpenJDK Runtime Environment (build 1.8.0_41-b04)
OpenJDK 64-Bit Server VM (build 25.40-b25, mixed mode)

安装Tomcat

unzip apache-tomcat-8.5.81.zip
mv apache-tomcat-8.5.81 ../
cd /u01/apache-tomcat-8.5.81/bin
chmod +x *.sh
  • 启动tomcat
cd /u01/apache-tomcat-8.5.81/bin
./startup.sh
  • 查看tomcat日志
cd /u01/apache-tomcat-8.5.81/logs
tail -500f catalina.out
  • 关闭tomcat
cd /u01/apache-tomcat-8.5.81/bin
./shutdown.sh

安装Nginx

  • 更新源
yum install -y yum-utils
yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo
  • 安装openresty
yum install -y openresty
  • 安装openresty工具
yum install -y openresty-resty
  • 验证
openresty -v
  • 启动nginx
cd /usr/local/openresty/nginx/sbin
./nginx
  • 关闭nginx
cd /usr/local/openresty/nginx/sbin
./nginx -s stop

创建servlet项目

  • 创建普通Maven项目,并输入项目信息

  • pom.xml中添加以下内容
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    ....
    
    <packaging>war</packaging>
    <dependencies>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <webResources>
                        <resource>
                            <directory>${project.basedir}/src/main/resources/</directory>
                        </resource>
                    </webResources>
                    <warName>${project.artifactId}</warName>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project

packaging指定打包方式为war包,servlet-api是开发servlet程序的基础依赖包,scope必须声明为provided,表示运行时依赖由运行环境提供,打包需要借助maven-war-plugin工具进行打包。

  • resources目录下创建WEB-INF目录,并在WEB-INF目录下创建web.xml文件,名称不能改。

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
         version="2.5" xmlns="http://java.sun.com/xml/ns/javaee">
    <servlet>
        <servlet-name>hello</servlet-name>
        <servlet-class>com.demo.service.HelloServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>hello</servlet-name>
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
</web-app>
  • 新建Servlet类
package com.demo.service;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * @Description:
 * @author: jianfeng.zheng
 * @since: 2020/7/7 21:31 PM
 * @history: 1.2020/7/7 created by jianfeng.zheng
 */
public class HelloServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String name=req.getParameter("username");
        String content="hello "+name;
        resp.getOutputStream().write(content.getBytes("utf-8"));
        resp.getOutputStream().flush();
    }
}

此时的目录结构如下:

.
├── hello-servlet.iml
├── pom.xml
└── src
    └── main
        ├── java
        │   └── com
        │       └── demo
        │           └── service
        │               └── HelloServlet.java
        └── resources
            └── WEB-INF
                └── web.xml
  • 在控制台执行maven打包命令
mvn clean package
  • target目录下war包复制到tomcat webapps目录下。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值