关于Ubuntu20.04文件系统思考

news2024/10/1 7:39:26

文章目录

        • 问题产生
        • Ubuntu文件系统中普通用户可读写地址
        • Ubuntu文件系统
        • Ubuntu文件系统详解
          • 一级目录
          • 二级目录
        • 查找Ubuntu中软件安装位置
        • Ubuntu修改文件权限

问题产生

使用electron框架开发桌面端跨平台软件时,当开发完成的程序部署到Ubuntu上,系统无法产生日志文件
针对上述问题开始认为是electron程序没有root权限,所以无法创建;后来思考可能是Ubuntu文件系统的权限问题

Ubuntu文件系统中普通用户可读写地址

  • 因为用户安装软件后不可能自己修改文件系统的权限,所以首先的解决方法是找到普通用户可以操作的文件夹地址
  • /home/用户名/ 这个路径下普通用户是可以读写的,但是程序中生成日志的文件地址如/logs 我们不能确定用户名 分别是什么,所以这种方式先放弃(应该是有方法可以获得用户名的)
  • 下面列出普通用户可以读写的路径
    • /tmp/
    • /var/tmp/
    • /var/crash
    • /var/lock
    • /var/metrics
  • 接下来要思考Ubuntu系统中的var文件夹的作用:该目录和usr类似,首先是根目录下的子目录,也可以作为单独的文件系统,用于存储各种可变长的数据文件(如日志文件)、暂存文件或待处理的临时文件
  • Ubuntu的文件系统参考下文
  • 所以我们可以把软件产生的日志文件存储到上述的普通用户可读写目录中
  • 其实最好的选择是将日志文件保存到/tmp目录中,因为该目录下普通用户都有创建和删除文件夹权限

Ubuntu文件系统

在这里插入图片描述
上图标记处权限的大小:None < List files only < Access files < Create and delete files;最大的权限是Create and delete files

  • None:不能进行任何操作
  • List files only:只可以展示本文件夹的所有内容,不可以进入下级目录
  • Access files:可以进入到本文件夹下的所有目录
  • Create and delete files:最高的权限,可以在本文件夹中任意的创建和删除文件

Ubuntu文件系统详解

一级目录
  • /bin:包含普通用户和系统管理员可以共享的各种通用程序,如bash、dd、gzip、grep、mv、mkdir等常用的基本命令。

  • /boot:包含系统引导程序GRUB及其配置文件、linux内核文件vmlinuz和磁盘内存映象文件initrd.img等重要引导文件。

  • /dev:包含系统支持的所有设备文件。具体来说,console表示控制台,lp0表示打印机,mem表示系统的物理内存,sda表示连接到主控制器的第一个磁盘,ttyXX表示串口设备。

  • /etc:包含系统管理和维护方面的所有配置文件。

  • /home:包含所有普通用户的主目录。

  • /lost+found:用于存储fsck命令在检测与修复文件系统时删除的文件和目录。

  • /media:包含移动存储介质的挂载点,插入U盘,系统会自动将U盘挂在到该目录的某个子目录。

  • /mnt:包含所有自定义的文件系统的挂载点,可以挂在任何文件系统,包含NFS或CIFS网络文件系统。

  • /opt:应用程序等附加软件的安装目录,类似于windows系统中的Program Files目录。

  • /proc:虚拟文件目录,系统关闭时为空目录,系统运行时进程文件系统根目录,其中的部分文件系统分别对应当前正在运行的进程,可以 用于访问当前进程的地址空间。

  • /root:超级用户root的主目录

  • /sbin:超级用户管理员的常用工具,如管理和维护、系统引导和回复命令集合。

  • /srv:分担了var目录的一些功能,保存了一些网络服务所需的数据文件。

  • /sys:和proc一样的虚拟目录,系统各种设备信息的根目录,如block子目录中包含有磁盘及磁盘分区的配置信息。

  • /tmp:临时文件目录,用于存储系统运行过程生成的临时文件,也可以供用户存储自己的临时文件。需要注意的是,只是文件的创建者才可以删除响应文件。

  • /usr:既可以作为根目录下的一个子目录,其中保存系统提供的各种共享数据(用户命令、库函数、头文件、文档等),又可以作为一个单独的文件系统,可以认为是对根木的一个递归目录,是的文件系统具有更大的灵活性。

  • /var:该目录和usr类似,首先是根目录下的子目录,也可以作为单独的文件系统,用于存储各种可变长的数据文件(如日志文件)、暂存文件或待处理的临时文件。

