Linux(4):Linux文件与目录管理

目录与路径

相对路径在进行软件或软件安装时非常有用,更加方便。利用相对路径的写法必须要确认目前的路径才能正确的去到想要去的目录。
绝对路径的正确度要比相对路径好,因此,在写程序(shell scripts)来管理系统的条件下,一定要使用绝对路径的写法。

. 代表此层目录
.. 代表上一层目录
- 代表前一个工作目录
~ 代表[目前用户身份] 所在的家目录
~account 代表 account 这个用户的家目录(account 是个账号名称)

目录的相关操作

cd 变换目录
pwd 显示当前目录 
mkdir 建立一个新的目录
rmdir 删除一个空的目录

cd
cd 是 Change Directory 的缩写,这是用来变换工作目录的指令。

仅输出 cd 时,相当于输入 cd~ 可以回到家目录。

pwd
pwd [-P]
选项与参数:
-P : 显示出确实的路径,而非使用链接 (link) 路径。

mkdir
mkdir [-mp] 目录名称
选项与参数:
-m:配置文件案的权限,直接设定,不需要关注预设权限 (umask)
-p:将所需要的目录(包含上层目录)递归建立起来。
在 预设 的情况下,所需要的目录得一层一层的建立才可以。

rmdir
rmdir [-p] 目录名称
选项和参数:
-p:连同上层空的目录一起删除。
被删除的目录里面必定不能存在其他的目录或文件。如果要将所有目录下的东西删掉,可以使用 rm -r 目录名称

关于执行文件路径的变量:$PATH

环境变量 PATH 一定是大写,其内容由一堆目录组成,每个目录中间用冒号(:)来隔开,每个目录都是有顺序之分的。

在这里插入图片描述mv [目录] [目录] 可以将文件在不同的目录间进行移动。

要注意的:
1.不同身份使用者预设的PATH不同,默能够随意使用执行的指令也不同;
2.PATH 是可以修改的;
3.使用绝对路径或相对路径直接指定某个指令的文件名来运行,回避搜寻 PATH 来的正确;
4.指令应该放置到正确的目录下,执行才会比较方便;
5.本目录(.)最好不用放在 PATH 当中。

文件与目录管理

ls :文件与目录的检视

ls [-aAdfFhilnrRSt] 文件名或目录名称
ls [--color={never,auto,always}] 文件名或目录名称
ls [--full-time] 文件名或目录名称

在这里插入图片描述
在这里插入图片描述

cp,rm,mv : 复制、删除与移动

cp:复制文件或目录

cp [-adfilprsu] 来源文件(source) 目标文件(destination)
cp [options] source1 source2 source3 ... directory

在这里插入图片描述cp 如果要去复制别人的数据,该文件必要要有 read 的权限才可以。
在预设的条件中,cp 的来源档与目的档的权限是不同的,目的档的拥有者通常会是指令操作者本身。

由于 cp 有种种的文件属性与权限,所以复制时,需要了解:
1.是否需要完整的保留来源文件的信息。
2.来源文件是否为连结档(symbolic link file);
3.来源文件是否为特殊文件,例如FIFO,socket等;
4.来源文件是否为目录。

rm:移除文件或目录

rm [-fir] 文件或目录

在这里插入图片描述在指令前加上反斜杠\,可以忽略掉 alias 的指定选项:\rm -r 文件或目录

mv:移动文件与目录,或更名

mv [-fiu] source destination
mv [options] source1 source2 source3 ... directory

在这里插入图片描述
通过mv将目录改名:mv mvtest1 mvtest2,这样就可以将 mvtest 改名为 mvtest2了

取得路径的文件名与目录名称

basename :取最后的档名
dirname:取目录名

在这里插入图片描述

文件内容查询

cat:由第一行开始显示文件内容
tac:从最后一行开始显示,tac和cat是倒着写的
nl:显示的时候,顺道输出行号
more:一页一页的显示文件内容
less:与more类似,但是可以往前翻页
head:只看头几行
tail:只看尾几行
od:以二进制的方式读取文件内容

