Linux文件系统架构和共享文件方法

news2024/11/17 3:36:06

我是荔园微风,作为一名在IT界整整25年的老兵,今天来聊聊 Linux文件系统架构和共享文件方法。

在Linux环境中使用文件和目录是工作中不可回避的环节。当然,在我的博客里成立windows程序员看linux这个专题,主要还是因为微软也发布了自己的linux的发行版,使得我们不得不研究linux技术以适应这个时代。

Linux文件系统的架构

正如大家已经看到的,Linux目录结构的组织形式和Windows有很大的不同。首先Linux没有“盘符”的概念,也就是说Linux系统不存在所谓的C盘、D盘等。已建立文件系统的硬盘分区被挂载到某一个目录下,用户通过操作目录来实现磁盘读写。其次,Linux不存在像Windows\这样的系统目录。

在安装完成后,就有一堆目录出现在根目录下,并且看起来每一个目录中都存放着系统文件。最后一个小小的区别是,Linux使用正斜杠“/”而不是反斜杠“\”来标识目录。

既然Linux将文件系统挂载到目录下,那么究竟是先有文件系统还是先有目录?正确的说法是,Linux需要首先建立一个根“/”文件系统,并在这个文件系统中建立一系列空目录,然后将其他硬盘分区(如果有的话)中的文件系统挂载到这些目录中。

理论上说,可以为根目录下的每一个目录都单独划分一个硬盘分区,这样根分区的容量就可以设置得很小(因为几乎所有的东西都存放在其他分区中,根分区中的目录只是起到了“映射”的作用),不过这对于普通用户而言没有太大必要。

如果某些目录没有特定的硬盘分区与其挂钩的话,该目录中的所有内容将存放在根分区中。

那究竟什么是文件系统?这个问题将在后面的帖子详细讨论。这里大家只要简单地把它理解为“磁盘”或者“分区”的同义词就可以了。

要理解Linux的文件系统架构,看来的确需要耗费一定的脑力。如果经过努力仍然不明白上面这些文字在说些什么,一个好的建议是:不要管那么多,先使用。没有人会为了使用机床而首先去学习PLC原理,但一个接触了几年机床的人总能对PLC是什么这个问题说上几句。所以无论如何,首先去实践。

下面列出了文件系统中主要目录的内容。 

/bin      构建最小系统所需要的命令(最常用的命令) 
/boot      内核与启动文件 
/dev      各种设备文件 
/etc      系统软件的启动和配置文件 
/home      用户的主目录 
/lib      C编译器的库 
/media      可移动介质的安装点 
/opt      可选的应用软件包(很少使用) 
/proc      进程的映像 
/root      超级用户root的主目录 
/sbin      和系统操作有关的命令 
/tmp      临时文件存放点 
/usr      非系统的程序和命令 
/var      系统专用的数据和配置文件 


和你的伙伴共享文件 

大家是否一直在困惑一个事情,总是听说在很久以前,很多很早用上linux服务器的国外高校通过在学校架设linux服务器来共享一些课程的文件,大家能通过这种共享来协作完成一个大的程序或其他工作。那这是怎么做到的呢?我们来看一下。

共享文件对一个团队而言非常重要。团队的成员常常需要在一台服务器上共同完成一项任务(如开发一套应用软件)。下面介绍如何实现用户间文件的共享。假设这个团队的成员在服务器上的用户名分别是hangzhou、quzhou、ningbo和shaoxing, 它们都属于workgroup这个用户组,可以用以下的命令模拟这个场景。 

##新建一个名为workgroup的用户组 
$ sudo groupadd workgroup 

##新建用户, 并归入workgroup组 
$ sudo useradd -G workgroup hangzhou 
$ sudo passwd hangzhou        ##为用户hangzhou设置登录密码 

$ sudo useradd -G workgroup quzhou 
$ sudo passwd quzhou       ##为用户quzhou设置登录密码 

$ sudo useradd -G workgroup ningbo 
$ sudo passwd ningbo        ##为用户ningbo设置登录密码 

$ sudo useradd -G workgroup shaoxing 
$ sudo passwd shaoxing       ##为用户shaoxing设置登录密码 

提示:如果大家对如何协作开发大型程序感兴趣的话,可以使用版本控制系统。 

接下来,我们继续说前面的事情,然后在/home目录下建立一个名为work的目录,作为这个小组的工作目录,注意需要root权限。

$ cd /home         ##切换到/home目录

$ sudo mkdir work      ##建立一个名为work的目录
  

现在,任何人都可以访问这个新建的目录,而只有root用户才拥有该目录的写权限。现在希望让workgroup组的成员拥有这个目录的读写权限,并禁止其他无关的用户查看这个目录。
  

