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

目录

一、前言

二、文件目录

三、文件系统

四、文件目录命令

五、系统信息命令

六、通讯网络命令

七、磁盘类命令

八、进程管理命令


一、前言

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

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

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

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

Linux03——文件系统及结构、命令_第1张图片

二、文件目录

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

Linux03——文件系统及结构、命令_第2张图片

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

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

Linux03——文件系统及结构、命令_第3张图片

/ Linux系统根目录,包含所有目录
/bin Binary存放用户的可执行程序,例如ls, cp,也包含其他Shell如bash等
/boot 包含vmlinuz,initrd,img等启动文件,随便改动可能无法正常开机
/dev 接口设备文件目录,如硬盘
/etc Passwd等系统设置与管理的文件
/etc/x11 X 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/info GNU程序文件目录
/usr/lib(/lib64)(/X11) 函数库
/usr/local 自行安装应用程序位置
/usr/man 存放在线说明文件目录
/usr/sbin 存放经常使用程序,如showmount
/usr/src 系统源码文件
/usr/X11R6/bin Windows 系统执行程序
/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)。索引节点是存储在硬盘上的数据,为了加速文件访问,通常会把索引节点加载到内存中。磁盘格式化会被分为三个存储区域超级块、索引节点区、数据块区。超级块存储文件系统的详细信息,比如块个数、块大小、空闲块等。索引节点区存储索引节点,数据块区存储文件或目录数据。超级块是当文件系统挂载时进入内存,索引节点区当文件被访问时进入内存。

Linux03——文件系统及结构、命令_第4张图片

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

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

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

Linux03——文件系统及结构、命令_第5张图片

 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)

你可能感兴趣的:(linux)