Linux学习笔记(三):文件管理、复杂操作与实用工具详解

news2024/10/2 16:37:53

Linux学习笔记(三):文件管理、复杂操作与实用工具详解

Linux 学习笔记(二):深入理解用户管理、运行级别与命令行操作

1.文件操作的基本操作


1.1 创建

创建目录
  • mkdir:创建目录
mkdir /home/dog
# 创建单级目录
mkdir -p /home/animal/tiger
# 创建多级目录,如果父目录不存在,将连同父目录一起创建
创建文件
  • dd:创建和转换文件
dd if=/dev/zero of=sample_file bs=1M count=1
# 创建一个大小为1MB的空文件,使用/dev/zero作为输入源
  • touch:创建一个空文件
touch hello.txt
# 创建一个空的文本文件 hello.txt

1.2 删除

删除目录
  • rmdir:删除空目录
rmdir /home/dog
# 删除单级空目录,若目录非空则会失败
rm -rf /home/animal/
# 强制递归删除目录及其所有内容
删除文件
  • rm:删除文件或目录
rm /home/hello.txt
# 删除指定文件
rm -rf /home/bbb
# 强制递归删除整个目录及其内容,-f选项避免任何提示

1.3 拷贝

拷贝目录
  • cp:拷贝目录
cp -r /home/bbb/ /opt/
# 递归拷贝整个目录
cp -r /home/bbb/ /opt/  # 而没有 -r 会导致错误
拷贝文件
  • cp:拷贝文件
cp source.txt /path/to/destination/
# 拷贝文件到指定目录

1.4 移动和重命名

移动或重命名目录
  • mv:移动或重命名目录
mv /opt/bbb/ /home/
# 将目录/opt/bbb/移动到/home/
移动或重命名文件
  • mv:移动或重命名文件
mv cats.txt pigs.txt
# 在同一目录下重命名文件
mv pigs.txt /root/
# 将文件剪切并移动到/root/目录

1.5 查看文件

在这里插入图片描述

  • cat:查看文件内容
cat -n /etc/passwd | more
# 查看文件内容并显示行号,可以分屏查看
  • less:查看文件内容
    在这里插入图片描述
less filename.txt
# 分页查看文件内容,支持向前和向后翻页
head -n 10 filename.txt
# 查看文件的前10行
tail -n 10 filename.txt
# 查看文件的最后10行
tail -f filename.txt
# 实时更新显示文件的新增内容

2. 文件扩展操作


2.1 硬链接

  • 特点
  1. 共享inode和磁盘块: 硬链接与原文件共享
  2. 同一个inode和磁盘块,因此对其中一个文件进行修改,会影响到另一个文件。
  3. 文件名数量增加: 每创建一个硬链接,文件名数量就会增加,但文件的实际大小和磁盘占用不变。
  4. 不能跨分区: 硬链接只能在同一文件系统内创建,不能跨分区。
  5. 不能为目录创建硬链接: 硬链接不能用于目录。
  • 创建硬链接
ln file1.txt file2.txt
# 创建file2.txt作为file1.txt的硬链接
ls -li file1.txt file2.txt
# 查看文件的inode信息(可用-inode进行链接的判断)
  • 硬链接的应用场景
  1. 文件备份: 可以使用硬链接创建文件备份,节省磁盘空间。
  2. 文件共享: 可以使用硬链接实现文件共享,方便多人访问同一文件。
  • 注意事项
  1. 硬链接不能跨分区,因此在跨分区共享文件时需要使用软链接
  2. 硬链接不能用于目录,因为目录需要额外的信息来维护目录结构

2.2 软链接

  • 特点
  1. 不共享inode和磁盘块: 软链接会创建一个新的inode,并指向原文件的名字路径,因此软链接和原文件占用不同的磁盘空间。
  2. 可以跨分区: 软链接可以跨分区创建,不受文件系统限制。
  3. 可以创建对目录的链接: 软链接可以创建对目录的链接,方便快速访问目录。
  4. 删除原文件,软链接仍然存在: 当删除原文件时,软链接仍然指向该文件,但文件内容已经不存在。
  • 创建软链接
