Linux目录和文件管理相关命令

目录

一.目录层次

1.常见目录

2.Linux /usr目录

3.Linux /var 目录

4.重点目录注意点

5.文件系统的目录结构

二.七类常见的linux的文件

三.查看文件显示命令

1.cat:查看文件内容;上下合并文件

2.more:全屏方式分页显示文件内容

3.less:全屏方式分页显示文件内容(更好用)

4.head:查看文件开头部分内容(默认10行)

5.tail:查看文件结尾部分内容(默认10行)

6.wc:统计文件内字节数、字数、行数

7.grep:过滤文件内容中的关键字

8.tr:基本功能转换

9.cut:可以提取文本文件数据的指定列

10.paste:左右合并文件

11.sort:整理过的文本排序显示在屏幕上

12.uniq:去重

四.压缩与解压缩

1.gzip和bzip2

2.归档tar

五.vi编辑器


一.目录层次

1.常见目录

一级目录

(都在根下)

功能(作用)
/bin/

存放系统命令,普通用户和 root 都可以执行。放在 /bin 下的命令在单用户模式也可以执行

(普通用户的命令)

/boot/

系统启动目录,保存与系统启动相关的文件,如内核文件和启动引导程序(grub)文件等

(启动需要的文件)

/dev/

设备文件保存位置

(外来的硬件设备  硬盘 光驱 u盘)

/etc/

配置文件保存位置。系统内所有采用默认安装方式(rpm 安装)的服务配置文件全部保存在此目录中,如用户信息、服务的启动脚本、常用服务的配置文件等

(配置文件)

/home/普通用户的主目录(也称为家目录)。在创建用户时,每个用户要有一个默认登录和保存自己数据的位置,就是用户的主目录,所有普通用户的主目录是在 /home/ 下建立一个和用户名相同的目录。如用户 liming 的主目录就是 /home/liming
/lib/系统调用的函数库保存位置
/media/挂载目录。系统建议用来挂载媒体设备,如软盘和光盘
/mnt/挂载目录。早期 Linux 中只有这一个挂载目录,并没有细分。系统建议这个目录用来挂载额外的设备,如 U 盘、移动硬盘和其他操作系统的分区
/misc/挂载目录。系统建议用来挂载 NFS 服务的共享目录。虽然系统准备了三个默认挂载目录 /media/、/mnt/、/misc/,但是到底在哪个目录中挂载什么设备可以由管理员自己决定。例如,笔者在接触 Linux 的时候,默认挂载目录只有 /mnt/,所以养成了在 /mnt/ 下建立不同目录挂载不同设备的习惯,如 /mnt/cdrom/ 挂载光盘、/mnt/usb/ 挂载 U 盘,都是可以的
/opt/第三方安装的软件保存位置。这个目录是放置和安装其他软件的位置,手工安装的源码包软件都可以安装到这个目录中。不过笔者还是习惯把软件放到 /usr/local/ 目录中,也就是说,/usr/local/ 目录也可以用来安装软件
/root/root 的主目录。普通用户主目录在 /home/ 下,root 主目录直接在“/”下
/sbin/保存与系统环境设置相关的命令,只有 root 可以使用这些命令进行系统环境设置,但也有些命令可以允许普通用户查看
/srv/服务数据目录。一些系统服务启动之后,可以在这个目录中保存所需要的数据
/tmp/临时目录。系统存放临时文件的目录,在该目录下,所有用户都可以访问和写入。建议此目录中不能保存重要数据,最好每次开机都把该目录清空

2.Linux /usr目录

usr,全称为 Unix Software Resource,此目录用于存储系统软件资源。

FHS 建议所有开发者,应把软件产品的数据合理的放置在 /usr 目录下的各子目录中,而不是为他们的产品创建单独的目录。

Linux 系统中,所有系统默认的软件都存储在 /usr 目录下。

子目录功能(作用)
/usr/bin/存放系统命令,普通用户和超级用户都可以执行。这些命令和系统启动无关,在单用户模式下不能执行
/usr/sbin/存放根文件系统不必要的系统管理命令,如多数服务程序,只有 root 可以使用。
/usr/lib/应用程序调用的函数库保存位置
/usr/XllR6/图形界面系统保存位置
/usr/local/手工安装的软件保存位置。我们一般建议源码包软件安装在这个位置
/usr/share/应用程序的资源文件保存位置,如帮助文档、说明文档和字体目录
/usr/src/源码包保存位置。我们手工下载的源码包和内核源码包都可以保存到这里。不过笔者更习惯把手工下载的源码包保存到 /usr/local/src/ 目录中,把内核源码保存到 /usr/src/linux/ 目录中
/usr/includeC/C++ 等编程语言头文件的放置目录

3.Linux /var 目录

/var 目录用于存储动态数据,例如缓存、日志文件、软件运行过程中产生的文件等。通常,此目录下建议包含如表 4 所示的这些子目录。