直接检视文件内容

cat(concatenate)

cat [-AbEnTv]

在这里插入图片描述

tac(反向显示)
由最后一行到第一行反向在屏幕上显示出来

nl(添加行号打印)

nl [-bnw] 文件

在这里插入图片描述

可翻页检视

more(一页一页翻动)
如果 more 后面接的文件内容行数大于屏幕输出的行数时,会省略后面的,最后一行会显示目前的百分比,可以在最后一行输入一些有用的指令:
1.空格键:嗲表向下翻一页
2.Enter:代表向下翻一行
3./字符串:代表在这个显示的内容当中,向下搜寻【字符串】这个关键字
4.:f:代表立刻离开more,不再显示该文件内容
5.b 或 [ctrl]-b:代表往回翻页,不过这动作只对文件有用,对管线无用。

按下 q 可以离开 more 这个指令的显示工作。

less(一页一页翻动)
使用 less 时,可以使用 [pageup] [pagedown]等功能来翻看文件。

less 可以输入的指令有:
1.空格:向下翻一页
2.[pagedown]:向下翻一页
3.[pageup]:向上翻一页
4./字符串:向下搜寻【字符串】
5.?字符串:向上搜寻【字符串】
6.n:重复前一个搜寻(与 / 或 ? 有关)
7.N:反向重复前一个搜寻
8.g:前进到这个资料的第一行去
9.G:前进到这个数据的最后一行去
10.q:离开 less 这个程序

资料提取

head(取出前面几行)

head [-n number] 文件

选项和参数:
-n :后面接数字,代表显示几行的意思
默认情况,显示前面10行

tail(取出后面几行)

tail [-n number] 文件

选项和参数:
-n:后面接数字,显示几行
-f:表示持续侦测后面所接的档名,要等按下[ctrl]-c 才会结束tail的侦测。

非纯文本文档:od

使用od来读取二进制文件,不会产生乱码的数据。

od [-t TYPE] 文件

在这里插入图片描述

修改文件时间或建置新档:touch

Linux 会记录很多的时间参数,主要是三个主要变动的时间:
1.modification(mtime):当该文件的【数据内容】变更时,就会更新这个时间,内容数据指的是文件的内容,而不是文件的属性或权限
2.status time(ctime):当文件的【状态】改变时,就会更新这个时间,例如权限和属性
3.access time(atime):当【该文件的内容被取用】时,就会更新这个读取时间。例如使用 cat 去读取某个文件,就会更新

在这里插入图片描述默认情况下,ls 显示出来的是该文件的 mtime,即文件内容上次被改动的时间。

touch [-acdmt] 文件

在这里插入图片描述
touch 最常被使用的情况:
1.建立一个空的文件
2.将某个文件日期修订为目前(mtime 与 atime)
在这里插入图片描述

文件与目录的默认权限与隐藏权限

除了基本r,w,x权限外,在 Linux 传统的 Ext2/Ext3/Ext4 文件系统下,我们还可以设定其他的系统隐藏属性, 这部份可使用 chattr 来设定,而以 lsattr 来查看,最重要的属性就是可以设定其不可修改的特性!让连文件的拥有者都不能进行修改! 这个属性可是相当重要的,尤其是在安全机制上面(security).

文件预设权限:umsak

umask 用来指定目前用户在建立文件或目录的时候的权限默认值。
umask 有两种查阅方式,一种是直接输入umask,显示为数字型态的权限设定分数;
另一种是加入 -S (Symbolic) 这个选项,以符号类型显示。
在这里插入图片描述
umsak 的分数指的是该默认值需要减掉的权限,rwx分别是421分。若拿掉能写的权限,就是输入2分,拿掉能读就是4分。

若使用者建立为[文件]则预设[没有可执行(x )权限],亦即只有 rw 这两个项目,也就是最大为 666分预设权限为:rw-rw-rw-
若用户建立为[目录],则由于x 与是否可以进入此目录有关,因此默认为所有权限均开放,亦即为 777 分,预设权限如下:drwxrwxrwx

文件隐藏属性

