Linux文件和文件夹操作

news2024/10/3 8:29:05

前言:

相较于前面背诵的诸多内容,可能现在的部分就需要多多的练习了,难度也慢慢提升。

那就大家一起慢慢努力吧!!!!!

目录

一、Linux目录结构

(一)Windows的目录结构

(二)Linux的目录结构

(三)查看Linux系统磁盘占用情况

(四)文件名和特殊文件名

(五)Linux系统常用目录

二、绝对路径和相对路径

(一)当前目录(工作目录)

(二)绝对路径与相对路径

三、Linux目录常用操作

四、Linux文件常用操作

五、查看文件的内容

六、通配符

七、创建

八、复制

九、移动和重命名

十、硬链接和软链接

十一、which、whereis、find命令查找文件

(一)which命令

(二)whereis命令

(三)find命令

十二、grep命令在文件中查找字符

十三、wc命令统计

十四、du命令查看目录占用的磁盘空间


一、Linux目录结构

(一)Windows的目录结构

Windows的目录结构是多个并列的树状结构

最顶部是不同的磁盘(分区),如C,D,E;

文件路径都是从盘符开始;

Windows文件系统里面都是文件或文件夹;

Windows文件路径是大小写不区分的,层级用 \ 表示。

(二)Linux的目录结构

没有C、D、E盘符,一切从/(根目录)开始,单个的树状结构

(三)查看Linux系统磁盘占用情况

命令:df -Th

(四)文件名和特殊文件名

Linux文件名称:大小写敏感,无专用扩展名             

如:

        /opt/a2018和/opt/A2018是两个文件

        a.txt表示整个文件名称为a.txt,非文本文件

ls命令查看某个目录下有哪些文件和目录(文件夹)

ls

ls -al

Linux特殊文件

  • /   表示根目录
  • .   表示当前目录
  • ..   表示当前目录的父目录
  • .字符串  表示隐藏文件,如“.bash_profile”文件

(五)Linux系统常用目录

  • /                 Linux系统的根目录
  • /etc            系统管理和配置文件
  • /home       用户主目录,比如jack用户的主目录就是/home/jack
  • /boot         Linux系统的内核文件放在该目录下
  • /sbin          系统管理命令,这里存放的是系统管理员使用的管理程序
  • /root          系统管理员root的家目录
  • /bin            常用可执行文件,主要有:catchmodchown  datemvmkdircpbash
  • /dev           设备文件,如/dev/cd0
  • /usr            用户级应用程序和文件几乎都在这个目录下面
  • /proc          一个虚拟文件系统,放置的数据都是在内存当中,例如系统核心、进程信息(process)、设备状态及网络状态等,特点:开机就存在,关机就消失
  • /tmp           公共的临时文件存储点,存放一些临时文件
  • /lib              一些库文件(库是别人写好的现有的,成熟的,可以复  用的代码)

二、绝对路径和相对路径

(一)当前目录(工作目录)

就是我们(Shell)所工作的目录,当用户刚登陆系统时,当前目录是用户的家目录(home目录)

用户家目录是在创建用户的时候会产生,一般是/home/用户名:比如你是tom,家目录一般是/home/tom

当前目录下的所有文件都可以直接访问,假设当前目录下面有个文件file001,要用vi编辑它,就可以直接执行vi file001

查看当前目录命令:pwd

(二)绝对路径与相对路径

绝对路径:开始于根目录,紧跟着目录树的一个个分支,一直到达所期望的目录或文件

相对路径:开始于当前目录,紧跟着目录树的一个个分支,一直到达所期望的目录或文件

“.”(点)和“..”(点点)表示当前目录和父目录

改变当前路径命令:cd

三、Linux目录常用操作

  • cd /home  进入/home目录
  • cd ..  返回上一级目录,如果连续使用该命令,需要使用  cd ../../
  • cd  进入个人用户的家目录
  • cd -  返回上次所在目录
  • pwd  显示当前工作路径
  • mkdir dir1  创建一个叫做dir1的目录
  • rmdir dir1  删除一个dir1目录,必须是空目录才能用这个命名删除

四、Linux文件常用操作

  • ls  查看目录中的文件和文件夹
  • ls -l  显示文件和目录的详细资料
  • ls -a  显示所有文件,包括隐藏文件
  • rm file1  删除一个叫做file1的文件,会给出提示
  • rm -f file1  强制删除一个叫做file1的文件,不提示
  • rm -f file1 file2 file3  强制删除多个文件,不提示
  • rm -rf dir1  强制删除dir1目录并删除其内容

