走进Linux世界【三、Linux文件与路径】

news2024/10/5 17:19:49

第三章 Linux文件与路径

1、文件结构

​ Windows和Linux文件系统区别

​ 在windows平台下,打开“此电脑”,我们可以看到盘符分区

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VmGdI1Yg-1689062931409)(imgs/04_107.png)]

​ 每个驱动器都有自己的根目录结构,这样形成了多个树并列的情形

​ 但是在 Linux 下,我们是看不到这些驱动器盘符,我们看到的是文件夹(目录):

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y7NaqX9h-1689062931410)(imgs/04_108.png)]

​ Centos没有盘符这个概念,只有一个根目录/,所有文件都在它下面

[root@localhost ~]# ls /
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var

​ 当我们输入ls / 可以查看更目录下的文件查看根目录下的系统文件

目录说明备注
bin存放普通用户可执行的指令即使在单用户模式下也能够执行处理
boot开机引导目录包括Linux内核文件与开机所需要的文件
dev设备目录所有的硬件设备及周边均放置在这个设备目录中
etc各种配置文件目录大部分配置属性均存放在这里
lib/lib64开机时常用的动态链接库bin及sbin指令也会调用对应的lib库
media可移除设备挂载目录类似软盘 U盘 光盘等临时挂放目录
mnt用户临时挂载其他的文件系统额外的设备可挂载在这里,相对临时而言
opt第三方软件安装目录现在习惯性的放置在/usr/local中
proc虚拟文件系统通常是内存中的映射,特别注意在误删除数据文件后,比如DB,只要系统不重启,还是有很大几率能将数据找回来
root系统管理员主目录除root之外,其他用户均放置在/home目录下
run系统运行是所需文件以前防止在/var/run中,后来拆分成独立的/run目录。重启后重新生成对应的目录数据
sbin只有root才能运行的管理指令跟bin类似,但只属于root管理员
srv服务启动后需要访问的数据目录
sys跟proc一样虚拟文件系统记录核心系统硬件信息
tmp存放临时文件目录所有用户对该目录均可读写
usr应用程序放置目录
var存放系统执行过程经常改变的文件

​ 在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。

/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。

/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。

​ 值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。

/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录 下,具体在/var/log 目录下,另外mail的预设放置也是在这里。

2、基本概念

用户目录:位于 /home/user,称之为用户工作目录或家目录,表示方式:

# 在home有一个user  这里就是之前创建的msb123用户
[root@localhost ~]# cd /home
[root@localhost home]# ls
msb123

# 使用~回到root目录,使用/是回到根目录下
[root@localhost msb123]# cd ~
[root@localhost ~]# 


登录信息

[root@localhost /]#

Linux的bash解析器终端用来显示主机名和当前用户的标识;

# root表示bai当前用户叫root(系统管理员账户)
# localhost表示当前使用的主机名叫localhost(没有设置系bai统名字的时候默认名称是localhost)
# / 表示你当前所处的目录位置 (这里的'/'表示你当前在根目录下)

相对路径和绝对路径

绝对路径

​ 从/目录开始描述的路径为绝对路径,如:

[root@localhost /]# cd /home/msb123
[root@localhost /]# ls /usr

相对路径

​ 从当前位置开始描述的路径为相对路径,如:

[root@localhost /]# cd ../../
[root@localhost /]# ls abc/def

. 和 …

​ 每个目录下都有**.…**

. 表示当前目录

.. 表示上一级目录,即父目录

​ 例如这里切换路径时候

# 从 / 根目录切换到 home目录
[root@localhost /]# cd home

# 确认路径/home
[root@localhost home]# pwd
/home

# 切换到当前目录cd .  目录无变化
[root@localhost home]# cd .

# 切换到当前目录cd ..  目录回到上一级根目录
[root@localhost home]# cd ..

[root@localhost /]# 

