Linux基础之文件管理

这篇具有很好参考价值的文章主要介绍了Linux基础之文件管理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录
  • 文件权限
  • 文件的三个时间戳
  • 创建文件
  • 创建目录
  • 删除文件
  • 文件的移动与复制
  • 文件查看与编辑
  • 重定向
  • 查看文件详细信息
  • 查找文件
  • 文件属性的管理
  • 文件的压缩和解压缩
  • 文件的传输

“Linux下一切皆文件!”

Everything is a file 是一个经典的概念。Linux系统将所有的东西都看作是文件,包括将硬件设备、进程、网络连接等均抽象为文件。

这也就意味着,用户可以使用同样的命令和工具来操作硬件设备和文件。比如使用cat命令可以读取一个普通文件,也可以读取键盘上输入的字符。

文件权限

文件权限是通过一系列权限位来管理的,这些权限位决定了文件对用户、组和其他用户的可读、可写和可执行权限。每个文件都有一个所有者和一个所属组。

文件权限包括读、写和执行权限:

  • 读权限(r):允许用户读取文件的内容或列出目录的内容

  • 写权限(w):允许用户修改文件的内容或在目录中创建、删除和重命名文件

  • 执行权限(x):允许用户执行文件,或允许用户进入目录

文件权限共有九个位,分为三组,每组三个位,分别为:

  • 所有者权限:指定文件所有者的权限

  • 所属组权限:指定文件所属组的权限

  • 其他用户权限:指定除所有者和所属组以外的其他用户的权限

举个例子:

drwxr-xr-x. 2 root root 34 Jul 14 20:59 tmp

从左向右依次分析:

  • d 表示文件类型为一个目录,而不是普通文件

  • drwxr-xr-x. 文件权限总共10个字符,r可读,w可写,x可执行,-没有对应权限

    第一组 rwx 文件拥有者的权限

    第二组 r-x 文件所属组的权限

    第三组 r-x 以上两者以外的用户或者组的权限

    . 文件的扩展权限,可以针对的对某些用户或者用户组设置权限

  • 2 表示此目录下的子项数量(包括 ./ 和 /..)

  • root 文件的所属用户

  • root 文件所属的用户组

  • 34:文件大小(以字节为单位)

  • Jul 14 20:59 文件的最后修改时间

  • tmp 文件名

文件的三个时间戳

在Linux系统中每个文件都有三个时间戳,用于记录不同的时间:

  • atime(access time):文件最近一次被访问或读取的时间。当使用cat、less 或 more 来读取文件,访问时间会更新。

  • mtime(modification time):文件内容最后一次被修改的时间。当编辑文件并保存时,修改时间会更新。

  • ctime(change time):文件的文件元数据被修改的时间。当文件的所有者、权限或其他元数据发生变化时,文件的更改时间会更新。

stat 命令可以查看文件的详细信息:

Linux基础之文件管理

创建文件

touch 命令可以用来创建空文件,语法格式为:touch [OPTION]... FILE...

使用 touch 命令创建空文件:

touch filename.txt

如果文件已存在,还可以使用 touch 命令来更新文件的时间戳:

touch -a # 修改文件的访问时间

touch -m # 修改文件的 mtime

创建多个普通文件:

touch file1.txt file2.txt file3.txt

其他命令包括 echo、cat、vim 等都可以创建新文件。

创建目录

mkdir 命令用来创建目录, 语法格式为:[OPTION]... DIRECTORY...

  • -p 可快速创建目录的同时创建必要的父目录,对于已存在的目录不会被覆盖

  • -v 显示创建目录的详细过程

mkdir -v directory

mkdir directory1 directory2 directory3 # 一次创建多个目录

mkdir -p parent/child # 创建多级目录

删除文件

rm 命令用来删除文件或目录,语法格式为:[OPTION]... [FILE]...

删除文件:

rm filename.txt # 删除单个文件

rm file1.txt file2.txt file3.txt # 删除多个文件

删除目录及其内容:

如果要删除一个目录及其所有内容,可以使用 -r 参数来递归删除。

rm -r directoryname

-f 表示强制删除,文件处于锁定状态或者你没有足够的权限也会删除。

文件的移动与复制

mv 命令用来移动或重命名文件,语法格式为:mv [OPTION]... SOURCE... DIRECTORY

移动文件到新位置:

mv sourcefile.txt /path/to/destination/

重命名文件:

当要移动的文件移动路径没有发生变化,只有文件名发生了变化,那就相当于修改文件名。

