一.linux的命令指示符
1.1 目录操作命令
1.1.1 ls
语法:ls al [dir]
-a :显示所有文件,隐藏的也显示
常见用法: ll 查看当前目录文件及目录详细信息
ls -al 查看当前目录的所有文件及目录详细信息
1.1.2cd
cd .. 切换到当前的上级目录
cd ~ 切换到用户的home目录
cd /user/local 切换到/usr/local目录
1.1.3mkdir
作用:创建目录
mkdir -p 要创的目录名字 (加p确保存在,不存在创建一个)
1.1.4rm
作用:删除文件和目录
语法: rm -rf 名字 (-r查看当前目录的所有文件及目录详细信息,-f 无需确认)
1.2文件操作命令
1.2.1cat
作用:用于显示文件内容
语法: cat -n 文件名
1.2.2more
作用:以分页的形式显示文件内容
语法:more fileName
-
操作说明:
- 回车键 向下滚动一行
- 空格键 向下滚动一屏
- b 返回上一屏
- q或者Ctrl+C 退出more
1.2.3head
作用:查看文件开头的内容 语法: head -n fileName
1.2.4 tail
作用: 查看文件末尾的内容
语法: tail -f fileName
1.3 拷贝移动命令
1.3.1 cp
作用:用于复制文件或目录
- 语法: cp [-r] source dest
1.3.2.mv
-
作用: 为文件或目录改名、或将文件或目录移动到其它位置
-
语法: mv source dest
-
举例:
- mv hello.txt hi.txt 将hello.txt改名为hi.txt
- mv hi.txt itheima/ 将文件hi.txt移动到itheima目录中
- mv hi.txt itheima/hello.txt 将hi.txt移动到itheima目录中,并改名为hello.txt
- mv itcast/ itheima/ 如果itheima目录不存在,将itcast目录改名为itheima
- mv itcast/ itheima/ 如果itheima目录存在,将itcast目录移动到itheima目录中
1.4打包压缩命令
- 作用: 对文件进行打包、解包、压缩、解压
- 语法:
tar [-zcxvf] fileName [files]
包文件后缀为.tar表示只是完成了打包,并没有压缩
包文件后缀为.tar.gz表示打包的同时还进行了压缩
-
说明:
- -z: z代表的是gzip,通过gzip命令处理文件,gzip可以对文件压缩或者解压
- -c: c代表的是create,即创建新的包文件
- -x: x代表的是extract,实现从包文件中还原文件
- -v: v代表的是verbose,显示命令的执行过程
- -f: f代表的是file,用于指定包文件的名称
-
举例:
-
打包
- tar -cvf hello.tar ./* 将当前目录下所有文件打包,打包后的文件名为hello.tar
- tar -zcvf hello.tar.gz ./* 将当前目录下所有文件打包并压缩,打包后的文件名为hello.tar.gz
-
解包
- tar -xvf hello.tar 将hello.tar文件进行解包,并将解包后的文件放在当前目录
- tar -zxvf hello.tar.gz 将hello.tar.gz文件进行解压,并将解压后的文件放在当前目录
- tar -zxvf hello.tar.gz -C /usr/local 将hello.tar.gz文件进行解压,并将解压后的文件放在/usr/local目录
-
1.5. 文本编辑命令
文本编辑的命令,主要包含两个: vi
和 vim
,两个命令的用法类似,我们课程中主要讲解vim的使用。
1.5.1. vi & vim介绍
-
作用: vi命令是Linux系统提供的一个文本编辑工具,可以对文件内容进行编辑,类似于Windows中的记事本
-
语法: vi fileName
-
说明:
- 1). vim是从vi发展来的一个功能更加强大的文本编辑工具,编辑文件时可以对文本内容进行着色,方便我们对文件进行编辑处理,所以实际工作中vim更加常用。
- 2). 要使用vim命令,需要我们自己完成安装。可以使用下面的命令来完成安装:
yum install vim
1.5.2. vim安装
命令: yum install vim
1.5.3. vim使用
-
作用: 对文件内容进行编辑,vim其实就是一个文本编辑器
-
语法: vim fileName
-
说明:
- 1). 在使用vim命令编辑文件时,如果指定的文件存在则直接打开此文件。如果指定的文件不存在则新建文件。
- 2). vim在进行文本编辑时共分为三种模式,分别是 命令模式(Command mode),插入模式(Insert mode)和底行模式(Last line mode)。这三种模式之间可以相互切换。我们在使用vim时一定要注意我们当前所处的是哪种模式。
1.6 查找命令
1.6.1. find
-
作用: 在指定目录下查找文件
-
语法: find dirName -option fileName
-
举例:
find . --name "*.java
"
在当前目录及其子目录下查找.java结尾文件find ``/itcast`` -name "*.java"
在/itcast目录及其子目录下查找.java结尾的文件
1.6.2. grep
-
作用: 从指定文件中查找指定的文本内容
-
语法:
grep word fileName
-
选项:
- -i: 检索的关键字忽略(ignore)大小写
- -n: 显示关键字所在的这一行的行号
- -A: 输出关键字所在行及之后(After)的几行记录 (如:-A5 表示输出关键字所在行之后的5行记录)
- -B: 输出关键字所在行及之前(Before)的几行记录 (如:-B5 表示输出关键字所在行之前的5行记录)
-
举例:
- grep Hello HelloWorld.java 查找HelloWorld.java文件中出现的Hello字符串的位置
- grep hello *.java 查找当前目录中所有.java结尾的文件中包含hello字符串的位置
二.Docker
2.1. 部署MySQL
首先,我们利用Docker来安装一个MySQL软件,大家可以对比一下之前传统的安装方式,看看哪个效率更高一些。
如果是利用传统方式部署MySQL,大概的步骤有:
- 搜索并下载MySQL安装包
- 上传至Linux环境
- 解压和配置环境
- 安装
- 初始化和配置
而使用Docker安装,仅仅需要一步即可,在命令行输入下面的命令(建议采用CV大法):
ini
docker run -d \
--name mysql \
-p 3307:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123 \
mysql:8
2.2. 常见命令
命令 | 说明 | 文档地址 |
---|---|---|
docker pull | 拉取镜像 | docker pull |
docker push | 推送镜像到DockerRegistry | docker push |
docker images | 查看本地镜像 | docker images |
docker rmi | 删除本地镜像 | docker rmi |
docker run | 创建并运行容器(不能重复创建) | docker run |
docker stop | 停止指定容器 | docker stop |
docker start | 启动指定容器 | docker start |
docker restart | 重新启动容器 | docker restart |
docker rm | 删除指定容器 | docs.docker.com |
docker ps | 查看容器 | docker ps |
docker logs | 查看容器运行日志 | docker logs |
docker exec | 进入容器 | docker exec |
docker save | 保存镜像到本地压缩文件 | docker save |
docker load | 加载本地压缩文件到镜像 | docker load |
docker inspect | 查看容器详细信息 | docker inspect |
2.2数据卷
命令 | 说明 | 文档地址 |
---|---|---|
docker volume create | 创建数据卷 | docker volume create |
docker volume ls | 查看所有数据卷 | docs.docker.com |
docker volume rm | 删除指定数据卷 | docs.docker.com |
docker volume inspect | 查看某个数据卷的详情 | docs.docker.com |
docker volume prune | 清除数据卷 | docker volume prune |
2.2.1挂载本地目录或文件
可以发现,数据卷的目录结构较深,如果我们去操作数据卷目录会不太方便。在很多情况下,我们会直接将容器目录与宿主机指定目录挂载。挂载语法与数据卷类似:
bash
# 挂载本地目录
-v 本地目录:容器内目录
# 挂载本地文件
-v 本地文件:容器内文件
注意 :本地目录或文件必须以 /
或 ./
开头,如果直接以名字开头,会被识别为数据卷名而非本地目录名。
例如:
bash
-v mysql:/var/lib/mysql # 会被识别为一个数据卷叫mysql,运行时会自动创建这个数据卷
-v ./mysql:/var/lib/mysql # 会被识别为当前目录下的mysql目录,运行时如果不存在会创建目录
删除并重新创建mysql容器,并完成本地目录挂载:
- 挂载
/root/mysql/data
到容器内的/var/lib/mysql
目录 - 挂载
/root/mysql/init
到容器内的/docker-entrypoint-initdb.d
目录(初始化的SQL脚本目录) - 挂载
/root/mysql/conf
到容器内的/etc/mysql/conf.d
目录(这个是MySQL配置文件目录)
在课前资料中已经准备好了mysql 的init
目录、conf
目录、data
目录,可以直接将其上传到Linux服务器中的 /root/mysql 目录下。
最终执行的指令如下:
diff
docker run -d \
--name mysql \
-p 3307:3306 \
-e MYSQL_ROOT_PASSWORD=123 \
-e TZ=Asia/Shanghai \
-v /root/mysql/data:/var/lib/mysql \
-v /root/mysql/init:/docker-entrypoint-initdb.d \
-v /root/mysql/conf:/etc/mysql/conf.d \
mysql:8
```**