文件与目录的基本操作

news2024/10/11 16:34:33

前提:使用su root 切换到权限最大的root用户

1.显示当前工作目录的绝对路径(pwd)

  • 用途:用于显示当前工作目录的绝对路径的命令。无论用户在文件系统的哪个位置,pwd 命令都能提供当前所在位置的完整路径信息。

  • 用法:pwd

  • 示例:执行 pwd 命令后,它会输出当前目录的绝对路径。


2.创建目录(mkdir)

  • 用途:创建一个新的目录。

  • 用法:mkdir  [选项]  目录名

  • 示例:在home目录下创建名为 animal 的目录。

mkdir /home/animal

注意:mkdir只能创建一级目录,如果想创建多级目录使用:mkdir -p 

示例:在home目录下创建名为 people/tom的目录。

mkdir -p /home/people/tom

3.删除目录(rmdir)

  • 用途:删除空目录。

  • 用法:rmdir [选项] 目录名  或   rm [选项] 目录名

  • 示例:在home目录下删除名为 animal 的目录。

rmdir /home/animal

注意:如果目录不为空使用  rmdir  目录名 是删除不了的,那么就需要其他的命令: rm [选项] 目录名 或者   rmdir -p  子目录的路径

示例:在home目录下删除名为 people/tom 的目录。

方式1:

rmdir -p /home/people/tom

方式2:

rm -rf /home/people

以下是rm 选项的作用:


4.切换目录(cd)

  • 用途:改变当前工作目录。

  • 用法:cd  相对路径(绝对路径)

  • 示例:切换到刚刚创建的 animal 目录

绝对路径:

cd /home/animal

相对路径(需要进行两次操作):

cd /home
cd animal

为什么第二次cd 切换不需要加上 / 符号呢?请看补充部分的解释!home前面的/表示的是根目录,其他的/是目录分隔符,并无其他用意,所以切换到home目录下后不用加上/(即 cd /animal),加上后表示为:根目录下的animal目录,所以cd /animal 会报错!!!正确的表示为cd animal


补充:什么是相对路径,什么是绝对路径?

        相对路径:相对于当前工作目录的路径。它不是从根目录开始,而是从当前目录开始,通过一系列的相对路径指示符(如上一级目录等)来定位文件或目录。

例子

  • 如果当前工作目录是“C:\Users\username\Documents\Pictures”,并且想要访问“Documents”文件夹下的“file.txt”,那么相对路径为“../file.txt”,这里的“..”表示上一级目录。

单点(.)表示当前目录。

双点(..)表示上一级目录。


        绝对路径:从文件系统的根目录开始,到指定文件或目录的完整路径。它就像是从最顶层开始,一步一步向下直到目标文件的“完整地图”。

例子

  • 在Linux系统中,一个文件的绝对路径可能是“/home/user/Documents/file.txt”。这里的“/”是根目录,“home”是根目录下的一个子目录,“user”是home目录下的子目录,“Documents”是user目录下的子目录,而“file.txt”是文件名。

补充:“/”符号的意义

        在文件路径中,/ 通常用作目录分隔符。它表示路径中的一个层级变化,即从一个目录转移到其下的子目录(或反之,通过 .. 表示转移到上级目录)。在Unix-like系统(如Linux和macOS)中,/ 是根目录的标识符,也是所有文件和目录的起点。

对于您给出的例子 /home/user/Documents/file.txt

  • 第一个 / 表示根目录。
  • 之后的每一个 / 都用来分隔路径中的不同部分,即不同的目录或文件名。

所以,在这个路径中:

  • /home 表示根目录下的 home 目录。
  • /home/user 表示 home 目录下的 user 目录。
  • /home/user/Documents 表示 user 目录下的 Documents 目录。
  • /home/user/Documents/file.txt 最终指向 Documents 目录下的 file.txt 文件。

        每个 / 都是路径解析过程中的一个重要标记,它告诉系统如何从一个目录移动到另一个目录,直到找到最终的文件或目录。在Windows系统中,虽然传统的路径分隔符是反斜杠 \(例如 C:\Users\username\Documents\file.txt),但现代Windows系统通常也支持使用正斜杠 / 作为路径分隔符,尤其是在命令行和某些编程环境中。


5.列出目录内容(ls)

  • 用途:列出目录中的文件和子目录。

  • 用法:ls  目录名(文件名)

ls

ls 的选项(这里举出用得比较多的选项)