$ sudo chgrp workgroup work/      ##将work目录所有权交给workgroup组

$ sudo chmod g+rwx work/  ##增加workroup组对work目录的读、写、执行权限

$ sudo chmod o-rwx work/        ##撤销其他用户对work目录的读、写、执行权限
   

接下来需要将这个目录交给一个组长quzhou(现在work目录的所有者还是root用户)

$ sudo chown quzhou work/           ##将work目录所有者更改为quzhou用户

现在,所有属于这个组的成员都可以访问并修改这个目录中的内容了,而其他未经授权的用户(除了root)则无法看到其中的内容。

举例来说,quzhou在/home/work目录下新建了一个名为test的空文件,那么同属一个组的用户shaoxing如果认为这个文件没有必要,可以有权限删除它。
 

$ su quzhou        ##切换到用户quzhou

$ cd /home/work/

$ touch test        ##/建立一个空文件test

$ su shaoxing  ##切换到用户shaoxing

$ cd /home/work/

$ rm test           ##删除test文件
 

作者简介:荔园微风,1981年生,高级工程师,浙大工学硕士,软件工程项目主管,做过程序员、软件设计师、系统架构师,早期的Windows程序员,Visual Studio忠实用户,C/C++使用者,是一位在计算机界学习、拼搏、奋斗了25年的老将,经历了UNIX时代、桌面WIN32时代、Web应用时代、云计算时代、手机安卓时代、大数据时代、ICT时代、AI深度学习时代、智能机器时代,我不知道未来还会有什么时代,只记得这一路走来,充满着艰辛与收获,愿同大家一起走下去,充满希望的走下去。

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

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

相关文章

LwIP系列(4):ARP协详解

前言 对于应用程序而言,我们与其他设备、服务通信,主要通过域名、IP进行通信,而以太网底层驱动,最终是通过MAC地址来表示设备的唯一标识,即IP是逻辑地址,并不是物理地址。在上一篇文章中,我们也…

【ArcGIS Pro二次开发】(45):手搓一个工具执行进度框

我在之前做的工具中,UI这部分基本没怎么深入,都是直接用的现成的控件。 其中有一个问题比较突出,就是没有工具执行的进度框提示。曾经也用过系统自带的信息提示框和进度条,但太简陋,确实不好用。于是就想抄一个进度框…

Linux 读文件 - readahead预读算法

