文件目录:
一:Linux文件基础知识
1.Linux常用文件类别
2.Linux目录结构概述
3.Linux目录常见概念
4.Linux系统目录及说明
二:文件与目录基本操作
1.显示文件内容命令——cat,more,less,head,tail
1.1 cat命令
1.2.more命令
1.3 less命令
1. 4 head命令
1.5 tail命令
2.文件内容查询命令——grep,egrep,fgrep
3.文件查找命令——find,locate
3.1 find命令
3.2 locate命令
4.文本处理命令——sort,uniq
4.1 sort命令
4.2 uniq命令
5.文件内容统计命令——wc
6.文件比较命令——comm,diff
6.1 comm命令
6.2 diff命令
7.文件的复制、移动和删除命令——cp,mv,rm
7.1 cp命令
7.2 mv命令
7.3 rm命令
8.文件链接命令——ln
9.目录的创建与删除命令——mkdir,rmdir
9.1 mkdir命令
9.2 rmdir命令
10.改变工作目录、显示路径以及显示目录内容命令——cd,pwd,ls
10.1 cd命令
10.2 pwd命令
10.3 ls命令
三:文件/目录访问权限管理
1.文件/目录访问权限简介
2.改变文件/目录的访问权限——chmod命令
2.1 文字设定法
2.2 数字设定法
3.更改文件/目录的默认权限——umask命令
4.更改文件/目录的所有权——chown命令
四:文件/目录的打包和压缩
1.文件压缩——gzip压缩
2.文件压缩——bzip2压缩
3.文件归档——tar命令
4. zip压缩
5.unzip解压缩
6.其他归档压缩工具
本章介绍了Linux文件和目录的基本知识,并且对常用的文件和目录操作命令进行了讲解。除此之外,本章还对Linux下常用的压缩归档工具gzip,bzip,tar,zip等进行了介绍。
1.在Linux系统上,任何软件和I/O设备都被视为文件。
2.Linux中的文件名最大支持256个字符,分别可以用A~Z、a~z、0~9等字符来命名。
3.和Windows不同,Linux中文件名是区分大小写的,所有的UNIX系列操作系统都遵循这个规则。
4.Linux下也没有盘符的概念(如Windows下的C盘、D盘),而只有目录,不同的硬盘分区是被挂载在不同目录下的。
Linux目录和Windows目录有着很大的不同,Linux目录类似一个树,最顶层是其根目录,如下图:
5.Linux的文件没有扩展名,所以Linux下的文件名称和它的种类没有任何关系。例如,abc.exe可以是文本文件,而abc.txt也可以是可执行文件。
6.Linux下的文件可以分为5种不同的类型:
普通文件、目录文件、链接文件、设备文件和管道文件
Linux系统以文件目录的方式来组织和管理系统中的所有文件
——所谓文件目录就是将所有文件的说明信息采用树型结构组织起来
——【目录也是一种类型的文件】各个目录结点之下都会有一些文件和子目录
1.路径
路径是指从树型目录中的某个目录层次到某个文件的一条道路。
2.根目录
Linux的根目录(/)是Linux系统中最特殊目录。
3.用户主目录
是系统管理员增加用户时建立起来的(以后也可以根据实际情况改变),每个用户都有自己的主目录,不同用户的主目录一般互不相同
4.工作目录
用户登录Linux系统之后,每时每刻都处在某个目录之中,此目录被称作工作目录或当前目录(Working Directory)
参考:Linux各目录及每个目录的详细介绍
目录
/bin
存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里。
/etc
存放系统管理和配置文件
/home
存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示
/usr
用于存放系统应用程序,比较重要的目录/usr/local 本地系统管理员软件安装目录(安装系统级的应用)。这是最庞大的目录,要用到的应用程序和文件几乎都在这个目录。
/usr/x11r6 存放x window的目录
/usr/bin 众多的应用程序
/usr/sbin 超级用户的一些管理程序
/usr/doc linux文档
/usr/include linux下开发和编译应用程序所需要的头文件
/usr/lib 常用的动态链接库和软件包的配置文件
/usr/man 帮助文档
/usr/src 源代码,linux内核的源代码就放在/usr/src/linux里
/usr/local/bin 本地增加的命令
/usr/local/lib 本地增加的库
/opt
额外安装的可选应用程序包所放置的位置。一般情况下,我们可以把tomcat等都安装到这里。
/proc
虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息。
/root
超级用户(系统管理员)的主目录(特权阶级^o^)
/sbin
存放二进制可执行文件,只有root才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如ifconfig等。
/dev
用于存放设备文件。
/mnt
系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统。
/boot
存放用于系统引导时使用的各种文件
/lib
存放跟文件系统中的程序运行所需要的共享库及内核模块。共享库又叫动态链接共享库,作用类似windows里的.dll文件,存放了根文件系统程序运行所需的共享文件。
/tmp
用于存放各种临时文件,是公用的临时文件存储点。
/var
用于存放运行时需要改变数据的文件,也是某些大文件的溢出区,比方说各种服务的日志文件(系统启动日志等。)等。
/lost+found
这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里
主要功能是用来显示文件,依次读取其后所指文件的内容并将其输出到标准输出设备上
还能够用来连接两个或多个文件,形成新的文件常用形式如下:
cat [option] filename
该命令就可以一次显示一屏文本,并在终端底部打印出“--More--”,
系统还将同时显示出已显示文本占全部文本的百分比。
若要继续显示,按回车或空格键即可常用形式如下:
more [option] filename
和more命令的功能基本相同,也是用来按页显示文件。不同之处在于less命令在显示文件时,允许用户既可以向前又可以向后逐行翻阅文件,而more命令只能向后翻阅文件如果要向后翻阅,可以使用键盘的“Page UP”键,
要向前翻阅文件,则相应地使用键盘的“Page Down”键即可。
按方向键可以逐行滚动,
按“Q”键退出
如果要按页显示test文件,则执行如下命令:[root@localhost root]# less test
该命令只显示文件或标准输入
(从计算机的标准输入设备中得到的信息流,通常是指从键盘、鼠标等获得的数据)的头几行内容。如果用户希望查看一个文件究竟保存的是什么内容,
只要查看文件的头几行,而不必浏览整个文件,便可以使用这个命令。常用形式如下:
head - number filename
和head命令的功能相对应。如果想查看文件的尾部,可以使用tail命令该命令显示一个文件的指定内容。它把指定文件的指定显示范围内的内容显示在标准输出上
同样,如果没有给定文件名,则使用标准输入文件常用形式如下:
tail option filename
指定的查找模式搜索文件,通知用户在什么文件中搜索到与指定的模式匹配的字符串,
并且打印出所有包含该字符串的文本行,该文本行的最前面是该行所在的文件名
这组命令在搜索与定位文件中特定的主题和关键词方面非常有效
可以用其来搜索文件中包含的这些关键词grep命令
一次只能搜索一个指定的模式;egrep命令
检索扩展的正则表达式(包括表达式组和可选项);fgrep命令
检索固定字符串,并不识别正则表达式,是一种更为快速的搜索命令——总的来说,grep命令的搜索功能比fgrep强大
因为grep命令的搜索模式可以是正则表达式,而fgrep却不能
该组命令的常用格式如下:grep [option] [search pattern] [file1, file2,……]erep [option] [search pattern] [file1, file2,……]frep [option] [search pattern] [file1, file2,……]
功能是在指定的目录开始,递归地搜索其各个子目录,查找满足寻找条件的文件并对之采取相关的操作。此命令提供了相当多的查找条件,功能非常强大。find命令提供的寻找条件——可以是一个用逻辑运算符not、and、or组成的复合条件
——and:逻辑与
在命令中用“-a”表示,是系统默认的选项,表示只有当所给的条件都满足时,寻找条件才满足
——or:逻辑或
在命令中用“-o”表示。该运算符表示只要所给的条件中有一个满足时,寻找条件就满足
——not:逻辑非
在命令中用“!”表示。该运算符表示查找不满足所给条件的文件常用格式如下:
find [option] filename
对文件中的各行进行排序
该命令将逐行地对文件中的内容进行排序,如果两行的首字符相同,该命令将继续比较这两行的下一字符
sort排序是根据从输入行抽取的一个或多个关键字进行比较来完成的可以被认为是一个非常强大的数据管理工具,用来管理内容类似数据库记录的文件默认情况下,以整行为关键字按ASCII字符顺序进行排序。sort命令的常用格式如下:
sort [option] filename
用uniq命令将这些重复行从输出文件中删除,只留下每条记录的唯一样本常用格式如下:
uniq [option] filename
统计给定文件中的字节数、字数、行数如果没有给出文件名,则从标准输入读取wc同时也给出所有指定文件的总统计数字是由空格字符区分开的最大字符串常用格式如下:
wc [option] filename
该命令是对两个已经排好序的文件进行比较comm读取这两个文件,然后生成三列输出:
仅在file1中出现的行;
仅在file2中出现的行;
在两个文件中都存在的行。如果文件名用“-”,则表示从标准输入读取常用格式如下:
comm [option] filename
功能为逐行比较两个文本文件,列出其不同之处它对给出的文件进行系统地检查,并显示出两个文件中所有不同的行,不要求事先对文件进行排序常用格式如下:
diff [option] file1 file2
diff [option] dir1 dir2
功能是将给出的文件或目录复制到另一文件或目录中
就如同DOS下的copy命令一样,功能非常强大常用格式如下:
cp [option] [src_file|src_dir] [dst_file|dst_dir]
为文件或目录改名或将文件由一个目录移入另一个目录中该命令如同DOS下的ren和move的组合常用格式如下:
mv [option] [src_file|src_dir] [dst_file|dst_dir]
对于无用文件,用户可以用rm命令将其删除
功能为删除一个目录中的一个或多个文件,它也可以将某个目录及其下的所有文件及子目录均删除
对于链接文件,只是删除了链接,原有文件均保持不变常用格式如下:
rm [option] [files|dirs]
在文件之间创建链接是给系统中已有的某个文件指定另外一个可用于访问它的名称对于这个新的文件名,可以为其指定不同的访问权限,以控制对信息的共享和安全性的问题链接有两种:
一种称为硬链接(Hard Link);
另一种称为符号链接(Symbolic Link),也称为软链接常用格式如下:
ln [option] file link
创建目录需要使用mkdir命令,该命令创建名为dirname的目录要求创建目录的用户在当前目录(即dirname的父目录)中具有写权限,
并且dirname不能是当前目录中已有的目录或文件名称常用格式如下:
mkdir [option] [dirname]
删除目录需要使用rmdir命令dirname表示目录名。rmdir命令可以从一个目录中删除一个或多个子目录项。须要注意的是,一个目录被删除之前必须是空的。和mkdir命令一样,删除某目录时也必须具有对父目录的写权限常用格式如下:
rmdir [option] [dirname]
cd命令即英文词组change directory的缩写,作用是改变当前工作目录常用格式如下:
cd [directory]
pwd命令即英文词组print working directory的缩写,作用是显示当前工作目录的路径该命令无参数和选项要想知道当前所处的目录,可以用pwd命令,该命令显示整个路径名
ls是英文单词list的简写,其功能为列出目录的内容用户要不时地查看某个目录的内容该命令类似于DOS下的dir命令对于每个目录,该命令将列出其中所有的子目录与文件
对于每个文件,ls将输出其文件名以及所要求的其他信息默认情况下,输出条目按字母顺序排序当未给出目录名或文件名时,就显示当前目录的信息常用格式如下:
ls [option] [dirname|filename]
Linux系统中的每个文件和目录都有访问许可权限通过其确定何种用户/用户组可以通过何种方式对文件和目录进行访问和操作
分为三种:只读、只写、可执行有三种不同类型的用户可对文件或目录进行访问:文件所有者,同组用户、其他用户每一个文件或目录的访问权限都有三组,每组用三位表示,分别为:
文件属主的读、写和执行权限;
与属主同组的用户的读、写和执行权限;
系统中其他用户的读、写和执行权限。
改变文件或目录的访问权限,它是一条非常重要的系统命令
用户可用其控制文件或目录的访问权限该命令有两种用法:
一种是包含字母和操作符表达式的文字设定法;
另一种是包含数字的数字设定法
一般使用形式如下:
chmod [who] [+|-|=] [mode] filename
比文字设定法更加简洁数字设定法用3个二进制位来表示文件权限:【设定好后将其换算为十进制数即可】
第一位表示r权限(可读),
第二位表示w权限(可写),
第三位表示x权限(对于文件而言为可执行,对于文件夹而言为可枚举)也可以直接用十进制数计算:
0表示没有权限,
1表示x权限,
2表示w权限,
4表示r权限,
然后将其相加数字属性的格式应为3个从0到7的八进制数——其顺序是(u)、(g)、(o)如果想让某个文件的属主有“读/写”二种权限,须要把4(可读)+2(可写)=6(读/写)
一般使用形式如下:
chmod [mode] filename
登录系统之后,创建文件或文件夹有一个默认权限的umask命令则用于显示和设置用户创建文件的默认权限当使用不带参数的umask命令时,系统会输出当前umask的值
代码如下所示:
[root@localhost root]# umask
0022
chown命令用来更改某个文件或目录的属主和属组常用格式如下:
chown [option] [user|group] filename
gzip压缩利用Lempel-Ziv(LZ77)算法与之相关的命令有:gzip(压缩),gunzip(解压缩)和zcat(解压并输出到标准输出设备)常用格式如下:
gzip [-acdfhlLnNqrtvV] [-level] [-S suffix] [file]
gunzip [-acdfhlLnNqrtvV] [-S suffix] [file]
zcat [-fhlV] [file]使用gzip时需要注意以下几点。(1)默认gzip压缩的文件会以.gz结尾,同时删除原始文件。(2)若不希望使用.gz后缀,则需用-S覆盖。(3)gunzip -c和zcat功能相同
利用Burrows-Wheeler block sorting和Huffman编码算法与之相关的命令有:
bzip2(压缩),
bunzip2(解压缩),
bzcat(解压并输出到标准输出设备)
和bz2recover(从损坏的bzip2文件中恢复数据)常用格式如下。
bzip2 [-cdfhkLstvVz][--repetitive-best][--repetitive-fast][-level] [file]
bunzip2 [-fkLsvV] [file]
bzcat [-s] [file]
bz2recover [file]
bzip2压缩的命令和gzip非常类似,不过bzip2通常都比基于LZ77算法的工具压缩率更高。默认bzip2压缩的文件会以.bz2结尾,同时删除原始文件。但和gzip相比,bzip2可以通过添加-k参数保留原始文件。bunzip2-c和bzcat功能相同
tar可以把许多文件打包成为一个归档文件或者把它们写入备份设备,例如一个磁带驱动器Linux下保存文件都是先用tar命令将目录或者文件打成tar归档文件(也称为tar包),然后gzip或bzip2压缩正因为如此,Linux下已压缩文件的常见后缀有tar.gz、tar.bz2,以及tgz和tbz等
1.创建tar包创建归档可以使用-cf参数,如果需要显示日志,可以使用-cvf参数。
2.查看tar包内容查看归档可以使用-tf参数。
3.还原tar包还原归档可以使用-xf参数,如果需要显示日志,可以使用-xvf参数。
4.直接在tar包中使用压缩选项打好的tar包可以交由gzip或bzip2进行压缩另外也可以直接在tar命令中调用这些压缩功能,加入相应参数即可
与zip相关的命令相当多,主要有zip、unzip等zip命令的格式如下:
zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$]
[-b tmp_dir] [-ll] [-n suffix]
[-t datetime] [-level] [zipfile]
[files_to_zipped] [-i include_pattern] [-x exclude_pattern]
zip文件可用unzip解压缩unzip命令的格式如下:
unzip [-cflptuvz] [-agCjLMnoqsVX] [zipfile] [files] [-d dir] [-x file]
Linux中还可以使用的工具有:
UNIX下的压缩工具compress/uncompress(后缀.Z),
从lharc演变而来的压缩程序lha(后缀.lzh),
以及解压ARJ的unarj与解压RAR的unrar等。有备份归档的程序还有:dump、cpio等Linux也有图形化的压缩/解压缩工具,如GNOME桌面环境下的压缩操作