Linux目录和文件管理

news2024/11/23 20:24:43

一.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 目标目录]

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

传输层协议分析--第4关:UDP 包分析

任务描述 本关任务:能够掌握简单的 UDP 包分析。 相关知识 为了更好掌握本章内容,你需要了解的有: UDP 报文的简介;UDP 报文格式;Wireshark 软件中的 UDP 抓包分析。 UDP 简介 UDP(User Datagram Pro…

【终极教程】cocos2dx-js 分批次混淆压缩js文件

说明: 1> 由于我们当前游戏框架的结构是平台形式的就是一个大厅里面有若干个子游戏,所以在发布的时候得区分子游戏和大厅了解了一下 project.json 里面有一个 jsList 可以把所有放进去的js文件压缩混淆成一个大的文件但是我们游戏的子游戏非常多 这样子弄显然不合适&#x…

如何设计树形结构

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 前置知识:前…

代码随想录算法训练营Day6 | 344.反转字符串、541.反转字符串||、替换数字、151.反转字符串中的单词、右旋字符串

LeetCode 344 反转字符串 本题思路:反转字符串比较简单,定义两个指针,一个 i 0, 一个 j s.length-1。然后定义一个临时变量 tmp,进行交换 s[i] 和 s[j]。 class Solution {public void reverseString(char[] s) {int i 0;int …

工程项目管理系统源码:Java版工程项目管理系统平台助力工程企业迈向数字化管理的巅峰

随着企业规模的不断扩大和业务的快速发展,传统的工程项目管理方式已经无法满足现代企业的需求。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性,企业需要借助先进的数字化技术进行转型。本文将介绍一款采用Spring CloudSpring BootMybat…

创新铸就卓越 HashData再度荣获 IT168技术卓越奖

12月20日,由国内专业数据库及架构技术社区 ITPUB、 IT 垂直门户IT168 联合主办的“2023 技术卓越奖”评选结果正式揭晓, 酷克数据基于云原生架构打造的HashData云数仓,凭借创新的技术架构、强大的性能表现、行业领先的落地规模,连…

在GitHub找开源项目

在 GitHub 的搜索框里: 使用搜索关键词可以在 GitHub 上快速的找你需要的开源项目: 限制搜索范围 通过 in 关键词 (大小写不敏感) 限制搜索范围: 公式搜索范围in:name xxx项目名包含xxxin:description xxx项目描述包含xxxin:readme xxx项目…

记录 | gdb调试的基本命令

r (run) 运行程序 b (breakpoint) 打断点,比如 b func(打到函数) b 5(打到第5行)(当前文件) b main.cpp:5(main.cpp的第5行) b MyClass::func() (打到类的成员函数func()、在类内可以 p this 打印、p *this、p this->name) tb (temporary breakpoint) 临时断…

算法基础之欧拉函数

欧拉函数 核心思想&#xff1a;欧拉函数: 证明 &#xff1a;容斥原理 #include<iostream>#include<algorithm>using namespace std;const int N 110;int main(){int n;cin>>n;while(n--){int a;cin>>a;int res a;for(int i 2;i < a/i; i){if(a %…

使用TikTok云手机轻松拓展全球市场

TikTok作为一款风靡全球的短视频应用&#xff0c;全球影响力不断扩大。越来越多的商家开始借助TikTok分享作品、在海外市场上获取商业机会。要想更好地借助TikTok扩大海外市场&#xff0c;使用TikTok云手机是一个好选择。本文将介绍TikTok云手机的几大作用&#xff0c;以助您更…

解决ESP8266无法退出透传问题以及获取网络时间以及天气方法

网上很多配置ESP8266的教程&#xff0c;但是遇到无法退出透传模式的情况却没有找得到答案&#xff0c;不知道是大家都没遇到还是怎么样&#xff0c;以下是我的解决方法&#xff1a;实测有效 先发送“”&#xff08;三个加号&#xff09;&#xff08;如果是在串口调试助手调试&…

保存Google Colab数据文件或目录到Google Drive云盘

一、背景 在Google Colab上使用T4 GPU完成微调训练的模型&#xff0c;保存了模型和训练状态的文件存放在Google Colab /content目录内&#xff0c;需要备份。考虑到下载到本地需要大量的流量&#xff0c;且下次继续训练还会上传&#xff0c;最后确定直接保存到Google Drive&am…

linux 上安装 minio

第一步&#xff0c;下载 wget https://dl.minio.org.cn/server/minio/release/linux-amd64/minio 第二步&#xff0c;修改权限 chmod x minio 第三步&#xff0c;设置 Path mv minio /usr/local/bin/ 第四步&#xff0c;创建 minio mkdir minio 第五步&#xff0c;启动 …

C#中var、object和dynamic的区别

在C#编程语言中&#xff0c;我们经常会遇到var、object和dynamic这三个关键字。它们都用于声明变量&#xff0c;但在使用方法和特性上存在一些重要的区别。本文将详细介绍这三者的差异。 目录 var关键字object关键字dynamic关键字总结 var关键字 var是C#语言中的隐式类型推断…

JDBC学习,从入门到入土

JDBC引入 JDBC概念&#xff1a; JDBC是使用Java语言操作关系型数据库的一套API。全称&#xff1a;&#xff08;Java DataBase Connectivity&#xff09;Java数据库连接 JDBC的本质&#xff1a; 官方定义的一套操作所有关系型数据库的规则&#xff0c;即接口。 各个数据库厂…

Windows操作系统重装【老毛桃、软碟通、硬盘装机以及装机原理介绍】

目录 一、老毛桃装机 1.1 老毛桃介绍 1.2 注意事项 1.3 操作步骤 1.3.1 老毛桃U盘制作 1.3.2 老毛桃u盘启动 1.3.3 老毛桃u盘重装系统 二、软碟通装机 2.1 软碟通介绍 2.2 主要特点及功能 2.3 操作步骤 2.3.1 用软碟通制作U盘安装盘 2.3.2 U盘启动 2.3.3 安装系统…

构建陪诊预约系统:技术实现与用户体验

在医疗服务不断创新的背景下&#xff0c;陪诊预约系统作为一种结合技术与人性化服务的应用&#xff0c;为患者提供了更为便捷和贴心的医疗体验。让我们通过简单的示例代码&#xff0c;了解一下如何构建一个基本的陪诊预约系统。 技术栈选择 在开始构建陪诊预约系统之前&…

【数据结构和算法】子数组最大平均数 I

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 2.1 滑动窗口含义 2.2 滑动窗口一般解法 2.3 方法一&#xff1a;滑动窗口 三、代码 3.1 方法一&#…

qt-C++笔记之app.processEvents()和QApplication::processEvents()的区别

qt-C笔记之app.processEvents()和QApplication::processEvents()的区别 code review! 代码1&#xff1a; QApplication app(argc, argv); app.processEvents(); 代码2: QApplication::processEvents(); 区别 代码1和代码2的区别在于代码1中使用了一个具体的QApplication对…

26--字符流与字节流

1、IO流概述 1.1 什么是IO流 Java中I/O操作主要是指使用java.io包下的内容&#xff0c;进行输入、输出操作。输入也叫做读取数据&#xff0c;输出也叫做作写出数据。我们把这种数据的传输&#xff0c;可以看做是一种数据的流动&#xff0c;按照流动的方向&#xff0c;以内存为…