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算法和模型部署在边缘设备上,实现了数据处理和智能决策的即时响应࿰…...

测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...
五年级数学知识边界总结思考-下册
目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

自然语言处理——Transformer
自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...

GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
Fabric V2.5 通用溯源系统——增加图片上传与下载功能
fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...