mv oldfilename.txt newfilename.txt

当oldfilename.txt和newfilename.txt都是普通文件时,并且newfilename.txt存在,那么文件newfilename.txt将会被oldfilename.txt替代。

当mv后面的参数多于2的时候,表示最后一个文件之前的所有文件都会被移动到最后一个文件中,最后最后一个是文件夹那么命令执行成功,如果最后一个文件是普通文件那么失败。

cp 命令,用来复制文件或者目录,语法格式为:cp [OPTION]... SOURCE... DIRECTORY

复制文件到目标位置:

cp sourcefile.txt /path/to/destination/

在同一目录下复制并重命名文件:

cp oldfile.txt newfile.txt

递归复制目录及其内容:

cp -r sourcedirectory/ /path/to/destination/

使用 -r 参数来递归复制整个目录 sourcedirectory 及其内容到 /path/to/destination/

文件查看与编辑

查看文件内容:

  • cat 显示文件的全部内容,适合看相对较短文档 -n 选项可以增添行号

  • tac 它是 cat 逆向显示

  • head 查看文件的开头几行,-n 表示显示多少内容 head n-m 表示区间显示 n-m 行的内容

  • more 以逐页方式查看文件内容,显示读取进度,当文档读取完毕的时候自动退出

  • less 以交互式方式查看文件内容,如果要退出文档需要使用快捷键q

  • tail 查看文件的末尾几行,常用于查看更新频繁的日志等,-n 表示读取尾部的行数 -f 表示实时更新

  • hexdump 对二进制文件或非文本文件以十六进制格式查看,hexdump -C filename

编辑文件:

  • echo 将文本重定向到文件中:echo "Hello, world!" > filename.txt

  • printf 也可以将文本重定向到文件中:printf "Hello, world!\n" > filename.txt

  • vim 一款强大的文本编辑器

VIM

在于 vim 编辑器中设置了三种模式:命令模式、末行模式、编辑模式

命令模式

按键 功能
↑ ↓ ← → 光标按单个字符上下左右移动
w 光标按照单词向后跳转
b 光标按照单词向前跳转
^ 光标跳转至行首
$ 光标跳转至行尾
gg 文档首行第一个字符
G 文档最后一行第一个字符
ngg/nG 跳转到指定n行
yy 复制光标所在行
nyy 复制从光标处开始的n行
p 将缓冲区的内容粘贴到光标所在行的下一行
P 将缓冲区的内容粘贴到光标所在行的上一行
dd 删除光标所在行
ndd 删除从光标处开始的n行
d^ 删除光标前至行首字符
d$ 删除光标及之后的所有字符
u 撤销操作

编辑模式

按键 功能
i 在光标前插入
I 在光标所在行行首第一个非空字符前插入
a 在光标后插入
A 在光标所在行末尾插入
o 在光标所在行下一行插入
O 在光标所在行上一行插入
s 删除光标所在字符并进入插入模式
S 删除当前行并进入插入模式

末行模式

按键 功能
:q 退出,未对文件做任何编辑操作才可退出
:q! 强制退出,不保存文档内容
:w 保存文件
:w /dir/file 将文件另存为/dir/file
:wq 保存文件内容并退出
:wq! 强制保存并退出
:/word 从上而下在文件中查找字符串“word”(可按n键定位到下一个匹配的被查找字符串)
:r /dir/file 在当前文件中读入其他文件内容
:g/word/d 查找含有"word"的行并删除
:set nu 显示行号
:set nonu 关闭行号显示
:n1,n2 d 删除n1-n2行内容
:n1,n2 co n 复制n1-n2行到第n行后面

重定向

数据流

  • 标准输入(standard input 简称stdin):默认情况下,标准输入指从键盘获取的输入,代码为0
  • 标准输出(standard output 简称stdout):默认情况下,命令执行所回传正确的信息会输出到屏幕上,代码为1
  • 标准错误输出(standard error output stderr):默认情况下,命令执行失败后,所回传的错误信息会输出到屏幕上,代码为2

重定向操作符

重定向操作符可以将命令输入和输出数据流从默认设备重定向到其他位置。

  • 使用 > 或者 1> 可以将标准输出的结果以覆盖的方式写入到指定文件中

  • 使用 2> 可以将报错信息输出的结果以覆盖的方式写入到指定文件中

  • 使用 2>/dev/null 表示将错误信息抛弃

  • 使用 &> 可以将stdin、stderr一起输出的结果以覆盖的方式写入到指定文件中

  • 使用 >> 将命令执行后的正确输出信息以追加的方式写入到指定的文件中,不覆盖原文件内容

  • 使用 < 使命令从指定的文件中读取数据作为输入

  • 使用 << 结束标识字符串,在命令行读取数据作为输入,直到遇到指定的结束标识字符串

  • 管道符 | 将管道符左侧命令结果以参数的形式给到右侧命令

  • tee 指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时输出到文件。

