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

Linux系列文章

快速入门系列--Linux--01基础概念

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

快速入门系列--Linux--03系统管理

快速入门系列--Linux--04扩展知识

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

对上图来说,-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.

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

  1. Linux快速入门01-基础概念

    4年多前,刚到上海时报过一个关于Oracle的培训班,在那里接触到了Linux,不过一直都没真正去试着使用它.现在经过慢慢的成长,越来越觉得,Linux是每一个服务端工程师必须掌握的系统,即使是现在最 ...

  2. Linux快速入门03-系统管理

    这部分将涉及常用的各类linux命令和一些系统高级管理特性,尤其是shell script的创建,这部分在系统自动化运维时会很有作用. Linux系列文章 快速入门系列--Linux--01基础概念 ...

  3. Linux快速入门04-扩展知识

    这部分是快速学习的最后一部分知识,其中最重要的内容就是源码的打包和软件的安装的学习,由于个人的Linux学习目的就是自己能在阿里云Ubuntu上搭建一个简单的nodejs发布环境. Linux系列文章 ...

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

    Linux快速入门打开你的学习之道 相信看到这篇文章的你一定是想要学习Linux,或者已经在学习Linux的人了,那我们就可以一起探讨一下,学习Linux如何快速入门呢? 首先,希望大家弄清楚自己为什 ...

  5. webpack快速入门——CSS文件打包

    1.在src下新建css文件,在css文件下新建index.css文件,输入以下代码 body{ background:pink; color:yellowgreen; } 2.css建立好后,需要引 ...

  6. Easy-RSA 3快速入门自述文件

    Easy-RSA 3快速入门自述文件 这是使用Easy-RSA版本3的快速入门指南.运行./easyrsa -h可以找到有关使用和特定命令的详细帮助.可以在doc /目录中找到其他文档. 如果您从Ea ...

  7. Linux快速入门教程-进程管理ipcs命令学习

    使用Linux系统必备的技能之一就是Linux进程管理,系统运行的过程正是无数进程在运行的过程.这些进程的运行需要占用系统的内存等资源,做好系统进程的管理,对于我们合理分配.使用系统资源有非常大的意义 ...

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

    一.磁盘与文件系统管理 1.分区与文件系统分区:记录每一个分区的开始柱面和结束柱面主引导区(master boot recorder):记录分区的数据,记录硬盘里所有的分区信息分区划分好后,要将分区格 ...

  9. Linux之磁盘与文件系统管理

    磁盘及文件系统管理详解 [参考文献:马哥视频] 原文:http://blog.csdn.net/u013008795/article/details/51150075 目前市场上主流的磁盘是机械式硬盘 ...

随机推荐

  1. 46. Permutations 回溯算法

    https://leetcode.com/problems/permutations/ 求数列的所有排列组合.思路很清晰,将后面每一个元素依次同第一个元素交换,然后递归求接下来的(n-1)个元素的全排 ...

  2. 如何判断UIPanGestureRecognizer的拖动方向

    最近做一个项目,需要用到UIPanGestureRecognizer做一个侧滑菜单,需求是不能向右侧拖动(点击按钮右滑),但可以向左侧手势拖动收回:于是需要判断拖动的方向,百度了一下,网上大部分的答案 ...

  3. How to create Web Deployment Package and install the package

    Create Web Deployment Package To configure settings on the Connection tab In the Publish method drop ...

  4. iOS开发零基础--Swift教程 数组

    数组的介绍 数组(Array)是一串有序的由相同类型元素构成的集合 数组中的集合元素是有序的,可以重复出现 Swift中的数组 swift数组类型是Array,是一个泛型集合 数组的初始化 数组分成: ...

  5. 多线程NSInvocationOperation(NSOperationQueue)的基本用法

        #import "ViewController.h" @interface ViewController () @end @implementation ViewContr ...

  6. iOS网络基础知识

    iOS网络基础知识 1.一次HTTP请求的完整过程 (1)浏览器或应用发起Http请求,请求包含Http请求Http(请求),地址(url),协议(Http1.1)请求为头部 (2)web服务器接收到 ...

  7. QQ分组显示列表ExpandableListView组件应用源码

    ExpandableListView又称为可扩展的ListView组件,他和ListView组件很相似 不过每行的显示有两个xml文件,一个xml文件用于定义分组列表的显示风格, 还有一个xml文件用 ...

  8. ansible 自动化(1)

    安装篇: yum安装 1.安装第三方epel源 centos 6的epel rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-rel ...

  9. fulltext不支持Mysql中文全文索引

    Mysql对某表某字段建立了fulltext索引,也不支持中文. 当数据量很大的时候,比较成熟的做法是使用专门的全文索引系统,用这些专业的全文索引系统来分词,以mysql数据库中的数据作为数据源,来分 ...

  10. CSS 布局入门

    概述 Web 兴起之后,关于CSS的介绍和学习资料已经铺天盖地. 本文不涉及具体的CSS语法之类的,而是希望从初学者的角度,让没有接触或很少接触CSS的人能快速的了解 CSS 到底是什么以及如何使用. ...