(一)、Linux文件管理

一、文件常用类别

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系统目录及说明

/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)就在这里

三、文件与目录基本操作

1、显示文件内容命令——cat,more,less,head,tail

1.1 CAT命令

主要功能是用来显示文件,依次读取其后所指文件的内容并将其输出到标准输出设备上

主要功能是用来显示文件依次读取其后所指文件的内容并将其输出到标准输出设备上还还能够用来连接两个或多个文件,形成新的文件

常用形式如下:
cat [option] filename
1.2.more命令

该命令就可以一次显示一屏文本,并在终端底部打印出“--More--”,
系统还将同时显示出已显示文本占全部文本的百分比
若要继续显示,按回车或空格键即可

常用形式如下:
more [option] filename
1.3 less命令

和more命令的功能基本相同,也是用来按页显示文件

不同之处在于less命令在显示文件时,允许用户既可以向前又可以向后逐行翻阅文件,而more命令只能向后翻阅文件

如果要向后翻阅,使用键盘的“Page UP”键
向前翻阅,则用键盘的“Page Down”键即可。
按方向键可以逐行滚动,
按“Q”键退出
如果要按页显示test文件,则执行如下命令:

[root@localhost root]# less test
1. 4 head命令

该命令只显示文件或标准输入(从计算机的标准输入设备中得到的信息流,通常是指从键盘、鼠标等获得的数据)的头几行内容。

如果用户希望查看一个文件究竟保存的是什么内容,只要查看文件的头几行,而不必浏览整个文件,便可以使用这个命令。

常用形式如下:
head - number filename
1.5 tail命令

和head命令的功能相对应。如果想查看文件的尾部,可以使用tail命令

该命令显示一个文件的指定内容。它把指定文件的指定显示范围内的内容显示在标准输出上
同样,如果没有给定文件名,则使用标准输入文件

常用形式如下:
tail option filename

2、文件内容查询命令——grep,egrep,fgrep

指定的查找模式搜索文件,通知用户在什么文件中搜索到与指定的模式匹配的字符串,并且打印出所有包含该字符串的文本行,该文本行的最前面是该行所在的文件名.

这组命令在搜索与定位文件中特定的主题和关键词方面非常有效可以用其来搜索文件中包含的这些关键词.

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,……]

3、文件查找命令——find,locate

find命令

功能是在指定的目录开始,递归地搜索其各个子目录,查找满足寻找条件的文件并对之采取相关的操作。

此命令提供了相当多的查找条件,功能非常强大。

find命令提供的寻找条件——可以是一个用逻辑运算符not、and、or组成的复合条件

——and:逻辑与
在命令中用“-a”表示,是系统默认的选项,表示只有当所给的条件都满足时,寻找条件才满足
——or:逻辑或
在命令中用“-o”表示。该运算符表示只要所给的条件中有一个满足时,寻找条件就满足
——not:逻辑非
在命令中用“!”表示。该运算符表示查找不满足所给条件的文件
常用格式如下:
find [option] filename
locate命令

4、文本处理命令——sort,uniq

sort命令

对**文件中的各行进行排序**

该命令将逐行地对文件中的内容进行排序,如果两行的首字符相同,该命令将继续比较这两行的下一字符.

  • sort排序是根据从输入行抽取的一个或多个关键字进行比较来完成的

  • 可以被认为是一个非常强大的数据管理工具,用来管理内容类似数据库记录的文件

  • 默认情况下,以整行为关键字按ASCII字符顺序进行排序。

sort命令的常用格式如下:
sort [option] filename
uniq命令

将这些重复行从输出文件中删除,只留下每条记录的唯一样本

常用格式如下:
uniq [option] filename

5、文件内容统计命令——wc

统计给定文件中的字节数、字数、行数

  • 如果没有给出文件名,则从标准输入读取。

  • wc同时也给出所有指定文件的总统计数。

  • 字是由空格字符区分开的最大字符串。

常用格式如下:
wc [option] filename

6、文件比较命令——comm,diff

comm命令

该命令是对两个已经排好序的文件进行比较

comm读取这两个文件,然后生成三列输出:

  • 仅在file1中出现的行;
  • 仅在file2中出现的行;
  • 在两个文件中都存在的行。

如果文件名用“-”,则表示从标准输入读取

常用格式如下:
comm [option] filename
diff命令

功能为逐行比较两个文本文件,列出其不同之处

它对给出的文件进行系统地检查,并显示出两个文件中所有不同的行,不要求事先对文件进行排序

常用格式如下:
diff [option] file1 file2
diff [option] dir1 dir2

7、文件的复制、移动和删除命令——cp,mv,rm

cp命令

功能是将给出的文件或目录复制到另一文件或目录中
就如同DOS下的copy命令一样,功能非常强大

常用格式如下:
cp [option] [src_file|src_dir] [dst_file|dst_dir]
mv命令

为文件或目录改名或将文件由一个目录移入另一个目录中

该命令如同DOS下的ren和move的组合

常用格式如下:
mv [option] [src_file|src_dir] [dst_file|dst_dir]
rm命令

功能为删除一个目录中的一个或多个文件,它也可以将某个目录及其下的所有文件及子目录均删除

  • 对于无用文件,用户可以用rm命令将其删除
  • 对于链接文件,只是删除了链接,原有文件均保持不变
