Linux快速入门02-文件系统管理

继续进入Linux文件系统的学习,加油,早日突破MS压在自己身上的那道束缚。

文件属性基本概念:文件所有者,文件组,其他人。

对上图来说,-rw-r—r—表示文件的权限,1表示连接数,两个root分别表示所有者和用户组,264表示文件大小(单位为B),之后信息为文件修改日期和文件名(.开头表示隐藏文件)。

这部分最终要的概念就是文件权限,可以将文件权限部分内容分为之后的4个部分来理解,例如对于[-][rwx][r-x][r--],有:

部分 诠释
第一部分[-] 文件类型,d表示目录,-表示文件,l表示连接文件(linkfile),b,c等表示设备
第二部分[rwx] 文件所有者的权限,可读、可写、可执行
第三部分[r-x] 文件用户组的权限,可读、可执行
第四部分[r--] 其他用户的权限,可读

权限相关常见命令

命令 诠释
chgrp 改变文件所属用户组
chown 改变文件所有者
chmod 改变文件权限,rwx=4+2+1, chmod 764
cd 访问目录(需要x权限),cd .., ~, .表示相对路径, cd /xxx表示绝对路径
Uname –t 查看内核版本

Linux目录配置标准FHS(FileSystem Hierarchy Standard)如下所示

  可分享的 不可分享的
不可变的 /usr软件放置处 /etc配置文件
/opt第三方软件 /boot开机和内核文件
可变动的(跟随distribution变动) /var/mail用户邮件信箱 /var/run程序相关
/var/spool/news新闻组 /var/lock程序相关

本文最后的附录中,可以看到Linux中根目录(/)、/usr目录(放置可分享但不可变动数据),/var目录中主要的目录结构(主要针对常态性变动的文件)。

这部分基本上会介绍最为常见的Linux命令,需要熟练掌握。

命令 诠释
cd Change Directory切换目录
pwd Print Working Directory显示当前目录
mkdir 新建一个目录, -p自行创建多层目录
rmdir 删除一个空的目录, -p连同上层某目录一起删除,需要注意这只能删除空目录
echo $PATH 执行文件路径
ls 查看文件和目录, ls –a显示全部文件,包括隐藏;-d,仅列出目录本身;-l,显示详细信息,包括文件的属性和权限
cp 复制,cp [参数] 源文件 目标文件。参数-a表示-pdr;-i若目标文件存在,覆盖时会询问;-r递归持续复制,用于目录的复制行为
rm 删除文件/目录,参数-r递归删除,非常危险
mv 移动文件和目录,或更名,mv 文件1 [,文件2] 目录,可以通过mv 文件 新文件名改名
basename 以及dirname 文件,用于获取文件名和完整目录名
文件内容查阅 方式比较多,包括cat,tac(逆序),nl显示时输出行号,more,less向后向前翻页,head,tail只看首尾几行,od以二进制方式读取
touch 修改文件时间或创建新文件
umask 新建一个文件的的默认权限,默认为0022,这时新建文件的权限时-rw-r—r--,目录为drwxr-xr-x。注意mask掩码其实就是对权限的异或操作,022代表去除组和其他用户的写权限。
文件隐藏属性 是9个权限外的权限,对于安全有很大帮助,参数a表示文件只能增加而不能删除修改,参数i表示文件不能被删除、改名,设置连接也无法写入或添加数据,只有root可用 设置文件隐藏属性:chattr +i attrtest, chattr –i attrtest 显示文件隐藏属性:lsattr 文件
文件特殊属性 比如ls –ld /tmp ; ls –l /usr/bin/passwd,可以看到除rwx外的s和t 简单来说,就是用户执行这个2进制文件是会获得额外的权限,SUID所有者权限,SGID组权限,SBIT目录权限,其对应的值分别为4,2,1
file 查看文件类型
which 脚本文件名查询,which ifconfig
whereis 文件名的查找whereis ifconfig, 文件名模糊查找locate ifconfig
find 功能更强大的文件查找,参数-uid id,-gid id,这个id可以在/etc/passwd中看到 -user name, -group name, -nouser, -nogroup

