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.用户若对于此目录具有 r
与 x
的权限时,该用户能够进入此目录;
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私房菜-基础篇》学习笔记
相关文章:

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

Altium Designer学习笔记2
原理图的绘制 需要掌握的是系统自带原理图库元件的添加。...

Atlassian发布最新补贴政策,Jira/Confluence迁移上云最低可至零成本
到2024年2月15日,Atlassian将不再提供对Jira、Confluence、Jira Service Management等Server版产品的支持。 近期,Atlassian推出了一项针对云产品的特殊优惠。现在从Server版迁移到云版,您能享受到高额补贴,甚至成本低至零元。立…...

基于FPGA的五子棋(论文+源码)
1.系统设计 在本次设计中,整个系统硬件框图如下图所示,以ALTERA的FPGA作为硬件载体,VGA接口,PS/2鼠标来完成设计,整个系统可以完成人人对战,人机对战的功能。系统通过软件编程来实现上述功能。将在硬件设计…...

QT5 MSVC2017 64bit配置OpenCV4.5无需编译与示范程序
环境:Windows 10 64位 Opencv版本:4.5 QT:5.14 QT5 MSVC2017配置OpenCV 版本参考: opencv msvc c对应版本 1.安装MSVC2017(vs2017) 打开Visual Studio Installer,点击修改 选择vs2017生成工…...

windows如何查看自己的ip地址
windows如何查看自己的ip地址 1.打开控制面板 2.进入网络和internet 3.进入网络共享中心 4.点击以太网进入网络详情页,或邮件已连接的网络,点击属性 5.查看ipv4地址就是当前机器ip...