chattr 只能在 Ext2/Ext3/Ext4 的Linux传统文件系统上面完整生效
chattr:配置文件案隐藏属性

chattr [+-=][ASacdistu] 文件或名录名称

在这里插入图片描述
里面有很当的属性root权限才可以设置。+i 可以让一个文件无法被更动:
在这里插入图片描述

lsattr:显示文件隐藏属性

lsattr [-adR] 文件或目录

在这里插入图片描述
使用 chattr 设定后,可以利用 lsattr 来查阅隐藏属性。
在这里插入图片描述

文件的特殊属性:SUID,SGID,SBIT

Set UID
s 这个标志出现在文件拥有者的 x 权限上时,例某个文件的权限状态:-rwsr-xr-x,此时就被称为 Set UID,简称为 SUID 的特殊权限。
SUID的限制与功能:
1.SUID权限仅对二进制程序有效;
2.执行者对于该程序需要具有 x 的可执行权限;
3.本权限仅在执行该程序的过程中有效;
4.执行者将具有程序拥有者的权限。
例如,某个账户 feng 可以修改密码,但不能读取。

Set GID
s 标志在文件拥有者的 x 项目为 SUID,那 s 在群组的 x 时则为 Set GID

与 SUID不同的是,SGID 可以针对文件或目录来设定。
如果是对文件来说,SGID有如下的功能:
1.SGID 对二进制程序有用:
2.程序执行者对于该程序来说,需具备 x 的权限;
3.执行者在执行的过程中将会获得该程序群组的支持。

如果是对目录来说,SGID有如下的功能:
1.用户若对于此目录具有 rx 的权限时,该用户能够进入此目录;
2.用户在此目录下的有效群组(effective group)将会变成该目录的群组;
3.用途:若用户在此目录下具有 w 的权限(可以新建文件),则使用者所建立的新文件,该新文件的群组与此目录的群组相同。

Sticky Bit
目前只针对目录有效,对于文件已经没有效果了。SBIT 对于目录的作用是:
1.当用户对于此目录具有 w.x 权限,亦即具有写入的权限时;
2.当用户在该目录下建立文件或目录时,仅有自己与 root 才有权力删除该文件。

SUID/SGID/SBIT 权限设定
4 为 SUID;2 为 SGID;1为 SBIT
假设要将一个文件权限改为 [-rwsr-xr-x] 时,由于 在用户权力中,所以是 SUID,因此, 在原先的 755 之前还要加上 4,也就是: [chmod 4755 filename ]来设定

观察文件类型:file

如果想要知道某个文件的基本数据,例如是属于 ASCII 或者是 data 文件,或者是 binary,且其中有没有使用到动态函式库 (share library) 等等的信息,就可以利用 file 这个指来检阅。
在这里插入图片描述

指令与文件的搜寻

利用一些搜寻指令将该配置文件的完整档名捉出来

脚本文件名的搜寻

指令的完整文件名
which:寻找执行档

which [-a] command

选项或参数:
-a:将所有由 PATH 目录中可以找到的指令均列出,而不止第一个被找到的指令名称

这个指令是根据[PATH] 这个环境变量所规范的路径,去搜寻[执行档]的档名。
所以,重点是找出[执行档]而已!且 which 后面接的是[完整档名]。
若加上 -a 选项,则可以列出所有的可以找到的同名执行文件,而非仅显示第一个而已。

文件档名的搜寻

whereis:由一些特定的目录中寻找文件文件名

whereis [-bmsu] 文件或目录名

在这里插入图片描述

locate/updatedb

locate [--ir] keyword

在这里插入图片描述
updatedb:根据 /etc/updatedb.conf 的设定去搜寻系统硬盘内的文件名,并更新 /var/lib/mlocate 内的数据库文件;
locate:依据 /var/ib/mlocate 内的数据库记载,找出用户输入的关键词文件名。
/var/ib/mlocate 是已建立的数据库。

find

find [PATH] [option] [action]

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

