目录
6、touch命令(新建空文件或更新已有文件或目录的修改日期)
14、head/tail命令(查看文件开头或末尾的部分内容)
一、文件与目录管理
1.Linux目录结构特点
(1)树形目录结构组织、管理文件
(2)系统只有一个根目录、一棵树
(3)其他分区、文件、目录以根目录为起点,挂载于目录树
2、目录详解(标红为常用)
/ | Linux文件系统的最上层根目录,其他所有目录均是该目录的子目录 |
/bin | Binary的缩写,存放普通用户可执行的程序或命令 |
/boot | 存放系统启动时所需的文件,这些文件若损坏常会导致系统无法启动,一般不要改动 |
/dev | dev 是设备(device)的英文缩写。包含所有的设备文件 |
/etc | 存放了系统管理时要用到的各种配置文件和子目录 |
/home | 存放一般用户的个人目录 |
/lib | 是库(library)英文缩写,存放系统的各种库文件 |
/lib64 | 存放系统本身需要用到64位程序的共享函数库(library) |
/mnt /media | 可以临时将别的文件系统挂在这个目录下,即为其他的文件系统提供安装点 |
/opt | 该目录通常提供给较大型的第三方应用程序使用,例如Sun Staroffice、Corel WordPerfect,这可避免将文件分散至整个文件系统 |
/proc | 可以在这个目录下获取系统信息。这些信息是在内存中由系统自己产生的 |
/root | 超级用户的个人目录,普通用户没有权限访问 |
/run | 保存自系统启动以来描述系统信息的文件 |
/sbin | 和/bin类似,这些文件往往用来进行系统管理,只有root可使用 |
/srv | srv 是服务(server)的简写,服务启动之后需要访问的数据目录 |
/sys | 本目录是将内核的一些信息映射文件,以供应用程序所用 |
/tmp | 用来存放不同程序执行时产生的临时文件。 |
/usr | 一般用户程序安装所在的目录,用于安装各种应用程序 |
/var | 通常各种系统日志文件放在这里 |
3、路径分类与文件分类
(1)路径可分为:
绝对路径:是指以根目录“/”为起点来表示系统中某个文件(或目录)的位置的方式
相对路径:是以当前目录为起点,表示系统中某个文件或目录在目录结构中的位置的方式。
(2)Linux的文件类型大致可分为:
普通文件:用于存放数据、程序等信息的文件。
目录文件:是由文件系统中一个目录所包含的目录项组成的文件。
链接文件:又称符号链接文件, 用于不同目录下文件的共享。实际上它指向另一个文件。
设备文件:用于与I/O设备提供连接的一种文件,
分为: (1)块设备文件:表示磁盘、光盘等
(2)字符设备文件:联系着按照字符进行操作的终端、键盘等设备。
管道文件:主要用于在进程间传递数据。
套接字文件 :套接字(socket)文件通常用于网络数据连接。
二、常用命令合集
1、pwd命令(查看当前的工作目录)
2、cd命令(改变工作目录)
[root@dyzx ~]# cd /usr/local/lib | //改变目录到/usr/local/lib目录下 |
[root@dyzx lib]# cd .. | //进入当前目录的父目录 |
[root@dyzx local]# cd ./etc | //进入当前目录的父目录下的etc子目录 |
[root@dyzx etc]# cd ~ | //进入root用户登录时的工作目录(家目录) |
[root@dyzx桌面]# cd | //进入当前用户的家目录 |
3、ls命令(改变工作目录)
选项 | 功能 |
-a | 显示所有子目录和文件的信息,包括名称以“.”开头的隐藏目录和隐藏文件。 |
-A | 与-a选项的作用类似,但不显示表示当前目录的“.”和表示父目录的“..”。 |
-c | 按文件的修改时间排序后,予以显示。 |
-d | 显示指定目录本身的信息,而不显示目录下的各个文件和子目录的信息。 |
-h | 以更人性化的方式显示出目录或文件的大小,默认的大小单位为字节,使用-h选项后将显示为K、M等单位。此选项需要和-l选项结合使用才能体现出结果。 |
-l | 以长格形式显示文件和目录的详细信息,ls命令默认只显示名称的短格式。 |
-R | 以递归的方式显示指定目录及其子目录中的所有内容。 |
4、mkdir命令(创建目录)
选项 | 功能 |
-p | 可快速创建出目录结构中指定的每个目录,对于已存在的目录不会被覆盖 |
5、du命令(统计目录及文件的空间占用情况)
选项 | 功能 |
-a | 统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录。 |
-s | 只统计每个参数所占用空间总的大小,而不是统计每个子目录、文件的大小。 |
-h | 以K,M,G为单位显示磁盘使用情况,以提高信息的可读性。 |
6、touch命令(新建空文件或更新已有文件或目录的修改日期)
选项 | 功能 |
-d yyyymmdd | 把文件的存取或修改时间改为 yyyy年mm月dd日。 |
-a | 只把文件的存取时间改为当前时间。 |
-m | 只把文件的修改时间改为当前时间。 |
7、cp命令(复制(copy)文件或目录)
选项 | 功能 |
-a | 通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录 |
-d | 拷贝时保留链接。 |
-f | 在覆盖已经存在的目标文件时不提示。 |
-i | 在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。 |
-p | 除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。 |
-r | 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。 |
-l | 不作拷贝,只是链接文件。 |
8、mv命令(移动(move)文件或目录)
选项 | 功能 |
-b | 移动后源文件或目录不删除,效果相当于复制 |
(1)移动文件或目录
(2)更名文件或目录
9、rm命令(删除(remove)文件或目录)
选项 | 功能 |
-f | 在覆盖已经存在的目标文件时不提示。 |
-i | 在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。 |
-r | 递归删除整个目录树。 |
10、ln命令(为文件或目录建立链接(Link))
选项 | 功能 |
-s | 建立符号链接(软链接),不加该选项时建立的链接为硬链接。 |
-f | 删除已经存在目标文件与源文件之间的链接关系。 |
-i | 交互式地删除目标文件与源文件之间的链接关系。 |
(1)在/tmp目录下创建f3的硬链接文件test1
(2)在/tmp目录下创建f3的符号链接文件test2
11、find命令(查找文件或目录)
选项 | 功能 |
-name 文件名 | 查找指定名称的文件。文件名中可使用“*”及“?”通配符 |
-user 用户名 | 查找属于指定用户的文件 |
-group 组名 | 查找属于指定组的文件 |
-type 文件类型符 | 查找指定类型的文件。文件类型符有:f(普通文件)、d(目录)、b(块设备文件)、c(字符设备文件)、l(符号链接文件)、p(管道文件)等 |
-size [+|-]n[k|M|G] | 根据文件的大小查找文件。其中“n”是文件的大小,符号“+n”表示查找大小大于n的文件; “-n”表示查找大小小于n的文件;k、M、G分别表示文件单位中的千字节、兆字节和千兆字节 |
-perm 权限值 | 根据文件的权限查找文件。其中“权限值”是以八进制的形式表示的访问权限(文件权限的有关概念和表示方法请参见项目4中的介绍) |
需要同时使用多个查找条件时,各表达式之间可以使用逻辑运算符“-a”、”-o”,分别表示而且(and)、或者(or) |
(1)在/etc/目录下查找文件名以“.conf”结尾的文件
(2)在计算机上查找由root用户和mail组拥有的文件:
(3)在/boot目录中查找大小大于2MB且文件名以“vm”开头的文件:
12、cat命令(查看文本文件的内容)
选项 | 功能 |
-n | 对输出内容中的所有行标注行号。 |
-b | 对输出内容中的非空行标注行号。 |
13、more/less命令(分页查看文件内容)
选项 | 功能 |
-数字 | 仅适用于more命令,用来指定分页显示时每页的行数。 |
+num | 指定从文件的第num行开始显示。 |
-c | 从顶部清屏然后显示文件内容。 |
-N | 仅适用于less命令,其作用是在每行前添加输出行号。 |
14、head/tail命令(查看文件开头或末尾的部分内容)
选项 | 功能 |
-num | 指定需要显示文件多少行的内容,若不指定,默认只显示十行。 |
-f | 使tail不停地去读取和显示文件最新的内容, 以监视文件内容的变化。这样有实时监视的效果。 |
15、grep命令(检索、过滤文件内容
选项 | 功能 |
-i | 查找时忽略大小写 |
-v | 反转查找,输出与查找条件不相符的行 |
16、tar命令(文件打包)
选项 | 功能 |
c | 创建.tar格式的包文件 |
x | 释放.tar格式的包文件 |
t | 查看包中的文件列表 |
v | 表示在命令执行时显示详细的提示信息 |
f 包文件名 | 用于指定包文件名。当与-c选项一起使用时,创建的tar包文件使用该选项指定的文件名;当与-x选项一起使用时,则释放该选项指定的tar包文件。 |
p | 打包时保留文件及目录的权限。 |
z | 调用gzip程序,以gzip格式压缩或解压缩文件。 |
j | 调用bzip2程序,以bzip2格式压缩或解压缩文件。 |
J | 使用xz压缩(.tar.xz)。xz的压缩率通常比bzip2更高。 |
C 目录路径名 | 释放包时指定释放的目标的位置。 |
17、echo命令(显示文字)
选项 | 功能 |
-n | 表示输出文字后不换行; |
三、常用操作符
1、“>”、“>>”(输出重定向操作符)
使用形式 | 功能 |
命令 >文件 或者:命令 1>文件 | 将命令执行后的输出信息不在默认的屏幕上显示,而是以覆盖的方式写入到指定文件中,若指定的文件不存在,则自动创建该文件 |
命令 2>文件 | 将命令执行后所产生的错误信息不在默认的屏幕上显示,而是以覆盖的方式写入到指定文件中,若指定的文件不存在,则自动创建该文件 |
命令 &>文件 | 将命令执行后的输出信息和错误信息不在默认的屏幕上显示,而是以覆盖的方式写入到指定文件中,若指定的文件不存在,则自动创建该文件 |
命令 2>/dev/null | 将命令执行后所产生的错误信息不在默认的屏幕上显示,而是写入到空设备文件中,即将输出的错误信息丢弃掉 |
命令>>文件 | 将命令执行后的输出信息以追加的方式写入到指定的文件中 |
2、“<”、“<<”(输入重定向操作符)
使用形式 | 功能 |
命令<文件 | 使命令从指定的文件中读取输入数据 |
命令<<结束标识字符串 | 读取命令行输入,直到遇到输入行为指定的结束标识字符串 |
3、“|”(管道操作符)
使用形式 | 功能 |
命令|命令 | 将前一个命令的输出通过一个无形的“管道”作为下一个命令的输入,即实现 将前一个命令的输出的数据结果作为后一条命令所需要的数据源参数 |
四、vim文本编辑器使用
1、vim文本编辑器介绍
2、命令模式下常用命令
操 作类型 | 操作键 | 功能 |
光标方向移动 | 箭头 | 上、下、左、右 |
翻页 | Page Down或Ctrl+F | 向下翻动一整页内容 |
Page Up或Ctrl+B | 向上翻动一整页内容 | |
行内快速跳转 | Home键或“^”、数字“0” | 跳转至行首 |
End键或“$”键 | 跳转到行尾 | |
行间快速跳转 | 1G或者gg | 跳转到文件的首行 |
G | 跳转到文件的末尾行 | |
#G | 跳转到文件中的第#行 | |
行号显示 | :set nu | 在编辑器中显示行号 |
:set nonu | 取消编辑器中的行号显示 | |
删除 | x或Del | 删除光标处的单个字符 |
dd | 删除当前光标所在行 | |
#dd | 删除从光标处开始的#行内容 | |
d^ | 删除当前光标之前到行首的所有字符 | |
d$ | 删除当前光标处到行尾的所有字符 | |
复制 | yy | 复制当前行整行的内容到剪贴板 |
#yy | 复制从光标处开始的#行内容 | |
粘贴 | p | 将缓冲区中的内容粘贴到光标位置处之后 |
P | 粘贴到光标位置处之前 | |
/word | 从上而下在文件中查找字符串“word” | |
?word | 从下而上在文件中查找字符串“word” | |
n | 定位下一个匹配的被查找字符串 | |
N | 定位上一个匹配的被查找字符串 | |
u | 按一次取消最近的一次操作 多次重复按u键,恢复已进行的多步操作 | |
U | 用于取消对当前行所做的所有编辑 | |
ZZ | 保存当前的文件内容并退出vi编辑器 |
3、末行模式中基本操作
功能 | 命令 | 备注 |
保存文件 | :w | |
:w /root/newfile | 另存为其它文件 | |
退出vi | :q | 未修改退出 |
:q! | 放弃对文件内容的修改,并退出vi | |
保存文件退出vi | :wq | |
:e ~/install.log | 打开新的文件进行编辑 | |
:r /etc/filesystems | 在当前文件中读入其他文件内容 | |
:s /old/new | 将当前行中查找到的第一个字符“old” 串替换为“new” | |
:s /old/new/g | 将当前行中查找到的所有字符串“old” 替换为“new” | |
:#,# s/old/new/g | 在行号“#,#”范围内替换所有的字符串“old”为“new” | |
:% s/old/new/g | 在整个文件范围内替换所有的字符串“old”为“new” | |
:s /old/new/c | 在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认 |