介绍
Jeroen Janssens在《命令行的数据科学》一书中对命令行优势进行了很好的分类:
命令行是灵活的:这个特性使它非常适合数据科学的探索性质。因为你想要及时得到结果。
命令行可以扩展:与其他技术很好地集成。(例如Jupyter笔记本、Colab等)
命令行是可伸缩的:因为你不使用GUI,你实际上输入命令,每个命令都有许多参数,所以它可以很容易地满足你的需要。
命令行是可扩展的:命令行本身与语言无关。因此,你可以开发和扩展它的功能,而不用担心语言。
命令行无处不在:命令行与任何类似Unix的操作系统一起提供。大多数超级计算机、嵌入式系统、服务器、笔记本电脑和云基础设施都使用Linux。
在这篇文章中,想介绍一些关于我经常用于项目的Linux命令
将命令分为两大类:
第一类包括在使用远程服务器和文件时有用
第二类命令包括有助于图像/视频操作。
使用远程服务器和文件
1.检查图像的尺寸
有时在远程服务器上,你正在处理数据,没有任何GUI来查看图像维度。可以使用以下命令检查图像尺寸:
linux@user-pc:~/some/path$ identify image_name.png
>>> image_name.png PNG 1920x1080 8bit sRGB 805918B 0.000u 0:00.000
如果你想将其用于目录中的多个图像(可能你想将它们合并为一个片段,但其中一些图像的维度与其他图像不同!),使用*.png而不是image_name.png
脚本:
import cv2
from pathlib import Path
images = Path('path').rglob('*.png')
for img_path in images:
img = cv2.imread(img_path)
print(img_path, img.shape)
2.清点目录上的图像
在一些目录中创建数据集之后,我经常检查图像和标签的数量是否相等。(由于我使用jupyter notebook,有时会有一个名为.ipynotebook的隐藏目录,在使用ls命令时不会出现,当数据生成器开始从该目录获取数据时,会出现问题)。
要统计所有图像,请执行以下操作:
ls path/to/images | wc -l
要仅检查png格式文件,请执行以下操作:
find -name *.png -type | wc -l
要使用存储大小检查目录,请执行以下操作:
du -lh --max-depth=1
你还可以使用tree -du -h Path/to/images来检查映像及其占用的磁盘存储空间。
命令树的输出更加直观,如下所示:
3.将文件从本地PC复制到远程服务器
我们经常需要将数据上传到远程服务器(或从远程服务器下载)。要做到这一点,你应该以以下方式使用scp命令:
首先,我建议你使用以下