ls的参数

  • ls # 仅列出当前目录可见文件
  • ls -l # 列出当前目录可见文件详细信息
  • ls -hl # 列出详细信息并以可读大小显示文件大小
  • ls -al # 列出所有文件(包括隐藏)的详细信息

rm的参数 

  • -f:强制模式,不提示确认即删除文件或目录。
  • -i:交互模式,删除文件或目录前询问是否确认。
  • -r:递归模式,删除目录及其下所有文件和子目录。
  • -v:详细模式,显示删除的每个文件或目录名。

五、查看文件的内容

cat命令:查看短文件

less命令:查看长文件

  • k  向上一行
  • j  向下一行
  • Page up  向上一页
  • Page down  向下一页
  • q  退出

tail命令:从文件尾部查看文件,常用参数 -f,打印文件的新增内容;tail -n file查看文件的最后n行,比如tail -5 file01表示查看file01的末尾5行。默认显示最后的10行。

head命令:从文件开头查看文件,head -n file查看文件的前n行,比如head -5 file01表示查看file01的前5行。默认显示前10行。

ls命令

  • 不带任何参数:列出当前目录的内容
  • 参数为目录:列出指定目录的内容
  • 加参数-R:递归列出所有子目录的内容
  • 加参数-l:列表形式显示详细信息

ls -l可以用别名ll来表示:

[root@localhost logs]# which ll

alias ll='ls -l --color=auto'        /usr/bin/ls

六、通配符

定义:通配符是一种特殊语句,主要有星号(*)和问号(?),用来模糊搜索文件。

七、创建

创建文件命令:vi,touch

vi abc01.txt

touch file01 file02 file03

创建文件也可以使用相对路径和绝对路径

八、复制

复制文件命令:cp 源文件 目标文件

源和目的路径都可以是绝对路径和相对路径

  • cp file01 file02  当前目录复制,源和目标文件名称必须不同
  • cp file01 /home/jim  目标是目录,产生同名文件
  • cp file01 /home/jim/file02  目标是文件,可以改名(相当于另存为)
  • cp file01 file02 /home/jim  源可以是多个文件

如果file02已存在,会被覆盖,除非-i,要求提示

[root@ecs-9b83 charles]# which cp

alias cp='cp -i’

/bin/cp

复制目录

  • cp -r dir01 dir02:当前目录复制,源和目标目录名称必须不同
  • cp -r file01 dir01 /home/jim/dir02:源可以是多个文件、或目录

参数-r或-R都有效

九、移动和重命名

重命名文件、目录:源地址和目的地址相同就是重命名

比如:

  • mv file01 file02  #重命名文件file01为file02
  • mv dir01 dir02  #重命名目录dir01为dir02
  • mv dir01/file01 dir01/file02  #重命名文件file01为file02

移动文件、目录:源地址和目的地址不同,比如:

  • mv file01 dir01/      移动file01到dir01目录
  • mv file01 dir01/file02  移动file01到dir01目录且重命名为file02
  • mv file01 file02 dir01 dir02  移动file01、file02、dir01到dir02
  • mv dir01 dir02  如果dir02不存在,则重命名,如果dir02存在,则移动目录dir01到dir02目录下

十、硬链接和软链接(难)

为什么需要链接?

  • 实现文件的共享使用(原因:不能移动,那个位置也有用)
  • 提供了隐藏文件路径、增加权限安全及节省存储等好处
  • 和复制的区别:文件在磁盘中只有一个拷贝,节省磁盘空间

链接的种类:硬链接 (hard link) 与软链接(又称符号链接,即 soft link 或 symbolic link)。

  • 创建硬链接:ln dog dog-hard
  • 创建软链接:ln -s pig pig-soft

我们知道文件都有文件名与数据,这在 Linux 上被分成两个部分:用户数据 (user data) 与元数据 (metadata)。用户数据,即文件数据块 (data block),数据块是记录文件真实内容的地方;而元数据则是文件的附加属性,如文件大小、创建时间、所有者等信息。在 Linux 中,元数据中的 inode 号(inode 是文件元数据的一部分但其并不包含文件名,inode 号即索引节点号)才是文件的唯一标识而非文件名。文件名仅是为了方便人们的记忆和使用,系统或程序通过 inode 号寻找正确的文件数据块。下图展示了程序通过文件名获取文件内容的过程。

