linux、docker、git相关操作

1 linux

 

1.1解压缩


1.1.1 zip


zip xxx.zip file   把名为fle的文件压缩成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只能用来复制文件,需要复制文件夹要加上-r

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

常用选项:

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

3 查看文件夹大小

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

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

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

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

4 重命名文件夹

mv file_name new_file_name

5 查看文件

ls

选项:

-a:查看隐藏目录(.git)

6 删除文件夹

rm -r 文件名或文件夹名

1.2.3 文件的操作命令

1 新建文件

touch 文件名

2 删除文件以及文件夹

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

选项

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

3 查看文件

cat 文件名

4 搜索内容

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

选项

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

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

5 查找文件

find pathname [选项]

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

常用选项:

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

6 重命名文件

mv file_name new_file_name

7 复制文件

cp example.txt /usr/men/tmp/example1.txt

把文件example.txt复制到/usr/men/tmp/下并改名为example1.txt

/usr/men/tmp/必须是存在的

 

2 docker

2.1 基础命令

systemctl start docker:启动docker服务

systemctl stop 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  镜像名  -o  镜像文件名(也可以自己定义).img

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

docker load  --input  镜像文件名.img

2.3 容器命令

几乎所有的docker命令里容器名可以替换成容器ID

2.3.1 通过镜像创建容器并启动

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

docker run --name b a
该命令是用名字为a镜像创建名为b的容器并启动

常用选项

-p:指定端口映射,指定容器的某端口映射到服务器的某端口上,这样可以通过服务器的端口访问容器的端口。-p 宿主机端口:容器端口

例:-p 9506:3306

--name:指定创建的容器名

对了容器名可以有大写的字母,数字,下划线,中划线,甚至有汉字,但是不能有空格

 

2.3.2 创建但不运行容器

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

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

docker start 容器名/ID

2.3.4 给创建好了的容器改名

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

2.3.5 查看容器

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

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

2.3.6 查看某容器的日志

docker logs 某容器

2.3.7 进入容器内部

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

查看容器默认的shell

docker inspect <容器名或容器ID> --format '{{.Config.Env}}'

在输出的环境变量中,查找类似SHELL=/bin/bash 的条目。​

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

3 git

3.1 git仓库的创建与拉取

3.1.1 创建

git init:在当前目录下创建一个.git文件夹作为仓库

3.1.2 拉取

git clone url :拉取gitee上的仓库

git clone url 文件夹路径:把从gitee上拉取的项目放到指定的文件夹下

3.2 把更新提交到仓库

3.2.1 三种文件的状态

  • 已提交(committed):数据已经安全的保存在本地数据库中。
  • 已修改(modified):已修改表示修改了文件,但还没保存到暂存区中。执行git  status文件名是红的
  • 已暂存(staged):表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。执行git  status文件名是绿的

3.2.2 文件提交的过程

1 检测当前文件状态:git status

2 把文件添加到暂存区:git add filename (针对特定文件)、git add *(所有文件)、git add *.txt(支持通配符,所有 .txt 文件)

提交更新: git commit -m "代码提交信息" (每次准备提交前,先用 git status 看下,是不是都已提交到暂存区了(有修改的文件名都是红的,变绿了就是都提交到暂存区了), 然后再运行提交命令 git commit。git commit 加上 -a 选项,跳过使用暂存区域更新)

 注:

1.gitignore 文件表示忽略需要提交的文件

移除文件git rm filename (从暂存区域移除,然后提交。)

例子

只是在该项目下创建了两个c语言文件,还没添加到暂存区

试图提交所有未更新的文件,git不允许提交没提交到缓存区的文件


git add *把所有文件更新到缓存区,下一步就是提交了

git commit *:提交到本地仓库

nothing to commit, working tree clean
暂存区没什么需要提交的,工作树干净

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/pingmian/83496.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Attention Is All You Need (Transformer) 以及Transformer pytorch实现

