本章分为4个小节
1.4.1 Linux文件系统概述
1.4.2 Linux文件操作命令
1.4.3 输入输出重定向
1.4.5 管道
Linux文件系统概述
文件系统概念
- 文件系统是Linux操作系统的重要组成部分,用于对磁盘进行存储管理及输入输出
- 文件系统包含文件中的数据、文件系统的结构。所有Linux用户和程序看到的文件、目录、软连接及文件保护信息都存储在其中
- Linux支持多个物理设备,而每一个设备又可以划分成一个或多个文件系统
- 组成每个文件系统的逻辑上的功能块:引导块、超级块、节点块、数据块
文件与目录的定义
Linux操作系统中,以文件来表示所有的逻辑实体与非逻辑实体
- /etc
存放着许多系统所需的重要配置与管理文件 - /dev
存放device file(装置文件),使用者可以由核心用来存器系统中的硬设备,当使用装置文件时内核会辨识出输入输出请求,并传递给对应的驱动程序以便完成特定的动作 - /home
登录用户的主目录放在此目录下,以用户的名称作为/home目录下各个子目录的名称 - /lib
存放许多系统激活时所需要的重要的共享函数库 - /usr/lib
存放一些应用程序的共享函数库 - /bin
存放一些系统启动时所需要的普通程序和系统程序及经常被其他程序调用的程序 - /tmp
存放系统启动时产生的临时文件 - /var
本目录存放着系统修改过的数据
文件结构、类型、属性
文件结构是文件存放在磁盘等存贮设备上的组织方法 。Linux采用的树形结构,最上层是根目录,其他的所有目录都是从根目录出发生成的。(无论有多少个磁盘分区,根目录只有一个)
在LInux系统中主要根据文件头信息来判断文件类型,Linux系统的文件类型有:
普通文件、纯文本文件、目录文件、链接文件、设备文件、套接字文件、管道文件
Linux文件属性
- 读权限
- 写权限
- 执行权限:文件拥有执行权限,才可以运行
文件操作命令
显示文件内容命令
- echo命令
功能描述:输出字符串到基本输出
echo [文件名]
- cat命令
功能描述:用来串接文件或显示文件的内容,也可以从标准输入设备读取数据并将其结果重定向到一个新的文件中,达到建立新文件的目的。
选项 | 作用 |
---|---|
-n或-number | 由1开始对所有输出的行数编号 |
-b | 和-n相似,只不过对于空白行不编号 |
-s | 当遇到连续两行以上的空白行,就替换为一行的空白行 |
cat -n /etc/network/mytime
- more命令
功能描述:分页显示文件内容,在终端底部打印出"–more–"及已显示文本占全部文本的百分比
选项 | 作用 |
---|---|
-f | 显示下一页 |
<回车> | 显示下一行 |
-q或-Q | 退出more |
显示目录内容及更改目录命令
- ls命令
功能描述:列出目录内容
选项 | 作用 |
---|---|
-a | 显示所有文件,包括隐藏文件 |
-A | 显示所有文件,包括隐藏文件,但不列出".“和”. ." |
-l | 使用长格式显示文件的详细信息 |
-F | 使用附加文件类别,符号在文件名最后 |
-d | 如果产生是目录,只显示其名称而不显示其下的各个文件 |
-r | 将文件以相反次序显示(默认的是英文字母的顺序) |
-t | 将文件按照建立的时间先后列车 |
-R | 递归显示目录,若目录下有文件,则以下的文件也会被依序列出 |
- pwd命令
功能描述:显示当前工作目录的路径 - cd命令
功能描述:改变当前工作目录
建立、删除文件命令
- touch命令
功能描述:生成空文件和修改文件存取时间
选项 | 作用 |
---|---|
-d | 以yyyymmdd的形式给出要修改的时间 |
- rm命令
功能描述:删除一个目录中的若干个文件或子目录
选项 | 作用 |
---|---|
-i | 互动模式,删除前再一次确认 |
-r | 目录下的所有文件及子目录递归地删除 |
-f | 强制删除 |
建立、删除目录命令
-
mkdir命令
功能描述:建立目录
选项: -p:依次创建目录 -
rmdir命令
功能描述:删除空目录
选项:-p:当子目录被删除后其父目录为空目录时,也一同被删除
复制、移动命令
- cp命令
功能描述:将给出地文件或目录复制到另一个文件或目录中
选项 | 作用 |
---|---|
-f | 强制复制文件 |
-p | 保留原文件的日期 |
-R | 拷贝所有文件及目录 |
语法: cp [选项] [源文件或目录] [目的文件或目录]
sudo cp -R dir/* dir1
- mv命令
功能描述:将文件或目录改名,或将文件由一个目录移入另一个目录
选项 | 作用 |
---|---|
-i | 强制复制文件 |
-f | 保留原文件的日期 |
sudo mv file1 file2
压缩、备份命令
- tar命令
功能描述:tar是一个归档程序,可以把许多文件打包成为一个归档文件或者把它们写入备份文件
选项 | 作用 |
---|---|
-z | 使用gzip或gunzip处理备份文件 |
-c | 产生一个.tar文件 |
-v | 观看压缩过程 |
-f | 指定备份文件 |
将./aaa下所有文件打包、压缩成aaa.bak.tar.gz
tar -zcvf aaa.bak.tar.gz aaa/
打包实例
tar -cvf log.tar log2012.log 仅打包,不压缩!
tar -zcvf log.tar.gz log2012.log 打包后,以 gzip 压缩
tar -zcvf log.tar.bz2 log2012.log 打包后,以 bzip2 压缩
- gzip命令
功能描述:用Lempel-Ziv coding技术压缩文件,压缩文件格式:.gz
选项 | 作用 |
---|---|
-1 | 表示快速压缩 |
-9 | 表示最佳状况压缩 |
-r | 陆续压缩整个目录 |
注意:不是只有-1和-9两个选项,事实上是-1到-9之间选项;压缩完后,原文件被压缩文件替换,与tar压缩不同
3. gunzip命令
功能描述:解压缩以gzip压缩的.gz文件
选项 | 作用 |
---|---|
-a | 使用ASCII文字模式 |
-d | 解压文件 |
-c | 把压缩后的文件输出到输出设备 |
-f | 强行压缩文件,不理会是否存在文件名称 |
-h | 在线帮助 |
-l | 列出压缩文件的相关信息 |
-L | 显示版本与版权信息 |
-n | 解压文件时,若压缩文件内容含有原来的文件名称及时间,忽略处理 |
-q | 不显示警告信息 |
-r | 递归处理,将指定目录下的所有文件及子目录一并处理 |
-S | 更改压缩字尾字符串 |
-t | 测试压缩文件是否正确无误 |
-v | 显示指令执行过程 |
-V | 显示版本信息 |
权限管理命令
- chgrp命令
功能描述:改变文件或目录的所属组
语法:chgrp -R[群组][文件或目录]
修改文件aaa/file.gz的所属组为root
sudo chgrp -R root aaa/file.gz
- chown命令
功能描述:将文件或目录的所有者改变指定用户
语法:chown [选项] [用户] [:群组] [文件或目录]
选项 | 作用 |
---|---|
-R | 递归地改变指定目录及其下地所有子目录和文件地拥有者 |
-v | 显示chown命令所做的工作 |
将Documents目录及其下的文件的所有者改变为用户mary
sudo chown -R mary Documents/
- chmod命令
功能描述:改变文件或目录的访问权限
语法:chmod命令有两种:符号模式和绝对模式
选项 | 作用 |
---|---|
-c | 只输出被改变文件的信息 |
-f | 当chmod不能改变文件模式时,不通知文件的用户 |
-R | 递归地修改相应目录下所有文件和子目录 |
符号模式:
chmod [选项] [who] operator [permission]
who选项 | 含义 |
---|---|
u | 文件属主权限 |
g | 属组用户权限 |
o | 其他用户权限 |
a | 所有用户 |
operator选项 | 含义 |
---|---|
+ | 增加权限 |
- | 取消权限 |
= | 设定权限 |
permis选项 | 含义 |
---|---|
r | 读权限 |
w | 写权限 |
x | 执行权限 |
取消cat.txt文件属主写权限
sudo chmod u-w cat.txt
Linux文件查找命令
-
whereis命令
功能描述:寻找命令地二进制文件,同时找到其他帮助文件
语法: whereis [文件] -
find命令
功能描述:寻找文件或目录地位置
语法: find [搜索路径] [搜寻关键字] [文件或目录]
选项 | 作用 |
---|---|
-type | 指定搜索文件地文件类型 |
-name | 指定搜索文件的名字 |
-group gname | 搜索组名称为gname的文件 |
-iname | 与-name类似 |
在/etc目录下,搜索所有以fil开头的文件
sudo find /etc -iname 'file*'
- locate命令
功能描述:寻找文件或目录
语法:locate [搜索关键字]
列出所有和abc相关的文件,并用more程序显示
locate abc | more
输入输出重定向
标准输入输出
执行一个shell命令行时通常会自动打开三个标准文档:
标准输入文档(stdin):对应终端的键盘
标准输出文档(stdout):对应终端的屏幕
标准错误输出文档(stderr):对应终端的屏幕
进程将从标准输入文档中得到输入数据,将正常输出数据输出到标准输出文档,而将错误信息送到标准错误文档中。
输入重定向
输入重定向:主要用于改变一个命令的输入源Linux系统中,符号’<‘和’<<'分别表示“输入”与“结束输入”
使用重定向的方法,将/etc/passw文档内容传给wc命令(统计文档中的字符、字节)
wc < /etc/passwd
从控制台输入字符串,当输入’eo’为结束,并将结果存储在当前目录下的’cat.txt’(cat命令没有参数就是从控制台输入,然后输出,这里>是输出存储到cat.txt)
cat > cat.txt << eo
输出重定向
输出重定向:是指把命令(或可执行程序)的标准输出或标准错误输出重新定向到指定文件中。
输出重定向: >表示替换 >>表示追加
管道
管道:一个由标准输入输出链接起来的进程集合,每一个进程的输出被直接作为下一个进程的输入
管道是一个连接两个进程的连接器。单向,遵循‘先进先出’原则。管道分为普通管道和命名管道两种。