(注意 根目录下的 . 和 … 都表示当前目录

文件权限

​ 文件权限就是文件的访问控制权限,即哪些用户和组群可以访问文件以及可以执行什么样的操作。

​ Unix/Linux系统是一个典型的多用户系统,不同的用户处于不同的地位,对文件和目录有不同的访问权限。为了保护系统的安全性Unix/Linux系统除了对用户权限作了严格的界定外,还在用户身份认证、访问控制、传输安全、文件读写权限等方面作了周密的控制。

​ 在 Unix/Linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。

访问用户

​ 通过设定权限可以从以下三种访问方式限制访问权限:

- 只允许用户自己访问(所有者) 所有者就是创建文件的用户,用户是所有用户所创建文件的所有者,用户可以允许所在的用户组能访问用户的文件。
- 允许一个预先指定的用户组中的用户访问(用户组) 用户都组合成用户组,例如,某一类或某一项目中的所有用户都能够被系统管理员归为一个用户组,一个用户能够授予所在用户组的其他成员的文件访问权限。
- 允许系统中的任何用户访问(其他用户) 用户也将自己的文件向系统内的所有用户开放,在这种情况下,系统内的所有用户都能够访问用户的目录或文件。在这种意义上,系统内的其他所有用户就是 other 用户类

访问权限

​ 用户能够控制一个给定的文件或目录的访问程度,一个文件或目录可能有读、写及执行权限:

- ​        读权限(r) 对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。
- ​        写权限(w) 对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。
- ​        可执行权限(x) 对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。

​ 注意:通常,Unix/Linux系统只允许文件的属主(所有者)或超级用户改变文件的读写权限。

[root@localhost /]# ls -l
总用量 20
lrwxrwxrwx.   1 root root    7 8月  31 15:48 bin -> usr/bin
dr-xr-xr-x.   5 root root 4096 8月  31 15:58 boot
...

​ 我们来拆解结构,这里面我只列了根目录下的一部分内容

​ 用到 ls -l 命令查看当前文件夹下详细信息,具体的命令和参数,后面会深入讲解

​ 我们需要关注的是文件或目录的权限情况

l  rwx  rwx  rwx
d  r-x  r-x  r-x

# 首先第一个字母 在Linux中第一个字符代表这个文件是目录、文件或链接文件等等。
[ d ] 表示目录
[ l ] 表示为链接文档(link file)
[ - ] 表示为文件
[ b ] 表示为装置文件里面的可供储存的接口设备(可随机存取装置)
[ c ] 表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)

# 其次接下来的字符中,以三个为一组,且均为 [ rwx ] 的三个参数的组合
[ r ]代表可读(read)
[ w ]代表可写(write)
[ x ]代表可执行(execute)
[ - ]

# 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。

  此时问题来了那么这三组一样是有什么区分尼?
# 这里就涉及到刚才所描述的访问用户权限
# 所有者    所有者表示该文件的所有者
# 用户组    表示当前用户再同一组
# 其他用户  允许系统中的任何用户访问,系统内的其他所有用户就是 other 用户类

# 可以将这个权限进行类比,如我的篮球,
# 所有者表示的是我可以玩 
# 用户组表示,我可以借给我同班同学玩
# 其他用户表示,我可以借给其他班的同学玩

文件属主与属组

​ 对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。

​ 同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。

​ 文件所有者以外的用户又可以分为文件所有者的同组用户和其他用户。

​ 因此,Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。

[root@localhost /]# ls -l
总用量 20
...
dr-xr-xr-x.   5 root root 4096 8月  31 15:58 boot
...

[root@localhost /]# cd /home
[root@localhost home]# ls -l
总用量 0
drwx------. 2 msb123 msb123 83 9月   2 15:54 msb123


# 在以上实例中,msb123 文件是一个目录文件,属主和属组都为 msb123,属主有可读、可写、可执行的权限;与属主同组的用户无权限读写执行;其他用户也无权限读写执行

# 对于 root 用户来说,一般情况下,文件的权限对其不起作用。

3、基本命令信息

​ 熟悉一些入门的命令

​ 1、ls

ls 命令


作用:Linux ls命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。



语法: ls   [-alrtAFR](选项)    [name...](参数)



参数:

-a 显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出) 示例如下:
[root@localhost ~]# ls -a
.  ..  anaconda-ks.cfg  .bash_history  .bash_logout  .bash_profile  .bashrc  .cshrc  .tcshrc




-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出  示例如下:
[root@localhost ~]# ls -l
总用量 4
-rw-------. 1 root root 1437 8月  31 15:54 anaconda-ks.cfg




-r 将文件以相反次序显示(原定依英文字母次序) 示例如下:
[root@localhost ~]# ls -ra
.tcshrc  .cshrc  .bashrc  .bash_profile  .bash_logout  .bash_history  anaconda-ks.cfg  ..  .




-t 将文件依建立时间之先后次序列出   示例如下:
[root@localhost ~]# ls -lt
总用量 4
-rw-------. 1 root root 1437 8月  31 15:54 anaconda-ks.cfg




-A 同 -a ,但不列出 "." (目前目录)".." (父目录)   示例如下:
[root@localhost ~]# ls -A
anaconda-ks.cfg  .bash_history  .bash_logout  .bash_profile  .bashrc  .cshrc  .tcshrc