参考https://zhuanlan.zhihu.com/p/569527564 Attention Is All You Need (Transformer) 是当今深度学习初学者必读的一篇论文。 一. Attention Is All You Need (Transformer) 论文精读 1. 知识准备 机器翻译&#xff0c;就是将某种语言的一段文字翻译成另一段文字。 由…

深入浅出:Oracle 数据库 SQL 执行计划查看详解(1)——基础概念与查看方式

背景 在当今的软件开发领域&#xff0c;尽管主流开发模式往往倾向于采用单表模式&#xff0c;力图尽可能地减少表之间的连接操作&#xff0c;以期达到提高数据处理效率、简化应用逻辑等目的。然而&#xff0c;对于那些已经上线运行多年的运维老系统而言&#xff0c;它们内部往…

每天掌握一个Linux命令 - fail2ban

Linux 命令工具 fail2ban 使用指南 目录 Linux 命令工具 fail2ban 使用指南一、工具概述二、安装方式1. 包管理器安装&#xff08;推荐&#xff09;Debian/Ubuntu 系统CentOS/RHEL 系统Arch Linux 系统 2. 手动编译安装&#xff08;适用于自定义需求&#xff09; 三、核心功能四…

互联网大厂智能体平台体验笔记字节扣子罗盘、阿里云百炼、百度千帆 、腾讯元器、TI-ONE平台、云智能体开发平台

互联网大厂 字节扣子、阿里云百炼、百度千帆 、腾讯元器、TI-ONE平台、云智能体开发平台 体验 开始动手 了解 智能体&#xff0c;发现已经落后时代太远 光头部互联网大厂对开 公开的平台就已经这么多&#xff0c;可以学习和了解&#xff0c;相关的信息 整理了对应的平台地址…

ansible-playbook 进阶 接上一章内容

1.异常中断 做法1&#xff1a;强制正常 编写 nginx 的 playbook 文件 01-zuofa .yml - hosts : web remote_user : root tasks : - name : create new user user : name nginx-test system yes uid 82 shell / sbin / nologin - name : test new user shell : gete…

LRC and VIP

//首先排除所有数相等的情况,再把最大值放在一个组&#xff0c;那么最大值的gcd就等于其本身&#xff0c;再判断剩下的gcd是否等于最大值就可以了 #include<bits/stdc.h> using namespace std;const int N1e3100; int a[N]; map<int,int>mapp; int main(){int t;ci…

企业应用AI对向量数据库选型思考

一、向量数据库概述 向量数据库是一种专门用于存储和检索高维向量数据的数据库系统&#xff0c;它能够高效地处理基于向量相似性的查询&#xff0c;如最近邻搜索等&#xff0c;在人工智能、机器学习等领域的应用中发挥着重要作用&#xff0c;为处理复杂的向量数据提供了有力的…

设计模式——迭代器设计模式(行为型)

摘要 本文详细介绍了迭代器设计模式&#xff0c;这是一种行为型设计模式&#xff0c;用于顺序访问集合对象中的元素&#xff0c;同时隐藏集合的内部结构。文章首先定义了迭代器设计模式并阐述了其核心角色&#xff0c;包括迭代器接口、具体迭代器、容器接口和具体容器。接着&a…

Java8 list集合根据属性分组

在Java8中&#xff0c;可以使用Collectors.groupingBy方法对List集合根据属性进行分组。以下是一个完整的示例&#xff0c;展示如何根据对象的不同属性分组。 根据对象属性分组 假设有一个Student类&#xff0c;包含name、age和grade属性&#xff1a; public class Student …

更新已打包好的 Spring Boot JAR 文件中的 class 文件

# 1. 解压原始 JAR unzip -q original-app.jar -d temp # 2. 替换 class 文件 cp ~/projects/new-classes/*.class temp/BOOT-INF/classes/com/example/ # 3. 保留原始清单 cp temp/META-INF/MANIFEST.MF . # 4. 重新打包 jar -cf0m new-app.jar MANIFEST.MF -C temp/ . # …

