日常笔记#

提示:日常笔记,主要记录一些平时常用的实用命令

软件安装

提示:主要记录一些Ubuntu一般实用的软件:

ffmpeg -i input.mp4 -b:v 640k output.mp4

常用命令

1、批量解压tar压缩包

for tar in *.tar;  do if [ ! -d ${tar%.*} ]; then echo "make dir ${tar%.*}";  mkdir ${tar%.*};fi;tar -xvf $tar -C  ${tar%.*}/; done
for tar in *.tar;  do if [ ! -d ${tar%.*} ]; then  mkdir  ${tar%.*};fi;tar -xvf $tar -C  ${tar%.*}/; done
for tar in *.tar;  do echo ${tar%.*}; mkdir  ${tar%.*}; done

2、screen

screen -ls #查看screen列表
screen -dmS paddle # 创建一个paddle的session
screen -r paddle #进入session
screen -r paddle  #将当前在另一个终端attach的会话强制退
ctrl + a + d #暂时退出
screen 显示窗口查看历史输出
命令:ctrl + a + [ 
先利用ctrl-a [ 进入copy mode。在copy mode下可以回滚、搜索、复制就像用使用 vi 一样。在copy mode下有这些快捷键:
C-b :Backward、PageUp
C-f :Forward、PageDown
H: High,将光标移至左上角
L:Low,将光标移至左下角
0:移到行首
$:行末
w:forward one word,以字为单位往前移
b:backward one word,以字为单位往后移
Space: 第一次按为标记区起点,第二次按为终点
按esc退出copy mode。
在copy mode下不会实时的同步输出信息。也就是说进入copy mode后,你所能看到的就是从开始到你进入时的所有输出,以后的输出并不会同步。所以需要esc退出再查看。

3、docker 常用命令

查看docker 容器挂路径

 docker inspect 容器名称| grep Mounts -A 20
#查看log
docker-compose logs --tail 50 -t -f
#查看网络列表
docker network ls
(paddle) user@user-FitServer-G4A60:~$ docker network ls
NETWORK ID     NAME                         DRIVER    SCOPE
5f46938d6a91   bridge                       bridge    local

# 创建容器
docker run -it --runtime=nvidia --name yolov5_headshoulder --shm-size 32G -v path/to/path:path/to/path  -w /home/pan 34ad4ada2ea0 bash
镜像移动
sudo docker images
sudo docker save ebbeec5cc249 > /tmp/tablet_fresh_v6.tar (docker save 镜像id > /mnt/tablet_fresh_v6.tar (tar包))
sudo docker load < /mnt/tablet_fresh_v6.tar
#查看所有images和容器的大小
sudo docker system df -v
#容器导出/导入
docker export 5a9229275d3c > lamp.tar  #将容器导出
docker import lamp.tar 
#镜像重命名
sudo docker tag IMAGEID(镜像id) REPOSITORY:TAG(仓库:标签)
sudo docker tag ebbeec5cc249 panubuntu123/fresh:v6

修改docker 挂载路径–这里是修改的原容器的挂载路径,不是提交再run

停止 docker 服务
systemctl stop docker.service

#查看挂载路径
 docker inspect yolov5| grep Mounts -A 20

#查看容器id
docker ps -a

#找到 MountPoints,并修改挂载路径

vi /var/lib/docker/containers/container-ID/config.v2.json

 重启 docker 服务

systemctl start docker.service

docker设置自动启动容器

#1、使用 docker run 命令运行时
增加 --restart=always 参数即可

#2、使用 docker-compose 命令运行时, 在 yml 文件中,需要自启动的 service 下
增加 restart: always 项目即可

#3、已运行的容器修改其自启动策略 执行命令:
docker update --restart=always 容器名或容器ID

#重启docker服务
systemctl stop docker.service
systemctl start docker.service

linux修改容器中的shm值

查看shm值:df -h
查看已经启动的容器:docker ps
因为所有命令需要在sudo中执行:sudo -i
默认目录:cd /var/lib/docker/containers
进入容器:cd <container_id> 
执行修改shm命令:mount -o remount,size=5G shm(shm为容器目录下的一个文件)

在这里插入图片描述

#查看容器大小
docker ps -s

#docker中默认存放镜像和容器的目录是:/var/lib/docker/

docker system prune [-a]
# 1、清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)。
#2、-a :清理得更加彻底,可以将没有容器使用Docker镜像都删掉。

#查看Docker的磁盘使用情况
docker system df

在这里插入图片描述
在这里插入图片描述

4、软连接

Then link your dataset path to datasets

cd datasets/
ln -s /path/to/coco coco

5、shell统计当前文件夹下的文件个数、目录个数以及ls命令

1、 统计当前文件夹下文件的个数
  ls -l |grep "^-"|wc -l
2、 统计当前文件夹下目录的个数
  ls -l |grep "^d"|wc -l
3、统计当前文件夹下文件的个数,包括子文件夹里的 
  ls -lR|grep "^-"|wc -l
       ls -lR|grep "^-"|grep "JPG$"|wc -l   #统计当前文件夹下文件的JPG文件的个数,包括子文件夹里的 
4、统计文件夹下目录的个数,包括子文件夹里的
  ls -lR|grep "^d"|wc -l
#注
# grep "^-"   这里将长列表输出信息过滤一部分,只保留一般文件,如果只保留目录就是 ^d
# wc -l  统计输出信息的行数,因为已经过滤得只剩一般文件了,所以统计结果就是一般文件信息的行数,又由于一行信息对应一个文件,所以也就是文件的个数。
#判断目录下文件数与指定文件数量是否相等

#fileNum.sh
#! /bin/sh
num=$1
DR=`ls`
for dir in $DR
do
        if [ -d "$dir" ]; then
                cd "$dir"
                fileNum=`ls -l |grep "^-"|wc -l`
                if [ "$num" -ne "$fileNum" ];then
                        echo `pwd` >> ../error.txt
                fi
                cd -
        fi
done
#./fileNum.sh 5要判断的文件数量
 ls Annotations/ | head -n 5 # 只列出前N个目录
 ls -d image[1-2]ls -d image1 iamge2  #只列出image1,image2目录 
 ls -d image* # 列出所有image开头的目录
ls | pr -2 -t  >aa.txt  #该命令将输出文件名为两列。如果是一列,则将-2换成-1即可。

5.1、shell split

[root@dw-hsd02-pe connect]# split --help
Mandatory arguments to long options are mandatory for short options too.
  -a, --suffix-length=N   生成长度为N的后缀(默认值2)
      --additional-suffix=SUFFIX  文件名后面附加一个后缀
  -b, --bytes=SIZE        按大小切割文件 -b 10k/10m/..
  -C, --line-bytes=SIZE   按字节切割文件类-b
  -d, --numeric-suffixes[=FROM]  使用数字后缀替代字母
                                   FROM changes the start value (default 0)
  -e, --elide-empty-files  不生成带有'-n'的空输出文件
      --filter=COMMAND    write to shell COMMAND; file name is $FILE
  -l, --lines=NUMBER      按行切割文件
  -n, --number=CHUNKS     按生成文件个数切割

按文件大小切分,并指定后缀
[root@]# split -b 1k biz_date.txt -d -a 1 date_
date_0
date_1

按字节切分
[root@ tmp]#  split -C 200 biz_date.txt -d -a 1 date_
date_0
date_1
date_2
date_3
date_4
date_5
date_6
(按大小切分有或许会把一行文件拆开,放到另一文件导致数据不完整,需要手动处理数据)

批量为文件添加后缀
[root@ tmp]# ls | grep date_|xargs -n1 -i{} mv {} {}.txt
date_0.txt
date_1.txt
date_2.txt
date_3.txt
date_4.txt
date_5.txt
date_6.txt

按行数切割,并重命名文件
[root@ tmp]# split -l 50 biz_date.txt -d -a 1 date_
date_0
date_1
date_2
[root@ tmp]# ls |grep date_|xargs -n1 -i{} mv {} {}.txt
date_0.txt
date_1.txt
date_2.txt

按输出文件个数切割
[root@ tmp]# split -n 5 biz_date.txt -d -a 2 biz_
biz_00
biz_01
biz_02
biz_03
biz_04

6、删除所有相同进程

ps -ef | grep fresh_void | grep -v grep | awk '{print "kill -9 "$2}'|sh
kill -9 `ps -ef | grep fresh_void | grep -v grep | awk '{print $2}' `

7、常用Linux命令

7.1 修改文件夹权限

sudo chmod 777 * -R

一、常识

学历:研究生
学位:硕士

二、常用代码

1、pytorch分布式训练

python -m torch.distributed.run --nproc_per_node 8 train.py --data data/headshoulder.yaml --cfg models/yolov5s.yaml --weights 'yolov5s.pt' --batch-size 128 --device 0,1,2,3,4,5,6,7 

2、查看动态链接库

三种方法

1、ldd ./autogen.sh
2、LD_TRACE_LOADED_OBJECTS=1 ./autogen.sh
3、readelf -d autogen.sh | grep NEEDED

##3、tqdm使用技巧

for ind, image_path in enumerate(tqdm(image_path_list, "Performing inference on images")):
	....
	tqdm.write(f"Performing prediction on {num_slices} number of slices.")

在这里插入图片描述


在这里插入图片描述

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值