/var子目录功能(作用)
/var/lib/程序运行中需要调用或改变的数据保存位置。如 MySQL 的数据库保存在 /var/lib/mysql/ 目录中
/var/log/

登陆文件放置的目录,其中所包含比较重要的文件如 /var/log/messages, /var/log/wtmp 等。

(日志文件目录)

/var/run/一些服务和程序运行后,它们的 PID(进程 ID)保存位置
/var/spool/里面主要都是一些临时存放,随时会被用户所调用的数据,例如 /var/spool/mail/ 存放新收到的邮件,/var/spool/cron/ 存放系统定时任务。
/var/www/RPM 包安装的 Apache 的网页主目录
/var/nis和/var/ypNIS 服务机制所使用的目录,nis 主要记录所有网络中每一个 client 的连接信息;yp 是 linux 的 nis 服务的日志文件存放的目录
/var/tmp

一些应用程序在安装或执行时,需要在重启后使用的某些文件,此目录能将该类文件暂时存放起来,完成后再行删除

(临时文件)

4.重点目录注意点

  •   根(/)相当于一个入口,文件的总入口,也是唯一入口
  • boot 系统内核、启动文件

  • dev 硬件文件(黄色)

  • etc 配置文件等同于windows 注册表,一般都是文本文件

  • var/log日志文件,数据变化的

  • root系统管理员的家目录上 /root

5.文件系统的目录结构

  • 以 . 开头的文件均为隐藏文件

  • 路径用/分开 / 不在第一位就是分隔符

  • 文件名最长 255个字符

  • 区分大小写 linux 注意事项

  • 不要太华丽

二.七类常见的linux的文件

七大文件类型(在上一章也有提及)

第一个字符文件类型
-普通文件,包括纯文本文件、二进制文件、各种压缩文件等。
d目录,类似 Windows 系统中的文件夹。
b块设备文件,就是保存大块数据的设备,比如最常见的硬盘。
c字符设备文件,例如键盘、鼠标等。
s套接字文件,通常用在网络数据连接,可以启动一个程序开监听用户的要求,用户可以通过套接字进行数据通信。
p管道文件,其主要作用是解决多个程序同时存取一个文件所造成的错误。
l链接文件,类似 Windows 系统中的快捷方式。

三.查看文件显示命令

1.cat:查看文件内容;上下合并文件

格式:

cat 文件名(文件名可以是单个也可以是多个)

选项效果
-n显示行号包括空行
-b跳过空白行编号
-s将所有的连续的多个空行替换为一个空行(压缩成一个空行)
-A显示隐藏字符
 cat /etc/fstab |grep  '^#' 
#找出/etc目录下fstab文件中以#号开头的行

问题:如何将两个文件 合并成一个文件?

1.使用cat     

cat 1.txt 2.txt > 3.txt    
#将文件1、2上下合并为文件3

2.使用paste

paste 1.txt 2.txt > 3.txt    
#将文件1、2左右合并为文件3

2.more:全屏方式分页显示文件内容

格式:

more   [选项]   文件名

基本操作:

  • 空格下一行 到文末后自动退出

  • b上一行

  • enter一行一行滚动

  • 自动退出

  • q退出

局限性:不可以向上翻页,更建议使用less命令

3.less:全屏方式分页显示文件内容(更好用)

格式:

less [选项] 文件名

基本操作:

  • 可以使用/ 查找 n向下 N向上查找

  • Page Up 向上翻页,Page Down 向下翻页

  • 其余参考more

4.head:查看文件开头部分内容(默认10行)

格式:

head [选项]  [文件]

head -n 具体数字 文件名 (不加具体的数字,默认开头十行)

[root@localhost test]# head -n -3 3.txt 
#-3 不显示最后3行

5.tail:查看文件结尾部分内容(默认10行)

格式:

head [选项]  [文件]

  • tail -n 具体数字 文件名 (不加具体的数字,默认结尾十行)
  • tail -f 具体数字 文件名 实时跟踪最后十行
tail -n -3 3.txt 
#-3 只显示最后三行

head -n +3 3.txt 
#就只显示前三行

tail -n +3 3.txt #
#从第三行开始

tail -f  /var/log/messages
#实时显示 /var/log/messages   文件的后10行

6.wc:统计文件内字节数、字数、行数

格式:

wc [选项] 目标文件 

  • -l:统计行数

  • -w:统计单词个数

  • -c:统计字节数

[root@localhost ~]# cat a.txt 
dasdasdads

[root@localhost ~]# wc a.txt 
 1  1 11 a.txt

[root@localhost ~]# cat a.txt 
das dasdads

[root@localhost ~]# wc a.txt 
 1  2 12 a.txt  

7.grep:过滤文件内容中的关键字

格式:

