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算法和模型部署在边缘设备上,实现了数据处理和智能决策的即时响应࿰…...
iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...
IP如何挑?2025年海外专线IP如何购买?
你花了时间和预算买了IP,结果IP质量不佳,项目效率低下不说,还可能带来莫名的网络问题,是不是太闹心了?尤其是在面对海外专线IP时,到底怎么才能买到适合自己的呢?所以,挑IP绝对是个技…...
在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)
考察一般的三次多项式,以r为参数: p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]; 此多项式的根为: 尽管看起来这个多项式是特殊的,其实一般的三次多项式都是可以通过线性变换化为这个形式…...
基于Springboot+Vue的办公管理系统
角色: 管理员、员工 技术: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 该办公管理系统是一个综合性的企业内部管理平台,旨在提升企业运营效率和员工管理水…...
【C++】纯虚函数类外可以写实现吗?
1. 答案 先说答案,可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...
Linux中《基础IO》详细介绍
目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改,实现简单cat命令 输出信息到显示器,你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...
高考志愿填报管理系统---开发介绍
高考志愿填报管理系统是一款专为教育机构、学校和教师设计的学生信息管理和志愿填报辅助平台。系统基于Django框架开发,采用现代化的Web技术,为教育工作者提供高效、安全、便捷的学生管理解决方案。 ## 📋 系统概述 ### 🎯 系统定…...
Visual Studio Code 扩展
Visual Studio Code 扩展 change-case 大小写转换EmmyLua for VSCode 调试插件Bookmarks 书签 change-case 大小写转换 https://marketplace.visualstudio.com/items?itemNamewmaurer.change-case 选中单词后,命令 changeCase.commands 可预览转换效果 EmmyLua…...
flow_controllers
关键点: 流控制器类型: 同步(Sync):发布操作会阻塞,直到数据被确认发送。异步(Async):发布操作非阻塞,数据发送由后台线程处理。纯同步(PureSync…...
