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 文件)

3?提交更新:?git commit -m "代碼提交信息"?(每次準備提交前,先用?git status?看下,是不是都已提交到暫存區了(有修改的文件名都是紅的,變綠了就是都提交到暫存區了), 然后再運行提交命令?git commit。git commit?加上?-a?選項,跳過使用暫存區域更新)

?注:

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

2?移除文件git rm filename?(從暫存區域移除,然后提交。)

例子

只是在該項目下創建了兩個c語言文件,還沒添加到暫存區

試圖提交所有未更新的文件,git不允許提交沒提交到緩存區的文件


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

git commit *:提交到本地倉庫

nothing to commit, working tree clean
暫存區沒什么需要提交的,工作樹干凈

?

?

?

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/83496.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/83496.shtml
英文地址,請注明出處:http://en.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;實現雜草定位與除草劑精準…