代码常用工具使用

代码常用小工具

0.Linux:

shell 复制代码
ls -a  查看所有文件,包括隐藏
创建
mkdir new_dir                    # 创建一个空目录
mkdir -p a/b/c                   # 递归创建多级目录
删除
rmdir old_dir                    # 仅删除"空"目录
rm -r dir                        # 递归删除目录及其所有内容(会询问)
rm -rf dir                       # 强制递归删除,不再询问(慎用!)
复制
cp -r src_dir  dest_dir          # 把整个目录树复制过去
cp -a src  dest                  # 保留权限、时间戳等属性(归档复制)
移动/重命名
mv old_name  new_name            # 同级目录下就是重命名
mv dir   /path/to/新位置/        # 移到别处
查看/遍历
ls -l dir                        # 列出目录内容
ls -al                           # 含隐藏文件
tree                             # 树状展开(需 sudo apt install tree)
find dir  -type f                # 只列 dir 下的所有普通文件
find dir  -type d                # 只列 dir 下的所有子目录
切换/定位
cd dir                           # 进入目录
pwd                              # 显示当前所在目录
pushd dir / popd                 # 目录栈式跳转(脚本里很方便)
权限/属性
chmod 755 dir                    # 改权限
chown user:group dir             # 改归属
chmod +t dir                     # 给目录加粘滞位(如 /tmp)
大小/占用
du -sh dir                       # 看目录总大小(人类可读)
du -h --max-depth=1              # 看当前目录下各子目录大小
打包/压缩(也算"处理")
tar -czf dir.tar.gz dir          # 打包并 gzip 压缩
tar -xjf dir.tar.bz2             # 解包 .tar.bz2
zip -r dir.zip dir               # 生成 zip
比较/同步
diff -r dir1 dir2                # 递归比较两个目录差异
rsync -av dir1/ dir2/            # 增量同步(本地或远程)
shell 复制代码
#miniconda  x64位装
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
chmod +x Miniconda3-latest-*.sh
./Miniconda3-latest-*.sh
source ~/.bashrc

1.tmux / terminator

shell 复制代码
#安装 机器人本身上下位机 
sudo apt update
sudo apt install tmux
安装多终端TMUX
win上控制面板设置好之后,安装wsl2,然后安装tmux
sudo apt update && sudo apt install -y tmux

