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 3月 27 2015 lsb_killproc
-rwxr-xr-x 1 root root 243 3月 27 2015 lsb_log_message
-rwxr-xr-x 1 root root 59 3月 27 2015 lsb_pidofproc
-rwxr-xr-x 1 root root 650 3月 27 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目录下。