Linux03——文件系统及结构、命令

news2024/12/23 4:51:56

目录

一、前言

二、文件目录

三、文件系统

四、文件目录命令

五、系统信息命令

六、通讯网络命令

七、磁盘类命令

八、进程管理命令


一、前言

Linux特点是开放性遵循OSI国际标准;多用户每个用户有各自权限;多任务;GUI和系统调用界面;丰富的网络功能和良好的可移植性。

操作系统结构由内向外包括Kernel、Shell、Utility。Kernel系统启动时将内核装入内存;管理系统各种资源。Shell用户界面,提供用户与内核交互接口;命令解释器,提供强大的编程环境,如bash,sh等。Utility提供各种管理工具,应用程序,如gcc,vi,ls等。

硬盘最小安装三个分区:/根分区、/swap交换分区、/boot引导分区。/boot引导分区目录放置系统内核及驱动模块引导程序,为了避免文件系统损坏无法启动,需要独立分区。/swap用于当系统物理内存不够用,将释放一部分空间以供当前运行的程序使用。不是所有从物理内存交换的数据放到Swap中,有相当一部分数据直接交换到文件系统。

磁盘分区包括主分区、扩展分区、逻辑分区。主分区最多4个,其中一个主分区标志为“活动的”,包含一个引导程序。扩展分区是主分区之一,然后再将其细分为任意个逻辑分区,不可将目录安装在扩展分区上。逻辑分区最多11个。

二、文件目录

        对于Linux系统,一切皆文件,它是由文件系统堆砌而成,正确理解文件系统能最大程度帮助我们入手该系统。

Linux文件目录属于树状结构,需要掌握相对路径及绝对路径,以及文件系统的各种常见指令。

“-”前一级目录,“mkdir”创建一个目录,“touch”创建新文件,并对旧文件更新文件戳,“pwd”显示当前目录,“rmdir”删除当前目录文件,“ls”查看当前目录文件,“cp”复制目录,“mv”移动目录,“rm”删除目录。

/Linux系统根目录,包含所有目录
/binBinary存放用户的可执行程序,例如ls, cp,也包含其他Shell如bash等
/boot包含vmlinuz,initrd,img等启动文件,随便改动可能无法正常开机
/dev接口设备文件目录,如硬盘
/etcPasswd等系统设置与管理的文件
/etc/x11X Windows System的设置目录
/home用户主目录
/lib(/lib64)包含执行/bin和/sbin目录二进制文件所需的共享库函数Library
/mnt各项装置文件系统加载点,如/mnt/cdrom是光驱加载点
/opt提供空间较大的固定应用程序存储文件之用
/proc系统内核与程序执行的信息,进程
/root管理员主目录
/sbin系统启动时所需二进制程序
/tmp暂存盘目录
/usr用户使用系统命令或应用程序等信息
/usr/bin用户可执行程序
/usr/doc存放各式程序文件目录
/usr/include保存提供C语言加载头文件
/usr/include/X11保存提供X Windows程序加载的头文件
/usr/infoGNU程序文件目录
/usr/lib(/lib64)(/X11)函数库
/usr/local自行安装应用程序位置
/usr/man存放在线说明文件目录
/usr/sbin存放经常使用程序,如showmount
/usr/src系统源码文件
/usr/X11R6/binWindows 系统执行程序
/var有变动相关程序目录,如Log

三、文件系统

文件系统是操作系统中负责管理持久数据的子系统,负责把用户文件存到磁盘硬件中,断电不丢失。文件系统基本数据单位是文件,目的是对磁盘文件进行组织管理,组织方式不同会形成不同的文件系统。

3.1 概述

文件数据结构:索引节点Index node ,目录项directory entry,记录文件的元信息和目录层次结构。

索引节点(inode):记录文件元信息,如inode编号、文件大小、访问权限、创建时间、修改时间、数据在磁盘位置等基本信息,是文件的唯一标识,同样占用磁盘空间。

目录项(dentry):用来记录文件名字,索引节点指针以及其他目录项层级关联关系。多个目录项关联起来形成目录结构,目录项由内核维护的一个数据结构,不存放于磁盘,而是缓存在内存。内核会把已经读过的目录用目录项这个数据结构缓存在内存,下次读相同目录,只需从内存读取。

关系:索引节点唯一标识一个文件,目录项记录着文件名,多个目录项中的索引节点指向同一个文件。