查看文件详细信息

wc 命令查看普通文件详情信息,包括大小、有多少个单词、有多少行

  • -l 表示查看文件有多少行

  • -w 表示查看文件中有多少个单词

  • -c 表示查看文件有多少个字符

du 命令统计当前文件中的空间占用情况,会列出每一个文件夹中文件/文件夹的占用情况

  • -a 会递归的显示文件夹下所有的文件中占用情况(包括子目录)

  • -s 会将文件的占用情况汇总展示

查找文件

Whereis 命令用于查找特定命令的二进制文件、源代码文件以及 man 手册文件的路径。

which 命令用于确定在系统路径中执行的特定命令的位置。

find 按照指定的条件在指定的路径下递归搜索文件。

搜索特定名称的文件:

find /path/to/search -name filename.txt

搜索特定类型的文件:

find /path/to/search -type f

搜索特定大小的文件:

# find 搜索路径 -size +10k/-10k

find /path/to/search -size +10M

搜索特定权限的文件:

find /path/to/search -perm 644

执行其他操作,如删除或执行命令:

find /path/to/search -name "*.tmp" -exec rm {} \;

根据所有者组属性查找:

#find 搜索路径 -uid -gid -user -group -nouse

find /path/to/search -uid 0

find /home -user smileleooo

文件属性的管理

文件属性修改

chattr (change Attribute),文件属性可以用来增强文件的安全性和稳定性,以防止意外删除或修改文件。

常用的文件属性包括:

  • -a 只允许在文件末尾添加内容,不允许修改或删除已有内容

  • -i 让文件只有可读属性,防止文件被删除、重命名、修改或链接

其中:+ - = 分别表示添加、移除、设置属性。

例如:

chattr +i filename

# 让文件只有可读属性

使用chattr命令需要root权限。若要查看文件的属性,可以使用lsattr命令。

修改文件的用户和组

chown (change owner),改变文件或目录的所有者和用户组。

  • 只改用户:chown 新所有者 文件或目录

  • 用户和组都改:chown 新所有者:新用户组 文件或目录

例如:

sudo chown smileleooo:users filename

# 将文件的所有者更改为smileleooo,用户组更改为users,

文件的压缩和解压缩

tar 是一个用于创建和提取归档文件的命令行工具,通常用于将多个文件和目录组合成一个单一的归档文件。

参数:

  • -c 创建新的归档文件

  • -x 提取归档文件中的内容

  • -t 查看归档文件中的内容

  • -v 详细模式,显示操作过程中的详细信息

  • -f 指定归档文件的名称

  • -z 使用 gzip 压缩/解压缩归档文件

归档文件

创建 tar 归档文件:

# 将文件 file1、file2 和目录 directory 归档到一个名为 archive.tar 的文件中

tar -cvf archive.tar file1 file2 directory

查看 tar 归档文件中的内容:

# 列出 archive.tar 中的所有文件和目录

tar -tvf archive.tar

提取 tar 归档文件中的内容:

提取 archive.tar 中的所有文件和目录到当前目录

tar -xvf archive.tar

压缩和解压缩

压缩 tar 归档文件为 gzip 格式:

tar -czvf archive.tar.gz file1 file2 directory

解压缩 gzip 格式的 tar 归档文件:

tar -xzvf archive.tar.gz

文件的传输

SCP(Secure Copy Protocol),SCP 是一种基于 SSH 的安全文件传输协议,可以用于在远程主机之间传输文件。

传输文件到远程主机:

# scp 本地文件 用户名@远程主机:远程目录

scp file.txt user@remote_host:/home/user/

从远程主机下载文件:

# scp 用户名@远程主机:远程文件 本地目录

scp user@remote_host:/home/user/file.txt .

包括还有其他的,比如rsync、ftp、sftp等。


若有错误,欢迎指正!o( ̄▽ ̄)ブ文章来源地址https://www.toymoban.com/news/detail-861134.html

