目录与文件管理
Linux目录的结构
树形目录结构
常见的子目录解释
●/bin:
bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。是一个软链接文件,源文件是/usr/bin
●/boot:
这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。
●/dev :
dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。
●/etc:
etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。
●/home:
用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。
●/lib:
lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。是个软链接文件/usr/lib
●/lost+found:
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
●/media:
linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。
●/mnt:
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。
●/opt:
opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
●/proc:
proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:
●/root:
该目录为系统管理员,也称作超级权限者的用户主目录。
●/sbin:
s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。是个软连接文件,源文件是usr/sbin
●/selinux:
这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。
●/srv:
该目录存放一些服务启动之后需要提取的数据。
●/sys:
这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。
sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。
该文件系统是内核设备树的一个直观反映。
当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
●/tmp:
tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。
●/usr:
usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。
●/usr/bin:
系统用户使用的应用程序。
●/usr/sbin:
超级用户使用的比较高级的管理程序和系统守护程序。
●/usr/src:
内核源代码默认的放置目录。
●/var:
var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
●/run:
是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
查看文件与目录命令系列
查看文件内容-cat命令
●直接显示整个文件的内容
cat [选项] 文件名
●常见的选项
-n:对所有输出的行数编号
-b:对于空白行不编号
-s:将所有的连续的多个空行替换为一个空行
●示例
查看文件内容-more命令
●全屏方式分页显示文件内容
more [选项] 文件名
●交互操作方法
1.按Enter键向下逐行滚动
2.按空格键向下翻一页
3.按b键向上翻一页
4.按q键退出
5.下翻到最后一页会自动退出
6.结合管道操作使用(例如:ls -R /etc | more)无法向上翻页
查看文件内容—less命令
●与more命令相同,但扩展功能更多
less [选项] 文件名
●交互操作方法
1.page up向上翻页,page down向下翻页
2.按“/”键查找内容,“n”下一个内容,“N”上一个内容
3.通过上下键可以实现上下逐行滚动
4.其他功能与more命令基本类似
5.下翻到最后一页后不会自动退出
6.结合管道操作使用时可以向上翻页
查看文件内容head、tail命令
●head命令
用途:查看文件开头的一部分内容(默认为10行)
head -n 文件名 //n为行数
●tail命令
用途:查看文件结尾的少部分内容(默认为10行)
tail -n 文件名 //n为行数
tail -f 文件名 //跟踪文件尾部内容的动态更新
●实例
统计文件内容-wc命令
●统计文件中 单词数量(word count)等信息
wc [选项] 目标文件
●常用命令选项
-l:统计行数
-w:统计单词个数
-c:统计字节数
注:不带任何选项的wc命令,默认同时使用-lwc三个选项
检索和过滤文件内容grep命令
●在文件中查找并显示包含指定字符串的行
grep [选项] 查找条件 目标文件
●常见的命令选项
-i:查找时不分大小写
-v:显示不包括匹配文本的所有的行(反向查询,反向匹配)
-n:只输出匹配到的总行数(不是匹配到的次数)
-c:显示匹配行及行号
-e:E实现多个查找条件的匹配,逻辑OR关系
-E:支持使用扩展正则表达式,相当于使用egrep命令
-o:精确匹配,仅匹配之意
●查找条件设置
1.要查找的字符串以双引号括起来
2.^…表示以…文字开头
3. …$ 表示以…结尾
3.“^$”表示空行
示例
压缩文件两种方式 gzip 和bzip2
●命令:
gzip [-9] 文件名
bzip2[-9] 文件名
注意:当使用gzip压缩纯文本文件时,效果是非常的明显,大约可以减少70%以上的文件大小
●命令说明
gzip [-9] 文件名
注意:使用gzip制作压缩文件默认的扩展名为“.gz”,原始文件不会再保留
bzip2[-9] 文件名
注意:使用bzip2制作压缩文件默认的扩展名为“.bz2”,原始文件不会再保留
-9:代表压缩比的等级,指令的值可以1代表:压缩速度最快,最低的压缩质量;至9(压缩速度最慢,压缩率最高)。其默认值是6,压缩比和压缩质量比较均衡
● [选项]-d
用于解压缩过的文件,相当于使用gunzip、bunzip2命令
gunzip 文件名.gz
gzip -d 文件名.gz
bunzip2 文件名.bz2
bzip2 -d 文件名.bz2
归档命令- tar命令
●制作归档文件、释放归档文件
tar [选项] 归档文件名 源文件或目录
tar [选项] 归档文件名 [-C 目标目录]
●常用命令选项
-c:创建.tar格式的包文件
-x:解开.tar格式的包文件
-v:输出详细信息
-f:表示使用归档文件
-p:打包时保留文件及目录的权限
-t:列表查看包内的文件
-C:解压时指定释放的目标文件夹
-z:调出gzip程序进行压缩或解压
-j:调用bzip2 程序进行压缩或解压
-P:打包时保留文件及目录的绝对路径
文本编辑器 -vi命令
●文本编辑器的作用
1.创建或修改文本文件
2.维护linux系统中的各种配置文件
●linux中最常用的文本编辑器
1.vi 类unix 操作系统的默认文本编辑器
2.vim 它是vi文本编辑器的增强版本
●三种工作模式
1.命令模式:启动vi编辑器后默认进入命令模式,该模式中主要完成如光标移动、字符串查找、以及删除、复制、粘贴文件内容等相关模式
2.输入模式:该模式中主要的操作就是录入文件的信息,可以对文本正文进行修改,或者添加新的内容,处于输入模式时,vi编辑器的最后的一行会出现“–SNSERT–”的状态提示信息
3.末行模式:该模式中可以设置VI编辑器环境保存文件、退出编辑器,以及对文件内容进行查找、替换等操作。处于末行模式时,vi编辑器的最后一行会出现冒号“:”提示符
●不同模式之间的切换
●命令模式切换输入模式:
a:在当前光标位置之后插入内容
i:在当前光标位置之前插入内容
o:在光标所在行之下插入一个新行内容
O:在光标所在行之上插入一个新行内容
A:在所在行的行尾插入内容
I:在所在行的行首插入内容
命令模式:
操作类型
操作类型 | 操作键 | 功能 |
---|---|---|
翻页移动 | page down键或ctrl+F | 向下翻动一整页内容 |
翻页移动 | page up键或ctrl+B | 向上翻动一整页内容 |
行内快速跳转 | home或^ 、数字、0键 | 跳转到本行的行首 |
行内快速跳转 | End键或$键 | 跳转到本行的行尾 |
行间快速跳转 | 1G或gg | 跳转到文件内容的第一行 |
行间快速跳转 | G | 跳转到文件内容的最后的一行 |
行间快速跳转 | #G | 跳转到文件内容的第#行(#代表行数用数字表示) |
行间快速跳转 | M | 跳转至当前也的中间位置 |
显示行号 | :set nu | 在编辑器中显示行号 |
显示行号 | :set nonu | 取消行号显示 |
删除 | x或delete | 删除光标处的单个字符 |
删除 | dw | 删除光标处的整个单词 |
删除 | dd | 删除当前光标所在行(有剪切功能) |
删除 | #dd | 删除从光标处开始的#行内容 |
删除 | d^ | 删除当前光标之前到行首的所有字符 |
删除 | d$ | 删除当前光标处到行尾的所有字符 |
替换字符 | R或shift + r | 替换当前光标处字符 |
复制 | yy | 复制当前行整行的内容到剪贴板 |
复制 | #yy | 复制从光标处开始的#行内容 |
粘贴 | P | 粘贴到光标所在行至上 |
粘贴 | p | 粘贴到光标所在行至下 |
查找 | /word | 从当前光标处开始向后进行查找字符串“/word” |
查找 | ?word | 从当前光标处开始向前进行查找字符串“/word” |
查找 | n | 定位下一个匹配的被查找字符串 |
查找 | N | 定位上一个匹配的被查找字符串 |
撤销 | u | 按一次取消最近的一次操作;重复u键,恢复多步操作 |
撤销 | U | 用于取消对当前行所作的所有编辑 |
保存退出 | :w | 保存修改的内容 |
保存退出 | :w 新文件名 | 另存为其它文件 |
保存退出 | :q | 未修改退出 |
保存退出 | :q! | 放弃对文件内容修改并退出 |
保存退出 | ZZ或:wq、:x | 保存当前文件内容并退出vi编辑器 |
打开新文件 | :e 其他文件名 | 打开新的文件进行编辑 |
读入文件内容 | :r 其他文件名 | 在当前文件中读入其他文件内容 |
文件内容替换 | :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命令,将对每个替换动作提示用户进行确认 |
文件内容替换 | :s /old/new/c | 在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认 |
文件内容替换 | :8,11 m 4 | 将8-11行的内容剪切到第四行下面 |
文件内容替换 | :8,11 co 4 | 将8-11行的内容复制到第四行下面 |
注意 : shift + 3 组合键,可在脚本文件中高亮所有的相关字符串