也可以搭配一起使用:ls -al


6.创建文件(touch)

  • 用途:创建一个空文件或者修改文件的时间戳。

  • 用法:touch 文件名(注意文件名要以.txt结尾)

  • 示例:在home目录下创建一个名为 file.txt 的空文件。

touch /home/file.txt

7.查看文件内容(cat)

  • 用途:查看文件的内容。(不能修改!!!)

  • 用法:cat  [选项]  文件名

  • 示例:查看 /etc/profile 的内容。

    cat /etc/profile

    一般情况结合more一起使用:cat /etc/profile |more

选项

  • -n  :功能是显示行号(cat -n /etc/profile)

8.复制文件或目录(cp)

  • 用途:复制文件或目录到另一个位置。

  • 用法:cp 要复制的文件名   另一个位置

  • 示例:复制home目录的 a.txt 到home目录下的animal目录里。

cp /home/a.txt /home/animal

如果要复制全部文件包括目录,应使用 -r  例如将animal目录及其目录下的文件全部复制到根目录下。

cp -r /home/animal /

 如果进行了重复的操作,那么系统就会提示是否进行覆盖,如果不想要提示就需要在cp前面加上斜杆

\cp -r /home/animal /

9.移动文件或目录(mv)

  • 用途:移动文件或目录到另一个位置,或者重命名文件或目录。

  • 用法:mv 原名 新名(这是重命名操作)或 mv 原文件名路径  新文件名路径(剪切操作)

  • 示例:将 file.txt 重命名为 new_file.txt

mv file.txt new_file.txt

剪切操作:(在home下有两个目录分别是animal目录和people目录,将animal里面的dog.txt 剪切到people目录下)

mv /home/animal/dog.txt /home/people

当然还可以剪切和重命名同时操作:(将dog.txt重命名为cat.txt)

mv /home/animal/dog.txt /home/people/cat.txt

10.查看文本文件内容(less)

  • 用途:用来查看文本文件内容(查看大文件比cat效率更高),less提供了更多高级功能,如搜索文本、跳跃到文件的特定位置等。

  • 用法:less [选项] 文件名

  • 示例:查看 /etc/profile 的内容。

less /etc/profile


11.输出文本或变量的值(echo)

  • 用途:用于在终端或命令行界面输出文本或变量的值到标准输出(通常是屏幕)

  • 用法:echo [选项] [输出内容]

  • 示例:输出“hello,word”

echo "hello,world"

示例:输出$PATH

echo $PATH


12.显示文件开头部分的命令(head)

  • 用途:用来显示文件开头部分的命令。默认情况下,它会显示文件的前10行,但这个数字可以通过选项来修改。

  • 用法:head [选项] [文件...]

  • 示例:查看 /etc/profile 的前10行内容。

    head /etc/profile

 显示前20行:

head -n 20 /etc/profile

13.显示文件末尾部分的命令(tail)

  • 用途:用来显示文件末尾部分的命令。与 head 命令相反,head 显示文件的开头部分,而 tail 显示文件的最后几行。默认情况下,它会显示文件的最后10行,但这个数字可以通过选项来修改。

  • 用法:tail [选项] [文件...]

  • 示例:查看 /etc/profile 的后10行内容。

tail /etc/profile

    tail 命令可以使用 -f 或 --follow 选项来实时追踪文件的增长,并显示新增的内容。这个功能特别有用,例如当你想要监控日志文件的实时更新时。

        当你使用 tail -f 命令时,tail 会保持运行状态,并且持续检查文件是否有新的数据写入。如果有新的行被添加到文件中,它们会立即显示在你的终端上。

下面是一个使用 tail -f 的例子:

tail -f /var/log/messages

        执行上述命令后,tail 命令会一直运行,并显示 /var/log/messages 文件末尾的内容。如果系统有新的日志消息被写入该文件,这些消息会实时显示在你的屏幕上。

要停止 tail -f 的追踪,你可以按下 Ctrl + C 来终止命令的执行。

        需要注意的是,tail -f 不会读取文件的全部内容,而是从文件的末尾开始读取,并且持续监视文件的末尾部分。这意味着如果你在文件增长了很多内容之后才启动 tail -f,它不会显示文件的完整内容,而只会显示从命令执行开始之后添加到文件中的内容。


