Linux 安全(永久)删除文件和文件夹
Linux 系统上的文件或文件夹的安全(永久)删除常用的方法有 shred, wipe 和 srm,下面对其进行介绍。
shred 重写覆盖删除文件安装
12sudo apt updatesudo apt install shred
使用
12# 删除文件 filepath.txt shred -uvz -n 5 filepath.txt
其中,各参数含义:
u 覆盖后截断并删除文件
v 显示进度
z 最后一次用0覆盖,以隐藏覆盖操作
n 指定覆盖文件内容的次数,默认是3
更多参数及解释请使用命令 man shred 查看
该方法只能覆盖重写删除文件,无法处理文件夹。
wipe 永久删除磁存储器的文件和文件夹安装
12sudo apt updatesudo apt install wipe
使用
1wipe -rfi dirpath
其中,各参数含义:
r 递归子目录
f 强制删除,不用确认
i 显示进度
更多参数及解释请使用命令 man wipe 查看
该方法只能删除磁存储器,对于固态硬盘需要使用其他方法,如下面的方法。
srm 安全删除文件和文件夹安装
12sudo a ...
PyTorch 进行 MNIST 图片分类
PyTorch 图像分类,数据集采用内置的 MNIST.
加载数据集12345678910111213import matplotlib.pyplot as pltimport numpy as npimport torchimport torchvisionimport visdomfrom torch import nnfrom torch.utils.data import DataLoaderfrom torchvision import transformstorch.manual_seed(33)device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")device
device(type='cuda', index=0)
12345678910111213train_ds = torchvision.datasets.MNIST( "/workspace/disk1/datasets/", ...
PyTorch 多层感知机
PyTorch 多层感知机,数据集来自:nivedithabhandary/HR-Analytics
数据预处理12345678import matplotlib.pyplot as pltimport numpy as npimport pandas as pdimport torchfrom sklearn.model_selection import train_test_splitfrom torch.utils.data import TensorDatasettorch.manual_seed(33)
<torch._C.Generator at 0x7fabe84e8e90>
1path = "/workspace/disk1/datasets/scalar/HR_comma_sep.csv"
12data = pd.read_csv(path)data.head(3)
.dataframe tbody tr th:only-of-type {
vertical-align: ...
PyTorch 逻辑回归
PyTorch 逻辑回归,数据集:UCI Iris Data Set
导入依赖包1234567import matplotlib.pyplot as pltimport numpy as npimport pandas as pdimport torchimport torch.nn as nnimport torch.optim as optimimport visdom
1torch.__version__, torch.manual_seed(33)
('1.12.1+cu102', <torch._C.Generator at 0x7f753ca60e90>)
加载数据集1path = "/workspace/disk1/datasets/scalar/iris.data.csv"
12data = pd.read_csv(path)data.head(3)
.dataframe tbody tr th:only-of-type {
vertical-align: midd ...
PyTorch 线性回归
利用 PyTorch 进行线性回归,采用 kaggle 波士顿房价预测数据集
导入依赖包1234567import matplotlib.pyplot as pltimport numpy as npimport pandas as pdimport torchimport torch.nn as nnimport torch.optim as optimimport visdom
1torch.__version__
'1.12.1+cu102'
加载数据123path = "/workspace/disk1/datasets/scalar/train_dataset.csv"data = pd.read_csv(path)data.head(3)
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
& ...
Linux 批量修改文件名
Linux 中有一些命令能够非常方便的修改文件名,如 rename 等。本篇注意介绍 Ubuntu 系统中该命令的一般使用方法。
安装123456# Debian/Ubuntu 安装方法sudo apt updatesudo apt install -y rename# Mac 安装方法brew install rename
使用本篇介绍的 rename 版本是 Perl 版本,还有 C 版本,使用方法参见博文:Linux 批处理:修改文件名和文件内容
Linux 中修改单个文件名的方法是 mv 命令,我们可以借助管道符修改多个文件的文件名:
123456ls `pwd`# 结果如下,包含两个以 .txt 结尾的文件# hello.txt world.txt# 修改文件扩展名为 .pyfind `pwd` -name '*.txt' | awk -F '.' '{print $1}' | xargs -I {} mv {}.txt {}.py ...
Python 代码性能分析
Python 是一门非常优秀的面向对象的解释性语言,代码编写快且易读(但从代码字面意义上)。如果非要挑出一个缺点,那就是代码的执行速度相对于 C、Java、Golang 等语言较慢,不过在 3.11 版的 Python 运行速度已经进行大幅提高。但是,对于 Python 代码的性能分析仍然不可或缺,这有助于找出耗时的代码部分,通过优化能够加速程序运行。本篇介绍一些 Python 代码性能分析的方法。
代码的性能分析跟代码执行时间密切相关,只不过它关注的是耗时的位置。默认的 Python 性能分析工具是 cProfile 模块,它在执行一个程序或代码块时,会记录各函数所耗费的时间。但它不是转为 Python 设计的。
cProfile 一般是在命令行上使用的,它将执行整个程序然后输出各函数的执行时间。我们首先编写一个 Python 模块 py_performance.py:
1234567891011121314151617import numpy as npfrom numpy.linalg import eigvalsnp.random.seed(33)def run_exper ...
Python 中 numpy 数组拼接
numpy 是 Python 科学计算库,效率非常高,其自带的数据结构 ndarray 能够非常方便的处理多维数据,在 numpy 中定义了很多多维数据拼接的方法,本篇简要介绍它们。
hstack, vstack, dstackhstack 水平拼接hstack 能够沿水平方向拼接两个行数相同的多维数组。如下
1234import numpy as npa = np.reshape(np.arange(1, 7), newshape=(3, 2))a
array([[1, 2],
[3, 4],
[5, 6]])
12b = np.reshape(np.arange(11, 17), newshape=(3, 2))b
array([[11, 12],
[13, 14],
[15, 16]])
12c = np.hstack((a, b))c
array([[ 1, 2, 11, 12],
[ 3, 4, 13, 14],
[ 5, 6, 15, 16]])
1a ...
Mac 下打包 Python 程序
在 Windows 下开发的 Python 程序可以通过 pyinstaller 来打包。在 Mac 下可以使用 py2app 来打包 Python 程序。
生成程序图标Mac 下程序图标扩展名是 icns,Mac 下自带有程序能够生成这种类型的图标。假设我们有一个 png 图像想要制作为 Python 程序的图标,那么我们可以使用如下的程序 icon.py 生成:
123456789101112131415161718192021222324252627282930313233343536373839404142#!/usr/bin/env python# -*- coding: utf-8 -*-# @Author : Jinzhong Xu# @Contact : jinzhongxu@csu.ac.cn# @Time : 2023/4/12 21:41# @File : icon.py# @Software : PyCharm"""生成应用程序图标"""import osfrom dateti ...
Python 可视化模块 Matplotlib 的使用
Matplotlib 是 Python 中的数据可视化软件包,支持跨平台。Jonh D. Hunter 于 2002 年开始编写,2003 年发布第一版,并加入 BSD 开源软件组织。Matplotlib 提供了面向绘图对象的 API,能够实现常用图像的绘制,并能配合 Python GUI 工具(如 PyQt, Tkinter 等)把图像嵌入到应用程序中,同时也支持以脚本形式嵌入 IPython Shell, Jupyter notebook, Web 应用服务器中使用.
Matplotlib 架构和图像构成Matplotlib 架构由 3 个层次构成,分别是:
后端层。作为最底层,它包含 3 个基类,分别是 FigureCanvas(图层画布,提供绘图的画布)、Renderer(绘图操作,提供画布上绘图的方法)、Event(事件处理,处理鼠标、键盘事件);
美工层。提供绘图的标题、坐标刻度、轴标签;
脚本层。负责生成图像和坐标系。
Matplotlib 图像由 4 个层次构成,分别是:
Figure:画布,包含所有元素,如标题、轴线等;
Axes:绘图区,或轴域区;
Axi ...
通过 Docker 安装 bitnami redmine
Redmine 是一个网页界面的项目管理与缺陷跟踪管理系统的自由及开放源代码软件工具,可以同时处理多个项目。它集成了项目管理所需的各项功能,包括日历、燃尽图和甘特图以协助可视化表现项目与时间限制,问题跟踪和版本控制。本篇介绍如何使用 Docker 安装 Redmine,以 Bitnami Redmine + Ubuntu18.04 为例,所有命令以普通用户运行,但需要 sudo 权限。
安装 dockerdocker 和 docker-compose 的安装请参考我的另一篇博文:docker 简单介绍
安装 redmine我们这里使用 bitnami/redmine 来安装 redmine。
下载 docker-compose.yml1234sudo mkdir /usr/local/redminesudo chown -R jinzhongxu /usr/local/redminecd /usr/local/redminewget https://raw.githubusercontent.com/bitnami/containers/main/bitnami/redm ...