Linux学习2——文件与目录
一、写在前面
在本节将介绍Linux下文件与目录的一些基本概念以及一些基本操作。
二、完成目标
1.了解文件和目录的一些基本概念
2.操作文件和目录的相关命令
3.文件内容查阅命令
4.文件查询命令
三、基本概念
1.对于一个文件什么是所有者、用户组和其他人的概念?
所有者(Owner)即是文件的所有者;用户组(Group)是对该文件具有一定操作权限的一组用户;其他人(Others)是指除了上述两类人之外的其他用户。还有一点特别需要注意的是root用户可以操作所有文件。
2.普通权限对于文件和目录的意义
普通权限包括读(Read)、写(Write)、执行(Execute)。对于文件而言:具备Read权限意味着可以读取该文件的内容,具备Write权限意味着可以更改文件的内容,具备Execute权限意味着可以执行该文件(与该文件是否是可执行文件无关);对于目录而言:具备Read权限意味着可以查询该目录下的内容,具备Write权限意味着可以对该目录下的文件进行新建、删除、更名等一系列操作,具备Execute权限意味着可以进入该目录。这里需要注意的是当要把某一目录对外开放(可读)时要同时提供Read和Execute权限。
3.什么是FHS?
FHS(Filesystem Hierarchy Standard)是Linux的目录配置标准,目的是希望让用户了解到已安装软件通常放置于哪个目录下。Linux常用目录的说明如下:
/bin 放置在单用户维护模式下还能被操作的命令
/boot 放置开机会用到的文件,包括Linux内核文件以及开机菜单与开机所需配置文件等
/dev 在Linux系统上,任何设备与接口设备都是以文件的形式存在于这个目录当
/etc 系统主要的配置文件几乎都放置在这个这个目录内,例如人员的帐号密码文件、各种服务的起始文件。一般来说,这个目录下的各文件属性是可以让一般用户查阅的,但是只有root有权限修改
/home 这是系统默认的用户主文件夹(home directory)
/lib 放置的是在开机时会用到的函数库,以及在/bin或/sbin下面的命令会调用的函数库而已。
/media 放置可删除的设备,包括软盘、光盘、DVD等设备都暂时挂载于此。
/mnt 用于暂时挂载额外设备,类似与/media
/opt 该目录用于放置第三方软件
/root 系统管理员的主文件夹
/sbin 存放开机过程中所需要的命令,里面包括了开机、修复、还原系统所需要的命令
/srv 用于放置一些放置一些网络服务所需的数据
/tmp 用于放置一般用户或者是正在执行的程产生的临时文件
/lost+found 这个目录是使用标准ext2/ext3文件系统格式才会产生的一个目录,目的在于当文件系统发生错误时,将一些丢失的片段放置到这个目录下
/prov 虚拟文件系统,它放置的数据都是在内存当中。
/sys 虚拟的文件系统,用于记录与内核相关的信息。
/usr usr是UNIX Software Resource的缩写,放置UNIX操作系统软件资源,系统默认的软件都会放置到/usr下面
/var 用于存放常态性变动的文件,包括缓存、登录文件以及某些软件运行所产生的文件
4.什么是绝对路径和相对路径?
绝对路径:由根目录(/)开始写起的文件名或目录名称,如/home/wayne;相对路径:相对于当前路径的文件名写法,如./home/wayne。.代表当前的目录可以用./来表示,..代表上一层目录,也可以用../来表示。
5.什么是文件的特殊权限:SUID,SGID,SBIT?
文件具有SUID权限时,代表当用户执行此二进制程序时,在执行过程中用户会暂时具有程序所有者的权限;
文件具有SGID权限时,代表用户在这个目录下面新建的文件用户组都会与该目录的用户组名相同。
目录具有SBIT的特殊权限时,代表在该目录下用户创建的文件只有自己与root能够删除。
四、实施步骤
1.操作文件和目录的相关命令
(1)ls - list directory contents 例子(显示当前目录下非隐藏文件/目录的完整信息):ls -l
(2)chgrp - change group ownership 改变的用户组名必须已存在于系统当中,否则会出现错误
(3)chown - change file owner and group 该命令可以仅仅修改文件的所有者或者用户组或同时对二者进行修改。
(4)chmod - change file mode bits 改变文件的Owner,Group和Others的读、写和执行的权限
(5).代表当前目录,..代表上一层目录,-代表前一个工作目录,~代表“目前用户身份”所在的主文件夹,~account代表account这个用户的主文件夹
(6)cd-change the current directory 用于切换当前目录,极为常用的目录操作,可以结合(5)中的标记进行简洁的切换
(7)pwd - print name of current/working directory 例子(显示当前目录):pwd
(8)mkdir - make directories 创建目录
(9)rmdir - remove empty directories 移除当前空目录(当前目录非空时无法删除该目录,可用下面的rm命令进行移除)
(10)cp - copy files and directories
(11)rm - remove files or directories 例子(强制删除完整文件(不进行询问),该操作极为危险请勿轻易尝试):rm -fr filename
(12)mv - move (rename) files
(13)rename - Rename files 用于重命名,与move不同,move只可以用于单个文件的命名,但是rename可以用于文件的批量命名。
(14)basename - strip directory and suffix from filenames 可用于移除完整文件名中的目录和后缀,例子:basename include/stdio.h .h ,输出:stdio
(15)dirname - strip non-directory suffix from file name 从完整文件名中移除非目录后缀,例子:dirname /usr/bin/sort,输出:/usr/bin
2.文件内容查阅命令
(1)cat - concatenate files and print on the standard output 例子(将standard input 输出到 standard output):cat 可用Crtl+C或者Ctrl+D退出
(2)tac - concatenate and print files in reverse 功能和cat一样,但是确实反向输出的
(3)nl - number lines of files 输出内容带有行号
(4)more - file perusal filter for crt viewing 简单浏览命令
(5)less - opposite of more 简单浏览命令,man page就是调用less来显示内容的
(6)head - output the first part of files
(7)tail - output the last part of files
(8)od - dump files in octal and other formats 可用于显示非文本文档
(9)touch - change file timestamps 用于改变文件的时间戳或者创建一个空文件
(10)umask-The user file-creation mask is set to mode umask可用于设置文件和目录的默认属性
(11)chattr - change file attributes on a Linux file system
(12)lsattr - list file attributes on a Linux second extended file system
(13)file - determine file type 可用于查看文件的类型
(1)which - shows the full path of (shell) commands. 可以查看shell命令的绝对路径,例子:which cp
(2)whereis - locate the binary, source, and manual page files for a command利用数据库进行查找速度较快
(3)locate - find files by name 利用数据库进行查找速度较快
(4)find - search for files in a directory hierarchy 并非利用内建数据库进行搜索,速度较慢
五、回顾总结
本文概述了Linux中的文件和目录,并且介绍了文件和目录的相关操作。
六、遇到的问题
CENTOS上firefox中无法播放flash?
那就安装一个flash插件咯,可执行下述命令:yum install flash-plugin,链接:http://www.tuicool.com/articles/QRNVvi
文章内容部分参考《鸟哥的Linux私房菜》,在此予以说明。