保姆教学之- Linux基础教学

92 阅读6分钟

1. Linux 基础指令篇

网络篇 设置固定ip

一般虚拟机安装 使用外部网络 ip为DHCP 动态获取ip模式 这样导致虚拟机的ip一直在变化 会让你xshell连接失效,这个时候修改改成固定ip(未被占用的ip 如果ip冲突 显示无法上网),有两种修改方式 虚拟机操作直接在windows控制面板网络设置

1.在虚拟机设置固定ip
  1. 查看服务网络接口名称 一般默认为eth0 查看ip情况 ip a 或者 ip addr show image.png
  2. 编辑网络接口配置文件 通常位于/etc/sysconfig/network-scripts/目录下。假设你的网络接口名称为eth0,则文件名为ifcfg-eth0vim /etc/sysconfig/network-scripts/ifcfg-eth0
  3. 修改配置文件 具体的参照下面 先放一张修改前的图 image.png
BOOTPROTO=static 
ONBOOT=yes 
IPADDR=192.168.30.24 
NETMASK=255.255.255.0 
GATEWAY=192.168.1.1 
DNS1=8.8.8.8 
DNS2=8.8.4.4

4. 这里插一点 如何查看默认网关地址 ip route show default 5. 重启网络服务 systemctl restart network 6. 验证是否生效 ip route show default 7. 检查网络情况 curl www.baidu.com

2. 在window网络配置的地方修改

依次找到 控制面板\网络和 Internet\网络连接

image.png

image.png

image.png 填上保存在应用就完事

文件操作篇

# 查看当前路径 
pwd
# 查看文件详细列表 
ll
# 查看文件列表
ls
# 复制文件  复制当前文件夹的 a.html  到当前文件夹 b.html (都可以带上路径 复制到指定的地方)
cp a.html  b.html
# 移动或者重命名文件 
mv a.html /usr/local/a.html 
mv a.html  b.html
# 创建文件夹 
mkdir test  
# 删除文件  
rm a.html  
# 递归删除文件夹 谨慎试验 一定要详细的路径  不然就成了格式化服务器了 ***rm -rf /*** 执行这个等于跑路
rm -rf ./dist  

查询篇

# 查看文件 
find [路径] -name='文件名'
whereis nginx 
which nginx

文本相关

# 创建或者编辑文件 有文件就是编辑 没有就是新建
vi a.html  或者  vim a.html

# 进入之后 
i 标识 插入  ESC 退出编辑模式 :w 退出  :wq 退出并保存   :!q 强制退出 

# 复制粘贴快捷键  
复制 ctrl + shift insert  粘贴 shift insert

# 查看文本 
cat  a.html 


日志篇

# 查看日志  
tail a.log  
# 实时日志 
tail -f a.log
# 带查询条件 A后面20行 B前20行 error 查询日志中的关键字
tail -f a.log | grep -A 20 -B 20 'error'

# 其它指令 都可以带查询条件 | grep
less a.log 
cat a.log
...

允许ssh方式执行文件上传下载

  1. yum install lrzsz下载安装这个包,可以在ssh中直接拖拽文件上传和服务文件保存到电脑
  2. sz filename 保存服务器文件到宿主机器 例如把服务 /opt/test 下面的文件发送到window

image.png 3. rz 弹出上传文件的弹框 也可以直接拖拽文件上传

2. linux 服务篇

在执行yum install modulename时候出现资源不存在的情况 更新一下yum 执行 yum update -y

1.Docker安装

  1. 安装docker 所需的工具和库 yum install -y yum-utils device-mapper-persistent-data lvm2
  2. 设置docker仓库 设置为阿里的源 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  3. 安装dockeryum install docker-ce docker-ce-cli containerd.io
  4. 验证是否安装成功 docker -v

image.png

  1. 启动服务 systemctl start docker 设置开机自启 systemctl enable docker
  2. 查看状态 systemctl status docker

image.png

  1. 设置docker hub仓库地址 vim /etc/docker/daemon.json 编辑docker hub配置文件 如果不存在则创建

    {
      "log-driver": "json-file",
      "log-opts": {
      	"max-size": "512m",
      	"max-file": "3"
      },
      
    "registry-mirrors": ["https://registry.docker-cn.com","https://hub.atomgit.com"] 
    }
  1. 重启docker 命令为 systemctl restart docker
  2. 检查是否生效 docker info image.png