二级目录
  • /boot/grub:其中存有GRUB配置文件,一级三种不同类型的初始引导程序。

  • /etc/apt:包含软件管理工具使用的配置文件,如sources.list。

  • /etc/cron.d:用于存储cron进程调度运行后台进程所用的配置文件和控制文件。其它有关目录cron.hourly,cron.daily,cron.weekly,cron.monthly四个目录。

  • /etc/init.d:用于存储系统启动引导过程中需要init调度执行的脚本文件。

  • /etc/network:包含网络接口的配置文件interfaces,一级相关的配置文件。

  • /etc/X11:包含X服务器使用的各种配置文件,如xorg.conf等。

  • /usr/bin 包含用户经常使用的各种命令

  • /usr/include 用于存储各种C语言头文件。这个目录及其子目录是开发人员经常引用的文件。其中sys、linux和bits等子目录中定义的数据结构,对于深入学习、理解和掌握Linux系统具有极大的参考价值

  • /usr/lib 其中包含各种共享的库函数,可供程序员已静态或动态的方式链接自己开发的程序

  • /usr/sbin 包含系统引导完成之后系统管理员经常使用的各种系统管理和维护命令

  • /usr/share 共享目录 包含man(联机文档的根目录)、info(GNU info文档的根目录)、doc(各种软件包特定的文档)、locale(语言环境)、vim(用户指南)、zoneinfo(时区定义)等子目录

  • /usr/src 存放linux系统内核的源代码和文档等

  • /var/lib 存储软件包特定的动态链接共享库、配置文件、数据文件和状态信息等

  • /var/log 系统守护进程日志文件的存储目录,其中包括lastlog(每个用户最后一次登录的时间)、messages(由syslogd记录的所有内核和系统程序的日志消息)及wtmp(所有用户的系统注册/注销记录)等重要文件。位于/var/log中的文件会不断地增长,因而要求定期备份或删除,通常linux系统均采用日、周或月为时间周期,定期执行例程检查,以循环截取的方式,删除过时的数据,保留一定时间范围的最新数据,使文件的大小保持一个适中的规模。在Ubuntu Linux系统中,每日将会执行一次logrotate程序,检查并处理系统日志文件。

  • /var/lock 用于存储各种服务进程或应用程序访问特定的设备或文件时设置的封锁文件

  • /var/run 系统运行信息文件的根目录,其中包括各种.pid文件中存有守护进程的PID。另外一个最典型的文件是/var/run/utmp,其中包含当前系统中用户注册信息

  • /var/spool 用于缓存各种等待处理的文件,如打印服务等。通常每类待处理的缓存文件均位于各自的子目录中,如/var/spool/cups等

  • /var/tmp 用于存储各种临时文件

查找Ubuntu中软件安装位置

可以尝试使用如下命令

// 方式1
type 软件名
// 方式2
ps aux | grep 软件名
// 方式3
使用文件搜索命令 find 、locate、whereis查找
// 方式4
使用which命令查看运行文件所在的路径
// 方式5
dpkg -L 软件名 #显示包含此软件包的所有位置

Ubuntu修改文件权限

在这里插入图片描述

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

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

相关文章

推荐3款远程办公软件

一款好用的远程办公软件能够大大的提高我们的办公效率&#xff0c;在这篇文章中&#xff0c;我们将为您推荐几款常见又好用的远程办公软件&#xff0c;以帮助您能更加高效的远程办公。电脑远程办公软件有很多&#xff0c;本文主要从团队沟通软件、视频会议软件、远程控制软件等…

