游乐游手机版
首页/系统平台/文章详情

Unix文件管理与权限设置详解教程

时间:2026-06-19 07:50
在 UNIX 操作系统中,一切皆文件——所有数据都被组织成文件,而所有文件又被组织成目录,这些目录最终形成一棵树状结构的文件系统。如果你使用过 UNIX,大部分时间其实都在与文件打交道,无论是创建、删除、复制、重命名,还是建立链接。这篇 UNIX 文件操作教程会带你走一遍最基本的文件操作流程,从零开

在 UNIX 操作系统中,一切皆文件——所有数据都被组织成文件,而所有文件又被组织成目录,这些目录最终形成一棵树状结构的文件系统。如果你使用过 UNIX,大部分时间其实都在与文件打交道,无论是创建、删除、复制、重命名,还是建立链接。这篇 UNIX 文件操作教程会带你走一遍最基本的文件操作流程,从零开始,把常用的命令和核心概念讲透。

三种基本文件类型

UNIX 中的文件可以分成三类,理解它们有助于你快速定位自己要处理的对象:

  • 普通文件:最常见的文件,包含数据、文本或程序指令。本教程主要围绕这类文件展开。
  • 目录:相当于 Windows 或 macOS 里的文件夹,用来存放普通文件和特殊文件。
  • 特殊文件:提供对硬件(如硬盘、CD-ROM、调制解调器、以太网适配器)的访问;还有一些特殊文件类似别名或快捷方式,让你能用不同的名字访问同一个文件。

文件列表

想知道当前目录下有哪些文件和子目录?最简单的命令就是 ls。直接在终端输入:

$ ls

输出大概是这样:

$ ls
  bin   hosts   lib    res.03
  ch07  hw1     pub    test_results
  ch07.bak  hw2   res.01  users
  docs  hw3     res.02  work

如果觉得光看名字不够,加上 -l 选项就能看到更详细的信息(长格式):

$ ls -l
total 1962188
drwxrwxr-x  2 amrood amrood 4096 Dec 25 09:59 uml
-rw-rw-r--  1 amrood amrood 5341 Dec 25 08:38 uml.jpg
drwxr-xr-x  2 amrood amrood 4096 Feb 15  2006 univ
drwxr-xr-x  2 root   root   4096 Dec  9  2007 urlspedia
-rw-r--r--  1 root   root   276480 Dec  9  2007 urlspedia.tar
drwxr-xr-x  8 root   root   4096 Nov 25  2007 usr
drwxr-xr-x  22 root   root   4096 Nov 25  2007 webthumb-1.01
-rwxr-xr-x  1 root   root   3192 Nov 25  2007 webthumb.php
-rw-rw-r--  1 amrood amrood 20480 Nov 25  2007 webthumb.tar
-rw-rw-r--  1 amrood amrood 5654 Aug  9  2007 yourfile.mid
-rw-rw-r--  1 amrood amrood 166255 Aug  9  2007 yourfile.swf
drwxr-xr-x 11 amrood amrood 4096 May 29  2007 zlib-1.2.3

每一列的含义:

  • 第一列:文件类型和权限(后面会详细讲)。
  • 第二列:占用的磁盘块数。
  • 第三列:文件所有者(创建该文件的 UNIX 用户)。
  • 第四列:所属用户组(每个 UNIX 用户会有一个关联的组)。
  • 第五列:文件大小(字节)。
  • 第六列:文件创建或最后修改的日期和时间。
  • 第七列:文件或目录的名称。

另外,第一列的第一个字符代表文件类型:

前缀描述
-普通文件(ASCII 文本、二进制可执行文件或硬链接)
b块特殊文件(块 I/O 设备,如物理硬盘)
c字符特殊文件(原始 I/O 设备)
d目录文件
l符号链接文件(指向任意普通文件)
p命名管道(进程间通信)
s套接字(进程间通信)

元字符

UNIX 里有些字符具有特殊含义,比如 *?* 匹配零个或多个字符,? 匹配单个字符。举个例子,要列出所有以 ch 开头、以 .doc 结尾的文件:

$ ls ch*.doc

输出:

ch01-1.doc  ch010.doc  ch02.doc  ch03-2.doc
ch04-1.doc  ch040.doc  ch05.doc  ch06-2.doc
ch01-2.doc  ch02-1.doc  c

如果想只看 .doc 结尾的文件,直接用 ls *.doc 就行了。

隐藏文件

文件名以点号(.)开头的文件在 UNIX 里被视为隐藏文件。它们通常被程序(包括 shell)用来存储配置信息。常见的隐藏文件有:

  • .profile:Bourne shell(sh)初始化脚本
  • .kshrc:Korn shell(ksh)初始化脚本
  • .cshrc:C shell(csh)初始化脚本
  • .rhosts:remote shell 配置文件