目录也是文件用索引节点唯一标识,普通文件在磁盘保存数据,目录文件在磁盘保存子目录和文件。

3.2 文件系统类型

ext2文件系统:是早期的Linux技术,支持undelete反删除,操作反删除困难。目前建议ext3。

ext3文件系统:由ext2发展而来,支持大文件,不支持反删除操作。

reiserfs文件系统:支持大文件、反删除,操作反删除比较容易。

普通文件:文本文件用ASCII码形式存储

目录文件:d字母开头

设备文件:块设备文件b字母开头,字符设备文件c字母开头

3.3 如何存储

磁盘读写最小单位是扇区(512B),8个扇区组成一个逻辑块(4K)。索引节点是存储在硬盘上的数据,为了加速文件访问,通常会把索引节点加载到内存中。磁盘格式化会被分为三个存储区域超级块、索引节点区、数据块区。超级块存储文件系统的详细信息,比如块个数、块大小、空闲块等。索引节点区存储索引节点,数据块区存储文件或目录数据。超级块是当文件系统挂载时进入内存,索引节点区当文件被访问时进入内存。

文件系统在Linux系统启动时,会把文件系统挂载到根目录,这样才可以正常使用。

每个存储设备被格式化后应该有两部分,一部分是inode,另一部分是Block,inode用来存储数据文件头信息,信息包括文件大小,属主,归属用户组,读写权限。Block用来存储数据。

文件或目录权限包括9个字段构成:

 3.4 用户设置

用户组是具有相同特征的用户集合体,如相同的权限(查看、修改或执行某一命令)。用户和用户组是X对X。与用户相关配置文件/etc/passwd,与用户组相关的配置文件/etc/group。

管理用户命令

useradd、adduser: 添加用户。 userdel 删除用户。passwd 为用户设置密码。

usermod修改用户登录名等。finger查看用户信息。id查看用户UID、GID及所归属的用户组。

su用户切换工具。sudo通过另一个用户来执行命令,su是用来切换用户,然后通过切换到的用户来完成相应的任务。

管理用户组的工具

groupadd 添加用户组;groupdel删除用户组;groupmod修改用户组信息;groups显示用户所属用户组。

3.5 用户主目录文件

/etc/skel目录一般存放用户启动文件的目录,该目录由Root权限控制,当添加用户时,目录下的文件自动复制到新增加的用户家目录下。

/etc/skel目录下的文件都是隐藏文件类似.file格式,可以用过修改、添加、删除/etc/skel目录下的文件,来为用户提供一个统一标准默认用户环境。

使用useradd和adduser命令添加用户。

/etc/login.defs配置文件是当创建用户时的一些配置,如是否需要home,UID,GID的范围,用户期限等。

用户文件权限 umask:新创建文件默认不具有可执行允许权限:-rw-------;新创建的目录具有可执行允可权限:drwx--x--x;对于文件,文件权限是八进制666-umask,对于目录是八进制777-umask,如home umake 077 ,那么权限是700,也就是rwx------

用户权限定义- setuid/setgid,setuid setgid是让普通用户可以以root用户运行只有root账号才能运行的程序或者命令。setuid 设置用八进制基准4000,setgid是八进制2000,

四、文件目录命令

浏览目录命令:cd, dir,ls

浏览文件命令: cat,more, less

目录操作命令:mkdir, rmdir

文件操作命令:touch,vi , rm, cp, mv, ln, tar gzip, gunzip,whereis, whatis

find功能:用来寻找文件或目录 find 路径 匹配条件

grep:(Global search REgular expression and Print out the line)文本搜索工具,根据用户指定的模式对目标文本逐行进行匹配检查,打印匹配到的行。

 touch功能:生成一个空文件或修改文件存取/修改时间记录值。touch 参数 文件名

who/w:查看当前系统中有哪些用户登录

ln命令:在文件和目录之间建立链接, ln 参数 源文件或目录 目标文件或目录

  • 软链接:类似于 Windows 系统中给文件创建快捷方式,即产生一个特殊的文件,该文件用来指向另一个文件,此链接方式同样适用于目录。
  • 硬链接:文件的基本信息都存储在 inode 中,而硬链接指的就是给一个文件的 inode 分配多个文件名,通过任何一个文件名,都可以找到此文件的 inode,从而读取该文件的数据信息