14.重定向操作符 (>)

  • 用途:重定向操作符 > 用于将命令的输出重定向到一个文件中。这个操作符会创建指定的文件(如果文件不存在的话),或者覆盖文件原有的内容(如果文件已经存在)。

  • 用法:command > file(这里,command 是你想执行的命令,file 是你想要将输出写入的文件名。)

  • 示例:假设你想将 ls 命令的输出(列出当前目录下的文件和目录)写入到一个名为 list.txt 的文件中,你可以这样做:

ls >list.txt

        执行这个命令后,当前目录下的文件列表会被写入到 list.txt 文件中。如果 list.txt 文件之前已经存在,那么它原来的内容会被新内容覆盖。

特点

  1. 覆盖内容:使用 > 重定向操作符时,目标文件的内容会被新内容覆盖。如果文件不存在,则会创建它。

  2. 仅输出:只有命令的标准输出(通常是成功的输出)会被重定向到文件中,而标准错误输出(通常是错误消息)会继续发送到终端。

  3. 权限和所有权:新创建的文件会使用当前用户的默认权限设置。

例子 2:清空文件内容

如果你想快速清空一个文件的内容,而不用打开编辑器,可以使用 > 操作符将空输出重定向到文件中:

> file.txt

注意事项

  • 使用 > 操作符时要小心,因为它会无提示地覆盖文件内容。
  • 如果你想将输出追加到文件末尾而不是覆盖文件,应该使用 >> 操作符。


15.创建链接(ln)

  • 用途ln 命令用于创建链接,这些链接可以是硬链接(hard link)或符号链接(symbolic link)。

  • 用法:ln [选项] 源文件 目标链接

其中:

  • [选项] 可以是 -s,表示创建符号链接。
  • 源文件 是你想要创建链接的文件。
  • 目标链接 是你想要创建的链接名称。
  • 示例:假设有一个名为 file1.txt 的文件,我们想为它创建一个硬链接 link1.txt

    ln file1.txt link1.txt
    

    执行此命令后,file1.txt 和 link1.txt 将指向相同的文件内容,并且它们具有相同的inode号。

硬链接(Hard Link)

硬链接是文件系统中的目录条目,它指向文件的inode(在Unix文件系统中,每个文件都有一个唯一的inode号)。硬链接有几个特性:

  1. 硬链接与原始文件共享相同的inode号,因此它们实际上指向文件系统中的相同文件内容。
  2. 删除原始文件不会影响硬链接,因为硬链接仍然指向原始文件的数据块。
  3. 硬链接不能跨文件系统创建。
  4. 硬链接不能链接目录。

符号链接(Symbolic Link)

符号链接,也称为软链接,是文件系统中的一个特殊类型的文件,它包含指向另一个文件或目录的路径。符号链接的特性包括:

  1. 符号链接有自己的inode号和文件权限。
  2. 符号链接指向的是另一个文件的路径,而不是文件的数据块。
  3. 如果原始文件被删除,符号链接会变成“悬挂链接”(dangling link),它指向一个不存在的文件。
  4. 符号链接可以跨文件系统创建。
  5. 符号链接可以链接目录。
创建符号链接的例子:

假设我们想为 file1.txt 创建一个符号链接 symlink1.txt

ln -s file1.txt symlink1.txt

这里,-s 选项告诉 ln 命令创建一个符号链接。执行此命令后,symlink1.txt 将指向 file1.txt

例子 3:链接目录
ln -s /path/to/original/directory /path/to/symlink_directory

这将在 /path/to/symlink_directory 创建一个指向 /path/to/original/directory 的符号链接。请注意,硬链接不能用于目录。

注意事项

  • 硬链接不能用于链接目录,也不能跨文件系统。
  • 删除原始文件后,符号链接将变成悬挂链接,而硬链接仍然可以访问文件内容。
  • 使用 ln 命令时,如果目标链接已存在,它将被覆盖,因此请谨慎操作。

16.显示命令手册页(man)

  • 用途:用于显示命令手册页的实用工具。每个命令或函数通常都会有一个手册页,其中包含了关于如何使用该命令或函数的详细信息,包括其用途、选项、参数以及示例。

  • 用法:man [选项] 页面名称

  • 示例:查看 ls 命令的手册页。

    man ls


17.获取内置命令的帮助信息(help)

  • 用途help 命令或函数通常用于提供关于特定命令、函数、类或模块的用法信息。

  • 用法:help [选项] 名称

  • 示例:获取 cd 命令的帮助。

    [user@linux ~]$ history 3
        4  ls -l
        5  nano test.txt
        6  history
    
    help cd

    18.补充其他命令:

  • history :history 命令用于显示和操作 shell 的命令历史。