要列出隐藏文件,给 ls 加上 -a 选项:

$ ls -a
.   .profile  docs  lib  test_results
..  .rhosts   hosts pub  users
    .emacs    bin   hw1  res.01  work
    .exrc     ch07  hw2  res.02
    .kshrc    ch07.bak  hw3  res.03

注意:单点 . 代表当前目录,双点 .. 代表父目录。

创建文件

创建普通文件最常用的方法是使用 vi 编辑器。运行以下命令打开(或新建)一个文件:

$ vi filename

进入后按 i 键进入编辑模式,输入内容。想保存并退出时:

  1. Esc 退出编辑模式。
  2. 同时按 Shift + ZZ(两个大写 Z)保存并退出。

完成后,当前目录下就多了一个 filename 文件。

编辑文件

同样用 vi 编辑已有文件:

$ vi filename

进入文件后按 i 切换到编辑模式,修改内容。如果在文件里移动光标,需要先按 Esc 退出编辑模式,然后用以下键移动:

  • l:右移
  • h:左移
  • k:上移
  • j:下移

定位后按 i 再次进入编辑模式修改。完成后同样用 Esc + Shift + ZZ 退出。

显示文件内容

cat 命令可以直接把文件内容输出到终端:

$ cat filename
This is unix file....I created it for the first time.....
I'm going to sa ve this content in this file.

加上 -b 选项可以显示行号:

$ cat -b filename
1   This is unix file....I created it for the first time.....
2   I'm going to sa ve this content in this file.

统计文件中字数

wc 命令能告诉你文件有多少行、多少个单词、多少个字符:

$ wc filename
2  19 103 filename

输出各列含义:

  • 第一列:行数
  • 第二列:单词数
  • 第三列:字符数(实际文件大小)
  • 第四列:文件名

你也可以一次统计多个文件:

$ wc filename1 filename2 filename3

复制文件

复制文件用 cp 命令,语法很简单:

$ cp source_file destination_file

例如:

$ cp filename copyfile

执行后当前目录会多出一个 copyfile,内容和原文件一模一样。

移动/重命名文件

mv 命令既可以移动文件,也可以重命名。语法:

$ mv old_file new_file

例如:

$ mv filename newfile

执行后原 filename 消失,取而代之的是 newfile

删除文件

rm 命令删除文件,但一定要小心——被删除的文件可能包含重要信息。建议在使用 rm 时加上 -i 选项,这样每次删除前都会询问确认。

基本语法:

$ rm filename

删除多个文件:

$ rm filename1 filename2 filename3

标准 UNIX 流

每个 UNIX 程序启动时都会自动打开三个流(文件):

  • stdin(标准输入,文件描述符 0):默认读取来源。
  • stdout(标准输出,文件描述符 1):默认输出目标。
  • stderr(标准错误,文件描述符 2):错误信息的输出通道。

文件权限

文件所有权是 UNIX 安全机制的核心。每个文件都有三个维度的权限:

  • 所有者权限:文件所有者能对文件做什么。
  • 组权限:与文件同组的用户可以做什么。
  • 其他人权限:其他所有人能做什么。

权限表示符

ls -l 看到的权限字符串(例如 -rwxr-xr--)分为三组,每组三个字符,顺序固定:读(r)、写(w)、执行(x)。

  • 第 2-4 位:所有者的权限。例如 rwx 表示拥有读、写、执行权。
  • 第 5-7 位:所属组的权限。例如 r-x 表示可读、可执行,但不能写。
  • 第 8-10 位:其他人的权限。例如 r-- 表示只能读。

文件访问模式

  • 读:查看文件内容。
  • 写:修改或删除文件内容。
  • 执行:将文件当作程序来运行。

目录访问模式

  • 读:查看目录下的文件名列表。
  • 写:在目录下创建或删除文件。
  • 执行:允许遍历目录(进入该目录),例如执行 lscd 必须要有执行权限。

改变权限

chmod 命令用于修改文件或目录的权限,有两种常用方法:符号模式和绝对模式。

符号模式

用操作符 +(添加)、-(移除)、=(精确设置)来指定权限。例如,对 testfile 执行:

$ chmod o+wx testfile   # 给其他人加写和执行权限
$ chmod u-x testfile    # 移除所有者的执行权限
$ chmod g=rx testfile   # 设置所属组为读+执行

也可以在一行内组合:

$ chmod o+wx,u-x,g=rx testfile

绝对模式(数字模式)