《HelloGitHub》第 110 期

兴趣是最好的老师&#xff0c;HelloGitHub 让你对开源感兴趣&#xff01; 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 github.com/521xueweihan/HelloGitHub 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等&#xff0c;涵盖多种编程语言 Python、…

当 “欧洲版 Cursor” 遇上安全危机

在 AI 编程助手蓬勃发展的当下&#xff0c;安全问题正成为行业不容忽视的隐忧。近期&#xff0c;AI 编程助手公司 Replit 与号称 “欧洲版 Cursor” 的 Lovable 之间&#xff0c;因安全漏洞问题掀起了一场风波&#xff0c;引发了业界的广泛关注。​ Replit 的员工 Matt Palmer…

centos挂载目录满但实际未满引发系统宕机

测试服务器应用系统突然挂了&#xff0c;经过排查发现是因为磁盘“满了”导致的&#xff0c;使用df -h查看磁盘使用情况/home目录使用率已经到了100%,但使用du -sh /home查看发现实际磁盘使用还不到1G&#xff0c;推测有进程正在写入或占用已删除的大文件&#xff08;Linux 系统…

乾坤qiankun的使用

vue2 为主应用 react 为子应用 在项目中安装乾坤 yarn add qiankun # 或者 npm i qiankun -Svue主应用 在main.js中新增 &#xff08;需要注意的是路由模型为history模式&#xff09; registerMicroApps([{name: reactApp,entry: //localhost:3011,container: #container,/…

PostgreSQL的扩展 auth_delay

PostgreSQL的扩展 auth_delay auth_delay 是 PostgreSQL 提供的一个安全相关扩展&#xff0c;主要用于防止暴力破解攻击。它通过在认证失败后引入人为延迟来增加暴力破解的难度。 一、扩展基础 功能&#xff1a;在认证失败后增加延迟目的&#xff1a;减缓暴力破解和字典攻击…

Web前端为什么要打包?Webpack 和 Vite 如何助力现代开发?

一. 为什么要使用框架库? 1.1 传统网页与现代前端的差异 在最早期的网页开发中,我们只需要写几个.html文件,配上.css和.js文件,浏览器直接加载就能展现页面,每个文件都是独立的静态资源,简单且直观 但现在网站越来越复杂了: 需要用到最新的js语法(比如ES6)使用框架(Vue…

使用pdm+uv替换poetry

用了好几年poetry了&#xff0c;各方面都还挺满意&#xff0c;就是lock实在太慢&#xff1b; 已经试用pdmuv一段时间了&#xff0c;确实是快&#xff0c;也基本能覆盖poetry的功能。 至于为什么用pdmuv&#xff0c;而不是只用uv&#xff0c;原因很多&#xff0c;有兴趣的可以…

java后端生成心电图-jfreechart

用jfreechart生成心电图 先上成功的图片 上代码 1.导入包 implementation org.jfree:jfreechart:1.5.4implementation org.jfree:jcommon:1.0.242.实现代码 对数据进行滤波 转换单位 package com.shinrun.infrastructure.util;import java.util.ArrayList; import java.ut…

微软Build 2025:Copilot Studio升级,解锁多智能体协作未来

微软Build 2025大会圆满落幕&#xff0c;作为年度科技盛会&#xff0c;它一直是开发与AI技术突破性创新的重要展示平台。对于工程师、创作者和领域专家来说&#xff0c;这是了解微软生态未来动向的关键时刻。今年&#xff0c;Microsoft Copilot Studio推出了一系列新功能&#…

LabVIEW杂草识别与精准喷洒

基于LabVIEW构建了一套集成机器视觉、智能决策与精准控制的农业杂草识别系统。通过高分辨率视觉传感器采集作物图像&#xff0c;利用 LabVIEW 的 NI Vision 模块实现图像颜色匹配与特征分析&#xff0c;结合 Arduino 兼容的工业级控制硬件&#xff0c;实现杂草定位与除草剂精准…