Linux的默认文件系统Ext3的基础结构主要包括3个主要的概念。

super block:记录此文件系统的整体信息,包括inode/block的总量、使用量、剩余量,以及文件系统的格式和相关信息。

inode:记录文件的属性,一个文件占用一个inode,同时记录此文件的数据所在的block号码。

block:实际记录文件的内容,若文件太大,会占用多个block。

比较有意思的是,Linux文件系统使用异步处理方式来保存数据,比如系统加载一个文件到内存并设置其状态为clean,如果修改了文件就设置为dirty。此时操作都还在内存中,并未写入到磁盘,系统会不定时的异步写入,此外Linux VFS虚拟文件系统功能也非常不错,可以兼容多种不同的文件系统。

文件系统操作

命令 诠释
df 文件系统整体磁盘使用量,参数-h以人们易阅读的方式GB,MB显示,-i显示inode数量
du 评估文件系统的磁盘使用量,-d列出总量
ln 连接文件,连接包括两种:类似快捷方式的软连接(符号连接);通过文件系统inode连接来产生新文件名的硬连接。 Hardlink: ln /etc/crontab . Symbolic link: ln –s /etc/corntab crontab2
fdisk 磁盘分区:df /, fdisk /dev/vda1, 可以使用m查看命令,d用于删除分区,n用于新增分区,p显示分区,q退出,w写入刚才操作到分区表
mkfs 磁盘格式化,mkfs –t ext3 /dev/hdc6    
fsck,badblocks 磁盘检测,fsck –C –f –t ext3 /dev/hdc6, badblocks –sv /dev/hdc6
mount 磁盘挂载,mount –a将未挂载的磁盘挂载 mount /dev/hdc6 /mnt/hdc6
umount 磁盘卸载,umount /dev/hdc6
磁盘参数修改 mknod,e2label修改卷标名,tune2fs,hdparm
开机挂载 /etc/fstab, /etc/mtab
Swap内存交换空间的建立 先进行分区并partprobe让内核更新分区表,创建hdc7,之后mkswap /dev/hdc7, free, swapon /dev/hdc7, free, swapon-s

Linux提供了很多不同的压缩文件和打包格式,但现在主要还在使用的主要为.tar和.tar.gz等。


命令


示例

gzip/bzip2 压缩:gzip –c node.config > node.config.gz 解压缩:gzip –d node.config.gz
tar打包命令 压缩:tar –jcv –f filename.tar.bz2 xxx目标压缩文件 查询:tar -jtv –f filename.tar.bz2 解压缩:tar –jxv –f filename.tar.bz2 –C xxx欲解压到的目录
备份/恢复文件系统 备份步骤: df –h 查看文件系统 dump –S/dev dump -0u –f /root/boot.dump/boot 恢复步骤: restore –t –f /root/boot.dump
dd备份磁盘或文件 dd if=/etc/passwd of=/tmp/passwd.back dd if=/dev/vda1 of=/tmp/mbr.back

通常来说,会使用tar来备份关键数据,而用dd来备份整块分区或磁盘。

此外还有一些备份工具,需要时再查询就好,比如:mkisofs新建镜像文件;cdrecord光盘刻录工具;