距离不是拦截我们前进的主因,与社科院杜兰金融硕士一起奔赴山海

最近有咨询社科院杜兰金融管理硕士项目的同学反馈他在西安&#xff0c;读研来北京上课太远了。一直在纠结要不要申请&#xff0c;其实距离不是问题&#xff0c;相向而行才是关键。在项目就读的同学好多也是来自外地&#xff0c;他们克服了种种困难来到项目学习&#xff0c;就是…

kubernetes教程 --service详解

Service 介绍 在kubernetes中&#xff0c;pod是应用程序的载体&#xff0c;我们可以通过pod的ip来访问应用程序&#xff0c;但是pod的ip地址不是固定的&#xff0c;这也就意味着不方便直接采用pod的ip对服务进行访问。 为了解决这个问题&#xff0c;kubernetes提供了Service…

行业分析| 智能无人自助设备

智能无人自助设备运用二维码技术、音视频通信技术和AI智能技术等相结合&#xff0c;提供了无人超市、自动售货机、智能快递柜等。当下很多商业地区或社区&#xff0c;都放置了智能无人自助设备&#xff0c;不仅可以为商家节省时间和精力、提升运营环境&#xff0c;也可以为众多…

宽刈幅干涉雷达高度计SWOT(Surface Water and Ocean Topography)卫星进展(待完善)

> 以下信息搬运自SWOT官方网站等部分文献资料&#xff0c;如有侵权请联系&#xff1a;sunmingzhismz163.com > 排版、参考文献、部分章节待完善 > 2023.02.17.22:00 初稿概况 2022年12月16日地表水与海洋地形卫星SWOT (Surface Water and Ocean Topography)在加利福尼…

SpringCloud(一)注册中心

注册中心eureka服务端客户端负载均衡nacos服务端客户端nacos分级存储模型配置集群属性nacos环境隔离-namespace临时实例和非临时实例Eureka和Nacos的异同负载均衡策略饥饿加载eureka 服务端 依赖 <!-- eureka注册中心服务端依赖--><dependencies><depe…

【数据结构与算法】1.树、二叉树、字典树、红黑树

文章目录简介1.树 (Tree)2.二叉树&#xff08;Binary Tree&#xff09;2.1.二叉树数据结构2.2.二叉树的三种遍历方式3.二叉查找树(Binary Search Tree)3.1.二叉查找树的概念和定义3.2.二分查找算法4.字典树(Trie)5.红黑树(Red-Black Tree)简介 本章主要讲解一些树的基本概念,二…

windows10/11,傻瓜式安装pytorch(gpu),在虚拟环境anaconda

安装anaconda地址 &#xff1a;Anaconda | The Worlds Most Popular Data Science Platform安装选项全默认点击next就行。查看支持cuda版本cmd命令行输入nvidia-smi。下图右上角显示11.6为支持的cuda版本。要是显示没有nvidia-smi命令。得安装nvidia驱动&#xff0c;一般情况都…

字符串匹配 - Overview

字符串匹配(String Matchiing)也称字符串搜索(String Searching)是字符串算法中重要的一种&#xff0c;是指从一个大字符串或文本中找到模式串出现的位置。字符串匹配概念字符串匹配问题的形式定义&#xff1a;文本&#xff08;Text&#xff09;是一个长度为 n 的数组 T[1..n]&…

Nodejs的安装

1. Nodejs的真正用途 a. 一个javascirpt的运行环境 b. 运行在服务器&#xff0c;作为web server c. 运行在本地&#xff0c;作为打包&#xff0c;构建工具 2. Nodejs的下载和安装 a. 普通方式&#xff08;访问官网&#xff09; 下载对应系统版本即可&#xff08;个人学习可无需…

【数据结构与算法分析】介绍蛮力法以及相关程序案例