每个权限对应一个数字:读=4,写=2,执行=1。把三组权限的数字相加得到一个三位数,例如 755 表示所有者(7=4+2+1)拥有全部权限,所属组(5=4+1)和其他人(5=4+1)拥有读和执行权限。

例子:

$ chmod 755 testfile    # -rwxr-xr-x
$ chmod 743 testfile    # -rwxr---wx
$ chmod 043 testfile    # ----r---wx

改变所有者和所属组

  • chown 改变文件所有者:chown user filelist
  • chgrp 改变文件所属组:chgrp group filelist

示例:

$ chown amrood testfile
$ chgrp special testfile

注意:只有超级用户(root)才能更改不属于自己的文件的所有者,普通用户只能修改自己拥有的文件。

SUID 和 SGID 文件权限

有些程序在运行时需要特殊权限。例如普通用户不允许直接读写 /etc/shadow,但 passwd 命令可以修改密码并写入该文件——这就是因为 passwd 设置了 SUID 位。当执行 SUID 程序时,你继承了程序所有者的权限(通常是 root)。SGID 类似,只是作用在组上。

ls -l 的输出中,SUID 的标志是所有者执行位上的小写 s(如果执行位被设置)或大写 S(如果执行位未设置)。例如:

$ ls -l /usr/bin/passwd
-r-sr-xr-x  1 root bin 19031 Feb 7 13:47 /usr/bin/passwd*

此外,目录还有一种特殊权限叫防删除位(sticky bit)。设置了该位的目录,只有目录所有者、文件所有者或超级用户才能删除其中的文件。可以使用以下命令设置目录的 SUID 和 SGID:

$ chmod ug+s dirname
$ ls -l
drwsr-sr-x 2 root root 4096 Jun 19 06:45 dirname

以上就是 UNIX 文件系统操作的核心内容。从最基本的列出、创建、编辑,到权限管理,这些命令和概念是日常工作的基石。多动手在终端里试试,很快就能形成直觉。

来源:https://www.jb51.net/os/Unix/432998.html
上一篇手把手教你用U盘安装FreeBSD系统教程 下一篇FreeBSD 10操作系统内核源代码安装方法详细步骤指南
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
微软详解Win11时间点还原 默认每24小时创建恢复点
系统平台 · 2026-06-30

微软详解Win11时间点还原 默认每24小时创建恢复点

微软今日推送了最新的 6 月可选更新,并发布博客详细解读了 Win11 全新的“时间点还原”(Point-in-time restore)功能——这一功能本质上是对系统恢复体验的一次全面升级,旨在让用户更轻松地应对电脑故障。 微软表示,面向 Windows 11 客户端用户的“时间点还原”功能现已正

Win11 26H1六月可选更新KB5095091 优化放大镜改善装机体验
系统平台 · 2026-06-30

Win11 26H1六月可选更新KB5095091 优化放大镜改善装机体验

微软今天推送了Windows 11 26H1设备的6月可选更新KB5095091,安装完成后系统版本号会升级到Build 28000 2340。值得一提的是,这次更新并非面向所有设备,而是专门为搭载高通骁龙X2系列芯片的机型准备的——包括骁龙X2 Plus、X2 Elite和X2 Elite Ext

Win11六月可选更新KB5095093修复回收站弹窗异常
系统平台 · 2026-06-30

Win11六月可选更新KB5095093修复回收站弹窗异常

微软已悄然推送Windows 11六月可选更新,编号KB5095093。本次更新覆盖两个版本:24H2用户安装后版本号升级至Build 26100 8737,而25H2用户则更新至Build 26200 8737。 本次更新并非仅是小修小补,而是带来了多项实质性新功能。下面我们就来详细解析这些更新内

苹果macOS 27 Beta2封堵Siri AI跳过候补名单漏洞
系统平台 · 2026-06-30

苹果macOS 27 Beta2封堵Siri AI跳过候补名单漏洞

科技媒体 Cult of Mac 昨日(6月23日)发布博文指出,苹果在 macOS 27 Beta 2 更新中悄然封堵了一个此前可用的后门——用户曾能通过一条终端命令绕过候补名单,直接启用新版 Siri AI,如今这一方法已失效。 简要回顾一下:在 macOS 27 Beta 1 阶段,只需在 M

微软加速Win11 25H2推送 覆盖所有符合条件家用PC
系统平台 · 2026-06-30

微软加速Win11 25H2推送 覆盖所有符合条件家用PC

近日(6月23日),科技媒体 Windows Latest 发布了一则值得关注的动态:微软已进一步扩大 Windows 11 25H2 的推送范围,所有满足硬件要求、且不受 IT 部门管理的家庭版和专业版设备,现在均可顺利接收本次更新。 此次升级有一个显著特点——采用“启用包”(eKB)方式进行推送