-F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"   示例如下:
[root@localhost ~]# ls -F /home
msb123/




-R 若目录下有文件,则以下之文件亦皆依序列出  示例如下:
[root@localhost ~]# ls -R /home
/home:
msb123

/home/msb123:

常用组合
[1]查看文件详情:ls -l 或 ll
[2]增强对文件大小易读性,以人类可读的形式显示文件大小: ls -lh
[3]对文件或者目录进行从大到小的排序: ls -lhs
[4]查看当前目录下的所有文件或者目录,包括隐藏文件: ls -la
[5]只查看当前目录下的目录文件: ls -d .
[6]按照时间顺序查看,从上到倒下时间越来越近: ls -ltr
[7]查看文件在对应的inode信息:ls -li

​ 2、cd

cd 命令


作用:变换当前目录到dir。默认目录为home,可以使用绝对路径、或相对路径。


语法:cd [dir](路径)

# 跳到用户目录下
[root@localhost ~]# cd /home/msb123
[root@localhost msb123]# 
 
 

# 回到home目录
[root@localhost msb123]# cd ~
[root@localhost ~]# 



# 跳到上次所在目录
[root@localhost ~]# cd -
/home/msb123
[root@localhost msb123]#



# 跳到父目录(也可以直接使用 cd ..)
[root@localhost msb123]# cd ./..
[root@localhost home]# 



# 再次跳到上次所在目录
[root@localhost home]# cd -
/home/msb123
[root@localhost msb123]# 


# 跳到当前目录的上两层
[root@localhost msb123]# cd ../..
[root@localhost /]#




# 把上个命令的最后参数作为dir
这里我们先将文件夹cd 到python2.7路径
[root@localhost /]# cd /usr/include/python2.7/
[root@localhost python2.7]#

# 这里使用cd ./..参数作为引子
[root@localhost python2.7]# cd ./..

# 这里我们使用命令,重复最后一个命令参数,直到回到了根目录
[root@localhost include]# cd !$
cd ./..
[root@localhost usr]# cd ./..
[root@localhost /]# 

3、pwd

pwd  命令


作用:可立刻得知目前所在的工作目录的绝对路径名称


语法:pwd [--help][--version]


参数说明:
--help 在线帮助。
--version 显示版本信息。


查看当前所在目录:
[root@localhost /]# cd /home
[root@localhost home]# pwd
/home
[root@localhost home]# 


ot@localhost python2.7]# cd ./…

这里我们使用命令,重复最后一个命令参数,直到回到了根目录

[root@localhost include]# cd !$
cd ./…
[root@localhost usr]# cd ./…
[root@localhost /]#


3、pwd

