全文目录

    • 1 确认当前工作路径
    • 2 导航与目录管理
      • 2.1 关键命令
      • 2.2 逻辑衔接
    • 3 文件基础操作
      • 3.1 创建 → 备份 → 重命名 → 清理
      • 3.2 文件查看和编辑
      • 3.3 文件链接
      • 3.4 文件diff
    • 4 文件权限与所有权管理
    • 5 文件打包与归档
    • 6 参考文献


写在前面

shell是一种命令解释器,它提供了用户和操作系统之间的交互接口。shell是面向命令行的,
而 X Window 则是图形界面。你在命令行输入命令,shell进行解释,然后送往操作系统执行。
shell可以执行 Linux 的系统内部命令,也可以执行应用程序。
本文从用户登陆到工作台之后实际对文件的访问流程来阐述,通过实际场景串联命令‌,展现从文件操作的完整流程,帮助读者理解命令间的逻辑关联。


1 确认当前工作路径

用户初登工作台,默认的工作路径为家目录(/home/username),如下

# 确认当前目录
pwd  # 输出:/home/username,定位当前目录,用户明确操作位置# 查看当前目录内容,列出文件或目录下的文件名
ls -l  # 详细列表(文件类型、权限、大小等)

在这里插入图片描述

  • 语法说明: ls [-atFlgR] [name]
ls    # 列出目前目录下的文件名
ls -a # 列出包括以 .开始的隐藏文件的所有文件名
ls -t # 依照文件最后修改时间的顺序列出文件名
ls -F # 列出当前目录下的文件名及其类型。以/结尾表示为目录名,以*结尾表示为可执行文件,以@结尾表示为符号连接
ls -l  # 列出目录下所有文件的权限、所有者、文件大小、修改时间及名称
ls -lg # 同上,并显示出文件的所有者工作组名
ls -R  # 显示出目录下以及其所有子目录的文件名

2 导航与目录管理

2.1 关键命令

# 切换至工作目录(假设为项目目录)
cd ~/projects# 创建新目录(用于存放临时文件)
mkdir temp_files# 确认目录结构
tree -L 2  # 显示2级目录树(需安装 tree 工具)
  • 语法说明:cd [name]
name:目录名、路径或目录缩写
cd  # 改变目录位置至用户登录时的工作目录
cd  dir  # 改变目录位置至d i r目录下
cd  user # 改变目录位置至用户的工作目录
cd  ~ 	 # 返回家目录
cd  ..   # 改变目录位置至当前目录的父目录(上一级目录)
cd  ../user    # 改变目录位置至相对路径 user 的目录下
cd  /root/etc  # 改变目录位置至绝对路径的目录位置下
  • 语法说明: mkdir 目录名
mkdir tmp            # 建立一新目录 tmp
mkdir [-mp] 目录名称  # 建立一个新目录
rmdir 目录名称        # 删除一个空目录(仅能删除空的目录)

2.2 逻辑衔接

  • 创建目录后进行操作,避免文件散落混乱,体现规范性。

3 文件基础操作

3.1 创建 → 备份 → 重命名 → 清理

  • 场景模拟:创建 → 备份 → 重命名 → 清理,展现文件的完整生命周期管理
