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 rmdirrm -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)命令用于删除文件或目录。与 cpmv 类似,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 chownchgrp —— 修改文件所有者和组

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 moreless —— 分页查看文件内容

当文件内容较长时,moreless 命令可以帮助用户分页查看文件内容。它们不会一次性输出所有内容,而是按页展示,用户可以通过翻页查看。

$ more file.txt  # 分页查看文件内容
$ less file.txt  # 更加灵活的分页查看方式

less 命令比 more 更加灵活,支持上下滚动。

3.3 headtail —— 查看文件开头和结尾

headtail 命令分别用于查看文件的前几行和后几行内容。

$ 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 环境下的工作效率。

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

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

相关文章

Taro实现微信小程序自定义拍照截图识别

效果图&#xff1a; 代码&#xff1a; <template><view class"lary-top" :style"{ height: ${topBarHight}px }"></view><Camerav-show"!canvasShow"class"camera-photo":style"{width: ${info.windowWidt…

LIO-SAM如何保存地图

一、找到LIO-SAM配置文件&#xff0c;路径为config/params.yaml&#xff0c;修改以下两项参数&#xff1a; savePCD: true # https://github.com/TixiaoShan/LIO-SAM/issues/3savePCDDirectory: "/home/slam/catkin_ws/src/maps" …

Http带消息头两种请求办法

API接口最近经常碰到&#xff0c;协调几个乙方来回对接&#xff0c;把我折腾晕了&#xff0c;索性自己写一个小的工具&#xff0c;导入历史数据。 获取平台免登录token 接口说明 URL Path&#xff1a;gateweb/bigm-dm/openApi/ologin/openLogin 说明&#xff1a;第三方免登…

Java架构师实战篇Redis亿级数据统计方案

目录 1 Redis亿个keys数据统计方案2 Redis聚合统计(SUNIONSTORE)3 Redis排序统计(LRANGE)4 值状态统计(bitmap)4.1 位图简介4.2 应用场景4.3 常用的命令4 基数统计(SADD)5 总结想学习架构师构建流程请跳转:Java架构师系统架构设计 1 Redis亿个keys数据统计方案 在 Web 和移动…

Spring Cloud Gateway中的常见配置

问题 最近用到了Spring Cloud Gateway&#xff0c;这里记录一下这个服务的常见配置。 spring:data:redis:host: ${REDIS_HOST:xxx.xxx.xxx.xxx}port: ${REDIS_PORT:2345wsd}password: ${REDIS_PASS:sdfsdfgh}database: ${REDIS_DB:8}session:redis:flush-mode: on_savenamespa…

.NET 一款用于解密web.config配置的工具

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等&#xff08;包括但不限于&#xff09;进行检测或维护参考&#xff0c;未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

SpringBoot2:请求处理原理分析-接口参数解析原理(argumentResolvers)

一、知识回顾 我们知道&#xff0c;接口的参数&#xff0c;一般都要配上注解来一起使用。 不同的参数注解&#xff0c;决定了传参的方式不同。 为什么会这样&#xff1f; 如果让你设计接口参数解析&#xff0c;你会怎么做&#xff1f; 首先&#xff0c;我们知道方法参数是形…

软件设计基础知识(5)

1.Cache与主存的地址映像需要专门的硬件自动完成&#xff0c;使用硬件来处理具有更高的转换速率。 2.指令寄存器用来存放当前正在执行的指令&#xff0c;对用户是完全透明的。 3.构造哈夫曼树的过程是首先从给出的权值集合中找出最小的两个权值。 4.PC(程序计数器) AR(地址寄…

Spring动态调用定时任务

Map<定时多久,List<方法>> map 动态定时任务 需求 使用一个结构来管理定时任务&#xff0c;其中每个时间间隔对应一组方法。这些方法需要在指定的时间间隔内执行。具体来说&#xff0c;维护一个 Map&#xff0c;键是定时的间隔&#xff08;以秒为单位&#xff09…

机器学习之监督学习(三)神经网络

机器学习之监督学习&#xff08;三&#xff09;神经网络基础 0. 文章传送1. 深度学习 Deep Learning深度学习的关键特点深度学习VS传统机器学习 2. 生物神经网络 Biological Neural Network3. 神经网络模型基本结构模块一&#xff1a;TensorFlow搭建神经网络 4. 反向传播梯度下…