grep [选项]  查找条件 目标文件

  • -i:查找时忽略大小写

  • -v:反向查找,输出与查找条件不相符的行(反选

  • -o 只显示匹配项

  • -f 对比两个文件的相同行

  • -c 匹配的行数

  • -r 递归 快速过滤 不过滤软链接

  • -w 把字符串看成单词

cat /etc/fstab |grep  '^#' 
#找出/etc目录下fstab文件中以#号开头的行 先cat显示再接管道grep查找

grep  需要 配合正则表达式

^     开头

$     结尾

^$   空行  开头结尾中间什么也没有叫空行

问题:

我现在有一个文件夹里有很多文件,请快速过滤出这个文件夹下 所有含有 root 字符串 的文件

grep  -rw    文件夹

grep  -v  “^$” 文件

8.tr:基本功能转换

格式

tr [选项]   SET1 [SET2]

SET 是一组字符串,一般都可按照字面含义理解

-d 删除

-s 压缩

-c 用字符串1中字符集的补集替换此字符集,要求字符集为ASCII。

[root@localhost ~]#tr 123 abc
#只要出现123 就转换成abc

9.cut:可以提取文本文件数据的指定列

格式:

cut [选项]   [文件]   

-d  (Delimiter): 指明分隔符,默认tab
-f  想要获取的字段
     #: 第#个字段,例如 3
     #,#[,#]:离散的多个字段,例如 1,3,6
     #-#:连续的多个字段, 例如 1-6
     混合使用:1-3,7
-c    取字符

10.paste:左右合并文件

-d指定分隔符
-s不使用平行的行目输出模式,而是每个文件占用一行

 问题:如何将两个文件 合并成一个文件?

1.使用cat     

cat 1.txt 2.txt > 3.txt    
#将文件1、2上下合并为文件3

2.使用paste

paste 1.txt 2.txt > 3.txt    
#将文件1、2左右合并为文件3

11.sort:整理过的文本排序显示在屏幕上

把整理过的文本显示在屏幕上,不改变原始文件

  • -r 执行反方向(由上至下)整理
  • -R 随机排序
  • -n 执行按数字大小整理
  • -h 人类可读排序,如: 2K 1G 
  • -f 选项忽略(fold)字符串中的字符大小写
  • -u 选项(独特,unique),合并重复项,即去重
  • -t 指定分隔符
  • -k 指定列

12.uniq:去重

  • -c: 显示每行重复出现的次数
  • -d: 仅显示重复过的行
  • -u: 仅显示不曾重复的行

uniq命令 常和 sort命令 一起配合使用,先排序后再去重

四.压缩与解压缩

1.gzip和bzip2

-0-9    压缩级别        数字越大压缩级别越大

-d        解压缩

gzip(z)bzip2(j)

gzip [-9] 文件名

提高压缩比例,但是文件较大时效率会低

bzip2 [-9] 文件名

gzip -d

.gz格式的压缩文件

d就是解压

bzip2 -d

.bz2格式的压缩文件

gzip的压缩率 要高于bzip2gzip的压缩率 要高于bzip2

2.归档tar

格式:

tar [选项]   归档文件名 源文件或目录

tar [选项]   归档文件名 [-C 目标目录]

tar   选项    你自定义的名字       你要归档文件

选项功能
-c创建(Create).tar 格式的包文件
-C解压时指定释放的目标文件夹
-x解开.tar 格式的包文件
-f表示使用归档文件 (一般都要带上表示使用tar)
-p打包时保留文件及目录的权限
-P打包时保留文件及目录的绝对径
-t列表查看包内的文件 (要和f一起使用)在不解压的情况查看归档文件内容
-v输出详细信息 (Verbose)
-j调用 bzip2 程序进行压缩或解压
-z调用 gzip 程序进行压缩或解压

注意点:

1.tar  一定要加   f   选项

2.加了  -    f 选项在最后     不加无所谓

3.解压的时可以不考虑   gz  还是   bzip2

五.vi编辑器

Linux 系统中“一切皆文件”,因此当我们在命令行下更改文件内容时,不可避免地要用到文本编辑器。

linux中常见的 文本 还有 nano gedit 知道

推荐使用 Vi 文本编辑器的原因有很多,比如说:

  • 几乎所有的Linux 发行版都内嵌有 Vim 文本编辑器,而其他的编辑器则不一定存在;

  • Vim具有编辑程序的能力,会主动利用不同的字体颜色辨别语法的正确性,方便程序设计 接口

三种模式:输入模式 和  末行模式 之间无法相互转换,  必须退回 命令模式

输入模式末行模式命令模式

会有 插入: 提示符

最后一行会有    冒号

最后一行什么也没有

命令模式下  

按 i  o  会切换到 输入模式 

命令模式下 

按英文冒号   会切换到  末行模式

移动光标

基本操作

 (本章简单介绍vi编辑器的三种模式,下一章将展开介绍vi编辑器相关操作命令)

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小啄学习日记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值