Linux 基础命令-文件与目录操作
在 Linux 操作系统中,文件和目录是组织和管理数据的核心单元。作为一个命令行驱动的操作系统,Linux 提供了一系列强大且灵活的命令来操作文件和目录。掌握这些命令不仅是管理 Linux 系统的基础,也是高效使用 Linux 环境的关键。
一、文件与目录的基本操作
1.1 pwd —— 显示当前工作目录
pwd(print working directory)命令用于显示用户当前所在的目录路径。Linux 是一个多层次的文件系统,用户在执行操作时常常需要知道自己当前所在的目录。
$ pwd
/home/user
1.2 ls —— 列出目录内容
ls(list)命令用于列出指定目录中的文件和子目录。它有许多选项来控制输出结果的格式和内容。
$ ls
file1.txt file2.txt dir1$ ls -l # 显示详细信息,包括权限、所有者、大小等
total 8
-rw-r--r-- 1 user user 4096 Sep 8 09:00 file1.txt
-rw-r--r-- 1 user user 2048 Sep 8 09:10 file2.txt
drwxr-xr-x 2 user user 4096 Sep 8 09:15 dir1$ ls -a # 显示所有文件,包括隐藏文件
. .. .hidden_file file1.txt file2.txt dir1
常见的选项有:
-l:显示详细信息(如权限、大小、所有者等)。-a:显示包括隐藏文件在内的所有文件。-h:以人类可读的形式显示文件大小(例如 KB、MB 等)。
1.3 cd —— 切换目录
cd(change directory)命令用于在不同的目录之间切换。通过指定目标目录的路径,用户可以快速移动到该目录。
$ cd /home/user/Documents # 切换到绝对路径 /home/user/Documents
$ cd .. # 返回上一级目录
$ cd ~ # 切换到用户的主目录
.表示当前目录,..表示上一级目录,~表示用户的主目录。
1.4 mkdir —— 创建目录
mkdir(make directory)命令用于创建新的空目录。
$ mkdir new_directory # 创建一个名为 new_directory 的目录$ mkdir -p parent_directory/child_directory # 递归创建目录,父目录不存在时一并创建
选项 -p 用于创建不存在的父目录,这对于创建嵌套目录结构非常有用。
1.5 rmdir 和 rm -r —— 删除目录
rmdir(remove directory)命令用于删除空目录。如果目录非空,需要使用 rm -r 命令。
$ rmdir empty_directory # 删除空目录$ rm -r non_empty_directory # 删除非空目录及其内部所有文件和子目录
rm -r的-r(recursive)选项表示递归删除目录中的所有内容,因此操作时需格外小心,避免误删重要文件。
1.6 touch —— 创建空文件或更新文件时间戳
touch 命令用于创建空文件或更新已存在文件的时间戳。如果指定的文件不存在,touch 会自动创建一个新的空文件。
$ touch newfile.txt # 创建一个空文件 newfile.txt
如果文件已存在,touch 不会改变其内容,但会更新文件的修改时间。
1.7 cp —— 复制文件或目录
cp(copy)命令用于复制文件或目录。它支持将单个文件或整个目录复制到指定的位置。
$ cp file1.txt file2.txt # 复制 file1.txt 到 file2.txt
$ cp -r dir1/ dir2/ # 递归复制目录 dir1 到 dir2
常见选项:
-r:递归复制目录及其内容。-i:提示用户确认是否覆盖已有文件。-p:保留源文件的权限、所有者和时间戳信息。
1.8 mv —— 移动或重命名文件/目录
mv(move)命令既可以用于移动文件或目录,也可以用于重命名文件或目录。
$ mv file1.txt file2.txt # 重命名 file1.txt 为 file2.txt
$ mv file1.txt /path/to/destination/ # 移动文件到指定目录
如果目标文件或目录已经存在,mv 会覆盖它。可以通过 -i 选项来提示用户确认操作。
1.9 rm —— 删除文件或目录
rm(remove)命令用于删除文件或目录。与 cp 和 mv 类似,rm 也支持递归操作。
$ rm file.txt # 删除文件 file.txt
$ rm -r directory/ # 递归删除目录及其内容
常见选项:
-i:删除文件前提示用户确认。-r:递归删除目录及其内容。
二、文件权限与管理
Linux 是一个多用户操作系统,文件和目录的权限管理非常重要。每个文件或目录都有对应的所有者、所属组以及对应的权限。
2.1 chmod —— 修改文件权限
chmod(change mode)命令用于修改文件或目录的权限。权限分为三类:读(r)、写(w)和执行(x)。每个文件的权限可以分别设置为用户、组和其他人。
权限表示的格式如下:
rwx:分别表示读(read)、写(write)和执行(execute)。- 例如,
rwxr-xr--表示用户有读、写和执行权限,组有读和执行权限,其他人只有读权限。
$ chmod 755 file.txt # 设置文件权限为 rwxr-xr-x
755 是一种八进制表示法:
- 7 =
rwx(用户权限) - 5 =
r-x(组权限) - 5 =
r-x(其他人权限)
2.2 chown 和 chgrp —— 修改文件所有者和组
chown(change owner)用于修改文件的所有者,chgrp(change group)用于修改文件的所属组。
$ sudo chown new_owner file.txt # 修改文件的所有者为 new_owner
$ sudo chgrp new_group file.txt # 修改文件的所属组为 new_group
三、文件内容查看与编辑
3.1 cat —— 查看文件内容
cat(concatenate)命令用于查看文件内容,尤其是较小的文件。它会直接将文件的内容输出到终端。
$ cat file.txt # 查看文件内容
3.2 more 和 less —— 分页查看文件内容
当文件内容较长时,more 和 less 命令可以帮助用户分页查看文件内容。它们不会一次性输出所有内容,而是按页展示,用户可以通过翻页查看。
$ more file.txt # 分页查看文件内容
$ less file.txt # 更加灵活的分页查看方式
less 命令比 more 更加灵活,支持上下滚动。
3.3 head 和 tail —— 查看文件开头和结尾
head 和 tail 命令分别用于查看文件的前几行和后几行内容。
$ head -n 10 file.txt # 查看文件的前 10 行
$ tail -n 10 file.txt # 查看文件的最后 10 行
tail 常常与 -f 选项结合使用,用于实时监控文件内容的变化,例如查看日志文件。
$ tail -f /var/log/syslog # 实时查看日志文件内容
四、查找文件和目录
4.1 find —— 搜索文件和目录
find 命令用于在指定目录下递归搜索文件或目录。它支持根据名称、大小、时间等条件进行搜索。
$ find /path/to/search -name "file.txt" # 按名称搜索文件
$ find /path/to/search -size +10M # 搜索大于 10MB 的文件
4.2 `locate
` —— 快速查找文件
locate 命令基于预构建的数据库来快速查找文件,它比 find 更快,但查找结果可能不是最新的。
$ locate file.txt # 快速查找文件
4.3 grep —— 搜索文件内容
grep(global regular expression print)命令用于在文件中搜索指定的文本模式。它支持正则表达式,可以用于高效的文本匹配。
$ grep "search_text" file.txt # 搜索文件中包含 search_text 的行
$ grep -r "search_text" /path/to/search # 递归搜索目录中的文件内容
五、总结
Linux 文件与目录操作是系统管理和开发的基础技能。通过熟练掌握这些命令,用户可以高效地管理文件系统,执行文件创建、复制、移动、删除等操作。Linux 提供了丰富的选项和工具来处理各种文件管理任务,理解并应用这些命令可以极大地提升在 Linux 环境下的工作效率。
相关文章:
Linux 基础命令-文件与目录操作
在 Linux 操作系统中,文件和目录是组织和管理数据的核心单元。作为一个命令行驱动的操作系统,Linux 提供了一系列强大且灵活的命令来操作文件和目录。掌握这些命令不仅是管理 Linux 系统的基础,也是高效使用 Linux 环境的关键。 一、文件与目…...
Delphi 12.1安卓APP开发中获取硬件信息及手机号
Demo与代码已上传到CSDN下载。 这里简单说一下代码内容,完整代码请自行下载,不清楚的欢迎留言交流。 前言 演示Demo使用了我自己开发的一个控件,TLayoutPro 《Delphi D10.3 LayoutsPro 控件简介 -避免输入焦点被虚拟键盘遮挡》请查看并下载控…...
STM32 - 笔记4
1 STM32 示波器 基于STM32的简易示波器项目(含代码)——HAL库_stm32简易示波器 基于STM32的简易示波器项目(含代码)——HAL库_stm32简易示波器_stm32示波器-CSDN博客 【强烈推荐】基于stm32的OLED各种显示实现(含动态图)_stm32oled以十六进制显示-CSDN博客 STM32示波器…...
【H2O2|全栈】更多关于HTML(1)HTML进阶(一)
目录 HTML进阶知识 前言 准备工作 标签的扩展(一) 本文中的标签在什么位置使用? title标签 meta标签 name viewport referrer http-equiv charset content link标签 实际案例 可视部分 代码分析 其他标签 base标签 styl…...
新160个crackme - 053-devilz KeyGen me#3
运行分析 解压出来4个文件运行程序发现要破解Name和Serial PE分析 32位,petite壳 手动脱壳 使用windows XP虚拟机OD打开程序按2下F8,发现ESP变红,根据ESP定律,在该地址右键 -> HW break下断点 继续按2下F9,来到灰色…...
ORA-12514
第一步,去这个地址,查查你的服务名是否存在 第二步,没查到就是你服务名写错了,查到了就退出我的解答...
MyBatis-PlusDruid数据源
MyBatis-Plus简介 MyBatis-Plus(简称MP)是一个MyBatis的增强工具,它在MyBatis的基础上进行了增强而不改变其原有的功能,旨在简化开发、提高效率。以下是对MyBatis-Plus的详细简介: 一、基本概述 定义:MyBat…...
C#中chart绘制曲线
官网资料:Chart 类 (System.Windows.Forms.DataVisualization.Charting) | Microsoft Learn 类的 Chart 两个重要属性是 Series 和 ChartAreas 属性,这两个属性都是集合属性。 Series集合属性存储Series对象,这些对象用于存储要显示的数据以…...
c++数据结构算法题讲解
那么从本期文章开始,会尽量带大家一起刷题 第一题 题目 关键词 思路 源代码 class MinStack { public: void push(int val) { _st.push(val); if(_minst.empty() || val < _minst.top()) { _minst.push(val); } } void pop() { if(_st.top() _minst.top()) {…...
间隙锁在其他数据库管理系统中的类似实现
间隙锁在其他数据库管理系统中的类似实现 一、引言 在 MySQL 中,间隙锁在可重复读事务隔离级别下起到了防止幻读的重要作用。那么在其他数据库管理系统中,是否也有类似的机制来实现类似的功能呢?了解其他数据库管理系统中与间隙锁类似的实现,可以帮助我们更好地理解不同数…...
OpenCV 与 YoloV3的结合使用:目标实时跟踪
目录 代码分析 1. YOLO 模型加载 2. 视频加载与初始化 3. 视频帧处理 4. 物体检测 5. 处理检测结果 6. 边界框和类别显示 7. 帧率(FPS)计算 8. 结果显示与退出 9. 资源释放 整体代码 效果展示 总结 代码分析 这段代码使用 YOLO(…...
Worse is Better
Worse is Better是UNIX的设计哲学,通俗来说,就是:保持接口与实现的简单性,比系统的任何其他属性,包括准确性、一致性和完整性,都来得更加重要 设计系统时,接口和实现的简单性是至关重要的。这种…...
Python Web 框架篇:Flask、Django、FastAPI介绍及其核心技术
Python Web 框架篇:Flask、Django、FastAPI介绍及其核心技术 目录 🐍 Flask Flask 核心概念(路由、视图函数、模板渲染)Flask Blueprint 模块化应用Flask 扩展(Flask-SQLAlchemy、Flask-WTF、Flask-Migrate 等&#…...
【Qt网络编程基础】Tcp服务器和客户端(只支持一对一)
目录 一、编写思路 1、服务器 总体思路 详细思路 1. 构造函数 (Widget::Widget) 2. 启动监听 (Widget::on_btn_start_clicked) 3. 停止监听 (Widget::on_btn_cease_clicked) 4. 发送消息 (Widget::on_btn_info_clicked) 5. 接收消息 (Widget::receive_message) 6. 处…...
平台开发到落地详解:从食堂采购系统源码到可视化供应链管理数据大屏
随着数字化转型的加速,越来越多的企业和组织开始重视供应链的智能化与可视化管理。在食堂采购领域,供应链管理的复杂性与日俱增,而传统的手工操作往往效率低下、容易出错。因此,开发食堂采购系统并结合可视化数据大屏的解决方案&a…...
静态内部类
目录 一、什么是静态内部类二、静态内部类的意义 一、什么是静态内部类 在 Java 中,静态内部类(也称为静态嵌套类)是定义在一个类内部的类,但它与外部类没有关联,即它不持有外部类的引用。静态内部类可以访问外部类的…...
Vue+SpringBoot+数据库整体开发流程 1
本篇文章通过springboot整合mybatis-plus去实现后端对数据库的增删改查,以及响应给前端的url,让前端获得数据。 目录 一、简单搭建一个Vue项目 检查node.js版本 使用vue-cli创建空项目 Vue-cli工程中每个文件夹和文件的用处 二、Mysql数据库 创建数…...
百度Apollo打通与ROS的通信,扩展自动驾驶系统生态
技术文档|打通与ROS的通信,扩展自动驾驶系统生态_Apollo开发者社区 (baidu.com)...
Web3 项目安全手册
现如今针对 Web3 项目的攻击手法层出不穷,且项目之间的交互也越发复杂,在各个项目之间的交互经常会引入新的安全问题,而大部分 Web3 项目研发团队普遍缺少的一线的安全攻防经验,并且在进行 Web3 项目研发的时候,重点关…...
AI边缘计算在安防领域的智能化革新:赋能安防系统的智能化升级
随着人工智能(AI)和边缘计算技术的快速发展,两者在安防视频领域的应用日益广泛,为传统安防系统带来了革命性的变革。AI边缘计算技术通过将AI算法和模型部署在边缘设备上,实现了数据处理和智能决策的即时响应࿰…...
Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
【力扣数据库知识手册笔记】索引
索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...
抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
质量体系的重要
质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络…...
现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...
算法:模拟
1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) 遍历字符串:通过外层循环逐一检查每个字符。遇到 ? 时处理: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: 与…...
【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...
DeepSeek源码深度解析 × 华为仓颉语言编程精粹——从MoE架构到全场景开发生态
前言 在人工智能技术飞速发展的今天,深度学习与大模型技术已成为推动行业变革的核心驱动力,而高效、灵活的开发工具与编程语言则为技术创新提供了重要支撑。本书以两大前沿技术领域为核心,系统性地呈现了两部深度技术著作的精华:…...
6️⃣Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙
Go 语言中的哈希、加密与序列化:通往区块链世界的钥匙 一、前言:离区块链还有多远? 区块链听起来可能遥不可及,似乎是只有密码学专家和资深工程师才能涉足的领域。但事实上,构建一个区块链的核心并不复杂,尤其当你已经掌握了一门系统编程语言,比如 Go。 要真正理解区…...
