当前位置: 首页 > news >正文

linux、docker、git相关操作

1 linux

 

1.1解压缩


1.1.1 zip


zip xxx.zip file   把file压缩成xxx.zip
-r 递归压缩:
zip -r example_new.zip 示例集  # 新建压缩包并命名为 example_new.zip
zip -r xxx.zip file1 file2 dir1 将多个文件+目录压成zip包
unzip file.zip -d target_dir #把file.zip解压到目标文件夹磁盘路径target_dir下

1.1.2 tar


tar -cvf xxx.tar file 创建非压缩tar包
tar -cvf xxx.tar file1 file2 dir1 将多个文件+目录打tar包
tar -tf xxx.tar    查看tar包的内容
tar -xvf xxx.tar   解压tar包
tar -xvf xxx.tar -C /dir 将tar包解压至指定目录
tar -cvfj xxx.tar.bz2 dir 创建bz2压缩包
tar -jxvf xxx.tar.bz2 解压bz2压缩包
tar -cvfz xxx.tar.gz dir 创建gzip压缩包
tar -zxvf xxx.tar.gz 解压gzip压缩包
~bz2
bunzip2 xxx.bz2    解压bz2压缩包
bzip2 filename     压缩文件
~gzip
gunzip xxx.gz      解压gzip压缩包
gzip filename      压缩文件
gzip -9 filename   最大程度压缩

 

1.2 文件操作命令

1.2.1 基础命令

1 查看当前的系统路径:pwd

2 改变当前目录:cd

1.2.2 文件夹的操作命令

1 创建文件夹

mkdir 文件夹名称

mkdir -p a/b/c:一次创建多个文件

2 复制文件夹

cp [选项] 源文件或目录  目标文件或目录

常用选项:

-f 或 --force : 强行复制文件或目录, 不论目的文件或目录是否已经存在。
-r :递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理。

3 查看文件夹大小

  • du -sh .:查看当前目录下所有的文件夹的大小

选项:-s:忽略子目录详情

示例
(base) marui@amax:~/elevator/data$ du -sh .
3.3M

  • du -h --max-depth=2:查看当前文件夹以及下面的一、二级文件夹的大小

 

1.2.3 文件的操作命令

1 新建文件

touch 文件名

2 删除文件以及文件夹

rm [选项] 文件名或文件夹名

选项

  • -f:文件属性为只读也直接删除 
  • -i:删除前逐一确认
  • -r:加上该选项,可以删除文件夹

3 查看文件

cat 文件名

4 搜索内容

grep [ 选项 ] 搜寻字符串 文件

选项

-i 忽略大小写的不同,所以大小写视为相同

  • -n 顺便输出行号
  • -v 反向选择,亦即显示出没有 ' 搜寻字符串 ' 内容的那一行

5 查找文件

find pathname [选项]

功能: 用于在文件树中查找文件,并作出相应的处理(可能访问磁盘)

常用选项:

-name: 按照文件名查找文件

 

2 docker

2.1 基础命令

systemctl start docker:启动docker服务

2.2 镜像命令

2.2.1 拉取镜像

docker pull+镜像源地址+/+要拉取的镜像名
docker pull docker.m.daocloud.io/hello-world

注:镜像名必须全是小写

2.2.2查看所有的镜像

docker images

2.2.3 删除镜像

docker rmi 镜像名

2.3.4 给镜像重命名

不能说重命名

首先该命令只有在该镜像未创建容器的时候才生效

其次,该命令只是额外创建了一个镜像,名称为新名字

docker tag 原镜像名称:原标签 新镜像名称:新标签

2.3.5 将镜像导出为一个镜像img文件

docker  save  redis  -o  redis.img

2.3.6 将img镜像文件导入,复制出一个完全一样镜像

docker load  --input  redis.img

2.3 容器命令

2.3.1 通过镜像启动容器

指定镜像创建容器(镜像名docker.m.daocloud.io/hello-world)

docker run docker.m.daocloud.io/hello-world

常用选项

-p:指定端口映射,指定容器的某端口映射到服务器的某端口上。-p 宿主机端口:容器端口

例:-p 9506:3306

 

2.3.2 创建但不运行容器

docker create --name my-hello-world-container docker.m.daocloud.io/hello-world

2.3.3 运行已经创建好了的容器

docker start my-hello-world-container

2.3.4 给创建好了的容器改名

docker rename old-container-name new-container-name

2.3.5 查看容器

docker ps(只查看运行中的容器)

docker ps -a(查看所有的容器)

2.3.6 查看容器的日志

docker logs my-hello-world-container

2.3.7 进入容器内部

docker exec -it my-container /bin/bash
docker exec :在运行的容器里执行命令
-i:交互模式,保持 STDIN 打开
-t:分配一个伪终端
/bin/bash:在容器中启动一个 Bash shell。如果你的容器使用的是其他 shell(如 /bin/sh),可以相应地替换。