# 1. 创建空文件(准备编辑)
touch report.txt# 2. 复制文件到备份目录(保留原文件)
cp report.txt temp_files/report_backup.txt -v  # -v 显示操作详情# 3. 重命名文件(更清晰的命名)
mv report.txt sales_report_2023.txt# 4. 删除临时目录中的旧备份(清理冗余)
rm temp_files/old_backup/*.txt -i  # -i 交互式确认删除
  • 语法说明:touch name # name:文件名或目录名
touch report.txt  #新建一个空文件
  • 语法说明: cp [-r] 源地址 目的地址
cp file1 file2       # 将文件 file1 复制成 file2
cp file1 dir1        # 将文件 file1 复制到目录 dir1 下,文件名仍为 file1
cp /tmp/file1 .      # 将目录 /tmp 下的文件 file1 复制到当前目录下,文件名仍为 file1
cp /tmp/file1 file2  # 将目录 /tmp 下的文件 file1 复制到当前目录下,文件名为file2
cp -r dir1 dir2      # 复制整个目录
  • 语法:mv 源地址 目的地址
mv file1 file2 # 将文件 file1 更名为 file2
mv file1 dir1  # 将文件 file1 移到目录 dir1 下,文件名仍为 file1
mv dir1 dir2   # 将目录 dir1 更名为 dir2
  • 语法说明: rm 文件名
rm a.txt  # 删除文件a.txt
rm -r a/  # 删除目录a及文件
rm file?  # 删除文件名中有五个字符且前四个字符为 file 的所有文件
rm f*     # 删除文件名中以 f 为字首的所有文件
rm [-fir] 档案或目录  # 移除档案或目录
  • 语法: rmdir 目录名 或 rm 目录名
rmdir dir1  # 删除目录 dir1,但 dir1 下必须没有文件存在,否则无法删除
rm -r dir1  # 删除目录 dir1 及其子目录下所有文件,有文件也可以删

3.2 文件查看和编辑

  • 场景模拟:日志分析与数据提取
# 1. 查看文件全部内容(短文件)
cat sales_report_2023.txt# 2. 分页查看长日志(支持翻页搜索)
less system.log# 3. 提取关键错误信息(过滤日志)
grep -i "error" system.log --color=auto# 4. 查看文件尾部实时更新(监控日志)
tail -f system.log

详细文件查看命令可前往查看博文,《Linux日志处理命令完全解构》 和 《 全面理解Linux 系统日志:核心文件与查看方法》进行详细的了解和学习。

  • 文件编辑
nano draft.txt    # 使用nano简易编辑器
vim notes.md      # 使用vim高效编辑(`:wq`保存退出)

提示:初学者可从nano入手,逐步学习vim快捷键。

3.3 文件链接

同一文件,可拥有一个以上的名称,也就是把一个文件进行链接。

  • 硬连接
语法说明:ln 老文件名 新文件名
ln source.txt hard_link.txt   # 将文件 source.txt 链接至文件 hard_link.txt 

核心作用‌
1 、多路径访问‌:允许一个文件通过多个路径名访问,删除任一硬链接不影响其他链接对文件数据的访问。
2、防误删保护‌:通过创建重要文件的硬链接,即使原始路径被删除,仍可通过其他硬链接访问数据。
3、节省磁盘空间‌:所有硬链接共享同一 inode 和数据块,不额外占用存储空间。

适用场景‌:
1、需要备份关键文件但避免重复存储。
2、同一文件需在不同目录下高频访问(如日志文件共享)。

  • 软链接
语法说明:ln -s  老文件名 新文件名
ln -s file3 file4   # 将文件 file4 链接至文件file3

核心作用‌:
‌1、跨文件系统引用‌:可指向不同磁盘或分区的文件/目录。
‌2、快捷访问‌:类似 Windows 快捷方式,简化长路径操作(如 /usr/local/bin 下创建常用脚本的软链接)。
‌3、动态路径映射‌:通过修改软链接指向快速切换配置文件版本或环境(如开发/生产环境配置切换)。
4‌、节省空间与提升可移植性‌:避免重复存储大文件,且路径变更后仅需更新软链接指向。

适用场景‌:
1、目录引用(硬链接无法直接链接目录)。
2、动态库版本管理(如 libpython.so → libpython3.9.so)。

3.4 文件diff

有时我们会遇到对比文件的不同diff的情况

  • 语法说明:diff [-r] name1 name2 # name1 name2:可同时为文件名或目录名
diff file1 file2 比较文件 file1 与 file2 内各行的不同之处
diff -r dir1 dir2 比较目录 dir1 与 dir2 内各文件的不同之处

4 文件权限与所有权管理

  • ‌场景模拟:协作与安全控制
# 1. 修改文件权限(禁止组用户写入)
chmod g-w sales2025.txt# 2. 更改文件所有者(移交管理权)
sudo chown newowner:sales2025.txt# 3. 设置目录权限(递归生效)
chmod -R 750 tempfiles/  # 所有者:rwx,组:r-x,其他:无权限
  • 语法说明:chmod [-R] mode name # 改变文件或目录的读、写、执行权限
name :文件名或目录名。
mode: 3个8位数字或rwx的组合
r - read ()、w - write ()、x - execute (执行)
u - user (当前用户)、g - group(组)、o - other(其他用户) chmod  755  dir1  # 对于目录dir1,设定成任何使用者皆有读取及执行的权利,但只有所有者可做修改
chmod  700  file1 # 对于文件file1,设定只有所有者可以读、写和执行的权利
chmod  u+x  file2 # 对于文件file2,增加当前用户可以执行的权利
chmod  g+x  file3 # 对于文件file3,增加工作组使用者可执行的权利
chmod  o-r  file4 # 对于文件file4,删除其他使用者可读取的权利
  • 语法说明:chown [-R] 用户名 name # 改变文件或目录的所有权 ,name:文件名或目录名
chown user file1   # 将文件 file1 改为用户 user 所有
chown -R user dir1 # 将目录 dir1 及其子目录下面的所有文件改为用户 user 所有
  • 语法说明:chgrp [-R] 工作组名 name # 改变文件或目录工作组所有权,name:文件名或目录名
groups  # 检查自己所属的工作组名称
chgrp lsi file1    # 将文件 file1 的工作组所有权改为 lsi 所有
chgrp -R im dir1   # 将目录dir1 及其子目录下面的所有文件,改为 im 工作组所有
  • 安全提示

使用 sudo 需谨慎,避免过度授权
chmod 777 是危险操作,应明确业务需求

5 文件打包与归档

  • 场景模拟:数据备份与传输
# 1. 打包项目目录(保留权限和子目录)
tar -czvf project_backup.tar.gz ~/projects# 2. 解压到新目录(校验文件完整性)
tar -xzvf project_backup.tar.gz -C /backup/# 3. 快速压缩单个文件(节省空间)
gzip sales_report_2023.txt  # 生成 .gz 文件

6 参考文献

文献1|文献2|文献3


写在最后

文章整体从文件操作场景入手,带读者进行了文件操作的全流程解析说明,将其中用到的linux命令进行了详细的分析,如有任何问题,请您评论指正,希望对您有所帮助,觉得有用,也欢迎点赞和收藏。我们共同努力,一起进步!


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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode第183题_从不订购的客户

LeetCode 第183题:从不订购的客户 题目描述 表: Customers ---------------------- | Column Name | Type | ---------------------- | id | int | | name | varchar | ---------------------- id 是该表的主键。 该表包含消费者的 id 和…

c语言的常用关键字

c语言的常用关键字 c语言的关键字表示数据类型的关键字autocharfloatdoubleintlongshortvoidsignedstruct、enum、unionunsigned 表示分支语句的关键字ifelseswitchbreakcasecontinuedefault 表示循环语句的关键字whiledoforgoto 用于修饰变量或函数的关键字constconst修饰变量…

MCU通用输入输出端口(GPIO)设计指南

在嵌入式系统开发中,MCU的GPIO接口是一个基础但非常实用的功能模块。GPIO全称是通用输入输出端口,它让MCU可以灵活地与外部设备进行交互。 GPIO的主要特点包括: 多功能性:每个引脚都可以单独配置为输入或输出 可编程性&#xff…

STM32完整内存地址空间分配详解

在STM32这类基于ARM Cortex-M的32位微控制器中,整个4GB的地址空间(从0x00000000到0xFFFFFFFF)有着非常系统化的分配方案,每个区域都有其特定的用途。下面我将详细介绍这些地址区域的分配及其功能: STM32完整内存地址空间分配详解(0x00000000…

实现水平垂直居中的多种方法

在前端开发中,元素的居中是一个常见但又经常让人头疼的问题。本文将全面总结各种CSS居中方法,特别是如何实现一个div的水平垂直居中。 为什么居中这么重要? 居中布局是现代网页设计中最基础也最重要的布局方式之一。无论是导航菜单、登录框…

如何实现服务的自动扩缩容(Auto Scaling)

在云计算和分布式系统的时代,系统的弹性和适应性已成为企业构建高效IT基础设施的核心需求。自动扩缩容(Auto Scaling)作为一种关键技术,旨在根据实时负载变化动态调整计算资源,以确保系统性能稳定,同时优化资源利用效率。简单来说,自动扩缩容是指系统能够根据预设规则或…

uniapp+vue3+ts 使用canvas实现安卓端、ios端及微信小程序端二维码生成及下载

加粗样式uniapp多端生成带二维码海报并保存至相册的实现 在微信小程序开发中,我们常常会遇到生成带有二维码的海报并保存到手机相册的需求,比如分享活动海报、产品宣传海报等。今天就来和大家分享一下如何通过代码实现这一功能。 准备工作 在开始之前&am…

架构师面试(三十八):注册中心架构模式

题目 在微服务系统中,当服务达到一定数量时,通常需要引入【注册中心】组件,以方便服务发现。 大家有没有思考过,注册中心存在的最根本的原因是什么呢?注册中心在企业中的最佳实践是怎样的?注册中心的服务…

Day.js和Moment.js对比,日期时间库怎么选?

在JavaScript的日期处理库中,Moment.js 和 Day.js 是两个非常流行的选择。本文将基于从npmtrends的数据,对这两个库进行详细的对比分析。 Moment.js的重度使用者。凡是遇到时间和日期的操作,就把Moment.js引用上。 直到有天我发现加载的mome…

罗默如何用木星卫星“宇宙钟表”测量光速?

一、17世纪的“宇宙级实验” 1676年,丹麦天文学家奥勒罗默(Ole Rmer)在巴黎天文台做出惊人发现: 木星卫星的“迟到早退”现象,竟能揭示光速的秘密! 通过观察木卫一(Io)的轨道周期变…

deepseek 技巧整理

1、导出word 和excel 功能,在使用以下提示词。 请帮我列出减肥期间可以吃的水果,并分析该水果含有的营养元素,以表格的形式星现。1.要以html的方式输出 2.要可以直接运行 3.页面要提供可以直接下载word和excel功能

思考软件框架

数据库是达梦数据库 假定里面有40张表,软件的业务逻辑比较复杂。 当然,依然是对数据库中数据的增,删,改,查,组合,显示。 但是也涉及到多种软件,多台设备之间的通信。 我们可以使用…

探索 Disruptor:高性能并发框架的奥秘

在当今的软件开发领域,处理高并发场景是一项极具挑战性的任务。传统的并发解决方案,如基于锁的队列,往往在高负载下表现出性能瓶颈。而 Disruptor 作为一个高性能的并发框架,凭借其独特的设计和先进的技术,在处理海量数…

前端面经-VUE3篇--vue3基础知识(一)插值表达式、ref、reactive

一、计算属性(computed) 计算属性(Computed Properties)是 Vue 中一种特殊的响应式数据,它能基于已有的响应式数据动态计算出新的数据。 计算属性有以下特性: 自动缓存:只有当它依赖的响应式数据发生变化时&#xff…

数据结构6 · BinaryTree二叉树模板

代码函数功能顺序如下: 1:destroy:递归删除树 2:copy:复制二叉树 3:preOrder:递归前序遍历 4:inOrder:递归中序遍历 5:postOrder:递归后续遍…

C++/SDL进阶游戏开发 —— 双人塔防游戏(代号:村庄保卫战 13)

🎁个人主页:工藤新一 🔍系列专栏:C面向对象(类和对象篇) 🌟心中的天空之城,终会照亮我前方的路 🎉欢迎大家点赞👍评论📝收藏⭐文章 文章目录 十…

强化学习之基于无模型的算法之时序差分法

2、时序差分法(TD) 核心思想 TD 方法通过 引导值估计来学习最优策略。它利用当前的估计值和下一个时间步的信息来更新价值函数, 这种方法被称为“引导”(bootstrapping)。而不需要像蒙特卡罗方法那样等待一个完整的 episode 结束才进行更新&…

AE/PR模板 100个现代文字标题动态排版效果动画 Motion Titles

Motion Titles是一个令人惊艳的AE/PR模板,提供了100个现代文字标题的动态排版效果动画。这些动画效果能够为你的项目增添视觉冲击力和专业感,为文字标题注入活力和动感。该模板适用于Adobe After Effects CC或更高版本以及Adobe Premiere Pro 2020或更高…

【AI提示词】二八法则专家

提示说明 精通二八法则(帕累托法则)的广泛应用,擅长将其应用于商业、管理、个人发展等领域,深入理解其在不同场景中的具体表现和实际意义。 提示词 # Role: 二八法则专家## Profile - language: 中文 - description: 精通二八法…

前端八股 CSS 1

盒子模型 进行布局时将所有元素表示为一个个盒子box padding margin border content content:盒子内容 待显示的文本和图像 padding:内边距,内容和border之间的空间,不能为负数,受bkc影响 border:边框&#xff0c…