软件包RPM red hat package manager,由Red Hat公司开发的一个开放性软件包管理系统,易于安装、升级与删除软件包,强大的查询功能,软件包验证,支持代码形式的软件包。

安装
rpm -ivh xxxx64.rpm


删除
rpm -e xxxx

升级
rpm -Uvh xxxx.rpm

更新: 检查指定的软件包日期,如果更新,则自动更新,否则不回安装。升级模式
下 rpm都会安装指定软件包。
rpm -Fvh xxxx.rpm

查询 安装内容
rpm -q xxxx
查询位置
rpm -ql package-name

tar打包命令:位于/bin目录下,讲指定文件或目录打包一个文件,不做压缩。gzip压缩为xxx.tar.gz文件。参数-c创建新的tar文件,-v显示运行过程信息,-f指定文件名,-z调用gzip压缩命令,-t查看压缩文件内容 -x解压tar文件

Linux系统下常见的是.gz文件压缩格式(gzip),zip命令可以将许多文件压缩成一个文件功能。gzip一般与tar一起使用。

将所有文件打包为test.tar扩展名.tar自行加上
tar -cvf test.tar *
打包为test.tar文件,再用gzip命令压缩
tar -zcvf test.tar.gz *
产看test.tar文件中包含哪些文件
tar -xvf test.tar
tar解压
tar -xvf test.tar
gz tar解压
tar -zxvf test.tar.gz
压缩文件不需要任何参数
gzip test.txt
显示压缩率
gizp -l xxx.txt.gz
解压缩
gunzip xxxx.tar.gz

date 命令:显示修改当前日期;cal显示日历;clock显示日期时间;

五、系统信息命令

dmesg:显示系统诊断信息、操作系统版本号、物理内存的大小及其他信息

df:查看文件系统各个分区占用情况。

du:查看某个目录中各级子目录所使用的硬盘空间数

du 参数 目录名

free:查看系统内存,虚拟内存(交换空间)大小占用情况

六、通讯网络命令

ftp 传输文件

telnet 登录到远程计算机, telnet 主机名/IP

netstat查看网络状态 -t--tcp显示TCP传输协议连线状况

finger 查看某个使用者信息 -s 显示用户名相关信息;-l除了-s选项信息外还有用户主目录信息

ping 查询某个机器是否在工作;[选项] 主机名/IP地址; -c数目在发送指定数目包后停止

route 设置系统网络路由 -f清除所有网关入口路由表;-p与add命令使路由具有永久性

ftp文件传输登录后执行命令:

ls列出远程机当前目录
cd在远程机上改变工作目录
lcd在本地机上改变工作目录
ascii设置文件传输为ASCII模式
binary设置文件传输为二进制模式
close终止当前ftp会话
hash每次传输完数据缓冲区中的数据后就显示一个#号
get(mget)从远程机传送指定文件到本地机
put(mput)从本地机传送文件到远程机
open连接远程ftp站点
quit断开与远程机的连接并退出ftp
?显示本地帮助信息
!转到shell中
passive进入被动传输方式
prompt设置多个文件传输时交互提示

七、磁盘类命令

fdisk 某个目录路径

-l查看磁盘容量机分区大小;heads是磁盘面;sectors是扇区;cylinders是柱面;

八、进程管理命令

进程(ID/PID)分为交互进程、批处理进程、守护进程。守护进程是系统在开机时通过脚本自动激活启动或超级管理用户root来启动。它是一直运行的,所以它所处的状态是等待请求处理任务,如httpd服务器一直运行,等待用户来访问,也就是等待任务处理。

启动进程的用户ID是UID,所属的组是GID;进程状态分为运行R、休眠S、僵尸Z;

ps监视进程工具,ps -eLf ; ps axms获得线程信息;ps -ejH; ps axjf获取进程树;

USER 进程的属主;PID 进程ID; PPID 父进程的ID;%CPU 进程占用CPU百分比;%MEM 占用内存百分比;NI 进程的NICE值,数值大表较少占用CPU时间;VSZ进程虚拟大小;RSS驻留页数量;TTY 终端ID;WCHAN 正在等待进程资源;START 启动进程时间;TIME进程消耗CPU时间;COMMAND 命令名称和参数。STAT 进程状态,R正在运行 S休眠状态 T停止或被追踪 Z僵尸进程,<优先级高进程,N优先级低进程,L 页上锁,s进程领导者,l多线程,+后台进程组;