ln -s /root /home/myroot
# 创建指向/root目录的软链接myroot
  • 软链接的应用场景
  1. 快速访问文件: 可以通过软链接快速访问位于不同目录或分区中的文件。
  2. 文件备份: 可以使用软链接创建文件备份,但无法实现真正的文件复制。
  3. 目录链接: 可以创建目录的软链接,方便快速访问相关目录。
  • 注意事项
  1. 软链接指向的是文件名路径,如果原文件移动或重命名,软链接可能无法正常访问
  2. 软链接占用额外的磁盘空间,因为它们需要存储目标文件路径信息
  3. 软链接不能用于文件系统挂载点

2.3 查找文件

在这里插入图片描述

  • whereis:定位命令文件
whereis bash
# 查找bash相关的可执行文件、源代码和手册页
  • locate:快速查找文件
locate filename
# 在索引数据库中搜索文件,index需要定期更新
updatedb # 更新数据库
  • find:实时查找文件
    在这里插入图片描述
find . -type f -name "filename"
# 在当前目录及子目录中查找指定文件
find /path/to/directory -name "*.txt"
# 查找指定目录下所有的txt文件

2.4 文件压缩与解压

gzip & gunzip
gzip filename
# 压缩文件
gunzip filename.gz
# 解压缩文件
zip & unzip
zip -r myarchive.zip /path/to/directory
# 压缩目录
unzip myarchive.zip -d /destination/directory
# 解压缩到指定目录
tar:打包与压缩

在这里插入图片描述

tar -zcvf archive.tar.gz /path/to/directory
# 创建一个压缩的tar文件,-z用于gzip压缩
tar -zxvf archive.tar.gz -C /destination/directory
# 解压缩到指定目录

2.5 vi编辑器:编辑文件

  • 基本移动操作
h j k l
#左下上右
^移动到行首非空白字符
#$ 文章末尾
#0 行尾
#10h
#15G到15行
#G尾行
#gg = \G
#Ctrl + o回到上一个位置
#Ctrl + i回到下一个位置
#b单词开头
#w下一个单词
#e单词尾部
#(上一句
#)下一句
#%匹配与之对应的括号

在这里插入图片描述

  • 跳转命令
G      # 跳转到最后一行
10G    # 跳转到第10行
gg     # 跳转到第一行
Ctrl + o  # 回到上一个光标位置
  • 插入和删除
    在这里插入图片描述

  • 常用命令:

    • i 进入插入模式
    • d 删除行
    • y 复制行
    • p 粘贴
    • u 撤消

3. 文件的实用工具


3.1 grep:行过滤器

grep 'word' filename
# 查找包含'word'的行
  • 选项:
    • -i 忽略大小写
    • -n 显示行号
    • -v 反向匹配,即显示不包含’word’的行
    • -c 显示匹配行的数量

3.2 cut:列过滤器

cut -c3 filename
# 提取每行的第三个字符
cut -d' ' -f1,3 filename
# 使用空格作为分隔符提取每行的第1和第3字段

3.3 tr:字符转换

tr 'a-z' 'A-Z' < filename
# 将文件中的小写字母转换为大写
tr -d 'a' < filename
# 删除文件中的所有字母'a'

3.4 sort:排序

sort -k3 filename
# 根据第三字段排序
sort -t: -k1,1 filename
# 根据冒号分隔符的第一个字段排序
#-k4n 按数值大小来排序
#-k4.2n 在第四个字段的第二个字符开始按照数值排序
#-k4r 逆序

3.5 uniq:去重

uniq -s2 -w2 命令用于从输入中删除连续的重复行,并允许你指定跳过的字符数和要比较的字符数。在这个例子中,-s2 意味着跳过输入中的前两个字符,-w2意味着仅比较输入中的后两个字符以查找重复行