new -s x     新建会话 x
a -t x       挂回会话 x
ls           列出会话
d            脱离(后台运行)
Ctrl+b c     #创建一个新的bash
Ctrl+b n - 切换到下一个窗口
Ctrl+b p - 切换到上一个窗口
Ctrl+b %     左右分屏
Ctrl+b "     上下分屏
Ctrl+b o     跳窗格
Ctrl+b x     关窗格
Ctrl+b ,     重命名窗口
Ctrl+b [     进入滚屏/复制模式(q 退出)
概念:任务,窗口,窗格

tmux -V
新建一个会话
tmux new -s demo  
先按 Ctrl+b,再按 d  临时退出
tmux attach -t demo  重新接入

ctrl+b 后  英文键盘

按键	作用
"	上下分屏
`%"	左右分屏
方向键	切换窗格
x	关闭当前窗格
&	关闭整个会话

这个是我常用的多窗口超级终端:

shell 复制代码
sudo apt update      #可以不执行这个
sudo apt install terminator

2.Git

shell 复制代码
git init                 仓库初始化
git clone <url>          下拉远程库
git status               看状态
git add -A               全部进暂存
git commit -m "msg"      提交
git log --oneline        简洁历史
git push -u origin main  首次推送
git pull                 拉并合并
git diff HEAD            查看工作区差异
git checkout -b feat     新建并切换分支
git merge feat           合并分支
git reset --hard HEAD~1  回退 1 次提交
#下载的压缩包 ≠ Git 仓库,不能 git branch;    要切换分支,请直接用 git clone
git fetch --all            # 把 tag 拉下来
git checkout 1.0.2         # 进入 HEAD 分离状态,等价于快照
# 如果想在此基础上新建分支
git switch -c release-1.0.2
git ls-remote --heads origin | grep 1.0.2
git checkout -b 1.0.2 origin/release/1.0.2

git switch dev   远端有 origin/dev 时,拉到本地并切换

常规学习:

  1. 建仓库(两种场景)
  • 本地已有代码

    bash 复制代码
    cd ~/my_project
    git init                               # 生成 .git
    git add .                              # 把所有文件放"暂存区"
    git commit -m "first commit"
  • 从远端克隆(含历史)

    bash 复制代码
    git clone https://gitee.com/xxx/yyy.git
    cd yyy
    1. 日常 5 步循环(记住顺序)
    bash 复制代码
    git pull                               # 先同步同事/服务器最新
    # ------ 改代码 ------
    git add <改动的文件>                    # 或 git add . 全部
    git commit -m "feat: 加了个激光雷达驱动"
    git push                               # 推到远端
    # 查看保存的更改
    git stash list

口诀:"拉-改-添-交-推"


  1. 分支(并行开发)
bash 复制代码
git branch                             # 看本地分支
git branch dev                         # 新建分支
git checkout dev                       # 切换过去(或 git switch dev)
# 在 dev 上改完提交
git push -u origin dev                 # 第一次推送新分支

老项目常用 git checkout -b dev(创建+切换一步完成)


  1. 合并(把 dev 并回 main)
bash 复制代码
git checkout main
git pull                               # 保证 main 最新  可以把各个版本拉出来
git merge dev                          # 合并(可能提示冲突)
# 如有冲突 → 打开文件按提示改 → git add . → git commit
git push

图形界面看分支关系:git log --oneline --graph


  1. 临时"打断"------stash(现场保护)
bash 复制代码
git stash push -m "半成品,先去修 bug"
git checkout hotfix                    # 干别的
...
git checkout dev
git stash pop                          # 还原半成品继续写

  1. 版本回退(时光机)
bash 复制代码
git log --oneline                      # 找哈希,如 a1b2c3d
git reset --hard a1b2c3d               # 本地强制回退
git push -f                            # 远端也回退(团队慎用)

只想回退单个文件:git checkout HEAD -- 文件名


  1. .gitignore(让 Git 别再提示编译垃圾)
bash 复制代码
echo "build/
*.log
*.so" > .gitignore
git add .gitignore
git commit -m "chore: 忽略编译产物"

  1. 远端仓库管理
bash 复制代码
git remote -v                          # 查看远端地址
git remote add origin git@gitee.com:xxx/yyy.git   # 手动绑定
git remote set-url origin <新地址>      # 换地址/换协议

  1. 常用别名(让命令更短)
bash 复制代码
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.lg "log --oneline --graph --decorate"

以后敲 git st 就行。

shell 复制代码
#网络卡顿时候可浅克隆,之后再补充完整
git clone --depth=1 https://gitee.com/leju-robot/kuavo-ros-opensource.git
cd kuavo-ros-opensource
# 以后如果需要完整历史
git fetch --unshallow

切换分支问题

shell 复制代码
1. 改动还想留着 → 先"藏起来"
git stash push -m "WIP: 还没写完的 xxx"
git checkout 目标分支        # 成功切换
...
以后回原分支再:
git stash pop               # 把改动还原并删除 stash 记录
2. 改动已经成熟 → 直接提交
git add .
git commit -m "tmp: 保存进度" 
git checkout 目标分支 
3. 改动不要了 → 强制扔掉
git reset --hard HEAD       # 把修改/新增全丢掉
git checkout 目标分支
4. 出现 untracked 文件也拦路?
git clean -fd               # f=force d=directory

3.Vim/nano文本编辑器

shell 复制代码
sudo apt update
sudo apt install -y vim  #其中-y是默认输入yes
vim:
i        插入模式
Esc      回普通模式
:w       保存
:q       退出
:wq      保存并退出
dd       删整行
yy       复制整行
p        粘贴
u        撤销
Ctrl+r   重做
/关键词   搜索(n 下一个)
:set nu  显示行号
nano:
ctrl + o 保存 enter 再 ctrl + x

4.Typora

shell 复制代码
Ctrl+1~6      一级到六级标题
Ctrl+B/I/K    加粗/斜体/行内代码
```代码块```围栏代码
Ctrl+T        插入表格
Ctrl+Shift+M  公式块
Ctrl+/        切换源码/预览
大纲面板:视图 → 大纲(Shift+Ctrl+1)
主题 css 在 文件 → 偏好设置 → 外观 → 打开主题文件夹 可自定义

5.Docker

bash 复制代码
sudo apt install docker

5.1. Docker 基本概念

镜像(Image) :只读模板,用于创建容器
容器(Container) :镜像的运行实例
仓库(Repository):存放镜像的地方

5.2. 镜像管理

bash 复制代码
# 搜索镜像
docker search ubuntu
# 拉取镜像
docker pull ubuntu:20.04
# 查看本地镜像
docker images
# 删除镜像
docker rmi <image_id>
# 构建镜像
docker build -t myapp:1.0 .

5.3. 容器管理

bash 复制代码
# 运行容器
docker run -it ubuntu:20.04 /bin/bash
docker run -d -p 8080:80 --name mynginx nginx
docker run -v /host/path:/container/path -v volume_name:/container/path image_name
# 常用参数:
# -d: 后台运行
# -it: 交互模式
# -p: 端口映射
# -v: 数据卷
# --name: 容器命名
# 查看容器
docker ps          # 运行中的容器
docker ps -a       # 所有容器
# 启动/停止容器
docker start <container_id>
docker stop <container_id>
start <container_id>
# 进入容器
docker exec -it <container_id> /bin/bash
# 删除容器
docker rm <container_id>
docker rm -f <container_id>  # 强制删除运行中的容器
# 查看容器日志
docker logs <container_id>
docker logs -f <container_id>  # 实时日志

5.4. Dockerfile 示例

dockerfile 复制代码
# 基础镜像
FROM node:16-alpine
# 设置工作目录
WORKDIR /app
# 复制文件
COPY package*.json ./
COPY . .
# 安装依赖
RUN npm install
# 暴露端口
EXPOSE 3000
# 启动命令
CMD ["npm", "start"]

5.5. 网络管理

bash 复制代码
# 查看网络
docker network ls
# 创建网络
docker network create mynetwork
# 连接容器到网络
docker network connect mynetwork container_name
# 使用自定义网络运行容器
docker run --network=mynetwork --name app1 myapp

5.6. 数据卷管理

bash 复制代码
# 创建数据卷
docker volume create myvolume
# 查看数据卷
docker volume ls
# 删除数据卷
docker volume rm myvolume
# 使用数据卷
docker run -v myvolume:/data myapp

5.7. Docker Compose

创建 docker-compose.yml 文件:

yaml 复制代码
version: '3.8'
services:
  web:
    image: nginx:alpine
    ports:
      - "80:80"
    volumes:
      - ./html:/usr/share/nginx/html
    networks:
      - mynetwork

  db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: example
    volumes:
      - db_data:/var/lib/mysql
    networks:
      - mynetwork

volumes:
  db_data:

networks:
  mynetwork:
    driver: bridge

使用命令:

bash 复制代码
docker-compose up -d
docker-compose down
docker-compose ps
docker-compose logs

5.8. 实用命令

bash 复制代码
# 查看容器资源使用情况
docker stats
# 查看容器详细信息
docker inspect <container_id>
# 清理无用资源
docker system prune
docker system prune -a  # 清理所有未使用资源
# 保存和加载像
docker save -o myimage.tar myapp:1.0
docker load -i myimage.tar

5.9. 实际应用示例

运行 MySQL:

bash 复制代码
docker run -d \
  --name mysql-server \
  -e MYSQL_ROOT_PASSWORD=mysecret \
  -e MYSQL_DATABASE=myapp \
  -v mysql_data:/var/lib/mysql \
  -p 3306:3306 \
  mysql:8.0

运行 Redis:

bash 复制代码
docker run -d \
  --name redis-server \
  -p 6379:6379 \
  redis:alpine
相关推荐
weixin_521431123 小时前
Docker容器技术
运维·docker·容器
java_logo3 小时前
LinuxServer.io LibreOffice 容器化部署指南
java·开发语言·docker·dubbo·openoffice·libreoffice·opensource
Elieal4 小时前
12 Git 多人协作(完整版工作流)
git
好好研究4 小时前
Git - 项目克隆命令、冲突处理流程
git·gitee
杨浦老苏4 小时前
隐私优先的图片遮蔽工具AutoRedact
docker·ai·工具·群晖·图片
Laughtin4 小时前
命令行上传和更新本地项目到github的步骤
github
空空kkk5 小时前
Git——多人协作
git
Radan小哥5 小时前
Docker学习笔记—day012
笔记·学习·docker
qq_5470261796 小时前
Docker 搭建Nexus3私服
运维·docker·容器