顺序读场景 intmain{charc[ 4096];intin -1;in open( "news.txt", O_RDONLY);intindex 0;while(read(in, &c, 4096) 4096){printf( "index: %d,len: %ld.\n",index, strlen(c));memset(c, 0, sizeof(c));index;} 数据结构 /** Track a single fi…

CentOS7 静默方式安装 Oracle19C

CentOS7 静默方式安装 Oracle19C 操作系统:CentOS7 Oracle: 19C 安装常用工具和依赖 yum -y install vim tar net-tools wget perl python3 readline* deltarpm python-deltarpm \zip unzip bc compat-libcap1* compat-libcap* binutils compat-libstdc…

最近的感悟与总结

目录 一、判别填鸭、与被填鸭的思考讲解人:听者: 二、最近感悟:三、再来三道数学题吧:四、总结 一、判别填鸭、与被填鸭的思考 讲解人: 1.是否在讲解过程中增加了知识认识的维度?(具体是什么,…

08_Linux按键输入

目录 Linux下按键驱动原理 修改设备树文件 添加KEY设备节点 按键驱动程序编写 编写测试APP 运行测试 Linux下按键驱动原理 按键驱动和LED驱动原理上来讲基本都是一样的,都是操作GPIO,只不过一个是读取GPIO 的高低电平,一个是从GPIO输出高低电平。实现按键输入,在驱动程序…

nginx的安装与自启动配置

1. nginx源码下载 nginx源码下载 2. nginx编译安装 2.1 解压安装包 tar -zxvf nginx-1.24.0.tar.gz2.2 编译安装 cd nginx-1.24.0 ./configure make make install执行./configure时可能出现如下的error,需要安装依赖库: 缺少pcre库 下载pcre安装包…

链码的安装、实例化、查询、调用

目录 1、首先保证网络已经处于启动状态 2、进入CLI容器 3、检查当前节点已经加入到哪些通道中(刚进来,默认是 peer0.example.com) 链码的安装 1、检查通道名称是否设置正确 2、使用install安装链码 3、实例化链码 4、查詢链码 发起交易 …

English Learning - L3 作业打卡 Lesson7 Day52 2023.6.27 周二

English Learning - L3 作业打卡 Lesson7 Day52 2023.6.27 周二 引言🍉句1: And that is when it dawned on me that I didn’t have to be 5,5 ft. anymore.成分划分弱读连读爆破语调 🍉句2: I could be as tall as I wanted, or as short as I wanted …

【电子学会】2023年05月图形化三级 -- 躲避陨石

文章目录 躲避陨石1. 准备工作2. 功能实现3. 设计思路与实现(1)角色、舞台背景设置a. 角色设置b. 舞台背景设置 (2)脚本编写a. 角色:Rocketshipb. 角色:Ball 4. 评分标准5. 知识块 躲避陨石 飞船在陨石乱飞…

MySQL数据库第一课 ---------安装

作者前言 欢迎小可爱们前来借鉴我的gtiee秦老大大 (qin-laoda) - Gitee.com 目录 虚拟环境虚拟环境 安装虚拟机 自主安装 简易安装 ———————————————————————————————————————— 虚拟环境虚拟环境 我们现在运行代码的环境是在 PyCharm…

大型语言模型作为属性化训练数据生成器

大型语言模型作为属性化训练数据生成器,提出一种使用多样化属性提示的数据生成方法,可以生成具有多样性和属性的训练数据,从而提高了模型的性能和数据生成的效率。 动机:大型语言模型(LLM)最近被用作各种自然语言处理(NLP)任务的…

从零开始——腾讯云服务器安装运行部署教程

一、腾讯云 1、购买腾讯云服务器 现在腾讯云服务器有优惠活动(大家可以在网上搜索各个服务器的优惠活动,有很多) 活动链接:上云精选_云服务器秒杀_开发者上云推荐-腾讯云 (tencent.com) 这里我选2G/2核/4M/50G轻量级服务器 这…

Linux基础服务6——Apache

文章目录 一、基本了解1.1 自带工具1.2 服务配置文件1.3 访问控制法则1.4 web相关的命令1.4.1 curl命令1.4.2 httpd命令 二、安装配置2.1 安装服务2.2 访问网页2.3 虚拟主机配置2.3.1 相同ip,不同端口2.3.2 相同端口,不同ip2.3.3 域名访问 三、https3.1 …

深度剖析 Linux 伙伴系统的设计与实现

目录 伙伴系统的核心数据结构 总结: 到底什么是伙伴 伙伴系统的内存分配原理 伙伴系统的内存回收原理 伙伴系统的实现 从 CPU 高速缓存列表中获取内存页 伙伴系统的核心数据结构 如上图所示,内核会为 NUMA 节点中的每个物理内存区域 zone 分配一个…

《计算机网络--自顶向下方法》第四章--网络层:数据平面

4.1网络层概述 每台路由器的数据平面的主要作用是从其输入链路向其输出链路转发数据报;控制平面的主要作用是协调这些本地路由器转发动作,使得数据报沿着源和目的地主机之间的路由器路径进行端到端传送 路由器具有截断的协议栈,即没有网络层…

[RISC-V]Milk-V开发板 i2c测试oled及波形输出

I2C3 引脚图 修改i2c3复用功能 build\boards\cv180x\cv1800b_sophpi_duo_sd\u-boot\cvi_board_init.c //I2C3 pin6 7 PINMUX_CONFIG(SD1_CMD, IIC3_SCL); PINMUX_CONFIG(SD1_CLK, IIC3_SDA);扫描I2C3上的设备 [rootcvitek]~# i2cdetect -y -r 3 0 1 2 3 4 5 6 7 8 9 a b c …

大数据Doris(五十四):BACKUP数据备份原理和语法

文章目录 BACKUP数据备份原理和语法 一、BACKUP数据备份原理 1、快照及快照上传 2、元数据准备及上传 二、BACKUP数据备份语法 BACKUP数据备份原理和语法 通过Doris数据导出的各种方式我们可以将Doris中的数据进行备份,除了export方式之外,Doris 还…

高压线路零序电流方向保护程序逻辑原理(二)

二、零序电流方向保护的采样中断服务程序 零序电流方向保护与其他微机保护的采样中断服务程序相同,均有电压求和自检和电流求和自检及相电流差突变量起动元件DI1。零序电流方向保护的采样中断服务程序中最突出的问题是通过3U。突变量元件来实现闭锁保护&#xff0c…

使用Dependency Walker和Process Explorer排查程序缺少ucrtbase.dll等运行时库以及报0xC000007B错误问题总结

目录 1、问题描述 2、分析软件问题的常用分析工具 3、使用Dependency Walker排查启动程序时报找不到ucrtbase.dll、vcruntime140.dll等运行时库的问题 3.1、使用Dependency Walker查看exe程序的库依赖关系,排查找不到ucrtbase.dll、vcruntime140.dll库问题 3.2…