3. docker 相关操作指令

docker 的优势,传统部署我们开发完代码后,最基础的结构 前端dist 后台jar,我们要开辟一个新的服务器,在上面安装java环境jdk nginx redis mysql这些,每次在不同的环境部署都需要重新配置这些环境,容器的作用是把这些环境都配置好封装到镜像里面,然后拿到其它机器上可以直接启动,无需重复配置这些.

3.1 docker 结构图

                            +------------------+
                            |     Docker       |
                            +------------------+
                              /       |       \
                             /        |        \
                            /         |         \
+------------------+     +--------------+     +--------------+
|     Images      |     |    Containers |     |   Registries |
+------------------+     +--------------+     +--------------+
  |        |        |         |        |         |       |
  |        |        |         |        |         |       |
  v        v        v         v        v         v       v
+------------+    +------------+  +------------+  +-----------+
| Repository |    | Running    |  | Stopped    |  | Registry |
| (Image)    |    | Container  |  | Container  |  | (Server) |
+------------+    +------------+  +------------+  +-----------+
  |            |         |           |            |
  |            |         |           |            |
  v            v         v           v            v
+-------------------+    +----------------------+
| Dockerfile        |    | Image Layer (Filesys) |
+-------------------+    +----------------------+
  |                   |
  |                   |
  v                   v
+-------------+    +--------------+
|  Source     |    |  Dependencies |
|  Code/Data  |    |  (Libraries)   |
+-------------+    +--------------+

3.2 docker的 相关命令

  • images (镜像 类似于windows 的iso镜像 一个大的包 里面内置了很多软件)
  • container (容器, 是由镜像实例化的实体 类似于 虚拟机安装的镜像 小的独立系统 )
镜像相关
# 列出所有的镜像 
docker images
# 拉取官方镜像   
docker pull [镜像名]:[版本]  例如 docker pull mysql:7.8  
# 不写版本号 默认是最新版的  mysql:latest
docker pull mysql 
# 构建 镜像 -t指定镜像名称版本 . 表示当前目录作为上下文 自动找当前目录的 Dockerfile 文件 
docker build -t mysql:5.7 .
# 删除镜像  如果容器已经启动了 先要停止容器 再删除容器 再删除镜像 
docker rmi [容器名或者id]  
容器相关
# 查看容器 -a 表示所有 
docker ps 
# 运行容器  以上面的mysql为例 -d 后台启动  -p 端口映射 外部:内部  --name 容器名称 -e 配置 设置mysql密码 
docker run --name mysql -p 4399:3306 -e MYSQL_ROOT_PASSWORD='1234556' -d mysql:5.7
# 重启 暂停 相关指令 
docker stop [容器id]
docker start [容器id]
# 查看日志 -f  实时
docker logs -f [容器id]
# 删除容器
docker rmi [容器id]

image.png

image.png

3.3 容器文件挂载

因为docker容器是个独立的空间,如果你想把宿主机器的文件和docker的文件关联起来,就需要使用挂载功能,理解为容器内部可以读取宿主机器的文件夹,以下以nginx为例

  • 在宿主机器 /opt/下创建一个文件夹 mikdir test 进入文件夹 cd /opt/test/ 随便放个图片或者html到文件夹下面
  • docker 启动nginx并挂载宿主机器的/opt/test文件夹 docker run -p 8001:80 -v /opt/test:/usr/share/nginx/html nginx 这个是终端启动 不是后台启动 可以实时查看日志 /usr/share/nginx/html 这个是dockernginx 默认的文件路径

image.png

  • 打开浏览器访问 ip:8001 默认去寻找宿主机器test文件夹下面的index文件 ip:8001/上传的文件名 即可访问 http://10.23.23.36:8080/yh.jpg

image.png

  • 可以访问 即代表文件挂载成功

3.4 进入容器内部

容器本身就是一个小的虚拟机 内部也是存在和外面一样的目录和结构的,进入指令为 docekr exec -it [容器id] /bin/bash

image.png

退出容器 exit