find 的特殊功能:进行额外的动作。
在这里插入图片描述
{}:代表的是[由 find 找到的内容],如上图所示,find 的结果会被放置到{} 位置中;
-exec: 一直到 \;是关键词,代表 find 外动作的开始 (-exec) 到结束 (😉,在这中间的就是 fid 指令内的额外动作。
因为 [;] 在 bash 环境下是有特殊意义的,因此利用反斜杠来跳脱

如果要找的文件是具有特殊属性的,例如 SUID、文件拥有者、文件大小等等, 那么利用 locate是没有用,!此时 find 就显的很重要。
另外,find 还可以利用通配符来找寻档名:
在这里插入图片描述

权限和指令间的关系

1.让用户能进入某目录成为【可工作目录】的基本权限为何:
可使用的指令:例如 cd 等变换工作目录的指令;
目录所需权限:用户对这个目录至少需要具有 x 的权限额外需求;
如果用户想要在这个目录内利用 ls 查阅文件名,则用户对此目录还需要 r 的权限

2.用户在某个目录内读取一个文件的基本权限为何?
可使用的指令:例如 cat,more,less 等等;
目录所需权限:用户对这个目录至少需要具有 x 权限;
文件所需权限:使用者对文件至少需要具有 r 的权限才行。

3.让使用者可以修改一个文件的基本权限为何?
可使用的指令:例如 nano 或 vi 编辑器等;
目录所需权限:用户在该文件所在的目录至少要有 x 权限;
文件所需权限:使用者对该文件至少要有 i,w 权限。

4.让一个使用者可以建立一个文件的基本权限为何?
目录所需权限:用户在该目录要具有 w.x 的权限,重点在 w

5.让用户进入某目录并执行该目录下的某个指令之基本权限为何?
目录所需权限:用户在该目录至少要有 x 的权限;
文件所需权限:使用者在该文件至少需要有 x 的权限。

《鸟哥的Linux私房菜-基础篇》学习笔记

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

公司会倒闭,但大模型肯定不会

咋玩抖音的我,前几天在抖音上发了一张图片,没想到竟然有1000多的播放量。 当然这个播放量不算高,甚至在抖音的体系里属于很低的,但是比我预料的可能只有个位数的播放量是高了不少。 这张图片是我用某国产 AI 软件生成的&#xff…

【设计模式】设计模式基础

设计模式基础 文章目录 设计模式基础一、七大设计原则1.1 概述1.2 单一职责原则1.3 接口隔离原则1.4 依赖倒转原则1.5 里氏替换原则1.6 开闭原则1.7 迪米特法则1.8 合成复用原则 二、UML类图2.1 概述2.2 依赖关系(Dependence)2.3 泛化关系(generalizatio…

linux在非联网、无网络环境下,使用yumdownload、reportrack方法安装rpm包

文章目录 前言1、下载yum-utils​​2、yumdownloader3、repotrack4、区别:总结 前言 当开发者在联网环境下使用Linux时,可以轻松地通过yum或apt-get安装软件。然而,在公司和企业中,由于安全原因,生产环境通常无法访问…

es的优势

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目…

系列一、堆里面的分区:Eden、From、To、老年代各自的特点

一、堆里面的分区:Eden、From、To、老年代各自的特点 堆是对象共享的区域,也是垃圾回收器主要工作的地方。主要分为新生区、养老区和元空间,而这三块地方中GC主要工作在新生区和养老区,其中新生区占1/3、养老区占2/3,新…

springboot+activiti5.22.0集成Activiti在线流程设计器

SpringBoot集成Activiti5.22在线流程设计器 文章目录 SpringBoot集成Activiti5.22在线流程设计器📝1.增加配置pom依赖 增加数据库及redis配置文件📜 2.启动类ActivitiDesignApplication排除安全校验注解启动项目后将会自动在数据库中生成表 &#x1f4d8…

Win11+Modelsim SE-64 10.6d搭建UVM环境

1、添加源文件及tb文件 在目录下建立文件夹,将DUT和Testbench添加进去,文件夹内容如下所示: 2、以《UVM实战》中的例子做简单的示例: 2.1 设计文件 :dut.sv 功能很简单,即将接受到的数据原封不动发送出去…

鸿蒙:Harmony开发基础知识详解

一.概述 工欲善其事,必先利其器。 上一篇博文实现了一个"Hello Harmony"的Demo,今天这篇博文就以Demo "Hello Harmony" 为例,以官网开发文档为依据,从鸿蒙开发主要的几个方面入手,详细了解一下鸿…

谈谈 MySQL 事务隔离级别

程序员的公众号:源1024,获取更多资料,无加密无套路! 最近整理了一份大厂面试资料《史上最全大厂面试题》,Springboot、微服务、算法、数据结构、Zookeeper、Mybatis、Dubbo、linux、Kafka、Elasticsearch、数据库等等 …

Maven依赖管理项目构建工具(保姆级教学---上篇)

对于Maven依赖管理项目构建工具的介绍,我们将其分为上篇和下篇。如果您对文章感兴趣,您可以在此链接中找到下篇详细内容: Maven依赖管理项目构建工具(保姆级教学---下篇)-CSDN博客 一、Maven介绍 官网地址&#xff…

R语言的入门学习

目录 准备工作导入csv数据集选择前200行作为数据集展示数据集的前/后几N行宏观分析删除缺失值构建直方图导出为图片 R语言常见图像类型例1:散点图例2:散点矩阵图 准备工作 安装教程: R语言和RStudio的下载安装(非常简便舒适&…

大模型是怎么知道 “我赚了200万” 的?

今天在和 chatGPT 聊天时,我说“我赚了200万”,他立刻就根据这句话给我了一句。 我当然没有赚到200万,只是想引出一个话题:“大模型是如何识别出这句话,又是怎么知道该回答什么的呢?" 在学习自然语言…

GIS杂记(三):MaxEnt模型中的图像地理范围不匹配【全网最好的方法,没有之一】

图像地理范围不匹配问题解决方法 1. 问题描述2. 问题范例3. 问题解决4. 其他参考 1. 问题描述 一般在使用全国的的生物气候变量时,由于其地理范围一致,因此不会出现地理范围不匹配的问题。但是,当加入其他影响因子的时候,如海拔、…

mongodb——原理简介,docker单机部署

MongoDB noSQL数据库 特点 数据文件存储格式为 BSON (JSON 的扩展) {“name”:“joe”}这是 BSON 的例子,其中"name"是键,"joe"是值。键值对组成了 BSON 格式。面向集合…

BUUCTF [BJDCTF2020]你猜我是个啥 1

BUUCTF:https://buuoj.cn/challenges 题目描述: 来源:https://github.com/BjdsecCA/BJDCTF2020 密文: 下载附件,得到一个zip压缩包。 解题思路: 1、尝试解压压缩包,提示“attachment_10.zip”不是压缩文…

【考研数学神作】你不能错过的学习教材

【文末送书】今天推荐一些考研数学优质书籍,带你筑牢知识体系 目录 导语优美的数学思维:问题求解与证明数学分析线性代数线性代数及其应用代数初等数论及其应用数论概论概率论基础教程概率论与统计推断统计学基础:透过数据看世界数理统计及其…

R语言和RStudio的下载安装(非常简便舒适)

目录 R语言和RStudio的关系R语言和Tableau下载R语言进入官网选择清华镜像源Download R for Windows选择base版本开始下载进行安装配置环境变量检查是否安装成功 下载RStudio进入官网点击下载进行安装检查是否安装成功打开选择R语言环境成功打开显示四个工作区 R语言和RStudio的…

画中画视频剪辑:批量制作画中画视频,让视频更具吸引力和创意

在今天的视频制作环境中,画中画视频剪辑技术已经成为了一种主流。它不仅能增加视频的视觉吸引力,也可以提升观看体验。画中画视频剪辑是一种制作多个视频画面的技术,它可以将两个或更多的视频画面融合在一起,形成一个全新的视频。…

【数据挖掘 机器学习 | 时间序列】时间序列必学模型: ARIMA超详细讲解

🤵‍♂️ 个人主页: AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!&…