查看文件inode命令:stat或ls -i

[root@ecs-9b83 charles]# ls -i file01

1837781 file01

硬链接:若一个 inode 号对应多个文件名,则称这些文件为硬链接。换言之,硬链接就是同一个文件使用了多个别名

  • 文件有相同的 inode 及 data block;
  • 只能对已存在的文件进行创建;
  • 不能交叉文件系统进行硬链接的创建;
  • 不能对目录进行创建,只可对文件创建;
  • 删除一个硬链接文件并不影响其他有相同 inode 号的文件。

软链接(符号链接):若文件用户数据块中存放的内容是另一文件的路径名的指向,则该文件就是软连接。软链接就是一个普通文件,只是数据块内容有点特殊。类似于Windows的快捷方式

  • 软链接有自己的文件属性及权限等;
  • 可对不存在的文件或目录创建软链接;
  • 软链接可交叉文件系统;
  • 软链接可对文件或目录创建;
  • 创建软链接时,链接计数 i_nlink 不会增加;
  • 删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)。

对源文件的修改,软、硬链接文件内容也一样的修改,因为都是指向同一个文件的内容。

十一、which、whereis、find命令查找文件

(一)which命令

which指令会在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果;

用法:用来查找可执行文件的位置、显示命令所在路径;

语法:which 系统命令

举例:which grep:查找grep命令的二进制文件路径

(二)whereis命令

whereis 命令则是用来快速查找程序的二进制文件、源代码和man手册文件的路径;

语法:whereis 系统命令

举例:whereis grep

查找那么找到的结果就比which grep命令找到的结果多,因为which命令只会列出二进制文件路径,而whereis命令会把grep的二进制文件、源代码、帮助手册都返回。

(三)find命令

find命令会在指定目录及其子目录下查找查找符合条件的特定文件,当我们忘记文档路径时,可以使用该命令

语法:find 目录名 条件

举例:

find /home/tom -name test.sh

find / -name test.sh

常用条件

  • -name 名称:  指定要被查找的文件或目录名称,可用通配符
  • -type 类型:  以文件类型作为查找条件,文件类型如下:d--目录(directory),f--文件  (file)
  • -atime -5:  5天内访问的文件
  • -atime +5:  5天前访问的文件
  • -amin -5:  5分钟内访问的文件
  • -amin +5:  5分钟前访问的文件

例如:

  • find  /temp  -name “abc”  #在/temp目录下查找名称为abc的文件和文件夹
  • find  /temp  -name “abc*”  #在/temp目录下查找名称以abc开头的文件和文件夹
  • find  /temp  -name “abc*” -type f  #在/temp目录下查找名称以abc开头的文件

十二、grep命令在文件中查找字符

grep命令

一种强大的文本搜索工具,并把匹配的行打印出来

啥时候用?

  • 查看日志
  • 查看命令输出

命令格式:grep 关键字 文件,比如:grep root /var/log/message

默认大小写敏感

支持正则表达式

举例:

  • grep “test123” d* :显示以d开头的文件中包含test123的行
  • grep “test” file01 file02 file03:显示file01、file02、file03中包含test的行
  • grep “root” -r /var/log:在/var/log所有子目录文件中搜索包含字符串root的行
  • grep “^test” /var/log/message:在/var/log/message文件中搜索以字符串test开头的行
  • grep “test$” /var/log/message:在/var/log/message文件中搜索以字符串test结尾的行

常用参数

  • -c:只输出匹配行的行数(有多少行匹配)
  • -i: 不区分大小写
  • -n:只显示匹配行及行号
  • -v:显示不含匹配文本的所有行
  • -F:指明pattern非正则表达式

十三、wc命令统计

wc -l /etc/passwd:统计/etc/passwd文件有多少行

wc -c /etc/passwd:统计/etc/passwd文件有多少个字节

带着管道符使用:ps -ef |wc -l

十四、du命令查看目录占用的磁盘空间

du命令是查看文件或目录的磁盘使用空间,即占用磁盘大小;

df命令是查看文件系统的磁盘使用情况,比如总空间多大、使用了多少,可用空间多少、使用率等信息;

语法:du -sh 文件名或者目录名

举例:

[root@ecs-9b83 charles]# du -ah /var/charles/

0         /var/charles/dir03/dir02/file01-softlink

4.0K    /var/charles/dir03/dir02/dir01

4.0K    /var/charles/dir03/dir02/file02

4.0K    /var/charles/dir03/dir02/file01