pgrep通过程序名查询进程的工具,一般是判断程序是否正在进行。

kill、killall、pkill、xkill终止一个进程或者正在运行的程序,一般与ps和pgrep一起使用。

top动态监视系统任务的工具,输出结果是连续的。

nice和renice是显示进程优先级。

 参考:

一文读懂Linux 文件系统 (360doc.com)

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

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

相关文章

Java每日一练(20230411)

目录 1. 同构字符串 &#x1f31f; 2. 随机字符串 &#x1f31f; 3. 交错字符串 &#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 同构字符串 给定两个…

京东技术专家首推:Spring微服务架构设计,GitHub星标128K

前言 本书提供了实现大型响应式微服务的实用方法和指导原则&#xff0c;并通过示例全面 讲解如何构建微服务。本书深入介绍了Spring Boot、Spring Cloud、 Docker、Mesos和Marathon&#xff0c;还会教授如何用Spring Boot部署自治服务&#xff0c;而 无须使用重量级应用服务器…

SAP开发环境ABAP的搭建(客户端和服务器),Developer Key和AccessKey的绕过方法

目录 一.前言 二.客户端GUI安装 1.下载好SAP GUI 750 2.解压后找到SAPGUISetup.exe 3.安装 4.安装完整教程 三.服务端搭建 1.安装VmWare虚拟机 2.下载虚拟机镜像 3.打开虚拟机 4.调整内存大小 5.启动虚拟机 四.创建程序 1.创建包 2.创建程序 3.Developer Key和A…

C语言——变参函数

一、定义 一般函数的参数列表是固定的&#xff0c;所以在调用时传入的实参的个数和格式必须和实参匹配&#xff1b;在函数式中&#xff0c;不需要关心实参&#xff0c;直接调用形参即可。 变参函数&#xff0c;就是参数的个数及类型都不确定的函数&#xff0c;常见变参函数如pr…

jenkins的slave节点构建java失败

背景&#xff1a; 主节点构建没问题的&#xff0c;为了缓解压力增加了个从节点&#xff0c;但是发现同个应用分配到从节点构建时报错&#xff0c;主节点构建就正常。但是我的从节点是把主节点克隆过去的&#xff0c; 理论环境配置java——maven啥都是一模一样才是。不理解。 …

Markdown基础语法:快速入门指南

什么是Markdown Markdown是一种轻量级的标记语言&#xff0c;它的目标是让文本内容更加易读、易写和易于转换成HTML等格式。Markdown语法简单、直观&#xff0c;适合用于写作、博客、笔记、文档等场景。Markdown最初由John Gruber和Aaron Swartz于2004年创建&#xff0c;现在已…

从手动实现web开发到借助IDEA实现web开发的具体流程分析,详细介绍webapp的目录结构和web站点的欢迎页面的设置

使用Tomcat手动实现WEB开发 实现静态的web应用(没有java小程序) 第一步&#xff1a;找到CATALINA_HOME\webapps目录(Tomcat服务器要求所有的web应用都要放到webapps目录下, 这样它才能找到你的web应用) 第二步&#xff1a;在CATALINA_HOME\webapps目录下新建一个oa的子目录(…

闭环控制里的采样周期和执行周期

运动控制对系统的实时性要求都非常高。所以大家可以看到运动控制总线的刷新周期越来越快,越来越短。今天我们讨论下实时性不高的总线会带来哪些问题和挑战,以及这种大延时总线如何解决实时性问题,运动控制实时性问题还可以参看下面的文章博客: 随动控制之跟随给定和跟随反…

Python一行命令搭建HTTP服务器并外网访问【内网穿透】

文章目录1.前言2.本地http服务器搭建2.1.Python的安装和设置2.2.Python服务器设置和测试3.cpolar的安装和注册3.1 Cpolar云端设置3.2 Cpolar本地设置4.公网访问测试5.结语转载自远程内网穿透的文章&#xff1a;【Python】快速简单搭建HTTP服务器并公网访问「cpolar内网穿透」 1…

20从零开始学Java之牛闪闪的for循环是怎么用的?

作者&#xff1a;孙玉昌&#xff0c;昵称【一一哥】&#xff0c;另外【壹壹哥】也是我哦 千锋教育高级教研员、CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者 前言 在前面的文章中&#xff0c;壹哥给大家讲解了顺序结构、分支结构&#xff0c;接下来我们就来学习Java…

