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算法和模型部署在边缘设备上,实现了数据处理和智能决策的即时响应࿰…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...
听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...
Java数值运算常见陷阱与规避方法
整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...
【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案
目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后,迭代器会失效,因为顺序迭代器在内存中是连续存储的,元素删除后,后续元素会前移。 但一些场景中,我们又需要在执行删除操作…...
pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)
目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 (1)输入单引号 (2)万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...
Spring Boot + MyBatis 集成支付宝支付流程
Spring Boot MyBatis 集成支付宝支付流程 核心流程 商户系统生成订单调用支付宝创建预支付订单用户跳转支付宝完成支付支付宝异步通知支付结果商户处理支付结果更新订单状态支付宝同步跳转回商户页面 代码实现示例(电脑网站支付) 1. 添加依赖 <!…...
篇章二 论坛系统——系统设计
目录 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 1. 数据库设计 1.1 数据库名: forum db 1.2 表的设计 1.3 编写SQL 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 通过需求分析获得概念类并结合业务实现过程中的技术需要&#x…...
车载诊断架构 --- ZEVonUDS(J1979-3)简介第一篇
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 做到欲望极简,了解自己的真实欲望,不受外在潮流的影响,不盲从,不跟风。把自己的精力全部用在自己。一是去掉多余,凡事找规律,基础是诚信;二是…...
