Linux目录和文件管理

一.Linux目录结构

Linux操作系统在定位文件或目录位置时,使用斜杠“ / ”进行分割(区别于Windows操作系统中的反斜杠“ \ ”)。整个树形目录结构中,使用独立的一个" / "表示根目录,根目录是Linux操作系统文件系统的起点,其所在的分区称为根分区。

在根目录下,Linux操作系统将默认建立一些特殊的子目录,分别具有不同的用途,下面介绍一下其中常见的子目录及其作用。

  • /boot : 此目录是系统内核存放的目录,同时也是系统启动时所需文件的存放目录,如vmlinuz和initrd.img。在安装Linux操作系统时,为boot目录创建一个分区,有利于对系统进行备份。

  • /bin : bin是binary的缩写,这一目录存放了所有用户都可执行的且经常使用的命令,如cp、ls等。

  • /dev : 此目录保存了接口设备文件,如/dev/hdal、/dev/cdrom等。

  • /etc :系统主要的配置文件几乎都放置到这个目录内,如:人员的账号密码文件、各种服务的起始文件等。

  • /home :存放所有普通系统用户的默认工作文件夹(称为:宿主目录、家目录),如用户账号“ teacher”对应的宿主目录位于“/home/teacher”。如果服务器需要提供大量的普通用户使用,建议将"/home"目录划分为独立的分区,以方便用户数据备份。

  • /root : 该目录是Linux操作系统管理员(称为:超级用户)root的宿主目录,默认情况下只有root用户的宿主目录在根目录下而不是在“ /home ”目录下。

  • /sbin : 存放Linux操作系统中最基本的管理命令,一般管理员用户才有权限执行。

  • /usr : 存放其他的用户应用程序,通常还被划分成很多子目录,用于存放不同类型的应用程序。

  • /var : 存放系统中经常需要变化的一些文件,如系统日志文件、用户邮箱目录等。在实际应用中,“/var”目录通常也被划分为独立的分区。

二.查看及检索文件命令

1.查看文件内容-cat

1.1 cat

格式: cat 要查看目录文件

只能看普通的文本文件  谁在前面先看谁

缺点:如果内容过多会显示不全

实例:

选项效果
-n显示行号包括空白行
-A显示隐藏字符
-b跳过空白行编号
-s将所有的连续的多个空行替换为一个空行(压缩成一个空行)

1.2 三个标准文件

标准输入:你输入的指令  键盘输入

标准输出:电脑反馈给你的信息

错误输出:电脑的一些报错信息

(默认在屏幕上显示)

1.3 重定向

重新定义标准输出方向

>  覆盖     >>  追加

1.4 >覆盖 

hello 被覆盖成nihao

1.5 >>追加

1.6 paste  横向合并

 

cat  上下合并

小问题:

如何将两个文件合并

cat A B > C  上下合并

paste A B > C 左右合并

paste -d 指定分隔符

1.6 tac A  倒序看

1.7 rev 将同一行的内容逆向显示

1.8 管道符

命令1  | 命令2  | 命令3  | 命令4

|  管道符:将前面命令的结果当做后面命令的执行参数

管道符左边的命令 一定要有标准输出

管道符右边的命令 一定要可以接收标准输入

1.9  hexdump 查看非文本文件内容

2.分页查看内容-more  less

使用cat命令可以非常简单的直接显示整个文件的内容,但是当文件的内容较多时,很有可能只能看到最后一部分信息,文件前面的大部分都来不及看到,而more和less命令通过采用全屏的方式分页显示文件,便于我们从头到尾仔细的阅读文件内容。

2.1 more

结束会直接退出

回车  一行

空格  一页

2.2 less 

结束不会退出

/关键字  进行搜索,大小写敏感

n  向下查看

N  向上查看

q  退出

3.查看文件内容-head  tail

3.1 head命令

用途:查看文件开头的一部分内容(默认为10行)

格式:head  -n 数字  文件名  看文件的前数字行

实例:

看test 文件的前3行

head -c 取字符

依次取   中文一个字算三个字符

倒过来取字符

(用了正则表达式)

3.2 tail 命令

用途:查看文件结尾的少部分内容(默认为10行)

格式:tail  -n 数字  文件名   看文件的后n行

实例:

看test 文件的后3行

tail -f    实时追踪查看文件

tail -f 文件名    tailf = tail -f

通常用于查看系统日志,(因为较新的日志记录总是添加到文件最后),以便于观察差网络访问,服务调试等相关信息,配合选项“ -f ”使用,还可以跟踪文件尾部内容的动态更新,便于实施监控文件内容变化。按ctrl + c 结束运行

三.统计文件内容-wc

格式: wc 【选项】 目标文件

选项说明
-l只统计行
-w只统计单词
-c只统计字符

seq 产生整数序列

四.检索和过滤文件内容-grep

4.1 grep