uniq filename
# 显示不重复的行
uniq -c filename
# 显示每行的重复次数

3.6 diff:比较文件

diff file1.txt file2.txt
# 显示两个文件之间的差异
diff -u file1.txt file2.txt > changes.patch
# 生成统一格式的差异文件

3.7 patch:应用补丁

patch < changes.patch
# 根据补丁文件应用文件改变

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2184714.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【MySQL】多表联合查询常见练习题

数据库表如下&#xff1a; teacher&#xff1a;老师表 course&#xff1a;课程表 student&#xff1a;学生表 class&#xff1a;班级表 sc&#xff1a;成绩表 一、根据上面5张表写sql语句 1. 查询” 01 “课程比” 02 “课程成绩高的学生的信息及课程分数 select student.…

AI智能时代的图书馆未来,你想象过吗!

AI智能时代的图书馆未来&#xff0c;你想象过吗&#xff01; 前言AI智能时代的图书馆未来 前言 教育数字化和 AI 时代的浪潮正汹涌而来&#xff0c;图书馆也站在了变革的十字路口。我们看到高等教育正在发生深刻的变革&#xff0c;从教学模式到人才培养理念&#xff0c;都在经…

基于SSM+VUE的学生宿舍管理系统

文未可获取一份本项目的java源码和数据库参考。 随着社会经济的迅速发展和科学技术的全面进步&#xff0c;计算机事业的飞速发展&#xff0c;以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期&#xff0c;当今社会正快速向数字化&#xff0c;信息化&#xff0c;网络化…

VSCode开发Vue3+TS项目中遇到各种波浪线(诊断信息)

一、问题汇总 在使用Visual Studio Code&#xff08;VSCode&#xff09;开发Vue3 TypeScript项目时&#xff0c;会遇到各种波浪线错误&#xff08;诊断信息&#xff09;&#xff0c;这些问题或错误通常由以下几人原因引起的&#xff1a; 1.1 常见问题 1、typeScript配置问题…

【探索 GDB 和 CGDB】:强大的调试工具介绍

&#x1f4c3;个人主页&#xff1a;island1314 &#x1f525;个人专栏&#xff1a;Linux—登神长阶 ⛺️ 欢迎关注&#xff1a;&#x1f44d;点赞 &#x1f442;&#x1f3fd;留言 &#x1f60d;收藏 &#x1f49e; &#x1f49e; &#x1f49e; 1. 引言&#x1f4c3; 1.1 …

Kotlin:1.8.0 的新特性

一、概述 Kotlin 1.8.0版本英语官方文档 Kotlin 1.8.0 中文官方文档 The Kotlin 1.8.0 release is out and here are some of its biggest highlights: Kotlin 1.8.0发布了&#xff0c;下面是它的一些亮点: JVM 平台新增实验性函数&#xff1a;递归复制或删除目录内容改进了 …

SpringMVC——REST

路径请求方式请求行为 查询&#xff1a;GET 新增&#xff1a;POST 修改&#xff1a;PUT 删除&#xff1a;DELETE 有重复的东西怎么办

第L6周:机器学习|支持向量机(SVM):2. 支持向量机实战

本文为365天深度学习训练营 中的学习记录博客原作者&#xff1a;K同学啊 这里展示一下怎么调用scikit-learn库实现线性SVM&#xff0c;知道怎么调用扩展一下知识面就OK了。 1.scikit-learn库实现线性可分的SVM from sklearn import datasets from sklearn.model_selection im…

聊聊光刻工序常见术语(2)

上次&#xff0c;我们总结了光刻工序部分的术语&#xff0c;见文章&#xff1a; 《光刻工序常见术语中英文对照&#xff08;1&#xff09;》 这次&#xff0c;我们把剩下的又总结了一些&#xff0c;供大家参阅。 1&#xff0c;Developer Mist&#xff1a;显影液回溅产生的水…

计算机毕业设计 基于SpringBoot和Vue的课程教学平台的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

STM32(五)GPIO输入硬件电路及C语言知识复习