4.0K    /var/charles/dir03/dir02/file04

20K     /var/charles/dir03/dir02

24K     /var/charles/dir03

4.0K    /var/charles/dir04/dir01

4.0K    /var/charles/dir04/file02

4.0K    /var/charles/dir04/file01

4.0K    /var/charles/dir04/file04

20K     /var/charles/dir04

48K     /var/charles/

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

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

相关文章

HTML概念

文章目录 1. HTML 概念1.1. 简介1.2. 思想1.3. 特点1.4. 语法1.4.1. 标签1.4.2. 属性1.4.3. 标签体1.4.4. 注释 2. HTML 实体2.1. 练习 3. HTML 结构3.1. <!DOCTYPE html>声明3.2. html根标签 4. 补充4.1. 管理文件4.2. 配置 VsCode4.2. 配置 VsCode 1. HTML 概念 1.1. 简…

【项目笔记】java微服务:黑马头条(day01)

文章目录 环境搭建、SpringCloud微服务(注册发现、服务调用、网关)1)课程对比2)项目概述2.1)能让你收获什么2.2)项目课程大纲2.3)项目概述2.4)项目术语2.5)业务说明 3)技术栈4)nacos环境搭建4.1)虚拟机镜像准备4.2)nacos安装 5)初始工程搭建5.1)环境准备5.2)主体结构 6)登录6.1…

微信小程序-侧滑删除

简介 movable-view和movable-area是可移动的视图容器&#xff0c;在页面中可以拖拽滑动。 本篇文章将会通过该容器实现一个常用的拖拽按钮功能。 使用效果 代码实现 side-view.wtml 布局见下面代码&#xff0c;left view为内容区域&#xff0c;right view为操作按钮&a…

因为一次 Kafka 宕机,终于搞透了 Kafka 高可用原理!

Kafka宕机引发的高可用问题 问题要从一次Kafka的宕机开始说起。 但最近系统测试人员常反馈偶有Kafka消费者收不到消息的情况&#xff0c;登陆管理界面发现三个节点中有一个节点宕机挂掉了。但是按照高可用的理念&#xff0c;三个节点还有两个节点可用怎么就引起了整个集群的消…

排序算法的对比

类别排序方法时间复杂度空间复杂度稳定性平均情况特殊情况 插入 排序 插入排序基本有序最优稳定希尔排序不稳定 选择 排序 选择排序不稳定堆排序不稳定 交换 排序 冒泡排序稳定快速排序基本有序最差不稳定归并排序稳定基数排序稳定

Redis实现用户活跃排行榜

在这里用户活跃度排行榜&#xff0c;主要是基于redis的zset数据结构来实现的&#xff0c;下面来看一下实例。 方案设计 来看一下业务场景先 1.场景说明 在技术派中&#xff0c;提供了一个用户的活跃排行榜&#xff0c;当然作为一个博客社区&#xff0c;更应该实现的是作者排…

惬意上手MySQL

大家好&#xff0c;我又来写博客了&#xff0c;今天给大家介绍一下MySQL,如果你只想让MySQL作为自己的辅助开发工具&#xff0c;那这一篇文章就够了&#xff0c;如果想作为一门语言来学习&#xff0c;那你可以看此文章了解一些基础。 MySQL介绍 数据库可分为关系型数据库和非关…

《C语言都有哪些字符串处理函数?》

目录 17个字符串处理函数 1. gets()--读 2.fgets()--从指定文件内读 3.puts()--输出 4.fputs()--写入到指定文件中 5.strlen()--计算字符串长度 6.strcpy()--复制 7.strncpy()--复制前n个字符 8.strcat()--字符串连接 9.strncat()--将前n个字符连接 10.strcmp()--比…

Paimon 与 Spark 的集成(二):查询优化

Paimon Apache Paimon (incubating) 是一项流式数据湖存储技术&#xff0c;可以为用户提供高吞吐、低延迟的数据摄入、流式订阅以及实时查询能力。Paimon 采用开放的数据格式和技术理念&#xff0c;可以与 Flink / Spark / Trino 等诸多业界主流计算引擎进行对接&#xff0c;共…

视频远程监控平台EasyCVR集成后播放只有一帧画面的原因排查与解决

智慧安防视频监控平台EasyCVR能在复杂的网络环境中&#xff08;专网、局域网、广域网、VPN、公网等&#xff09;将前端海量的设备进行统一集中接入与视频汇聚管理&#xff0c;平台可支持的接入协议包括&#xff1a;国标GB28181、RTSP/Onvif、RTMP&#xff0c;以及厂家的私有协议…