```bash
pwd  命令


作用:可立刻得知目前所在的工作目录的绝对路径名称


语法:pwd [--help][--version]


参数说明:
--help 在线帮助。
--version 显示版本信息。


查看当前所在目录:
[root@localhost /]# cd /home
[root@localhost home]# pwd
/home
[root@localhost home]# 


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

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

相关文章

创建和分析二维桁架和梁结构研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

03_008内存映射原理_虚拟内存区域vm_area_struct详解,和mmap系统钓调用完全分析

前言 上一个记录中的 虚拟地址里的虚拟内存区域没有说的很完全 这次补充一下 同时记录一些 物理地址空间 内存映射原理 最后直接通过进程使用函数完成虚拟空间到物理空间的映射 物理地址空间 物理地址是处理器在系统总线上看到的地址。使用RISC的处理器通常只实现一个物理地…

递归函数(详解+实战)

目录 递归函数介绍 递归函数的作用 案例:实现10以内阶乘 递归思想 递归的编写 斐波那契数列(实战) 循环实现 递归实现 递归函数介绍 递归函数是指在函数的定义中调用函数本身的过程。递归函数可以用于解决那些可以通过将大问题拆分为更小的相似子问题来解决的…

窗口看门狗 WWDG

窗口看门狗介绍 Q: 什么是窗口看门狗? A: 窗口看门狗用于监测单片机程序运行时效是否精准,主要检测软件异常(独立看门狗检测的是硬件异常),一般用于需要精准检测(独立看门狗不太精准)程序运行时间的场合。 窗口看门狗…

MySQL数据库操作篇3(聚合函数分组查询)

通过MySQL提供的聚合函数,可以很方便的进行一些计算来辅助查询,所谓聚合函数就是将表中的数据统计后进行的某种处理 分组查询可以理解成将一张表按照某个属性分成多张表,属性值相同的在一张表里 比如说学生表,按照性别这个属性分组…

java+大数据实战 短链项目

一.前言 1.1课程大致包含技术 首先选这套课的目的是 包含了我所学的大部分技术 比如springboot ssm redis kafka flink clickhouse 等 1.2 外界客观原因 就业环境一般 目前来看暂时还没但是有后续潜在的毕业 或者 离职 1.3技术追求 个人的技术追求暂时是在技术总监 技术…

vue3功能实现

在vue2中,要实现一些方法(增删改查)一般都是写在一起的。如下图所示: 但是在vue3中,实现一个方法需要用到很多文件。 方法定义方法如下: export function classSign(phone: string) {return sign_reques…

TypeScript基础篇 - 类型的思考方式

目录 重新认识:什么是类型? 类型是人类的思考方式 类型是错误检查的利器 总结:为什么我们用TS? 一张ai生成图~ 重新认识:什么是类型? 汽车可以跑怎么理解? car.run() 【面向对象】car imp…

【雕爷学编程】Arduino动手做(06)---KY-038声音传感器模块3

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&am…

微服务架构Ribbon与OpenFeign的使用 【快速入门】

一、实现负载均衡🍉 1.什么是负载均衡🥝 通俗的讲, 负载均衡就是将负载(工作任务,访问请求)进行分摊到多个操作单元(服务器,组件)上进行执行。 根据负载均衡发生位置的不同,一般分…

Terraform(一)

IaC 自动化配置与编排神器 - Terraform 1. 相关概念1.1 什么是 IaCIaC 的两种实现方式IaC 的好处IaC 优点IaC 工具为什么 IaC 对 DevOps 很重要? 1.2 什么是 Terraform1.3 Terraform 的主要特性1.4 Terraform 架构1.5 Terraform 核心概念1.6 Terraform 生命周期1.7 …

高等数学❤️第一章~第二节~极限❤️无穷小量与无穷大量~无穷小量概念及其性质与比较详解

【精讲】高等数学中的无穷小量概念及其性质与比较 博主:命运之光的主页 专栏:高等数学 目录 【精讲】高等数学中的无穷小量概念及其性质与比较 导言 一、无穷小量的概念 二、无穷小量的性质 三、无穷小量的比较 四、无穷小量的应用 必需记忆知识点…

【C++刷题集】-- day4

目录 选择题​​​​​​​ 单选 编程题 计算糖果⭐ 【题目解析】 【解题思路】 进制转换⭐​​​​​​​ 【题目解析】 【解题思路】 选择题 单选 1、 有以下程序 #include<iostream> #include<cstdio> using namespace std; int main() {int m 0123, n 123…

(文章复现)售电市场环境下电力用户选择售电公司行为研究(附matlab代码)

参考文献&#xff1a; [1]孙云涛,宋依群,姚良忠等.售电市场环境下电力用户选择售电公司行为研究[J].电网技术,2018,42(04):1124-1131. 1.基本原理 1 .1演化博弈 与古典博弈理论相比较&#xff0c;演化博弈假设参与人是有限理性的&#xff0c;参与人会根据自己和他人的经验选…

【前端】网页开发精讲与实战 CSS Day 4

&#x1f680;Write In Front&#x1f680; &#x1f4dd;个人主页&#xff1a;令夏二十三 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd; &#x1f4e3;系列专栏&#xff1a;前端 &#x1f4ac;总结&#xff1a;希望你看完之后&#xff0c;能对你有…

Vue+Ts+Echart使用以及后台接口对接逻辑【实战】

官网传送门 一.echarts介绍 是一个js插件 性能好可流畅远行PC和移动设备 兼容主流浏览器 提供很多图标,用户且可自行修改。 2.使用npm安装 npm install echarts二.echarts基本使用、自定义图例、选择7天日期查询图表数据内容 获取本地时间以及当前时间前几天后几天 /*** 获…

安装Visual Studio Installer Projects 2022插件

VS主界面--扩展--管理扩展--搜索VS插件“Visual Studio Installer Projects 2022”并安装。

JavaWeb(5)——HTML、CSS、JS 快速入门

一、JavaScript 对象 二、JavaScript BOM对象 和 DOM对象 关于BOM主要对 Window 和 location 进行说明&#xff1a; 三、JavaScript 事件监听 事件绑定 常见事件 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8">…

ORA-01122 ORA-01208 故障处理---惜分飞

数据库突然故障ORA-01122 ORA-01208,导致实例crash Tue Jul 11 09:06:43 2023 Thread 1 cannot allocate new log, sequence 254989 Private strand flush not complete Current log# 3 seq# 254988 mem# 0: E:\APP\ADMINISTRATOR\ORADATA\xff\REDO03.LOG Thread 1 advanced …