Linux文件和文件夹操作

前言:

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

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

目录

一、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.hqwc.cn/news/526324.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ReactNative项目构建分析与思考之react-native-gradle-plugin

前一段时间由于业务需要,接触了下React Native相关的知识,以一个Android开发者的视角,对React Native 项目组织和构建流程有了一些粗浅的认识,同时也对RN混合开发项目如何搭建又了一点小小的思考。 RN环境搭建 RN文档提供了两种…

C语言编译成库文件的要求

keil编译成库文件 在Keil中,将C语言源文件编译成库文件通常需要进行以下步骤: 创建一个新的Keil项目,并将所需的C语言源文件添加到该项目中。 在项目设置中配置编译选项,确保生成的目标文件符合库文件的标准格式。 编译项目&…

JavaWeb基础入门——(二)MySQL数据库基础(3-数据表中的关联关系)

六、数据表中的关联关系 6.1 关联关系介绍 MySQL是一个关系型数据库,不仅可以存储数据,还可以维护数据与数据之间的关系——通过在数据表中添加字段建立外键约束 数据与数据之间的关联关系分为四种: 一对一关联 一对多关联 多对一关联 多…

【杂记】IDEA和Eclipse如何查看GC日志

1.Eclipse查看GC日志 1.1 右击代码编辑区 -> Run As -> Run Configurations 1.2 点击Arguments栏 -> VM arguments:区域填写XX参数 -> Run 1.3 控制台输出GC详细日志 2.IDEA查看GC日志 2.1 鼠标右击代码编辑器空白区域,选择Edit 项目名.main()... 2.…

‘ jupyter ‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。

安装anaconda后,在 Dos黑窗口 运行 jupyter notebook 的两个问题 原因:没配置环境变量 解决方法: 在 系统环境变量Path 中 添加两个地址 这里以anaconda安装在 D:\anaconda\install 下为例 (根据个人安装具体位置而定&#xff…

深入浅出计算机网络 day.1 概论① 信息时代的计算机网络

我想, 我不会暗下来的, 生命是周而复始的橙黄橘绿时 —— 24.3.9 内容概述 计算机网络的各类应用 计算机网络带来的负面问题 我国互联网发展情况 一、计算机网络的各类应用 1.信息浏览和发布 2.通信和交流 3.休闲和娱乐 4.资源共享…

Github 2024-03-10php开源项目日报Top10

根据Github Trendings的统计,今日(2024-03-10统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量PHP项目10Blade项目1Laravel:表达力和优雅的 Web 应用程序框架 创建周期:4631 天开发语言:PHP, BladeStar数量:75969 个Fork数量:24281 次…

STM32用标准库做定时器定时1秒更新OLED的计数值(Proteus仿真)

首先新建proteus工程,绘制电路图: 然后赋值我之前文章中提到的文件夹OLED屏幕显示:(没有的自己去那篇文章下载去) 然后进入文件夹: 新建两个文件在Mycode文件夹中: 文件关系如下: 新…

STM32基本定时功能

1、定时器就是计数器。 2、怎么计数? 3、我们需要有一恒定频率的方波信号,再加上一个寄存器。 4、比如每来一个上升沿信号,寄存器值加1,就可以完成计数。 5、假设方波频率是100Hz,也就是1秒100个脉冲。…

循序渐进丨MogDB 数据库特性之动态数据脱敏机制

数据脱敏是行之有效的数据库隐私保护方案之一,可以在一定程度上限制非授权用户对隐私数据的窥探。动态数据脱敏机制是一种通过定制化脱敏策略来实现对隐私数据保护的技术,可以在保留原始数据的前提下有效地解决非授权用户对敏感信息访问的问题。当管理员…

spring-cloud-openfeign 3.0.0之前版本(对应spring boot 2.4.x之前版本)feign配置加载顺序

在之前写的文章配置基础上 https://blog.csdn.net/zlpzlpzyd/article/details/136060312 下图为自己整理的

深入浅出计算机网络 day.1 概论② 因特网概述

当你回头看的时候,你会发现自己走了一段,自己都没想到的路 —— 24.3.9 内容概述 01.网络、互连(联)网与因特网的区别与联系 02.因特网简介 一、网络、互连(联)网与因特网的区别与联系 1.若干节点和链路互连…