增量式编码器与绝对值编码器基础详解

文章目录 1 使用什么样的电信号来表示旋转和角度信息?1.1 表示相对角度的增量法1.2 表示绝对角度的绝对方法1.3 用脉冲信号表示绝对角度的伪绝对法2 相对角和绝对角的优缺点3 总结1 使用什么样的电信号来表示旋转和角度信息? 在第二部分中,我们解释了旋转和角度信息大致分为…

C++程序设计-第六/七/八章 运算符重载/包含与继承/虚函数和多态性【期末复习|考研复习】

前言 总结整理不易&#xff0c;希望大家点赞收藏。 给大家整理了一下C程序设计中的重点概念&#xff0c;以供大家期末复习和考研复习的时候使用。 C程序设计系列文章传送门&#xff1a; 第一章 面向对象基础 第四/五章 函数和类和对象 第六/七/八章 运算符重载/包含与继承/虚函…

Qt之输入框带自动补全提示功能

这个功能主要是提升人机交互的体验,在输入信息时,自动读取历史信息,协助用户自动补全信息,帮助用户快速输入。 一、使用的控件 使用QComboBox代替传统文本输入框,同时将其属性改为可编辑。 二、使用方式 可以不输入信息,下拉选择项:代码中使用QStringList作为提示信息…

汽车协议学习

ⅠOBD 1.OBD接口 OBD有16个引脚&#xff0c;每个引脚的电压不同&#xff08;可以对应不同的协议&#xff09; 车端&#xff1a; 16- 9 (短一点点的) 8-1 &#xff08;长一点的&#xff09; 2.基于OBDⅡ的通信协议 CAN &#xff08;ISO-15765&am…

如何基于 esp-at 固件测试 TCP (UART 转 WiFi 透传)吞吐?

测试工具&#xff1a; windows/Ubuntu/Android&#xff08;电脑或手机与 ESP 开发板连接相同路由器&#xff09;iperf2 工具ESP 系列的开发板USB-TTL 串口调试工具路由器 测试固件&#xff1a; AT 固件 AT 固件硬件接线说明 不同环境下的 Iperf 工具安装说明 Iperf 工具用于…

用C语言执行SQLite3的gcc编译细节

错误信息&#xff1a; /tmp/cc3joSwp.o: In function main: execSqlite.c:(.text0x100): undefined reference to sqlite3_open execSqlite.c:(.text0x16c): undefined reference to sqlite3_exec execSqlite.c:(.text0x174): undefined reference to sqlite3_close execSqlit…

部署LVS负载均衡集群架构

目录 一、ipvsadm 工具 二、NAT模式下部署LVS负载均衡 1、部署NFS共享存储服务器 1.1 安装NFS软件 1.2 新建共享目录和站点文件 1.3 设置共享策略 2、部署节点服务器1 2.1 安装并启动nginx软件 2.2 挂载共享目录到网页站点目录 2.3 修改网关 3、部署节点服务器2 3.…

植物病害识别:YOLO甘蔗叶片病害识别分类数据集

YOLO甘蔗叶片病害识别数据集, 包含尾孢菌叶斑病&#xff0c;眼斑病&#xff0c;健康&#xff0c;红腐病&#xff0c;锈病&#xff0c;黄叶病6个常见病类别&#xff0c;3300多张图像&#xff0c;yolo标注完整&#xff0c;全部原始图像&#xff0c;未应用增强。 适用于CV项目&…

GEE错误——Landsat9数据集进行去云操作后显示白板

问题 我遇到了一些有关 Landsat9 图像中的云遮蔽和图像处理的问题。我正在分享我所使用的代码以及我感兴趣的区域(资产)。请帮我解决这个问题。我是一名 GEE 学习者。问题:最终图像在大面积上有云状覆盖。 这里我们查看了搜索出的代码发现并不是没有数据集导致的,该区域有…

【Java探索之旅】数据类型与变量,字面常量,整型变量

&#x1f3a5; 屿小夏 &#xff1a; 个人主页 &#x1f525;个人专栏 &#xff1a; Java入门到精通 &#x1f304; 莫道桑榆晚&#xff0c;为霞尚满天&#xff01; 文章目录 &#x1f4d1;前言一、字面常量二、数据类型三、变量3.1 变量概念3.2 语法格式 四、整型变量4.1 整型变…