格式:grep  [选项]  表达式  文件

实例:

过滤/etc/passwd 文件中含有root关键字的行

选项说明
-i忽略大小写
-v反向查找
-o只显示匹配项
-f对比两个文件的相同行
-c只显示匹配的行数

-r  递归目录,但不处理软链接

4.2 正则表达式

. 任意字符

^ 一行的开头

$ 一行的结尾

实例:

grep  “^root” passwd  只能匹配以root开头的

grep  “root$” passwd  只能匹配以root结尾的

grep  “^root$” passwd  这一行只有这四个字母,开头是他结尾是他

空行   grep “^$” passwd

非空行  grep  -v “^$” passwd

小问题:

如何找出两个文件中相同的部分?

grep -f  a文件  b文件

将a文件作为条件去匹配b文件,得出a文件和b文件相同的部分

在某一文件夹中,快速找到所有含有root字符的文件?

(如何快速过滤数据,找到含有特定字符的文件?)

grep -r 表达式  文件夹 (-r  递归目录,但不处理软链接)

4.3 split 分割文件
选项说明
-b按多少字节进行拆分
-d使用数字作为后缀
-a指定后缀长度(默认2)
-l值为每一输出档的行数大小
-C每一输出档中,单行的最大字节数

小问题:

有一个10G的文件,怎么分割成小的文件存储

split -b 100M 文件名

五.压缩和解压缩文件命令-

5.1 gzip命令

制作的压缩文件默认的扩展名为“ .gz ”,制作压缩文件时,使用“ -9 ”选项可以提高压缩的比率,但文件较大时会需要更多的时间。生成压缩文件后,原始文件将不再保留

-d 解压缩

格式:

gzip 【-9】 文件名 :制作压缩文件

gzip -d .gz格式的压缩文件 :解开压缩文件

gunzip .gz格式的压缩文件 :解开压缩文件

选项“ -9 ”解释:

这里的选项可以为:1-9,它们的压缩比例不一样,从低往上压缩压缩比例越来越小。

5,2 bzip2 

bzip2和bunzip2命令的用法与gzip、gunzip命令基本相同,使用bzip2制作的压缩文件默认的扩展名为“.bz2”,保留原文件

格式:

bzip2 -9 文件名 :压缩文件

bzip2 -d .bz格式的压缩文件 :解压文件

bunzip2 .bz2格式的压缩文件 :解压文件

5.3 tar 命令

选项说明
-f

代表使用tar归档  tar  -f  只要出现tar一定要出现f

-c

建立归档

-x

解开归档

-j

代表使用 bzip2压缩

-z

代表使用gzip压缩

-C

指定解压的目录

-t

不解开压缩包 查看压缩包中的内容

-v

显示压缩解压缩过程

-p

 保留权限

-P

保留路径

选项顺序问题:

有  -  f在最后一位

没有  -  都可以

5.3.1 制作归档备份压缩文件

格式:tar 【选项】 压缩后的名字 被压缩的文件名

tar  fzcv  压缩包的名字(*.tar.gz)   需要压缩的文件

一定要加  f

5.3.2 从归档中恢复数据

格式: tar [选项] 要解压的文件名 [-C 目标目录]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/261887.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL:通过官方mysql server,搭建绿色版mysql服务器(Windows)

1. 官网下载mysql server 下载mysql server的zip文件,地址: https://downloads.mysql.com/archives/community/ 解压后 2. 初始化数据库 运行cmd, 进入bin目录,运行 mysqld --initialize-insecureinitialize-insecure说明如…

【Qt之Quick模块】3. QML类型

概述 Qt QML模块为使用QML语言开发应用程序和库提供了一个框架。它定义并实现了语言和引擎基础结构,并提供了一个API,使应用程序开发人员能够使用自定义类型扩展QML语言,并将QML代码与JavaScript和c集成在一起。Qt QML模块提供了QML API和c …

python用什么软件编写程序,python编写的软件有哪些

大家好,本文将围绕python用什么软件编写程序展开说明,python编写的软件有哪些是一个很多人都想弄明白的事情,想搞清楚用什么软件编写python需要先了解以下几个事情。 大家好,小编来为大家解答以下问题,python可以用什么…

一文3000字从0到1使用JMeter进行压力测试!

一、压力测试 压力测试考察当前软硬件环境下系统所能承受的最大负荷并帮助找出系统瓶颈所在。压测都是为了系统在线上的处理能力和稳定性维持在一个标准范围内,做到心中有数。 使用压力测试,我们有希望找到很多种用其他测试方法更难发现的错误。有两种错…

【MATLAB】史上最全的25种信号分解算法全家桶

有意向获取代码,请转文末观看代码获取方式~ 1 【MATLAB】EMD 信号分解算法 EMD 是一种信号分解方法,它将一个信号分解成有限个本质模态函数 (EMD) 的和,每个 EMD 都是具有局部特征的振动模式。EMD 分解的主要步骤如下: 将信号的…