文章目录蛮力法之排序选择排序冒泡排序实际应用蛮力法之最近对和凸包问题最近对问题凸包问题蛮力法(brute force)&#xff0c;其本质跟咱常说的暴力法是一样的&#xff0c;都是一种简单直接地解决问题的方法&#xff0c;通常直接基于问题的描述和所涉及的概念定义进行求解。 蛮…

【嵌入式】HC32F460串口接收超时中断+DMA

一 项目背景 项目需要使用一款UART串口编码器&#xff0c;编码器的数据以波特率57600持续向外发送。但这组数据包没有固定的包头和校验尾&#xff0c;仅仅是由多圈圈数和单圈角度组成的六字节数据码&#xff0c;这样接收到的数组无法确定实际的下标&#xff0c;所以这边考虑用串…

8月起,《PMBOK®指南(第七版)》将被采用,考PMP的注意了!

PMP第七版教材采用时间定了&#xff01;&#xff01;&#xff01;2023年【8月开始】第一次使用第七版教材&#xff0c;通知明显指出&#xff0c;第六版的关键知识任然还是有效的。第七版做的调整还是蛮大的&#xff0c;首次提出了项目管理的 12 项原则和8个项目绩效域&#xff…

Java基础语法小结来啦

简单的来说&#xff0c;一个java的程序他是有一系列对象的集合组成&#xff0c;通过对这些对象相互间调用的方式协同工作&#xff0c;下面就是我有关于Java基础语法的一些小结。 一、return简单使用 下面来一个Java程序&#xff0c;表示的是在self1这个包中我们创建了一个名叫…

Skywalking ui页面功能介绍

菜单栏 仪表盘&#xff1a;查看被监控服务的运行状态&#xff1b; 拓扑图&#xff1a;以拓扑图的方式展现服务之间的关系&#xff0c;并以此为入口查看相关信息&#xff1b; 追踪&#xff1a;以接口列表的方式展现&#xff0c;追踪接口内部调用过程&#xff1b; 性能剖析&am…

GEE学习笔记 八十:批量下载影像

最近问如何批量导出集合的小伙伴非常多&#xff0c;一个一个回复太麻烦&#xff0c;我这里直接给一段例子代码吧&#xff1a; var l8 ee.ImageCollection("LANDSAT/LC08/C01/T1_SR"); var roi /* color: #d63000 */ee.Geometry.Polygon( [[[115.64960937…

从0到1一步一步玩转openEuler--17 openEuler DNF(YUM)检查更新

文章目录17.1 检查更新17.2 升级17.3 更新所有的包和它们的依赖DNF是一款Linux软件包管理工具&#xff0c;用于管理RPM软件包。DNF可以查询软件包信息&#xff0c;从指定软件库获取软件包&#xff0c;自动处理依赖关系以安装或卸载软件包&#xff0c;以及更新系统到最新可用版本…

Nacos框架服务注册发现和配置中心原理

文章目录1.简介2.整体架构和原理2.1 服务发现注册原理2.1.1 注册和拉取数据2.1.2 Server集群一致性2.1.3 健康检查2.2 配置中心原理2.2.1 支持功能和资源模型2.2.2 server集群数据一致性问题2.2.3 client和server的通信监听改动方式2.2.4 client拉取数据2.2.5 client请求server…

kubernetes教程 --Pod生命周期

Pod生命周期 pod创建过程运行初始化容器&#xff08;init container&#xff09;过程运行主容器&#xff08;main container&#xff09;过程 容器启动后钩子&#xff08;post start&#xff09;、容器终止前钩子&#xff08;pre stop&#xff09;容器的存活性探测&#xff08;…

利用设计模式、反射写代码

软件工程师和码农最大的区别就是平时写代码时习惯问题&#xff0c;码农很喜欢写重复代码而软件工程师会利用各种技巧去干掉重复的冗余代码。 业务同学抱怨业务开发没有技术含量&#xff0c;用不到设计模式、Java 高级特性、OOP&#xff0c;平时写代码都在堆 CRUD&#xff0c;个…