一、Linux与云服务器
1、Linux发行版本
二、Linux基础操作
1、使用Linux命令
列出目录下所有文件和子目录的命令格式:
[root@iZ0jl6lprbiisf6xsgu1smZ ~]# ls -l /
total 24
dr-xr-xr-x. 2 root root 6 May 16 2022 afs
lrwxrwxrwx. 1 root root 7 May 16 2022 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 Jun 13 11:18 boot
drwxr-xr-x 19 root root 3120 Sep 12 09:52 dev
drwxr-xr-x. 104 root root 8192 Sep 12 09:52 etc
drwxr-xr-x. 2 root root 6 May 16 2022 home
lrwxrwxrwx. 1 root root 7 May 16 2022 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 May 16 2022 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 May 16 2022 media
drwxr-xr-x. 2 root root 6 May 16 2022 mnt
drwxr-xr-x. 2 root root 6 May 16 2022 opt
dr-xr-xr-x 161 root root 0 Sep 12 09:52 proc
dr-xr-x---. 6 root root 168 Jun 13 11:28 root
drwxr-xr-x 37 root root 1040 Sep 12 09:52 run
lrwxrwxrwx. 1 root root 8 May 16 2022 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 May 16 2022 srv
dr-xr-xr-x 13 root root 0 Sep 12 09:52 sys
drwxrwxrwt. 5 root root 4096 Sep 12 10:16 tmp
drwxr-xr-x. 12 root root 144 Jun 13 11:12 usr
drwxr-xr-x. 20 root root 4096 Jun 13 03:18 var
Linux 文件系统
- 根目录/:Linux文件系统的根目录。它是文件系统的顶级目录,包含了所有文件、目录和子目录的层次结构。
- /bin、/sbin、/usr/bin、/usr/sbin:这些目录包含了Linux操作系统的核心程序,例如grep、ls、chmod等。其中/bin和/sbin包含的程序一般是系统管理员用于系统维护和修复的,而/usr/bin和/usr/sbin目录包含的程序则是一般用户常用的工具和服务端程序。
- /etc:这个目录包含了系统的配置文件,例如用户和组的配置、网络设置、服务配置等。
- /home:这个目录包含了所有普通用户的个人文件、目录和配置文件。
- /var:这个目录包含了变量文件,例如系统日志、邮件日志、缓存文件等。
- /proc:这个目录是一个虚拟目录,它包含了内存中运行的进程的信息,例如进程ID、内存使用情况等。
- /dev:这个目录包含了设备文件,例如磁盘、鼠标、键盘等。
- /tmp:这个目录包含了临时文件,例如缓存文件、日志文件、临时下载文件等。
2、文件系统命令
(1)列目录命令ls
ls [选项] [路径]
常用选项包括:
- -a:显示所有文件,包括隐藏文件和当前目录和父目录的符号链接
- -l:以长格式显示文件信息,包括文件属性、权限、大小、创建日期等信息
- -h:配合-l选项,以人类可读的格式显示文件大小,例如‘1K’、‘2M’等
- -r:倒序显示文件列表
- -t:按照文件修改时间排序
ls #列出当前目录下的所有文件和目录。
ls /etc #列出/etc目录下的所有文件和目录。
ls -a #列出当前目录下的所有文件和目录,包括隐藏文件和当前目录和父目录的符号链接。
ls -l /home #以长格式列出/home目录下的所有文件和目录的详细信息。
ls -lh /var/log #以人类可读的格式列出/var/log目录下的所有文件和目录的详细信息。
ls -lrt /tmp #以倒序并按照修改时间列出/tmp目录下的所有文件和目录的详细信息。
(2)当前目录、pwd 和 cd
pwd用于显示当前目录的完整路径
[root@iZ0jl6lprbiisf6xsgu1smZ ~]# pwd
/root
cd用于进入某一个目录
[root@iZ0jl6lprbiisf6xsgu1smZ ~]# cd /etc/
[root@iZ0jl6lprbiisf6xsgu1smZ etc]#
(3)创建目录命令mkdir
mkdir创建新目录,默认是在当前目录下创建
[root@iZ0jl6lprbiisf6xsgu1smZ ~]# cd /opt/
[root@iZ0jl6lprbiisf6xsgu1smZ opt]# mkdir hello
[root@iZ0jl6lprbiisf6xsgu1smZ opt]# ll
total 0
drwxr-xr-x 2 root root 6 Sep 12 11:30 hello
#创建多级目录
[root@iZ0jl6lprbiisf6xsgu1smZ opt]# mkdir -p test1/test2
[root@iZ0jl6lprbiisf6xsgu1smZ opt]# ls /opt/
hello test1
(4)文件/文件夹改名 mv
[root@iZ0jl6lprbiisf6xsgu1smZ opt]# cd test1
[root@iZ0jl6lprbiisf6xsgu1smZ test1]# ll
total 0
drwxr-xr-x 2 root root 6 Sep 12 11:33 test2
[root@iZ0jl6lprbiisf6xsgu1smZ test1]# mv test2 test3 #把当前目录中的test2 改成test3
[root@iZ0jl6lprbiisf6xsgu1smZ test1]# ll
total 0
drwxr-xr-x 2 root root 6 Sep 12 11:33 test3
[root@iZ0jl6lprbiisf6xsgu1smZ test1]#
cd 在当前目录下创建空的记事本文件
[root@iZ0jl6lprbiisf6xsgu1smZ test1]# cd > file.txt
[root@iZ0jl6lprbiisf6xsgu1smZ ~]# ll
total 0
[root@iZ0jl6lprbiisf6xsgu1smZ ~]# ls /opt/
hello test1
[root@iZ0jl6lprbiisf6xsgu1smZ ~]# cd /opt/test1/
[root@iZ0jl6lprbiisf6xsgu1smZ test1]# ll
total 0
-rw-r--r-- 1 root root 0 Sep 12 11:40 file.txt
drwxr-xr-x 2 root root 6 Sep 12 11:33 test3
(5)文件/目录复制命令cp
将test1中的file.txt复制到test3下并更名为world.txt
[root@iZ0jl6lprbiisf6xsgu1smZ test1]# ll
total 0
-rw-r--r-- 1 root root 0 Sep 12 11:40 file.txt
drwxr-xr-x 2 root root 6 Sep 12 11:33 test3
[root@iZ0jl6lprbiisf6xsgu1smZ test1]# cp file.txt test3/world.txt
将test3复制到opt目录下,需要添加 -r
[root@iZ0jl6lprbiisf6xsgu1smZ test1]# ll
total 0
-rw-r--r-- 1 root root 0 Sep 12 11:40 file.txt
drwxr-xr-x 2 root root 23 Sep 12 11:45 test3
[root@iZ0jl6lprbiisf6xsgu1smZ test1]# cp -r test3 /opt/test3
[root@iZ0jl6lprbiisf6xsgu1smZ test1]# cd /opt/
[root@iZ0jl6lprbiisf6xsgu1smZ opt]# ll
total 0
drwxr-xr-x 2 root root 6 Sep 12 11:30 hello
drwxr-xr-x 3 root root 35 Sep 12 11:40 test1
drwxr-xr-x 2 root root 23 Sep 12 11:48 test3
(6)删除文件/目录 rm
删除文件
[root@iZ0jl6lprbiisf6xsgu1smZ test1]# ll
total 0
-rw-r--r-- 1 root root 0 Sep 12 11:40 file.txt
drwxr-xr-x 2 root root 23 Sep 12 11:45 test3
[root@iZ0jl6lprbiisf6xsgu1smZ test1]# rm file.txt
rm: remove regular empty file 'file.txt'? y
[root@iZ0jl6lprbiisf6xsgu1smZ test1]# ll
total 0
drwxr-xr-x 2 root root 23 Sep 12 11:45 test3
用 -r 删除多级目录
[root@iZ0jl6lprbiisf6xsgu1smZ opt]# ll
total 0
drwxr-xr-x 2 root root 6 Sep 12 11:30 hello
drwxr-xr-x 3 root root 19 Sep 12 11:52 test1
drwxr-xr-x 2 root root 23 Sep 12 11:48 test3
[root@iZ0jl6lprbiisf6xsgu1smZ opt]# rm -rf test1
[root@iZ0jl6lprbiisf6xsgu1smZ opt]# ll
total 0
drwxr-xr-x 2 root root 6 Sep 12 11:30 hello
drwxr-xr-x 2 root root 23 Sep 12 11:48 test3
3、修改文件内容
vi和vim的关系是,vim是基于vi的改进版本,保留了vi的许多特性,并添加了许多新功能和改进。
cat可以用来查看文本内容
[root@iZ0jl6lprbiisf6xsgu1smZ opt]# vim hello.txt
[root@iZ0jl6lprbiisf6xsgu1smZ opt]# cat hello.txt
Hello World!
cat -n 【文件名】查看代码(带行号)
[root@iZ0jl6lprbiisf6xsgu1smZ opt]# cat -n hello.java
1 public class HelloWorld(){
2 public static void main(String[] args){
3 System.out.println("Hello World");
4 }
5 }
三、部署Spring Boot应用
1、安装系统组件
使用yum安装OpenJDK17
yum install java-17-openjdk-devel
安装MariaDB
yum install -y mariadb-server
将MariaDB设置作为系统服务在启动时自动启动
systemctl start mariadb #启动mariadb服务
systemctl enable mariadb #将mairadb 服务设置为开机启动
systemctl status mariadb #检查mairadb 服务的状态
如果需要关闭MairaDB服务使用如下命令:
systemctl stop mariadb
2、独立启动应用
部署Spring Boot 应用步骤
使用Maven命令或者利用开发工具打包为jar,应用程序的jar文件将被保存在target目录下。
2、将jar文件上传到Linux服务器,将jar文件上传到您希望部署应用程序的目录。
3、如果有数据库,就使用SQL脚本初始化数据库。
4、在服务器上通过Java命令启动Spring Boot项目。
四、练习
1 按照提示完成编程案例,使用 vim 编写两个 Java 文件并编译运行
要求:提交全部操作命令序列和Java代码
public class Person {
private String name;
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Person person = new Person("John");
System.out.println("Hello " + person.getName());
}
}
package com.myproject;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Person person = new Person("John");
System.out.println("Hello " + person.getName());
}
}
package com.myproject;
public class Person {
private String name;
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
}