Linux之文件进阶管理

SAP ABAP开发实战:手把手教你用CL_REST_HTTP_HANDLER发布带Token验证的采购订单查询接口 本文详细介绍了如何使用SAP ABAP的CL_REST_HTTP_HANDLER框架构建带Token验证的采购订单查询接口。从环境准备、架构设计到具体实现,涵盖了RESTful接口开发的全流程,包括安全认证、业务逻辑处理和生产部署,助力企业实现SAP系统与外部应用的高效集成。 阅读详情

文件进阶管理

文件查找

一、命令文件

which ls //PATH环境变量 (echo $PATH)

whereis vim

[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/htop/bin/:/root/bin

二、任意文件

[root@centos-9 ~]# yum -y install mlocate

A. locate (查询数据库,查找速度比较快: /var/lib/mlocate/mlocate.db)

计划任务:每天自动更新数据库 /etc/cron.daily/mlocate.cron

手动更新数据库会大量消耗IO:updatedb

locate ifcfg-eth0

B. find

find options expression

查找条件 作用
-name 匹配名称。例1:find /etc -name host* 例2:find /dev -name std*
-perm 匹配权限(mode为完全匹配,-mode为包含即可)。例1:find / -perm 000
-user 匹配所有者。例:useradd sky ; find / -user sky
-group 匹配所有组。例:find / -group sky
-mtime -n +n 匹配修改内容(modify)的时间(-n指n天以内,+n指n天以前) 例:在根目录下查找mtime为3天以前的文件: find / -mtime +3 例:在根目录下查找mtime为3天以内的文件: find / -mtime -3
-atime -n +n 匹配访问(access)文件的时间-n指n天以内,+n指n天以前
-ctime -n +n 匹配修改权限(change)的时间-n指n天以内,+n指n天以前
-nouser 匹配无所有者的文件 [这种情况通常是文件属主的用户名被删除了,只剩下uid]
-nogroup 匹配无所有组的文件 [这种情况通常是文件属组的账号被删除了,只剩下gid]
-newer f1 !f2 匹配比文件f1新却比f2旧的文件
-type b/d/c/p/l/f 匹配文件类型(b块设备、d目录、c字符设备、p管道、l链接文件、f普通文件) 例1:find /dev -type b 例2:find /dev -type c 例3:find /dev -type p
-size 匹配文件的大小(+50k查找超过50k的文件,而-50k则代表查找小于50k的文件) 例:在/boot目录下查找大小为大于6M的文件:find /boot -size +6M
-prune 忽略某个目录
-exec 操作 {} ; 自动对找到的文件执行“某个操作”,如ls、cp、rm -rfv等。例:在/etc目录中查找以.conf文件结尾的所有文件,并复制到/tmp/目录中。 find /etc -name *.conf -exec cp -rv {} /tmp/ ; 大括号{}表示用find找到的所有文件
-ok 操作 {} ; 手动交互(手动yes确认)对找到的文件执行“某个操作”,如ls、cp等。 例:find /etc -name *.conf -ok cp -v {} /tmp/ ;

[root@xiaochen ~]# find /home/

按文件名:

[root@xiaochen ~]# find /etc /tmp -name "ifcfg-eth0"
[root@xiaochen ~]# find /etc -iname "ifcfg-eth0" //-i忽略大小写
[root@xiaochen ~]# find /etc -iname "ifcfg-eth*"

按文件大小:

[root@xiaochen ~]# find /etc -size +5M //大于5M
[root@xiaochen ~]# find /etc -size 5M
[root@xiaochen ~]# find /etc -size -5M -print
[root@xiaochen ~]# find /etc -size +5M -ls

指定查找的目录深度:

-maxdepth levels
-mindepth levels
[root@xiaochen ~]# find / -maxdepth 3 -a -name "ifcfg-eth0"

按时间找(atime,mtime,ctime):

[root@xiaochen ~]# find /etc -mtime +5 //修改时间超过5天
[root@xiaochen ~]# find /etc -mtime 5 //修改时间等于5天
[root@xiaochen ~]# find /etc -mtime -5 //修改时间5天以内
注:修改时间5天是按照小时算的,即从此刻往前120h

按文件属主、属组找:

[root@xiaochen ~]# find /home -user jack //属主是jack的文件
[root@xiaochen ~]# find /home -group hr //属组是hr组的文件
[root@xiaochen ~]# find /home -user jack -group hr
[root@xiaochen ~]# find /home -user jack -a -group hr //-a即为and且
[root@xiaochen ~]# find /home -user jack -o -group hr //-o即为or或
[root@xiaochen ~]# find /home -nouser
[root@xiaochen ~]# find /home -nogroup
[root@xiaochen ~]# find /home -nouser -o -nogroup

按文件类型:

[root@xiaochen ~]# find /dev -type f //f普通文件
[root@xiaochen ~]# find /dev -type d //d目录
[root@xiaochen ~]# find /dev -type l //l链接
[root@xiaochen ~]# find /dev -type b //b块设备
[root@xiaochen ~]# find /dev -type c //c字符设备
[root@xiaochen ~]# find /dev -type s //s套接字
[root@xiaochen ~]# find /dev -type p //p管道文件

按文件权限:

[root@xiaochen ~]# find . -perm 644 //权限为644
[root@xiaochen ~]# find . -perm -644 -ls //-ls找到的处理动作,权限大于等于644
[root@xiaochen ~]# find . -perm -600 -ls
[root@xiaochen ~]# find /sbin -perm -4000 -ls //包含set uid
[root@xiaochen ~]# find /sbin -perm -2000 -ls //包含set gid
[root@xiaochen ~]# find /sbin -perm -1000 -ls //包含sticky

按正则表达式:

-regex pattern
[root@xiaochen ~]# find /etc -regex '.*ifcfg-eth[0-9]'
.* 任意多个字符
[0-9] 任意一个数字
==找到后处理的动作 ACTIONS: (默认动作-print)==
-print
-ls
-delete 直接删除找到的文件
-exec 后面跟自定义的shell命令,没有交互,直接执行
112/214
-ok 后面跟自定义的shell命令,会询问
[root@xiaochen ~]# find /etc -name "ifcfg*" //默认就是打印
[root@xiaochen ~]# find /etc -name "ifcfg*" -print
[root@xiaochen ~]# find /etc -name "ifcfg*" -ls
[root@xiaochen ~]# find /etc -name "ifcfg*" -exec cp -rvf {} /tmp \; //红色的是语法结构
[root@xiaochen ~]# find /etc -name "ifcfg*" -ok cp -rvf {} /tmp \;
[root@xiaochen ~]# find /etc -name "ifcfg*" -exec rm -rf {} \;
[root@xiaochen ~]# find /etc -name "ifcfg*" -delete

扩展知识:

find结合xargs
xargs可以帮助不是管道的命令接收前面进程的输出,然后拿到最后给这些命令做参数
[root@xiaochen ~]# find /etc -name "ifcfg*" |xargs ls -lh
[root@xiaochen ~]# find . -name "*.txt" |xargs rm -rf
[root@xiaochen ~]# find /etc -name "ifcfg-eth0" |xargs -I {} cp -rf {} /var/tmp //I表示替换

stat

查看文件的状态信息

例:stat /etc/hosts

文件的三个时间:

名词 功能 解释
atime 访问时间access time 是指用ls、cat、head等命令访问过文件的时间
mtime 更改时间modifye time 是指用vim、>覆盖、>>追加等方式修改过文件内容的时间
ctime 改动时间change time 是指用chown、chmod命令改动过文件权限的时间

alias命令别名

应用场合:通常会将比较长的命令定义一个别名(即快捷键),当输入别名时就等同于输入这条命令。

alias查看命令别名,或给命令临时设置别名(即快捷键),命令格式:alias 别名=“命令”

实例:临时给rm -rf /tmp/*设置一个别名为rt,并测试,最后删除rt这个命令别名。

alias 查看所有的命令别名

alias rt='rm -rf /tmp/* ; ls /tmp/ ’ 定义命令别名(即快捷键)

rt 使用rt命令别名

unalias rt 删除rlt这个命令别名

设置永久的别名**:vi /etc/bashrc 在文件最后添加如下内容,然后保存并退出。

alias rt=rm -rf /tmp/*;ls /tmp/

然后exit退出登录,再重新登录,此命令别名就会生效(用alias命令查看)。

任务:

执行以下任务,临时设置命令别名并测试。

设置head -3命令别名为h3 alias h3=‘head -3’
设置tail -3命令别名为t3 alias t3=‘tail -3’
用命令别名h3查看passwd文件的前3行内容 h3 /etc/passwd
用命令别名t3查看passwd文件的最后3行内容 t3 /etc/passwd

文件打包压缩及解压

文件打包及压缩

打包tar:将多个文件包装(也称封装)成一个文件。打包后的文件容量不发生变化。压缩zip:将多个文件包装(也称封装)并压缩成一个文件。压缩后的文件容量会变小。

打包压缩的应用场合:当有100个文件要通过网络发给对方式时,我们可以将这100个文件打包、压缩成一个文件发给对方。对方收到文件后解包解压缩后可正常使用文件。

tar命令用于对文件打包压缩或解压,格式为:“tar 选项”。

打包并压缩文件:“tar -czvf 压缩包名.tar.gz 文件名”

解压并展开压缩包:“tar -xzvf 压缩包名.tar.gz”

选项 作用
-c 创建tar包文件。create
-x 解开tar包文件。extract
-t 查看tar包内有那些文件
-z 调用Gzip压缩或解压
-j 调用bzip2压缩或解压
-v 显示压缩或解压的过程
-f 目标文件名(即tar包文件名)
-r 在tar包中追加新的文件
-p 即–preserve-permissions,保留原始的权限与属性
-P 即Path,使用绝对路径来压缩
-C 即change,指定解压到的目录(警告,-C后面的目录必须已存在)
-delete 删除包中的某个文件
-A 将某个文件增加到包中

Demo1:

复制未打包的文件到远程主机

[root@xiaochen ~]# du -sh /etc
39M /etc
[root@xiaochen ~]# rsync -va /etc/ 192.168.5.32:/tmp //将/etc下的所有文件...

[root@xiaochen ~]# rsync -va /etc 192.168.5.32:/tmp //将/etc目录...

Demo2:

将各个文件分别压缩

将当前目录下所有的文件全部压缩

[root@server ~]# mkdir /tmp/dir1
[root@server ~]# cd /tmp/dir1
[root@server dir1]# gzip *

Demo3:

将当前目录下所有的文件全部解压

[root@server dir1]# gunzip *

=打包(归档),压缩=

c即create创建,f打包后的文件名
[root@xiaochen ~]# tar -czf etc1.tar.gz /etc //-z 调用gzip工具进行压缩
[root@xiaochen ~]# tar -cjf etc2.tar.bz2 /etc //-j 调用bzip2工具进行压缩
[root@xiaochen ~]# tar -cJf etc3.tar.xz /etc //-J 调用xz工具进行压缩
[root@xiaochen ~]# ll -h etc*
-rw-r--r--. 1 root root 8.7M 3月 12 00:08 etc1.tar.gz
-rw-r--r--. 1 root root 7.5M 3月 12 00:08 etc2.tar.bz2
-rw-r--r--. 1 root root 4.8M 3月 12 00:09 etc3.tar.xz

=查询=

[root@xiaochen ~]# file a.txt.gz
a.txt.gz: gzip compressed data, was "a.txt", from Unix, last modified: Wed Nov 8 15:23:10 2017
[root@xiaochen ~]# tar -ztvf etc1.tar.gz //查询gzip压缩的文件
[root@xiaochen ~]# tar -jtvf etc2.tar.bz2 //查询bzip2压缩的文件
[root@xiaochen ~]# tar -Jtvf etc3.tar.xz //查询xz压缩的文件

=解压,解包=

[root@xiaochen ~]# tar -xzvf etc1.tar.gz //x解包
[root@xiaochen ~]# tar -xvf etc1.tar.gz //无需指定解压工具,tar会自动判
断
[root@xiaochen ~]# tar -xvf etc2.tar.bz2 -C /tmp //-C重定向到//tmp目录
[root@xiaochen ~]# tar xf etc3.tar.xz

==解压zip

[root@xiaochen ~]# unzip xxx.zip

tar实战案例

[root@localhost ~]# yum -y install mariadb-server
[root@localhost ~]# systemctl start mariadb
[root@localhost ~]# mkdir /backup

案例1:

mysql物理备份及恢复

[root@localhost ~]# tar -cJf /backup/mysql.tar.xz /var/lib/mysql
[root@localhost ~]# tar -tvf /backup/mysql.tar.xz
[root@localhost ~]# rm -rf /var/lib/mysql/*
[root@localhost ~]# tar -xf /backup/mysql.tar.xz -C /

案例2:

mysql物理备份及恢复

[root@localhost ~]# cd /var/lib/mysql
[root@localhost mysql]# tar -cJf /backup/mysql.tar.xz *
[root@localhost mysql]# tar -tvf /backup/mysql.tar.xz
[root@localhost mysql]# tar -xf /backup/mysql.tar.xz -C /var/lib/mysql

案例3:

host A /etc (海量小文件) --------> 本地主机host A /tmp

[root@localhost ~]# time tar -czf - /etc |tar -xzf - -C /tmp
注:- 表示不会真的写到硬盘中去,而是写在内存中去

案例4:

host A /etc (海量小文件) --------> 远程主机host B /tmp

常规方法:scp直接远程拷贝或者是tar打包压缩之后远程拷贝

建议方法(不落地即不经过硬盘的方法):

host B 监听端口

如果host B的防火墙开着,需要添加新端口;如果防火墙是关着的不需要下面操作

[root@hostb ~]# firewall-cmd --permanent --add-port=8888/tcp
[root@hostb ~]# firewall-cmd --reload

在主机B上开启监听端口,接收到数据就进行解包的操作

[root@hostb ~]# nc -l -t 8888 |tar -xzf - -C /tmp

==host A ==

[root@localhost ~]# tar -czf - /etc | nc 172.16.20.21 8888
tar: Removing leading `/' from member names
Linux压缩与解压 压缩与解压 文章目录压缩工具gzipgzip [OPTION]... [FILE]...解压 gzip -dbzip2bizp2 [OPTION]... [FILE]...解压 bzip2 -d解压并保留原文件 bzip2 -kdxzxz [OPTION]... [FILE]...解压 xz -d解压并保留源文件 xz -kdzipzip filename.zip file1 file2 ...z... 阅读详情

相关推荐

【Linux 从基础到进阶】文件系统管理与优化

通过本文的介绍,您已经了解了文件系统的基本概念、管理方法和优化技巧。合理的文件系统管理和优化可以显著提升系统性能和数据安全性。如有任何问题或需要进一步的帮助,请参考CentOS 官方文档和Ubuntu 官方文档或在 优快云 博客中查阅相关内容。

weixin_39372311的博客 719

用命令:tar -zxvf,解压tar.gz包失败的问题解决。

问题描述: 主机上,使用tar -zxvf 解压tar.gz包的时候,出现以下错误: gzip: stdin: not in gzip format tar: Child returned status 1 tar: Error is not recoverable: exiting now 问题办法: 开门见山,先给出解决我这问题的办法。我的错误原因很简单:就是要解压的tar.gz包格式有错误。 用file FILE_NAME 命令,发现是data。 正确的格式应该是:gzip com

liuzhongye博客 2万+

10、Linux 文件管理进阶指南

本文详细介绍了 Linux 系统中高级文件管理的相关知识,涵盖了权限管理(ugo/rwx、chmod、umask)、特殊权限位(setuid、setgid、sticky bit)的应用、文件搜索方法(find、grep、locate)以及扩展访问控制列表(ACL)的使用。通过合理运用这些知识和工具,可以更好地管理 Linux 系统中的文件和目录,提高系统的安全性和管理效率。

w1x2y3的博客 55

Linux如何打包数据,Linux文件系统之压缩数据&归档数据(打包)

目录①Linux文件压缩工具(1)gzip(2)bzip2(3)zip②tar:打包命令 —— 可以对目录打包压缩成一个文件①Linux文件压缩工具工具文件拓展名gzip.gzbzip2.bz2zip.zip(1)gzip>>>使用file命令查看gzip压缩的文件:gzip compressed data, was "file", from Unix, last modifie...

weixin_33971721的博客 487

RTL代码生成智能体构建指南:从规格到可综合Verilog的闭环实践

大语言模型与智能体技术正在向芯片设计领域渗透,其中RTL代码生成是EDA工具链智能化的重要方向。其核心原理在于将自然语言规格解析为结构化中间表示,再通过模板与LLM混合生成、语法检查、功能仿真和逻辑综合形成闭环反馈,从而自动修正代码错误。技术价值在于把重复性的模块骨架、接口定义和测试平台初稿自动化,让工程师聚焦架构权衡与时序收敛。典型应用场景包括计数器、状态机、FIFO等常规模块开发,以及跨模块接口一致性管理。本文围绕RTL代码生成智能体的分层架构、IR设计、验证反馈与迭代修正,拆解一套可跑通的工程化构建方

weixin_28292761的博客 154

保姆级教程:用Wokwi玩转ESP32 MicroPython仿真(含库文件配置指南)

本教程详细介绍了如何使用Wokwi平台进行ESP32 MicroPython仿真开发,包括库文件配置、传感器数据模拟和REPL调试技巧。通过Wokwi的仿真调试系统,开发者可以在浏览器中快速验证代码逻辑,提高开发效率,特别适合物联网项目的快速迭代。

weixin_29195615的博客 448

linux解压缩命令

<!-- document.body.oncopy = function() { if (window.clipboardData) { setTimeout(function() { var text = clipboardData.getData("text")

Macross的专栏 798

别再纠结了!手把手教你根据项目需求选对目标检测框架(MMDetection/Detectron2/YOLOv8实战对比)

本文详细对比了三大目标检测框架MMDetection、Detectron2和YOLOv8的适用场景与实战技巧,帮助开发者根据项目需求精准选型。从毕业设计到工业落地,分析不同场景下的核心需求与框架优势,提供决策树和避坑指南,确保技术选型与项目目标高度匹配。

weixin_30342209的博客 556

Linux管理文件(下):文件操作进阶、权限管理与压缩解压

ln file.txt hard_link # 共享i-node,删除原文件不影响链接。tar -zcvf archive.tar.gz dir/ # 打包并gzip压缩。gzip file.txt # 生成file.txt.gz(删除原文件)chmod 644 file.txt # 设置权限为rw-r--r--tar -zxvf archive.tar.gz # 解压到当前目录。mv *.doc docs/ # 移动文档到docs目录。mv old.txt new.txt # 文件重命名。

2502_90615759的博客 446

YOLO11改进-注意力-引入多尺度注意力聚合(MSAA)模块

对来自backbone的特征进行细化处理。通过空间和通道两个路径的操作,增强了空间和通道方面的特征信息,使得输出的特征图在空间和通道维度上都更加优质。1. 在空间细化路径中,通过对不同核大小的卷积进行求和以及一系列的空间特征聚合操作,实现了多尺度空间信息的融合。2. 在通道聚合路径中,通过全局平均池化、卷积和激活等操作生成通道注意力图,并与空间细化后的图相结合,实现了通道维度上的多尺度信息融合。

qq_64693987的博客 4680

ROSTEA软件下载及情感分析详细操作教程(附网盘链接)

原ROST虚拟团队出品的ROST系列文本内容挖掘分析平台,是辅助人文社会科学研究的免费计算平台。该软件可以实现文本预处理、分字、分词、词性识别、特殊名词抽取、词频统计、英文词频统计、情感计算、分类算法、聚类算法等一系列文本挖掘,是人文社科研究和论文写作的一把利器。该软件用户量超过一万人,遍布海内外100多所大学,包括剑桥大学、日本北海道大学、北京大学、清华大学、香港城市大学、澳门大学等众多高校。关于ROSTCM6的安装介绍可以参考之前的文章ROSTCM6软件下载及语义网络分析详细操作教程ROST EA。

m0_64336780的博客 1万+

Linux进阶:玩转文件与权限管理

Linux命令大全附详细解释和超多扩展

好好学习,天天向上 8987

YOLOv11改进 - C3k2融合 | C3k2融合细节增强卷积DEConv(Detail-Enhanced Convolution)提升细微特征提取能力

本文介绍了细节增强卷积(DEConv)技术在YOLOv11中的结合应用。DEConv由标准卷积层和多种差异卷积层并行组成,通过计算像素差异和卷积操作增强特征提取能力,还采用重参数化技术简化模型结构。其优势在于能更好捕捉高频信息、保持参数数量不变且降低推理计算成本。我们将DEConv集成进YOLOv11,替换部分模块。

魔改工程师的博客 864

Linux 进阶之性能调优,文件管理,网络安全

系统性能调优是 Linux 管理中的关键技能,它能显著提升系统在不同应用场景下的表现。通过针对性的调优,可以解决资源瓶颈问题,提高服务响应速度,优化资源利用率。1. CPU 信息查看与分析2. 进程调度优化3. 高级调优工具优先级设置需谨慎多核优化策略监控与基准测试1. 内存监控工具2. 内存管理机制3. 优化技术交换空间配置原则交换使用监控内存泄漏检测1. 磁盘监控与分析2. I/O调度算法3. 文件系统优化不同存储介质优化RAID配置优化LVM优化数据库专用优化内核参数调整 服务管理优化Web服

Toroto5的博客 1133

Linux 内核参数:meminfo

内存管理是一个相对复杂的内核模块,错综复杂的数据结构和管理逻辑。Linux 内核为了帮助开发者从宏观上把握内存的使用情况,在几大核心数据结构中都有相应的计数统计,如物理页面使用情况、伙伴系统分配情况、内存管理区的页面使用情况、内存回收扫描回收情况、内存规整触发情况等等。本文要分析的节点meminfo是Linux 操作系统中查看系统内存最准确(meminfo 中有内存黑洞)的方法,它包含当前时刻系统的所有物理页面的信息。

私房菜 2417

马达种类全解析:VCM、Stepper、Piezo 在手机相机中的驱动原理与工程差异

在现代手机影像系统中,马达承担着核心成像组件的动态调节任务,如自动对焦(AF)、光学防抖(OIS)以及变焦调节。目前主流采用三类驱动器件:VCM(Voice Coil Motor)、Stepper(步进马达)、Piezo(压电马达)。不同马达方案在结构复杂度、响应速度、功耗、驱动方式与模组厚度适配等方面差异显著,对成像系统的性能表现有直接影响。本文将结合最新旗舰设备的应用现状,系统剖析这三类驱动马达的工作原理、架构特点与工程应用经验,为工程实践中选型与调试提供参考。

努力分享一些人工智能、计算机视觉、影像等相关的知识干货! 3793

从基础到进阶:Linux 文件权限管理的 12 个核心指令

这里的-rw-r--r--就是权限信息,第一个字符-表示这是一个文件(如果是d则表示目录),接下来的rw-表示所有者具有读和写权限,r--表示所属组具有读权限,最后的r--表示其他用户具有读权限。例如,如果umask值为 022,那么新创建文件的权限是 666-022=644(rw-r--r--),新创建目录的权限是 777-022=755(rwxr-xr-x)。例如,权限rwxr-xr--对应的数字是 7(rwx)、5(r-x)、4(r--),即 754。除了符号法,chmod还可以使用数字法修改权限。

2503_92849134的博客 638

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Orange的运维学习日记--05.Linux文件管理与进阶操作

Linux 文件系统以树状结构组织,顶级目录为根目录。其他文件系统可通过挂载(mount)加入目录树,或通过解除挂载(umount)移除。

朱小弟cs6的博客 1246

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

进阶学习——Linux目录和文件管理

Linux命令学习cat、rev、paste、xarge、hexdum、more、less、head、tail、wc、grep、、split、gzip、bzip2、tar、vi编辑器

一坨小橙子的博客 1473

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

linux磁盘存储和文件管理进阶

文件介绍 linux 中一切皆为文件,主要的工作如下 open() 打开文件 read() 读取文件 write() 写入文件 close() 关闭文件 主要文件类型 f 普通文件 l 链接文件 s 套接字文件 p 管道文件 b 块设备文件 c 字符设备文件 d 目录文件 块设备文件 作用: 关联一个设备驱动程序,进而就可以跟硬件设备进行通信。 特点: 随机访问,当文件系统中有 100 个文件,那么可以直接访问最后一个,这种非顺序访问的方式就称之为随机访问

杰森斯坦陈的博客 889

Linux目录与文件管理:从基础到进阶

Linux的文件系统是其强大功能的基石,掌握目录结构和文件管理命令是每个Linux用户的必修课。从理解目录结构开始,到熟练使用各种查看检索命令,再到掌握备份恢复技巧,这是一个循序渐进的过程。建议读者在学习过程中多动手实践,通过实际操作来巩固这些知识。记住,在Linux世界里,命令行是你最强大的工具,而对这些基础命令的熟练掌握,将为你后续学习更高级的系统管理技能打下坚实基础。

Z18252142908的博客 1117

linux文件管理

在 Linux 系统中,文件管理是一项基础且重要的任务。熟悉并掌握 Linux 文件管理的基础概念和技巧,对于提高工作效率和保持系统整洁有序至关重要。本文将介绍 Linux 文件管理的基础知识,以及一些进阶技巧,帮助你更好地管理和维护 Linux 系统。Linux 文件管理是一项基础且重要的任务,熟悉并掌握文件管理的基础概念和技巧,可以帮助你更好地维护和管理 Linux 系统。本文介绍了 Linux 文件管理的基础概念和基本命令,以及一些进阶技巧,希望能对你有所帮助。

m0_70957540的博客 402

Linux 进阶指令实操指南:文件查看、时间管理、搜索压缩全场景覆盖

tail指令从指定点开始将文件写到标准输出,使用tail命令的 -f 选项可以方便的查阅正在改变的日志文件,tail -f filename 会把 filename 里最尾部的内容显示屏幕上,并且不断刷新,使你看到最新的文件内容。就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head用来显示档案的开头至标准输出中,而tail想当然就是看档案的结尾。:查看小文件,小算法,小配置文件,很短的代码都可以用cat。但是查看大文件时,cat就不好用了,在后面会给大家其它的指令来查看大文件。

2501_93950931的博客 898

进阶学习——Linux系统磁盘管理与文件系统

Linux系统重建磁盘分区及管理分区

一坨小橙子的博客 1733

Linux文件管理进阶:链接、权限与查找归档的实战应用

在Linux系统管理中,文件操作是基础且核心的技能。理解文件系统的底层原理,如inode机制和权限模型,是掌握高效管理的关键。从技术价值看,深入的文件管理能力能显著提升系统运维的可靠性和自动化水平。在实际应用场景中,软硬链接的选择影响着数据备份与日志轮转的稳定性;权限控制中的SUID、SGID和ACL机制,为多用户环境下的安全协作提供了精细化的解决方案;而find命令与归档工具的管道组合,则是实现自动化备份与清理的利器。本文聚焦于链接管理、权限深度控制以及查找归档的实战技巧,通过具体案例演示如何运用这些技术

weixin_42116058的博客 247

新手必看!Linux 命令行文件管理全教程,从基础到进阶

详解 Linux 核心文件操作命令:mkdir 创建目录、cp 复制、mv 移动、rm 删除,软硬连接原理,以及 \*?\[\]~{} 等 Shell 扩展匹配用法,运维 / 开发必备基础技能教程。

2601_96578044的博客 320
上一篇: Linux之软件包管理
下一篇: Linux之日志管理
Ever_Linux
博客等级 码龄8年 0粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值