例子 1:使用参数控制显示的条目数量
[user@linux ~]$ history 3
    4  ls -l
    5  nano test.txt
    6  history

使用 history 命令后跟一个数字参数可以显示最后 N 条命令历史。

例子 2:使用命令历史中的条目

你可以使用 ! 前缀来执行历史记录中的命令。例如,执行历史记录中的第4条命令:

[user@linux ~]$ !4
ls -l

  • data:date 命令用于显示或设置系统的日期和时间。

用法:直接使用date

格式化输出:

你可以使用 + 符号来指定日期和时间的输出格式:

date "+%Y-%m-%d %H:%M:%S"

注意:月和日都是小写字母,其他是大写!!!

设置日期和时间:

以root权限运行以下命令可以设置系统的日期和时间:

date -s "2023-03-14 15:00:00"

  • cal :cal 命令用于显示日历。它可以显示当前月份的日历,也可以显示任意年月的日历。

用法:直接使用cal

显示整年的日历:

cal 2024

这将显示2024年整年的日历,每个月的日历都会显示出来。

显示指定月份的日历:

cal 3 2023

这将显示2023年3月的日历。

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

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

相关文章

现货白银交易技巧:向下突破回撤策略

有关现货白银交易的技巧一直是投资者关注的重点,投资者确实应该保持学习,这样才能跟得上市场,不会落后,下面我们就来介绍一个现货白银交易中的突破回撤的策略。 首先这个现货白银交易技巧判断的基础就是找到一波横盘趋势。所谓的突…

【C# 网络编程】基本概念