到了这里,关于Linux基础之文件管理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux的文件权限与目录配置

    举个例子:假设有一家人,家里只有三兄弟,分别是王大毛、王二毛、王三毛,而这个家庭是登记在王大毛名下,所以“王大毛家里有三个人,分别是王大毛、王二毛、王三毛”,而且这三个人都有自己的房间,并且共同拥有一间客厅。假如还有一个人,名叫张小猪,它是张

    2024年02月04日
    浏览(37)
  • Linux 下文件和目录的权限

    权限管理 1、3种基本权限 在Linux中,将使用系统资源的人员分为4类:超级用户、文件或目录的属主、属主的同组人和其他人员。超级用户拥有对Linux系统一切操作权限,对 于其他3类用户都要指定对文件和目录的访问权限。 代表字符 权限 对文件的含义 对目录的含义 r 读权限

    2024年02月07日
    浏览(39)
  • 如何更改 Linux 文件和目录权限?

    在Linux系统中,文件和目录权限是安全性和访问控制的关键组成部分。正确设置文件和目录的权限可以确保只有授权的用户能够读取、写入或执行这些文件和目录。 本文将详细介绍如何在Linux系统中更改文件和目录的权限。 在Linux系统中,每个文件和目录都有一组权限,用于

    2024年02月06日
    浏览(48)
  • Linux对一个目录及其子目录所有文件添加权限

    chmod是一个改变用户拥有指定文件的权限的命令.r:只读,w:写,x执行.也可以用数字 -rw------- (600) -- 只有属主有读写权限。   -rw-r--r-- (644) -- 只有属主有读写权限;而属组用户和其他用户只有读权限。   -rwx------ (700) -- 只有属主有读、写、执行权限。   -rwxr-xr-x (755) -- 

    2024年02月02日
    浏览(89)
  • Linux中如何修改文件或目录的权限?

    ​ 在Linux系统中,文件权限是非常重要的一个概念,它能够决定谁可以访问文件,以及可以执行哪些操作,正确地设置文件权限可以确保系统的安全性和稳定性,那么如何设置文件权限呢?以下是详细的内容: 在 Linux 系统中,可以使用 `chmod` 命令来修改文件或目录的权限。

    2024年02月07日
    浏览(48)
  • Linux文件和目录的777、755、644权限解释

    在linux系统中,文件或目录的权限可以分为3种: r:4 读 w:2 写 x:1  执行(运行) -:对应数值0 数字 4 、2 和 1表示读、写、执行权限 rwx = 4 + 2 + 1 = 7 (可读写运行) rw = 4 + 2 = 6 (可读写不可运行) rx = 4 +1 = 5 (可读可运行不可写) 示例: 最高权限777:(4+2+1) (4+2+1)  (4+2+1) 第一个7:表示

    2024年02月03日
    浏览(40)
  • Linux 下 普通用户创建文件(目录)权限不足问题

     原因:                 执行此操作的用户对上级目录 缺乏相应权限 上图中的上级目录为 test2 ,查看权限如下,其他用户的权限为  r-x(读和执行)   ,要在其下创建新文件还需要 写(w) 的权限  解决问题:修改test权限为 drwxr-x rwx        命令: chmod 757 test2 需要注

    2024年02月11日
    浏览(53)
  • Linux:概述 、安装 、文件与目录结构 、vim编辑器 、网络配置 、远程登录 、系统管理 、基础命令 、软件包管理 、克隆虚拟机 、shell编程

    2.1.1、Linux是什么? Linux是一个操作系统(OS) 所谓的操作系统就是直接用来操作计算机底层硬件的软件。 2.1.2、Linux的出现 官网: https://www.centos.org/ 进入官网进行下载 有很多的镜像,以阿里云的为例: 3.3.1、下载 官网: https://www.vmware.com/ 这是下载的企业版,30天试用期,可

    2024年02月05日
    浏览(61)
  • 【新星计划·2023】Linux目录与文件之权限意义讲解

    作者: Insist-- 个人主页: insist--个人主页 作者会持续更新网络知识和python基础知识,期待你的关注 前言 通过上篇文章,我们知道了Linux 系统内文件的三种身份( 拥有者、群组与其他人 ),还知道每种身份都有三种权限( rwx ), 已知道能够使用 chown, chgrp, chmod 去修改这些权限与

    2024年02月12日
    浏览(39)
  • Linux - 进阶 NFS 服务器 NFS文件权限与共享目录权限主次问题

            #    NFS 的权限本身没有用户密码和账户验证登录过程               ( 你可以回忆下,我们前面访问远程共享目录的时候,是没有输入账户,密码啥的,是没                 有这个步骤的)              所以客户端登录到服务器后,会把客户端的

    2024年02月04日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包