本小节主要是GPIO输入模式下的硬件电路和C语言知识的回顾 C语言中的数据&#xff1a;定义和引用 一、GPIO输入模式下的硬件和电路 1.按键介绍 可以用延时函数消除按键抖动 2.传感器模块介绍 &#xff08;1&#xff09;传感器元件的电阻会随模拟量的变化而变化&#xff0c;通…

【算法】链表:206.反转链表(easy)

系列专栏 《分治》 《模拟》 《Linux》 目录 1、题目链接 2、题目介绍 3、解法&#xff08;快慢指针&#xff09; 解题步骤&#xff1a; 关键点&#xff1a; 复杂度分析&#xff1a; 4、代码 1、题目链接 206. 反转链表 - 力扣&#xff08;LeetCode&#xff09; …

通信工程学习:什么是SMTP简单邮件传输协议

SMTP&#xff1a;简单邮件传输协议 SMTP&#xff08;Simple Mail Transfer Protocol&#xff09;&#xff0c;即简单邮件传输协议&#xff0c;是用于电子邮件传输的标准协议。它定义了电子邮件在互联网上的传输方式&#xff0c;以及邮件服务器之间的通信方式。以下是对SMTP协议…

Stream流的初步认识,Stream流的思想和获取Stream流

一.Stream流的作用 package com.njau.my_stream;import java.util.ArrayList;/*** 目标&#xff1a;认识Stream流* 案例&#xff1a;将以“张”开头的人名筛选出来到一个新的集合中去&#xff0c;再将其中三个字的名字的筛选出来到新集合中去*/ public class StreamDemo1 {pub…

【算法竞赛】算法复杂度

计算的资源是有限的,竞赛题会限制代码所使用的计算资源。 计算资源有两种:计算时间和存储空间。与此对应的有时间复杂度和空间复杂度,时间复杂度衡量计算的次数,空间复杂度衡量需要的存储空间。 编程竞赛的题目在逻辑、数学、算法上有不同的难度:简单的题目,可以一眼看懂;复 …

1.8 物理层下的传输媒体

欢迎大家订阅【计算机网络】学习专栏&#xff0c;开启你的计算机网络学习之旅&#xff01; 文章目录 1 导引型传输媒体1.1 双绞线1.2 同轴电缆1.3 光缆 2 非导引型传输媒体2.1 无线电微波通信2.2 多径效应2.3 卫星通信2.4 无线局域网 在数据通信系统中&#xff0c;传输媒体是发…

排水系统C++

题目&#xff1a; 样例解释&#xff1a; 1 号结点是接收口&#xff0c;4,5 号结点没有排出管道&#xff0c;因此是最终排水口。 1 吨污水流入 1 号结点后&#xff0c;均等地流向 2,3,5 号结点&#xff0c;三个结点各流入 1/3 吨污水。 2 号结点流入的 1/3​ 吨污水将均等地流向…

【Nacos 架构 原理】服务发现模块之Nacos注册中心服务数据模型

文章目录 服务&#xff08;Service&#xff09;和服务实例&#xff08;Instance&#xff09;定义服务服务元数据定义实例实例元数据持久化属性 集群定义集群 生命周期服务的生命周期实例的生命周期集群的生命周期元数据的生命周期 服务&#xff08;Service&#xff09;和服务实…

vue3中el-input在form表单按下回车刷新页面

摘要&#xff1a; 在input框中点击回车之后不是调用我写的回车事件&#xff0c;而是刷新页面&#xff01; 如果表单中只有一个input 框则按下回车会直接关闭表单 所以导致刷新页面 再写一个input 表单 &#xff0c;并设置style“display:none” <ElInput style"display…

畅阅读小程序|畅阅读系统|基于java的畅阅读系统小程序设计与实现(源码+数据库+文档)

畅阅读系统小程序 目录 基于java的畅阅读系统小程序设计与实现 一、前言 二、系统功能设计 三、系统实现 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌️大厂码农|毕设布道师…