目录 应放置文件内容
/bin 执行文件,可以在单用户维护模式使用,主要有cat,chmod,mkdir,bash等命令
/boot 开机使用到的文件,包括linux内核文件和开机所需配置文件等,vmlinz,/boot/grub
/dev 任何设备和接口都是以文件的形式存放在该目录,/dev/nul,zero,tty,lp*,hd*,sd*
/etc 系统主要的配置文件,例如用户的账号密码,各种服务的init文件,比较重要的文件包括,/etc/inittab,init.d/,modprobe.conf,X11/,fstab,sysconfig/
/home 系统默认的用户主文件夹,~表示当前用户的主文件夹,~xionger则表示熊二的主文件夹
/lib 开机时会用到的函数库,以及/bin或/sbin下命令调用的函数库
/media, /mnt 放置可删除设备,如cdrom等; 放置临时需要挂载的设备
/opt 放置第三方软件的目录,也可以放在/usr/local中
/root 系统管理员root的主文件夹,需要和根目录放置在同一分区
/sbin 包括开机、修复、还原系统的命令,常见命令有fdisk,fsck,ifconfig,init,mkfs
/srv 一些网络服务启动,所需数据的目录,例如WWW服务需要/srv/www/
/tmp 临时文件,推荐定期删除
/lost+found 对于ext2/ext3文件系统格式来说,当系统出现错误时,会把丢失的片段放在该目录,此外,如果加一块硬盘到/disk中,那么系统会自动产生/disk/lost+found
/proc 虚拟文件系统,其数据放置在内存,包括系统内核、进程、外部设备和网络状态,重要的文件包括/proc/cpuinfo,dma,interrupts,ioports,net/*
/sys 和/proc内丝,也是一个虚拟文件系统,主要记录与内核有关的信息
/usr/bin 绝大部分的用于可使用命令都在这,不过不支持单用户维护模式
/usr/include C/C++等程序头文件放置处,当使用tarball方式安装数据时会用到这里的很多包含文件
/usr/lib 包含应用程序的函数库、目标文件和脚本,对于x86_64的linux还有/usr/lib64/产生
/usr/local 系统管理员自己下载的软件推荐安装在此
/usr/sbin 非系统正常运行需要的系统命令,例如某系网络服务软件的服务命令(daemon)
/usr/share 放置共享文件的地方
/usr/src 一般用来放置源码
/var/cache 应用程序运行时产生的暂存文件
/var/lib 程序本身执行需要使用的数据文件放置在这,比如mysql的数据库放置在/var/lib/mysql
/var/lock 对于某些系统资源来说,一次只能供一个应用使用,因此需要将其加锁
/var/log 登录文件放置的目录,比较重要的有/var/log/messages,wtmp
/var/mail 放置个人电子邮箱的目录,链接到/var/spool/mail
/var/run 某些程序或服务启动后,会将其PID放置在此
/var/spool 放置一些队列数据,"队列"就是排队等待其他程序使用的数据了,比如工作任务数据(crontab),就防止在/var/spool/cron/中

整个linux的学习,重在命令的熟练,加油!"天行健,君子以自强不息;地势坤,君子以厚德载物" -- 《周易》

参考资料:

  1. 鸟哥. 鸟哥的Linux私房菜基础学习篇(第三版)[M]. 北京:人民邮电出版社, 2010.
时间: 2024-10-13 03:08:04

Linux快速入门02-文件系统管理的相关文章

Linux快速入门04-扩展知识

这部分是快速学习的最后一部分知识,其中最重要的内容就是源码的打包和软件的安装的学习,由于个人的Linux学习目的就是自己能在阿里云Ubuntu上搭建一个简单的nodejs发布环境. Linux系列文章 快速入门系列--Linux--01基础概念 快速入门系列--Linux--02文件系统管理 快速入门系列--Linux--03系统管理 快速入门系列--Linux--04扩展知识 由于现在均是使用云平台,这部分内容已完全透明,因而只做一个简单的了解,整个linux的启动过程包含如下8个步骤: 1.

《Linux学习并不难》文件系统管理(8):设置开机自动挂载Linux文件系统

18.8  <Linux学习并不难>文件系统管理(8):设置开机自动挂载Linux文件系统 只有将某个分区或是设备进行挂载以后才能使用,但是当计算机重新启动以后,又需要重新挂载,这个时候可以通过修改/etc/fstab文件实现开机自动挂载Linux文件系统.要实现开机自动挂载文件系统,需要在/etc/fstab文件中添加该磁盘分区的相关信息,可以通过提供设备名和UUID实现. 1.使用设备名 编辑/etc/fstab文件,在该文件末尾添加下列内容. /dev/sda5             

《Linux学习并不难》文件系统管理(1):xfs文件系统介绍

18.1  <Linux学习并不难>文件系统管理(1):xfs文件系统介绍 xfs是一种高性能的64位日志文件系统,由Silicon Graphics在1993年为IRIX操作系统开发.2000年5月,以GNU通用公共许可证发布这套文件系统的源代码,之后被移植到Linux 内核上.xfs特别擅长处理大文件,同时提供平滑的数据传输. xfs文件系统主要有以下几点特性. 1.数据完全性 采用xfs文件系统,当主机发生宕机以后,由于文件系统开启了日志功能,所以磁盘上的文件不会遭到破坏.不论目前文件系

《Linux学习并不难》文件系统管理(3):在Linux系统中创建文件系统

18.3  <Linux学习并不难>文件系统管理(3):在Linux系统中创建文件系统 使用mkfs命令可以在分区上创建各种文件系统.mkfs命令本身并不执行建立文件系统的工作,而是去调用相关的程序来执行.这里的文件系统是要指定的,比如xfs.ext4.ext3.vfat或者是msdos等. 命令语法: mkfs [选项] [设备] 命令中各选项的含义如表所示. 选项 选项含义 -t <文件系统类型> 指定文件系统类型 -v 显示详细信息 例:为/dev/sda5磁盘分区创建xfs

Linux快速入门打开你的学习之道

相信看到这篇文章的你一定是想要学习Linux,或者已经在学习Linux的人了,那我们就可以一起探讨一下,学习Linux如何快速入门呢? 首先,希望大家弄清楚自己为什么要学习Linux,有的人是因为兴趣,有的人是因为Linux比较好找工作,兴趣驱使的那部分人找好方法学习Linux就差不多了.另一部分为了工作来学习Linux的人,不仅要找到合适自己的方法,而且还要更加努力,有自己的计划.但是无论是什么原因学习Linux的,方法还是差不多的,想要快速入门,首先你要选择一本基础书籍带你入门,开始的时候我

linux(3)磁盘与文件系统管理/查看硬盘、内存空间/文件系统的操作/ 文件的压缩和打包

一.磁盘与文件系统管理 1.分区与文件系统分区:记录每一个分区的开始柱面和结束柱面主引导区(master boot recorder):记录分区的数据,记录硬盘里所有的分区信息分区划分好后,要将分区格式化为系统可以识别的文件系统磁盘的最小物理存储单位是:扇区分区时格式化文件系统的最小存储单位:逻辑块,以扇区为基础,大小为2的n次方,但是一个块只能容纳一个文件linux的ext2文件系统每个文件内容分为两部分:存储文件的属性(放在inode中),文件的内容(放在块中) 例: 读取文件系统的信息:

Linux之磁盘与文件系统管理

磁盘及文件系统管理详解 [参考文献:马哥视频] 原文:http://blog.csdn.net/u013008795/article/details/51150075 目前市场上主流的磁盘是机械式硬盘:u盘,光盘,软盘,硬盘,磁带 机械式硬盘 [硬盘内部由一个个同心圆组成]如下图: 硬盘内部所有盘片都固定在一根轴上,所以:所有盘面都是同步运动.如下图 硬盘这里面还有个读写的磁头,用来改变盘面中磁块的磁性变化.从而来存储0或1,其中0代表磁块没有磁性,1代表磁块有磁性. 在硬盘中磁盘都是双面可读写

如果你是小白,linux快速入门技术值得你收藏

Linux是一个操作系统软件. 与Windows不同的是,Linux是一套开放源代码程序的.并可以自由传播的类Unix操作系统,它是一个支持多用户.多任务.多线程和多CPU的操作系统.它能运行主要的UNIX工具软件.应用程序和网络协议.它支持32位和64位硬件. Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统. 如何快速入门,需要哪些知识点?1:linux环境专栏 linux系统安装 linux开发环境ssh与Samba配置 linux开发环境Gcc配置 li

Linux磁盘管理及文件系统管理中命令的使用

1.磁盘管理工具fdisk的使用: 最多支持在一块硬盘上的15个分区: 分区管理子命令: p: 显示磁盘信息 n: 创建一个5G的主分区 d: 删除分区 t: 修改分区ID l: 列出所有支持ID类型 w: 保存退出 q: 放弃修改并退出 m: 获取帮助 创建完成之后,查看内核是否已经识别新的分区: # cat /proc/partitions 如果没有识别到新建分区可使用以下三个命令让内核重读磁盘分区表: CentOS 5: partprobe [DEVICE] CentOS 6,7: par