基本概念 OSI模型 背景: 为了统一和兼容不同计算机厂商的网络体系结构概念,国际标准化组织(ISO)在1979年提出了OSI参考模型(Open System Interconnection,) 结构 物理层(Physica…

java反序列化之CommonCollections6利⽤链的学习

一、源起 前文学习CC1链和URLDNS链的学习,同时学习过程中知道cc1受jdk版本的限制,故而进一步分析cc6链的利用过程,这个利用链不受jdk版本的限制,只要commons collections小于等于3.2.1,都存在这个漏洞。 ps&#xff1…

Flink 介绍(特性、概念、故障容错、运维部署、应用场景)

概述 特性 概念 数据流 状态 时间 savepoint 故障容错 运维部署 部署应用到任意地方 Flink能够更方便地升级、迁移、暂停、恢复应用服务 监控和控制应用服务 运行任意规模应用 应用场景 事件驱动型应用 什么是事件驱动型应用? 事件驱动型应用的优势 Flink如何…

对接外卖霸王餐api要遵循哪些步骤?

对接外卖霸王餐API接口的步骤通常包括以下几个关键环节: 选择服务提供商:根据需求、预算、服务内容、接口稳定性、覆盖范围(是否支持全国多个城市、是否支持主要外卖平台如美团和饿了么等)、技术支持等因素选择合适的霸王餐API服…

实现一个时钟

头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include<QPainter>//画家类 #include<QTime>//时间类 #include<QTimer>//定时器类QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget …

vue3.5系列之响应式props解构的几点技巧对比

在最新的版本3.5x中&#xff0c;对props的能力也进行了加强。下面&#xff0c;我们具体看下有哪些变化&#xff0c;给我们带来的新的体验&#xff01; 体验一 3.5之前解构props的效果 // 子组件 <template><div><h1>响应式props</h1><p>{{ co…

【储能优化】使用优化的微电网能源管理系统 (EMS)

摘要 本文介绍了一种基于优化的微电网能源管理系统&#xff08;EMS&#xff09;&#xff0c;通过储能优化实现电网、光伏发电、以及储能设备之间的智能调度。系统旨在降低能源成本、减少碳排放&#xff0c;并提高能源利用效率。利用该EMS系统&#xff0c;电网用户能够在满足负…

使用docker、编写dockerfile、httpd镜像,并启动镜像,创建httpd主页和分页。(2)

1.准备一台机子&#xff0c;准备源&#xff0c;下载docker-ce vi /etc/yum.repo.d/Centos-7.repo 加入以下内容[base] nameCentOS-$releasever - Base - mirrors.aliyun.com failovermethodpriority baseurlhttp://mirrors.aliyun.com/centos/$releasever/os/$basearch/http:/…

Midjourney中文版:创意无限,艺术之旅由此启程

Midjourney中文版——一个将你的文字想象转化为视觉艺术的神奇平台。无需繁琐的绘画技巧&#xff0c;只需简单的文字描述&#xff0c;你就能开启一场前所未有的艺术之旅。 Midjourney AI超强绘画 (原生态系统&#xff09;用户端&#xff1a;Ai Loadinghttps://www.mjdiscord.c…

图纸加密软件有哪些?2024好用的10款图纸加密软件推荐!

在保护企业设计图纸和技术文档的安全性方面&#xff0c;选择合适的加密软件至关重要。2024年&#xff0c;有许多优秀的图纸加密软件可供选择。以下是我们推荐的10款图纸加密软件&#xff0c;助您有效保障重要文件的安全。 1. Ping32图纸加密软件 Ping32图纸加密软件 是一款专业…

Linux环境下配置git

总共分为两个步骤&#xff1a;安装 配置&#xff0c;最终实现通过Git拉取代码。 1.安装Git yum install git## 查看版本 git --version得到返回信息 “git version XX.XX.XX.XX” 表明Git已经安装成功。 2.配置Git 分为两个步骤&#xff1a;初始化Git并生成授权证书 代码…

<OS 有关> Docker.Desktop - Unexpected WSL error #14030 不能启动, 问题已经解决 fixed

Windows Docker.Desktop 想用时报错&#xff1a; “deploying WSL2 distributions ensuring main distro is deployed: deploying "docker-desktop": importing WSL distro "WSL2 is not supported with your current machine configuration. Please enable th…

计组-浮点数运算

计算机中的浮点数&#xff0c;就是我们数学中的 科学计数法 那么2个浮点数相加&#xff0c;以科学计数法的形式&#xff0c;来怎么计算 其对应形式如下 不能直接尾数运算是因为两个数的指数都不一样 所以第一步是对阶&#xff0c;就是让两个数的指数变成一样的 指数一样后&am…

在 EC2 AWS 中开启防火墙后将自己锁定在 SSH 之外

在搭建ftp时&#xff0c;开启了系统防火墙的几个端口&#xff0c;并且设置了防火墙开机自启。当设置好之后&#xff0c;关闭了putty&#xff0c;再次连接SSH时&#xff0c;发现连接错误。仔细一想&#xff0c;防火墙没有开启22端口&#xff0c;这不嘎了么&#xff0c;自己把自己…

C++基础面试题 | 什么是内存对齐?为什么需要内存对齐?

文章目录 回答重点扩展知识 回答重点 内存对齐是指计算机在访问内存时&#xff0c;会根据一定规则将数据存储在合适的起始地址上&#xff0c;通常是数据大小的整数倍。这样做可以提升CPU的访问效率&#xff0c;特别是在读取和写入数据时。 为什么要内存对齐&#xff1f;主要有…

如何获取商品详情:发送HTTP请求的指南

一、了解API接口 开放平台提供了一系列的API接口&#xff0c;允许开发者获取商品的详细信息。这些信息包括商品标题、价格、图片、销量、评价等。在使用这些API之前&#xff0c;你需要在开放平台注册账号并获取相应的API密钥。 二、选择合适的API接口 对于获取商品详情&#…

Java利用itextpdf实现pdf文件生成

前言 最近公司让写一个数据页面生成pdf的功能&#xff0c;找了一些市面代码感觉都太麻烦&#xff0c;就自己综合性整合了一个便捷的工具类&#xff0c;开发只需简单组装数据直接调用即可快速生成pdf文件。望大家一起学习&#xff01;&#xff01;&#xff01; 代码获取方式&am…

RTP H264封包和解包分析

基础理论 RTSP RTP RTCP SDP基础知识-CSDN博客 RTP协议回顾以及网络知识补充 ​ ​ 举例&#xff1a;在客户端向服务器发送 1MB 数据的过程中&#xff0c;涉及到多个网络层次的概念&#xff0c;包括数据切割、最大传输单元&#xff08;MTU&#xff09;、最大段大小&#xf…

项目管理——Gantt图与Pert图

目录 前言相关知识点相关题目 前言 本文是在关于软考中软件设计师中的项目管理中的知识点&#xff0c;关于Gantt图与Pert图 相关知识点 甘特&#xff08;Gantt&#xff09;图 优点 可以清晰的描述每个任务从何时开始的&#xff0c;到何时结束&#xff0c;任务的进程情况以及…