2.3.8 删除容器

#删除一个容器
docker rm -f 容器名/容器ID
#删除多个容器 空格隔开要删除的容器名或容器ID
docker rm -f 容器名/容器ID 容器名/容器ID 容器名/容器ID
#删除全部容器
docker rm -f $(docker ps -aq)

选项

-f:指强制删除,加上该选项可以删除正在运行的容器。docker是不允许直接删除正在运行的容器的。

 

2.3.9 查看容器的端口与服务器端

口的映射情况

docker port 容器名或者容器ID
示例:docker port mysql
22/tcp -> 0.0.0.0:10102
22/tcp -> [::]:10102
3306/tcp -> 0.0.0.0:10104
3306/tcp -> [::]:10104
容器内部的 22 端口(通常用于 SSH 服务)被映射到宿主机的 10102 端口
容器内部的 3306 端口(MySQL 默认端口)被映射到宿主机的 10104 端口
[::]:10102 和 [::]:10104
注意:1 这是 IPv6 格式的地址,表示同样的端口映射也适用于 IPv6 网络。2 你看到的 TCP 是端口映射使用的传输协议,表明容器通过 可靠的 TCP 连接 暴露服务(如 SSH 和 MySQL)。如果后续遇到 UDP 协议的端口映射,原理类似。


2.3.10 修改容器的端口

方法之一是将现有的容器打包成镜像,然后在使用新的镜像运行容器时重新指定要映射的端口

第一步 将现有的容器打包成镜像

(base) marui@amax:~$ docker export myMysql > myMysql.tar

myMysql.tar会在~目录下出现

第二步 把镜像tar文件导入,生成一个新镜像

(base) marui@amax:~$ docker import - mymysql1 < myMysql.tar
sha256:d44cf9b50c3817b8993a5fa97358fe43b0fe90564fa6d5129f2682f9bdabc269
注意:镜像的名称必须全是小写

2.3.11 将现有的容器打包成镜像

(base) marui@amax:~$ docker export myMysql > myMysql.tar

2.3.12 把文件复制到容器里/复制到容器外

把文件复制到容器里

ocker cp 【在xftp中的路径】【容器ID】:【要复制到容器的路径】

(base) marui@amax:~$ docker cp /data1/marui/docker的基本命令.txt fb1420165160:/
Successfully copied 5.63kB to fb1420165160:/


把文件复制到容器外

docker cp [容器ID或容器名称]:[容器内的文件路径] [宿主机上的目标路径]

例:

(base) marui@amax:~$ docker cp 8f78a2e49b87:/docker1.txt /data1/marui
Successfully copied 4.61kB to /data1/marui

 

http://www.xdnf.cn/news/724231.html

相关文章:

  • 当 Python 遇上 Go:Sponge 如何成为替代 Django/Flask 的理想选择
  • 论文略读:Surge Phenomenon in Optimal Learning Rate and Batch Size Scaling
  • 实验分享|基于sCMOS相机科学成像技术的耐高温航空涂层材料损伤检测实验
  • 相机--RGB相机
  • 大厂前端研发岗位PWA面试题及解析
  • 【仿生机器人软件架构】通过整合认知系统实现自主精神性——认知系统非常具有可执行性
  • 同元软控、核动力研究院与华北电力大学产学研联合实训室正式揭牌
  • 设备远程调试新利器:御控网关开启PLC高效运维新时代
  • 【JavaWeb】Maven、Servlet、cookie/session
  • Hive的GROUP BY操作如何优化?
  • 每个路由器接口,都必须分配所属网络内的 IP 地址,用于转发数据包
  • 历年四川大学计算机保研上机真题
  • 【动手学深度学习】2.5. 自动微分
  • VUE中created() 和 mounted()俩种生命周期钩子函数的区别
  • 【Doris基础】Doris中的Tablet详解:核心存储单元的设计与实现
  • Warm-Flow发布1.7.3 端午节(设计器流和流程图大升级)
  • [FreeRTOS- 野火] - - - 临界段
  • docker环境添加安装包持久性更新
  • plotbunni开源程序是具有 AI 辅助的 FOSS 小说写作套件
  • npm、pnpm、yarn使用以及区别
  • 使用Haproxy搭建web群集
  • ONLYOFFICE文档API:更强的安全功能
  • USB Network Gate的中国挑战者:软硬协同USB Server
  • Docker 笔记 -- 借助AI工具强势辅助
  • 【Android】如何抓取 Android 设备的 UDP/TCP 数据包?
  • ass字幕嵌入mp4带偏移
  • ubuntu系统安装Pyside6报错解决
  • Flask与PostgreSQL交互教程
  • K8s工作流程与YAML实用指南
  • 企业信息化集成方案:聚水潭·奇门数据对接金蝶云星空