开源的 Windows 12 网页体验版!精美的 UI 设计、丰富流畅的动画

大家周二好呀&#xff01;博主今天给小伙伴们分享一款炫酷的 Windows 12 体验版&#xff0c;网页效果拉满&#xff0c;非常值得我们去尝试&#xff01; 如果你对未来的Windows操作系统充满期待&#xff0c;那么这款开源的Windows 12 网页体验版绝对不容错过&#xff01;这不仅…

consul配置ACL安全认证

文章目录 前言一、漏洞详情二、漏洞处理1.ACL相关介绍2.开启ACL3.创建令牌4.修改acl文件5.修改单节点consul启动配置文件6.重启consul 三、漏洞处理结果验证 前言 因为现阶段属于护网期,因此公司对服务器、业务的安全都很关注,只要再次期间被漏扫出来的漏洞&#xff0c;都需要…

tomcat是不是已经被Springboot集成了?

Tomcat 确实已经被 Spring Boot 集成。Spring Boot 通过其独特的“starter”模块&#xff08;如spring-boot-starter-web&#xff09;实现了对Tomcat的自动配置。当在Spring Boot项目中引入这个starter时&#xff0c;会自动引入相关的依赖&#xff0c;包括tomcat-embed-core、t…

C语言补习课——文件篇

来源&#xff1a;黑马程序员 第157讲 C语言操作文件概述 读取文件&#xff1a;输入流 写文件&#xff1a;输出流 读写的方向判断取决与参照&#xff0c;一般我们站在程序的角度判断读写方向。 第158讲 路径 基本概念 路径就是指文件在电脑中的位置&#xff0c;eg&#xf…

阿里旗下土耳其电商Trendyol计划进军欧洲市场

阿里旗下土耳其电商Trendyol计划进军欧洲市场 近年来&#xff0c;阿里巴巴集团在全球电商领域的布局持续深化&#xff0c;其旗下土耳其电商巨头Trendyol更是凭借其出色的市场表现和强劲的增长势头&#xff0c;成为了备受瞩目的焦点。近日&#xff0c;Trendyol宣布了一项重要战…

Java初步

背景 名字 Oak&#xff08;橡树&#xff09;改到一个岛&#xff08;疑似盛产咖啡&#xff09; Java之父 詹姆斯高斯林&#xff08;James Gosling&#xff09; sun公司研发 现在属于Oracle公司 把它称为甲骨文公司 应用 企业级应用开发 重点学习JavaSE&#xff08;Standa…

Spring Boot集成Mockito快速入门Demo

1.什么是Mockito&#xff1f; Mockito是一个模拟测试框架&#xff0c;可以让你用优雅&#xff0c;简洁的接口写出漂亮的单元测试。Mockito可以让单元测试易于可读&#xff0c;产生简洁的校验错误。 使用场景 提前创建测试&#xff0c;TDD&#xff08;测试驱动开发&#xff0…

线性代数 第六讲 特征值和特征向量_相似对角化_实对称矩阵_重点题型总结详细解析

文章目录 1.特征值和特征向量1.1 特征值和特征向量的定义1.2 特征值和特征向量的求法1.3 特征值特征向量的主要结论 2.相似2.1 相似的定义2.2 相似的性质2.3 相似的结论 3.相似对角化4.实对称矩阵4.1 实对称矩阵的基本性质4.2 施密特正交化 5.重难点题型总结5.1 判断矩阵能否相…

C#中的字段和属性

字段和属性 字段和属性的基础介绍 类拥有成员变量和成员方法 成员变量就是字段&#xff0c;用于存储对象的信息 public string name; //公共字段private int age; //私有字段可以给成员变量设置其内部的get/set方法&#xff0c;操作获取或设置成员时的操作。 internal cla…

JavaScript高级——函数中的this

1、this是什么&#xff1f; ① 任何函数本质上都是通过某个对象来调用的&#xff0c;如果没有直接指定就是 window 。 ② 所有函数内部都有一个变量 this 。 ③ 它的值是调用函数的当前对象。 2、如何确定 this 的值&#xff1f; ① test&#xff08;&#xff09;&#xff…