软件分享--图片置顶工具

一个好的程序应该只做一件事情,并且将这件事情做好。 使用许多小工具的集合要比使用一个什么都做但什么都做不好的工具要好。 linux系统强大,组成它的是dd、sed、grep、awk、tar等各种命令工具的集合。 如果你能够合理使用各种小工具。效率会比使用任何…

【pentaho】kettle读取Hive表不支持bigint和timstamp类型解决。

一、bigint类型 报错: Unable to get value BigNumber(16) from database resultset显示kettle认为此应该是decimal类型(kettle中是TYPE_BIGNUMBER或称BigNumber),但实际hive数据库中是big类型。 修改kettle源码解决: kettle中java.sql.Types到kettle…

12.21

一、注意事项 1.CtrlShiftT用于从jar中查找类,这个eclipse键盘快捷键可以帮助快速找到类 2.更新upm和rest遇到重复解决方法 把upm文件里面多出来的三行代码删掉,右击upm文件,点击小组,点击标记为已解决,点击OK&#x…

springboot使用Validated实现参数校验

做为后端开发人员,一定有前端传的数据是可能会出错的警惕性,否则程序就可能会出错,比如常遇到的空指针异常,所以为了程序运行的健壮性,我们必须对每一个参数进行合法校验,就能避免很多不必要的错误&#xf…

MyBatis Plus使用遇到的问题

如果想使用Mapper的xxxById()方法,实体类的主键上面必须加上TableId注解,如果不加,会报错 2023-12-21 22:48:33.526 WARN 11212 --- [ main] c.b.m.core.injector.DefaultSqlInjector : class com.example.mybatisplusdemo.dom…

Java最全面试题专题---5、Spring MVC

概述 什么是Spring MVC?简单介绍下你对Spring MVC的理解? Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把模型-视图-控制器分离,将web层进行职责解耦,把复杂的web应用分成逻辑清…

牛客小白月赛78(C: 第K小表示数)

C-第K小表示数_牛客小白月赛78 (nowcoder.com) 问题: 分析: k的极限是1e6,因此要几乎O(n)的时间复杂度给求出来,还需要每插入一个元素我都要去排序,这个时候set就派上用场了,自带排序和去重,集合里面最小和第二小的一定是min(a…

新闻软文怎么写?才能让用户看得下去

在企业软文推广的过程中,除了常规的行业型软文与用户型软文外,新闻式软文也是企业宣传的常用方式。然而新闻稿虽然可信度强,但是故事性弱用户不一定看得下去,如果无法吸引用户阅读的话,那这篇新闻稿就起不到宣传作用&a…

pip 离线安装:利用pypi网站进行模块 库的离线安装

离线安装是一种很好的方法,在网络不佳、库版本不明确、复杂库本地编译安装报错时,通过whl文件的下载安装,可以很高效的解决问题。 pypi的网站:https://pypi.org/ 这个网站包含各种你 pip install xxx 的库,离线安装可…

【Week-P2】CNN彩色图片分类-CIFAR10数据集

文章目录 一、环境配置二、准备数据三、搭建网络结构四、开始训练五、查看训练结果六、总结3.1 ⭐ torch.nn.Conv2d()详解3.2 ⭐ torch.nn.Linear()详解3.3 ⭐torch.nn.MaxPool2d()详解3.4 ⭐ 关于卷积层、池化层的计算4.2.1 optimizer.zero_grad()说明4.2.2 loss.backward()说…

【git学习笔记 01】打标签

文章目录 一、声明二、对标签的基本认知什么是标签?为什么要打标签?如何生成类似github中readme的图标 三、标签相关命令四、示例操作 一、声明 本帖持续更新中如有纰漏,望批评指正!参考视频链接,非常感谢原作者&…

法线贴图实现衣服上皱褶特效

在线工具推荐: 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 法线贴图在3D建模中扮演着重要的角色,它通过模拟表面的微…

Vue3视图渲染技术(2)

我是南城余!阿里云开发者平台专家博士证书获得者! 欢迎关注我的博客!一同成长! 一名从事运维开发的worker,记录分享学习。 专注于AI,运维开发,windows Linux 系统领域的分享! 本…

vue中的侦听器和组件之间的通信

目录 一、侦听器 监听基本数据类型: 监听引用数据类型: 计算属性和watch区别? 二、组件通信/传值方式 1.父子组件传值 父组件给子组件传值: (1)props (2)provide inject &…

k8s中Helm工具实践

k8s中Helm工具实践 1)安装redis-cluster 先搭建一个NFS的SC(只需要SC,不需要pvc),具体步骤此文档不再提供,请参考前面相关章节。 下载redis-cluster的chart包 helm pull bitnami/redis-cluster --untar…