面试篇-Java输入输出三兄弟大比拼:IO、NIO、AIO对比分析

1、Java I/O发展史 Java IO&#xff08;Input/Output&#xff09;是Java语言中用于读写数据的API&#xff0c;它提供了一系列类和接口&#xff0c;用于读取和写入各种类型的数据。下面是Java IO发展史的简要介绍&#xff1a; JDK 1.0&#xff08;1996年&#…

Android进阶宝典—事件冲突的解决方法

相信伙伴们在日常的开发工作中&#xff0c;一定会遇到事件冲突的问题&#xff0c;e.g. 一个页面当手指滑动的时候&#xff0c;会翻到下一页&#xff1b;点击的时候&#xff0c;需要响应页面中的元素点击事件&#xff0c;这个时候如果没有处理滑动事件&#xff0c;可能遇到的问题…

c++的多态

目录 1、多态 1.1多态的构成条件 1.2多态的好处 2、虚函数 2.1虚函数重写 2.2虚函数的默认参数 2.3纯虚函数重写 2.4抽象类 2.5虚析构&#xff0c;纯虚析构重写 3、重载、覆盖(重写)、隐藏(重定义)的对比 ​编辑 多态是c面向对象三大特性之一 程序调用函数时&#…

人人都是数据分析师-数据分析之数据图表可视化(下)

当前的BI报表、运营同学的汇报报告中数据图表大多为 表格、折线图、柱状图和饼图&#xff0c;但是实际上还有很多具有代表性的可视化图表&#xff0c;因此将对常见的可视化图表进行介绍&#xff0c;希望这些图表可视化方法能够更好的提供数据的可用性。 人人都是数据分析师-数…

QT网络通信-服务器(一)

目录 1、简介 2 、TCP通信流程 3、基于TCP通信所需要的类 4、QT端设计 4.1项目建立 4.2 TCP网络程序设计 4.2.1 QT界面设计 4.2.2 UI布局 4.2.3 控件重命名 5、widget.h 6、widget.c 1、简介 网络有TCP和UDP。本文主要通过QT完成TCP网络设计&#xff0c;通过ESP8266与单片…

JavaEE简单实例——一些基本操作

在配置类中配置页面解析器 之前我们使用页面解析器是在XML配置文件中使用的&#xff0c;但是当我们试用了纯注解式的整合之后&#xff0c;我们没有了配置文件&#xff0c;要如何去将之前我们在配置文件中编写的前端控制器&#xff0c;以及静态资源的释放这些功能配置添加到项目…

二叉排序树(二叉查找树)基本操作_20230417

二叉排序树&#xff08;二叉查找树&#xff09;基本操作_20230417 前言 二叉排序树首先是一颗二叉树&#xff0c;它不同于常规二叉树的地方在于&#xff0c;如果左子树不为空&#xff0c;那么左子树上所有结点的值都不大于根节点的值&#xff0c;如果右子树不为空&#xff0c…

从GPT-4、文心一言再到Copilot,AIGC卷出新赛道?

业内人都知道&#xff0c;上一周是戏剧性的&#xff0c;每一天&#xff0c;都是颠覆各个行业&#xff0c;不断 AI 化的新闻。 OpenAI发布GPT-4、百度发布文心一言、微软发布Microsoft 365 Copilot 三重buff叠加&#xff0c;打工人的命运可以说是跌宕起伏&#xff0c;命途多舛了…

pmp证书报考流程+pmp备考+pmp学习干货+pmp指南汇总

2023年共有4次PMP考试&#xff0c;分别是3月、5月、8月、11月&#xff0c;由于3月份考试不开放新报名&#xff0c;所以第一次备考PMP的同学可以选择参加5月份考试。那么&#xff0c;现在备考5月份PMP考试还来得及吗&#xff1f; 现在开始备考5月PMP考试&#xff0c;时间是非常…

Scrum

目录 1、Scrum&#xff1a; 敏捷里的3355&#xff1a; 什么是Scrum&#xff1a; Scrum的优点&#xff1a; Scrum的理论&#xff1a; Scrum的三大支柱&#xff1a; 透明性&#xff1a; 检视&#xff1a; 调整&#xff1a; 2、Scrum的角色简介&#xff1a; Scrum各角色…