Camera2的使用【详细】
目录 1.获取权限 2. 获取指定相机ID (1)获取相机管理者CameraManager (2)获取相机ID列表 (3)获取相机特征CameraCharacteristics (4)获取相机朝向 3.获取相机输出尺寸 (1)根据相机ID获取相机特征 (2)获取输出流配置StreamConfigurationMap (3)获取输出尺寸数组(参数为…...

Playcanvas后处理-辉光bloom
(一)Bloom介绍 Bloom(辉光、光晕、泛光)是一种常见的摄像机后处理(PostProcessing)效果,用于再现真实世界相机的成像伪影。这种效果会产生从图像中明亮区域边界延伸的光条纹(或羽毛…...

GCC 学习
GCC Resource Center for GCC Internalshttps://www.cse.iitb.ac.in/grc/这是个不错资料网站,有兴趣的可以了解下...

2023数维杯数学建模C题完整版本
已经完成全部版本,获取请查看文末下方名片 摘要 随着人工智能在多个领域的快速发展,其在文本生成上的应用引起了广泛关注。本研究聚焦于辨识人工智能(AI)生成文本的基本规则,并探究AI文本的检测及其与人类文本的区分…...

快速解密PPT幻灯片密码,让PPT重见天日
最简单的办法解密、找回和去除PPT幻灯片密码,具体步骤如下:1.百度搜索【密码帝官网】,2.点击“立即开始”在用户中心上传要解密的文件稍等片刻,就能找回密码。不用下载软件,手机电脑都可用。而且还支持Word、Excel、PD…...

十六、RabbitMQ快速入门
目录 一、在centos上下载MQ镜像 二、安装运行容器 三、登录进入MQ 1、添加一个新的用户 2、新建虚拟机 3、 为用户分配权限 四、RabbitMQ的基本概念 RabbitMQ中的几个概念: 五、常见消息模型 六、简单的消息生产与消费 1、消费者类 2、生产者类 3、基本消息队列的消…...

C#WPF用户控件及自定义控件实例
本文演示C#WPF自定义控件实例 用户控件(UserControl)和自定义控件(CustomControl)都是对UI控件的一种封装方式,目的都是实现封装后控件的重用。 只不过各自封装的实现方式和使用的场景上存在差异。 1 基于UserControl 创建 创建控件最简单一个方法就是基于UserControl …...

大模型的语言能力
NLP作为一个领域为基础模型开辟了道路。虽然这些模型在标准基准测试中占据主导地位,但这些模型目前获得的能力与那些将语言描述为人类交流和思维的复杂系统的能力之间存在明显的差距。针对这一点,我们强调语言变异的全部范围(例如,…...

直播岗位认知篇
一、直播岗位概述 直播岗位,也称为直播主播或直播运营,是指在互联网直播平台上进行直播活动的工作岗位。该岗位的主要职责是通过直播形式,向观众展示自己的才艺、分享生活、销售产品或服务,并引导观众互动和参与。直播主播需要具…...

后端技术知识点内容-全部内容-面试宝典-后端面试知识点
文章目录 -2 flink-1 linux of viewlinux查看占用cup最高的10个进程的命令; 〇、分布式锁 & 分布式事务0-1分布式锁--包含CAP理论模型概述分布式锁:分布式锁应该具备哪些条件:分布式锁的业务场景: 分布式锁的实现方式有&#…...

3.ubuntu20.04环境的ros搭建
ros搭建比较简单,主要步骤如下: 1.配置ros软件源: sudo sh -c echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list 2.配置密钥 sudo apt-key adv --keyser…...

米诺地尔行业分析:预计2029年将达到14亿美元
米诺地尔市场规模庞大,不仅包括消费品市场和服务行业,还涵盖了创新科技领域。随着经济的发展和市场需求的不断增长,米诺地尔市场的规模将继续扩大,各行各业都将面临更多机遇和挑战。 随着社会经济发展和城市化进程的推进ÿ…...

在Spring Boot中使用Thymeleaf开发Web页面
引言: 为啥写这篇文章呢?我明明就没怎么用过这个Thymeleaf进行web开发,用JSP也行,三剑客也行,或者Vue,React,PHP等等,不好吗? 那我为啥写这篇博客呢?这个写了…...

2023年亚太杯数学建模思路 - 案例:感知机原理剖析及实现
文章目录 1 感知机的直观理解2 感知机的数学角度3 代码实现 4 建模资料 # 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 感知机的直观理解 感知机应该属于机器学习算法中最简单的一种算法,其…...

linux高级篇基础理论五(用户安全,口令设置,JR暴力破解用户密码,NMAP端口扫描)
♥️作者:小刘在C站 ♥️个人主页: 小刘主页 ♥️不能因为人生的道路坎坷,就使自己的身躯变得弯曲;不能因为生活的历程漫长,就使求索的 脚步迟缓。 ♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏:云计算技…...

鸿蒙原生应用/元服务开发-AGC分发如何配置版本信息(上)
1.配置HarmonyOS应用的“发布国家或地区”。 2.设置是否为开放式测试版本。 注意:HarmonyOS应用开放式测试当前仅支持手机、平板、智能手表。如开发者想发布为开放式测试版本,选择“是”。正式发布的版本请选择“否”。 3.在“软件版本”下点击“软件包…...

探索Scrapy中间件:自定义Selenium中间件实例解析
简介 Scrapy是一个强大的Python爬虫框架,可用于从网站上抓取数据。本教程将指导你创建自己的Scrapy爬虫。其中,中间件是其重要特性之一,允许开发者在爬取过程中拦截和处理请求与响应,实现个性化的爬虫行为。 本篇博客将深入探讨…...

渗透测试--3.中间人攻击
渗透测试--3.中间人攻击 一 .中间人攻击arp欺骗DNS欺骗无线局域网漏洞利用使用 Ettercap 执行欺骗攻击arp欺骗实例1、首先查看欺骗之前靶机ip以及默认网关,2、查看kali的IP地址(192.168.76.134),MAC:000c294079903、使用Ettercap,将A主机和B主机加入到target中4、点击右上…...

nginx/html关闭网页缓存方法
【问题】 通常代理服务器默认是有缓存的,即用户访问网址的时候默认获取到的是缓存,只有刷新之后才能得到服务器端的最新文件 【解决】 以nginx为例,找到配置文件nginx.conf,找到http {},在其花括号之内添加命令&…...

华为防火墙 Radius认证
实现的功能:本地内网用户上网时必须要进行Radius验证,通过后才能上网 前置工作请按这个配置:华为防火墙 DMZ 设置-CSDN博客 Windows 服务器安装 Radius 实现上网认证 拓扑图如下: 一、服务器配置 WinRadius 1、安装WinRadius …...

用spring发送http请求
在Spring中,你可以使用RestTemplate或WebClient来发送HTTP请求。下面分别给出使用这两个类的简单示例。 现在pom.xml中导入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artif…...

赴日开发工程师是做什么的?
日本的软件开发岗位对技术要求和沟通能力都有较高的要求,赴日开发工程师主要负责软件设计、开发和测试,包括编写代码、测试代码和修复漏洞等工作。开发人员必须对软件架构、设计模式和业务逻辑有深入的理解,并能做出合适的技术决策。 当然&a…...

Wireshark的数据包它来啦!
通过Wireshark工具,可以轻松的看到网卡的数据信息。通过Wireshark显示的数据包内容信息,通常分七栏,介绍一下: 1No.: 数据包编号。 2.Time Time显示时间,以1号数据包发生开始计时。 3.Source Source显示内容…...

接口测试需要验证数据库么?
有的接口会返回很多数据,有的接口可能就返回一个状态码及success之类的消息,这些需要验证数据库么?现在在写一个测试框架,配置接口参数和预期返回值,生成xml文件管理用例,用一个比较方法对预期和返回作比较…...