常用格式如下:
rm [option] [files|dirs]

8、文件链接命令——ln

在文件之间创建链接

是给系统中已有的某个文件指定另外一个可用于访问它的名称
对于这个新的文件名,可以为其指定不同的访问权限,以控制对信息的共享和安全性的问题

链接有两种:

  • 硬链接(Hard Link);
  • 符号链接(Symbolic Link),也称为软链接
常用格式如下:
ln [option] file link

9.目录的创建与删除命令——mkdir,rmdir

9.1 mkdir命令

创建目录需要使用mkdir命令,该命令创建名为dirname的目录

要求创建目录的用户在当前目录(即dirname的父目录)中具有写权限,
并且dirname不能是当前目录中已有的目录或文件名称

常用格式如下:
mkdir [option] [dirname]
9.2 rmdir命令

删除目录需要使用rmdir命令

dirname表示目录名。rmdir命令可以从一个目录中删除一个或多个子目录项。

须要注意的是,一个目录被删除之前必须是空的。

和mkdir命令一样,删除某目录时也必须具有对父目录的写权限

常用格式如下:
rmdir [option] [dirname]

10.改变工作目录、显示路径以及显示目录内容命令——cd,pwd,ls

10.1 cd命令

cd命令即英文词组change directory的缩写,作用是改变当前工作目录

常用格式如下:
cd [directory]
10.2 pwd命令

pwd命令即英文词组print working directory的缩写,作用是显示当前工作目录的路径

该命令无参数和选项

要想知道当前所处的目录,可以用pwd命令,该命令显示整个路径名

10.3 ls命令

ls是英文单词list的简写,其功能为列出目录的内容

  • 用户要不时地查看某个目录的内容

该命令类似于DOS下的dir命令

  • 对于每个目录,该命令将列出其中所有的子目录与文件
  • 对于每个文件,ls将输出其文件名以及所要求的其他信息

默认情况下,输出条目按字母顺序排序

  • 当未给出目录名或文件名时,就显示当前目录的信息
常用格式如下:
ls  [option] [dirname|filename]

四、文件/目录访问权限管理

Linux系统中的每个文件和目录都有访问许可权限
 
通过其**确定何种用户/用户组可以通过何种方式**对文件和目录进行访问和操作

4.1 文件/目录访问权限简介

分为三种:只读、只写、可执行

三种不同类型的用户可对文件或目录进行访问:文件所有者,同组用户、其他用户

每一个文件或目录的访问权限都有三组,每组用三位表示,分别为:

  • 文件属主的读、写和执行权限;
  • 与属主同组的用户的读、写和执行权限;
  • 系统中其他用户的读、写和执行权限。

4.2 改变文件/目录的访问权限——chmod命令

改变文件或目录的访问权限,它是一条非常重要的系统命令
用户可用其控制文件或目录的访问权限

该命令有两种用法:

  • 一种是包含字母和操作符表达式的文字设定法;
  • 一种是包含数字的数字设定法
4.2.1 文字设定法
一般使用形式如下:
chmod [who] [+|-|=] [mode] filename
4.2.2 数字设定法

比文字设定法更加简洁

数字设定法用3个二进制位来表示文件权限:【设定好后将其换算为十进制数即可】
第一位表示r权限(可读),
第二位表示w权限(可写),
第三位表示x权限(对于文件而言为可执行,对于文件夹而言为可枚举)

100(4): 可读
010(2):可写
001(1):可执行

也可以直接用十进制数计算:
0表示没有权限,
1表示x权限,
2表示w权限,
4表示r权限,
然后将其相加
 
数字属性的格式应为3个从0到7的八进制数——其顺序是(u)、(g)、(o)

如果想让某个文件的属主有“读/写”二种权限,须要把4(可读)+2(可写)=6(读/写)

一般使用形式如下:
chmod [mode] filename

4.3 更改文件/目录的默认权限——umask命令

登录系统之后,创建文件或文件夹有一个默认权限的

umask命令则用于显示和设置用户创建文件的默认权限

当使用不带参数的umask命令时,系统会输出当前umask的值
代码如下所示:

[root@localhost root]# umask
0022

4.4 更改文件/目录的所有权——chown命令

chown命令用来更改某个文件或目录的属主和属组

常用格式如下:
chown [option] [user|group] filename

五、文件/目录的打包和压缩

1.文件压缩——gzip压缩

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功能相同

2.文件压缩——bzip2压缩

利用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功能相同

3.文件归档——tar命令

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命令中调用这些压缩功能,加入相应参数即可

4. zip压缩

与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]

5.unzip解压缩

zip文件可用unzip解压缩

unzip命令的格式如下:
unzip [-cflptuvz] [-agCjLMnoqsVX] [zipfile] [files] [-d dir] [-x file]

6.其他归档压缩工具

Linux中还可以使用的工具有:
UNIX下的压缩工具compress/uncompress(后缀.Z),
从lharc演变而来的压缩程序lha(后缀.lzh),
以及解压ARJ的unarj与解压RAR的unrar等。
 
有备份归档的程序还有:dump、cpio等
 
Linux也有图形化的压缩/解压缩工具,如GNOME桌面环境下的压缩操作
posted @ 2022-06-06 17:38  登云上人间  阅读(75)  评论(0编辑  收藏  举报