01_Linux系统管理_基础知识_高级文件系统管理_磁盘配额(quota)

article/2025/10/20 19:29:32
  • 环境
    • 虚拟机:VMware-10.0.7 build-2844087
    • Linux系统:CentOS 6.8
    • 远程工具:Xshell 6 (Build 0197)

01_Linux系统管理_基础知识_高级文件系统管理_磁盘配额

一、什么是磁盘配额(quota)

  •  磁盘配额概念
    • 对用户和用户组使用磁盘空间和文件个数的限制
    • 限定普通用户,对管理员无效

二、磁盘配额条件

  • 磁盘配额需要满足两个条件:
    • 内核必须支持磁盘配额
    • 系统中必须安装quota工具

2.1、内核必须支持磁盘配额 

[root@localhost ~]# grep QUOTA /boot/config-2.6.32-642.el6.x86_64 
CONFIG_NETFILTER_XT_MATCH_QUOTA=m
CONFIG_XFS_QUOTA=y
CONFIG_QUOTA=y
CONFIG_QUOTA_NETLINK_INTERFACE=y
CONFIG_PRINT_QUOTA_WARNING=y
# CONFIG_QUOTA_DEBUG is not set
CONFIG_QUOTA_TREE=y
CONFIG_QUOTACTL=y

说明:CONFIG_QUOTA=y 此配置表明内核支持磁盘配额。

2.2 系统中必须安装 quota 工具

[root@localhost ~]# rpm -qa | grep quota
quota-3.17-23.el6.x86_64

说明:系统中有 quota 工具,如果没有使用yum安装即可。

三、概念理解

  • 概念理解
    • 用户配合和组配额
      • 主要给用户配额,可用Shell脚本实现
      • 组配额,“先到先得”,实际中无意义
    • 限制硬盘容量和文件个数
      • 限制使用硬盘空间
      • 限制上传文件个数
    • 软限制和硬限制
      • 警告限制,超出限额报警,但不锁死
      • 死限制,超过即停止写入
    • 宽限天数
      • 达到软限制之后,在宽限一定天数(比如7天),升级为硬限制。

四、磁盘配额规划

  • 磁盘配额规划
    • 目的:方便日后复习
    • 具体i规划:
      • 新建一个 5GB 的分区 /dev/sdb1,并挂载到 /disk1
      • 新建三个普通用户:user1、user2 user3
      • 可更改宽限天数
    • 注意:
      • 本文中不会出现组配额情况,“先到先得”规则对其他用户极不友好,没有实际意义,所以排除在规划之外。

五、磁盘配额步骤

5.1、基本配额步骤

  • 1、建立磁盘分区 /dev/sdb1,并挂载到 /disk1
[root@localhost ~]# fdisk /dev/sdbWARNING: DOS-compatible mode is deprecated. It's strongly recommended toswitch off the mode (command 'c') and change display units tosectors (command 'u').Command (m for help): pDisk /dev/sdb: 21.5 GB, 21474836480 bytes
28 heads, 40 sectors/track, 37449 cylinders
Units = cylinders of 1120 * 512 = 573440 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0008e6aeDevice Boot      Start         End      Blocks   Id  System
/dev/sdb1               2        3488     1951744   83  Linux
[root@localhost /]# mount /dev/sdb1 /disk
/dev/sdb1 looks like swapspace - not mounted  <-- /dev/sdb1是swap分区,无法挂载
mount: you must specify the filesystem type   <-- 重新指定文件类型
[root@localhost /]# mkfs -t ext4 /dev/sdb1    <-- 指定 ext4 文件类型
mke2fs 1.41.12 (17-May-2010)
文件系统标签=
操作系统:Linux
块大小=4096 (log=2)
...
正在写入inode表: 完成                            
Creating journal (8192 blocks): 完成
Writing superblocks and filesystem accounting information: 完成This filesystem will be automatically checked every 36 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@localhost /]# mount /dev/sdb1 /disk      <-- 重新挂载,不再报错
  •  2、创建需要限制的用户 user1、user2、user3
[root@localhost ~]# useradd user1
[root@localhost ~]# passwd user1
[root@localhost ~]# useradd user2
[root@localhost ~]# passwd user2
[root@localhost ~]# useradd user3
[root@localhost ~]# passwd user3
[root@localhost ~]# vi /etc/passwd...
user1:x:500:500::/home/user1:/bin/bash
user2:x:501:501::/home/user2:/bin/bash
user3:x:502:502::/home/user3:/bin/bash
  • 3、在分区上开启磁盘配额功能
  • 临时开启
[root@localhost /]# mount -o remount,usrquota,grpquota /disk   <--挂载上配额功能
  • 永久开启
[root@localhost /]# vi /etc/fstab/dev/sdb1       /disk          ext4    defaults,usrquota,grpquota    0 0

 说明:上图标记位置,即为开机默认开机磁盘配额功能,挂载好之后,重启系统 reboot

[root@localhost /]# reboot
  • 4、建立磁盘配额的配置文件
  • 创建磁盘配额配置格式及选项
    • 格式:quotacheck 【选项】【分区名】
    • 选项
      • -a:扫描 /etc/mtab 文件中所有启用磁盘配额的分区。加入此参数,命令不用指定分区
      • -v:显示扫描过程
      • -u:建立用户配额的配置文件,也就是生成 aquota.user 文件
      • -g:建立用户组配额的配置文件,也就是生成 aquota.group 文件
      • -c:不管原有配置文件,重新扫描并创建新的配置文件
      • -m:强制以读写的方式扫描文件系统,与 -M 类似,一般扫描分区使用
      • -f:强制扫描文件系统,并写入新的配置文件
  • 建立配置文件
  • 初次创建配置文件报错,权限不够
[root@localhost ~]# quotacheck -auvg
quotacheck: Your kernel probably supports journaled quota but you are not using it. Consider switching to journaled quota to avoid running quotacheck after an unclean shutdown.
quotacheck: Scanning /dev/sdb1 [/disk] done
quotacheck: Checked 2 directories and 2 files
quotacheck: Cannot create new quotafile /disk/aquota.user.new: 权限不够
quotacheck: Cannot initialize IO on new quotafile: 权限不够
quotacheck: Cannot create new quotafile /disk/aquota.group.new: 权限不够
quotacheck: Cannot initialize IO on new quotafile: 权限不够
  • 原因分析:
    • CentOS 6.8 开启了SELinux安全机制,所以报错
  • 解决办法:关闭SELinux即可。
  • 关闭SELinux
[root@localhost ~]# getenforce        <--查看SELinux状态
Enforcing                             <--强制生效
[root@localhost ~]# setenforce 0      <--设置宽容模式,临时修改
#临时修改允许配置文件
[root@localhost ~]# getenforce             <--再次查看SELinux状态
Permissive                                 <--宽容模式
[root@localhost ~]# vi /etc/selinux/config <--修改配置文件,永久关闭1 2 # This file controls the state of SELinux on the system.3 # SELINUX= can take one of these three values:4 #    enforcing - SELinux security policy is enforced.5 #     permissive - SELinux prints warnings instead of enforcing.6 #     disabled - No SELinux policy is loaded.7 SELINUX=disabled                       <--设置成disabled,SELinux不起作用8 # SELINUXTYPE= can take one of these two values:9 #     targeted - Targeted processes are protected,10 #     mls - Multi Level Security protection.11 SELINUXTYPE=targeted12 
[root@localhost ~]# reboot            <--重启系统,使配置生效
[root@localhost ~]# getenforce
Disabled                              <--重启之后,SELinux已关闭
  • 再次创建配置文件
[root@localhost ~]# quotacheck -augv            <--重新创建配置文件
quotacheck: Your kernel probably supports journaled quota but you are not using it. Consider switching to journaled quota to avoid running quotacheck after an unclean shutdown.
quotacheck: Quota for users is enabled on mountpoint /disk so quotacheck might damage the file.
Please turn quotas off or use -f to force checking.
# 以上内容,代表配置文件创建成功
  • 查看挂载点 /disk 下配置文件是否创建成功
[root@localhost ~]# ll /disk             <--查看挂载点 /disk 下配置文件是否创建成功 
总用量 40
drwxr-xr-x.  3 root root  4096 5月  13 14:12 .
dr-xr-xr-x. 28 root root  4096 5月  13 17:33 ..
-rw-------.  1 root root  6144 5月  13 14:12 aquota.group    <--group配额配置文件创建成功
-rw-------.  1 root root  6144 5月  13 14:12 aquota.user     <--user配额配置文件创建成功
drwx------.  2 root root 16384 5月  13 04:23 lost+found
  • 5、设置用户和组的配额限制
  • 格式:[root@localhost ~]# edquota 【选项】 【用户名或组名】
  • 选项
    • -u 用户名 :设定用户配额
    • -g 组名    :设定组配额
    • -t             :设定宽限时间
    • -p            :复制配额限制,A用户设置好配额,其他用户配额与A用户相同,就可                       以使用配额复制,不用人工指定。
  • 配额举例:我们给用户 user1 磁盘空间软限制是 40M,硬限制是 50M,文件个数的软限制是8个,硬限制是10个(个数较少,方便测试)
  • 操作命令如下:
[root@localhost ~]# edquota -u user11 Disk quotas for user user1 (uid 500):  #                          ------------磁盘空间---------     ---------文件个数-------                     2   Filesystem             blocks       soft       hard     inodes     soft     hard3   /dev/sdb1                   0      40000      50000          0        8       10#   分区名称               已占用容量      软限制      硬限制    i节点数量   软限制    硬限制

说明:blocks inodes 不要手动修改,默认,修改磁盘空间和文件个数的软硬限制即可。

  • 6、启动和关闭磁盘配额
  • 格式
    • 启动配额:[root@localhost ~]# quotaon [选项] [分区名]
    • 关闭配额:[root@localhost ~]# quotaoff [选项] [分区名]
  • 选项:
    • -a:依据配置文件 /etc/mtab 启动所有的配额分区,如果不加 -a,需要指定分区名
    • -v:显示启动过程的信息
    • -u:启动用户配额
    • -g:启动组配额
  • 启动配额:
    • 命令如下:
[root@localhost ~]# quotaon -avug            <--直接开启配额功能报错
quotaon: using /disk/aquota.group on /dev/sdb1 [/disk]: 设备或资源忙
quotaon: using /disk/aquota.user on /dev/sdb1 [/disk]: 设备或资源忙
  • 开启磁盘报错:设备或者资源忙(Device or resource busy)
  • 解决办法:先关闭磁盘配额,再开启磁盘配额
  • 命令如下:
[root@localhost ~]# quotaoff -a                <--关闭磁盘配额
[root@localhost ~]# quotaon -avug              <--启动磁盘配额
/dev/sdb1 [/disk]: group quotas turned on      <--用户组磁盘配额已启动
/dev/sdb1 [/disk]: user quotas turned on       <--用户磁盘配额已启动
  • 7、磁盘配额查询
    • quota 查询用户或者用户组配额
    • repquota 查询文件系统配额
  • quota 查询用户或者用户组配额
  •  格式:[root@localhost ~]# quota [选项] [用户名或组名]
  • 选项:
    • -v:显示详细信息
    • -u:查询用户配额
    • -g:查询用户组配额
    • -s:以习惯单位显示容量大小,比如 M、G 等
[root@localhost ~]# quota -uvs user1
Disk quotas for user user1 (uid 500): Filesystem  blocks   quota   limit   grace   files   quota   limit   grace/dev/sdb1       0   40000   50000               0       8      10  
  • repquota 查询文件系统配额
  • 格式:[root@localhost ~]# repquota [选项] [分区名]
  • 选项:
    • -a:依据配置文件 /etc/mtab 启动所有的配额分区,如果不加 -a,需要指定分区名
    • -v:显示详细信息
    • -u:查询用户配额
    • -g:查询组配额
    • -s:以习惯单位显示容量大小,比如 M,G 等
  • 命令如下:
[root@localhost ~]# repquota -avugs
*** Report for user quotas on device /dev/sdb1
Block grace time: 7days; Inode grace time: 7days    <--宽限天数Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace 
----------------------------------------------------------------------
root      --      20       0       0              2     0     0       
user1     --       0   40000   50000              0     8    10       
#所有用户磁盘配额情况
Statistics:
Total blocks: 7
Data blocks: 1
Entries: 2
Used average: 2.000000*** Report for group quotas on device /dev/sdb1
Block grace time: 7days; Inode grace time: 7daysBlock limits                File limits
Group           used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --      20       0       0              2     0     0       
#所有用户组磁盘配额情况
Statistics:
Total blocks: 6
Data blocks: 1
Entries: 1
Used average: 1.000000
  • 8、测试
    • 用 dd 命令重复写入文件,超出软硬限制是否提醒
    • 使用普通用户 user1 测试,不要用 root 用户测试
  • dd 命令 
    • 格式:dd if=源文件 of=目标文件 bs=一次复制大小 count=复制次数
    • 含义:将源文件内容复制到目标文件,每次复制1M,共复制总次数次数
    • 结合本例:复制文件超出50M,应该报错:超出磁盘配额。
  • 1)磁盘空间配额测试 
  •  初次写入数据测试
[user1@localhost disk]$ dd if=/dev/zero of=/disk/testfile bs=1M count=60
dd: 正在打开"/disk/testfile": 权限不够
  • 说明:
    • 写入文件报错:权限不够
    • 解决办法:root 用户 修改分区 /disk 所有者为 user1
    • 命令如下:
[root@localhost disk]# chown user1:root /disk        <--修改所属者
[root@localhost disk]# ll -d /disk                   <--查看所属者
drwxr-xr-x. 3 user1 root 4096 5月  14 07:31 /disk    <--修改成功,所属者变成 user1
  • 再次重新写入数据测试
[user1@localhost disk]$ dd if=/dev/zero of=/disk/testfile bs=1M count=60    
sdb1: warning, user block quota exceeded.
sdb1: write failed, user block limit reached.
dd: 正在写入"/disk/testfile": 超出磁盘限额            <--写入报错,限制生效
记录了49+0 的读入            
记录了48+0 的写出
51195904字节(51 MB)已复制,0.584917 秒,87.5 MB/秒
[user1@localhost disk]$ quota -uvs user1            <--查询写入情况
Disk quotas for user user1 (uid 500): Filesystem  blocks   quota   limit   grace   files   quota   limit   grace/dev/sdb1   50000*  40000   50000   6days       2       8      10   <--写入成功
  • 2)文件个数配额测试  
[user1@localhost disk]$ ls
aquota.group  aquota.user  lost+found  testfile
[user1@localhost disk]$ touch 1
[user1@localhost disk]$ touch 2
[user1@localhost disk]$ touch 3
[user1@localhost disk]$ touch 4
[user1@localhost disk]$ touch 5
[user1@localhost disk]$ touch 6    <--加上testfile、aquota.user 共计8个文件
[user1@localhost disk]$ touch 7    <--加上testfile、aquota.user 共计9个文件,报警
sdb1: warning, user file quota exceeded.
[user1@localhost disk]$ touch 8
[user1@localhost disk]$ touch 9    <--加上testfile、aquota.user 共计11个文件
sdb1: write failed, user file limit reached.
touch: 无法创建"9": 超出磁盘限额
[user1@localhost disk]$ ls
1  2  3  4  5  6  7  8  aquota.group  aquota.user  lost+found  testfile
[user1@localhost disk]$ 

说明1:超出8个报警,超出10个限制不让创建。

说明2:至此,磁盘配额基本步骤已完成,下面是磁盘配额进阶操作。

5.2、磁盘配额进阶操作

  • 1、配额复制:
    • 作用:将A用户配额以同样的限制分配给其他用户。
    • 格式:[root@localhost ~]# edquota -p 原用户 -u 目标用户
      • -p:指定原用户
      • -u:指定目标用户
    • 注意:不适用直接写脚本
  • 举例:将用户 user1  的配额复制给用户 user2
[root@localhost ~]# edquota -p user1 -u user2    <--将user1 配额复制给 user2
[root@localhost ~]# repquota -avus               <--查看 user1 和 user2 配置
*** Report for user quotas on device /dev/sdb1
Block grace time: 7days; Inode grace time: 7daysBlock limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --      16       0       0              1     0     0       
user1     +-   50000   40000   50000  6days       2     8    10       
user2     --       0   40000   50000              0     8    10       <--user1 和 user2 磁盘配额一致
Statistics:
Total blocks: 7
Data blocks: 1
Entries: 3
Used average: 3.000000
  •  2、非交互设定磁盘配额
    • 格式:[root@localhost disk]# setquota -u 用户名 容量软限制 容量硬限制 个数软限制 个数硬限制 分区名
    • 适用:特别适合写 Shell 脚本 
  • 举例:给用户 user3 设置容量软限制 30M,容量硬限制 40M,文件软限制 5 个,文件硬限制 8 个。 
[root@localhost disk]# setquota -u user3 30000 40000 5 8 /disk
[root@localhost disk]# quota -uvs user3
Disk quotas for user user3 (uid 502): Filesystem  blocks   quota   limit   grace   files   quota   limit   grace/dev/sdb1       0   30000   40000               0       5       8    
  • 3、修改宽限时间
    • 了解
    • 一般不修改,默认 7 天正好
[root@localhost disk]# edquota -t1 Grace period before enforcing soft limits for users:2 Time units may be: days, hours, minutes, or seconds3   Filesystem             Block grace period     Inode grace period4   /dev/sdb1                     7days                  7days
~                                                                      
  • 4、根分区 / 开启配额功能
    • 开启方法:修改 /etc/fstab 文件,开机默认挂载 usrquota grpquota
[root@localhost disk]# vi /etc/fstab             <--修改跟分区 / 默认开机挂载
UUID=dd1a8899-21aa-4311-a8cc-bdf51c431a88 /   ext4    defaults,usrquota,grpquota        1 1

  •  重新挂载根分区 / ,使配置文件 /etc/fstab 生效
[root@localhost disk]# mount -o remount /
  • 建立配额配置文件
[root@localhost disk]# quotacheck -avugm        <--加 -m 强制扫描,否则报错
quotacheck: Your kernel probably supports journaled quota but you are not using it. Consider switching to journaled quota to avoid running quotacheck after an unclean shutdown.
quotacheck: Scanning /dev/sda3 [/] done
quotacheck: Cannot stat old user quota file //aquota.user: 没有那个文件或目录. Usage will not be substracted.
quotacheck: Cannot stat old group quota file //aquota.group: 没有那个文件或目录. Usage will not be substracted.
quotacheck: Cannot stat old user quota file //aquota.user: 没有那个文件或目录. Usage will not be substracted.
quotacheck: Cannot stat old group quota file //aquota.group: 没有那个文件或目录. Usage will not be substracted.
quotacheck: Checked 6379 directories and 72086 files
quotacheck: Old file not found.
quotacheck: Old file not found.
quotacheck: Quota for users is enabled on mountpoint /disk so quotacheck might damage the file.
Please turn quotas off or use -f to force checking.
  •  说明:
    • quotacheck 建立配置文件过程,需要先把分区挂载成只读,然后建立文件,再挂载回来。,
    • 根分区 / 已挂载成读写系统,且正在使用中
    • 不能直接在根分区 / 建立配置文件,必须加 -m 强制扫描才行。

六、小结

  • 知识总结
    • 磁盘配额
    • 基础配额步骤、
    • 磁盘配额进阶步骤、
    • 配额出错解决方法等
  • 目的:可以拿做复习之用。

http://chatgpt.dhexx.cn/article/8Atqs8ut.shtml

相关文章

linux 系统配额管理功能,磁盘配额管理_Linux教程_Linux公社-Linux系统门户网站

在多用户系统中&#xff0c;如果没有对用户使用的磁盘空间做出限制&#xff0c;用户无限制地存放数据和文件&#xff0c;可能会导致系统磁盘空间告警。如果存放的是无用数据&#xff0c;就会导致磁盘空间白白浪费。磁盘配额可以限制用户或组在磁盘上存放文件的空间&#xff0c;…

Linux复习笔记

Linux复习笔记 常识说明 目录结构 Linux以树型结构管理文件&#xff0c;其最上层文件夹为 / &#xff0c;也就是根目录。 如图所示&#xff0c;图中展示了一部分文件夹的结构&#xff1a; 所有的文件夹都属于根目录的子文件夹。 安装好系统后&#xff0c;根目录会挂载到一…

linux对目录空间使用限制,Linux quotacheck命令使用详解:检查磁盘的使用空间和限制...

quotacheck命令通过扫描指定的文件系统&#xff0c;获取磁盘的使用情况&#xff0c;创建、检查和修复磁盘配额(quota)文件。执行quotacheck指令&#xff0c;扫描挂入系统的分区&#xff0c;并在各分区的文件系统根目录下产生quota.user和quota.group文件&#xff0c;设置用户和…

Linux常用命令——quotacheck命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) quotacheck 检查磁盘的使用空间与限制 补充说明 quotacheck命令通过扫描指定的文件系统&#xff0c;获取磁盘的使用情况&#xff0c;创建、检查和修复磁盘配额&#xff08;quota&#xff09;文件。执行quotach…

Linux quotacheck失败

我找了多少个帖子才发现解决这个问题的啊...最终还是靠FQ找的这位大佬的文章 http://www.2daygeek.com/quotacheck-error/# 当我在执行quotacheck -avug的时候出现如下的错误&#xff1a; quotacheck: 无法从 /dev/sdb1 上的文件名猜测其格式&#xff0c;请在命令行中指定一个…

Linux系统输入quotacheck -ugcv /dev/sdb1报错

quotacheck -ugcv /dev/sdb1 报错处理 报错大多因为selinux没有关闭 [rootlocalhost fanhuilin]# quotacheck -ugcv /dev/sdb1 quotacheck: Your kernel probably supports journaled quota but you are not using it. Consider switching to journaled quota to avoid runni…

【Shell 命令集合 磁盘管理 】Linux 检查和创建磁盘配额数据库 quotacheck命令使用教程

目录标题 描述语法格式参数说明错误情况 注意事项底层实现示例示例一示例二示例三示例四示例五示例六示例七 用c语言实现结语 Shell 命令专栏&#xff1a;Linux Shell 命令全解析 描述 quotacheck命令是Linux系统中的一个磁盘配额管理工具&#xff0c;用于检查和创建磁盘配额数…

linux quotacheck命令参数及用法详解---Linux系统管理

功能说明&#xff1a;检查磁盘的使用空间与限制。 语  法&#xff1a;quotacheck [-adgRuv][文件系统...] 补充说明&#xff1a;执行quotacheck指令&#xff0c;扫描挂入系统的分区&#xff0c;并在各分区的文件系统根目录下产生quota.user和quota.group文件&#xff0c;设…

第一性原理 《禅与计算机程序设计艺术》 / 陈光剑

第一性原理 《禅与计算机程序设计艺术》 / 陈光剑 任何事物背后必有道理。 什麼是第一性原理 第一性原理(First Principle Thinking),指的是回歸事物最基本的條件,將其拆分成各要素進行解構分析,從而找到實現目標最優路徑的方法。 該原理源於古希臘哲學家亞里士多德提出的一…

“风味人间”与计算机程序设计艺术《禅与计算机程序设计艺术》 / 陈光剑

来自“风味人间”的类比 所谓美食,不过是一次又一次的相逢。我们带您穿越山海之间,偶尔的落地生根,成就万千肴变,随即化作滚滚红尘,穿越香料歧路,几度江湖夜雨后,点亮万家灯火。 《风味人间》 浮华随风去,一菜一江湖。无论置身繁华闹市,还是身居乡野陋巷,世上的滋味,…

《禅与计算机程序设计艺术》/ By 禅与计算机程序设计艺术GPT-4

以《禅与计算机程序设计艺术》为文章标题,写一篇关于软件架构设计哲学思想的文章,不少于10000字。不要列目录,直接写具体的内容。 《禅与计算机程序设计艺术》/ By 禅与计算机程序设计艺术&GPT-4 文章目录 《禅与计算机程序设计艺术》/ By 禅与计算机程序设计艺术&G…

编程语言进化史《禅与计算机程序设计艺术》 / 陈光剑

编程语言概述 计算机编程语言是程序设计的最重要的工具,它是指计算机能够接受和处理的、具有一定语法规则的语言。 编程语言处在不断的发展和变化中,从最初的机器语言发展到如今的2500种以上的高级语言,每种语言都有其特定的用途和不同的发展轨迹。编程语言并不像人类自然语…

《计算机程序设计艺术》系列书

《计算机程序设计艺术》重译自Donald E. Knuth(汉名高德纳)的三卷著作&#xff1a;"The Art of Computer Programming: 1. Fundamental Algorithms; 2. Seminumerical Algorithms; 3. Sorting and Searching"&#xff1b;三卷中文名为《基本算法》、《半数值算法》及…

“风味人间”与计算机程序设计艺术《禅与计算机程序设计艺术》

来自“风味人间”的类比 所谓美食,不过是一次又一次的相逢。我们带您穿越山海之间,偶尔的落地生根,成就万千肴变,随即化作滚滚红尘,穿越香料歧路,几度江湖夜雨后,点亮万家灯火。 《风味人间》 浮华随风去,一菜一江湖。无论置身繁华闹市,还是身居乡野陋巷,世上的滋味,…

计算机程序设计艺术初读感

传奇 在计算机领域里&#xff0c;有这么一本神作&#xff1a;作者从20多岁还在读博士时就开始写&#xff0c;一直写到80多岁&#xff0c;写到现在这本书还没完结&#xff1b;为了排版这本书而顺便开发的排版系统推动了整个西文印刷行业的变革&#xff1b;比尔盖茨说&#xff1…

计算机程序设计艺术读后感,计算机程序设计艺术(第1卷)读后感1000字

《计算机程序设计艺术(第1卷)》是一本由[美] Donald E. Knuth著作,清华大学出版社出版的精装图书,本书定价:80.00元,页数:650,特精心从网络上整理的一些读者的读后感,希望对大家能有帮助。 《计算机程序设计艺术(第1卷)》精选点评: ●神书,但是我智力太捉急了。。。感…

你这辈子可能都不需要看《计算机程序设计艺术》了!

“欣哥&#xff0c; 我什么时候可以看《计算机程序设计艺术》&#xff1f; ” “你这辈子可能都不需要看了&#xff01;” 我在大学的时候并不知道《计算机程序设计艺术》&#xff08;简称TAOCP&#xff09;有多牛&#xff0c;他的作者有多牛&#xff0c;人家计划写七卷&#x…

计算机程序设计艺术一二叉树

计算机程序设计艺术一二叉树 概念&#xff1a; 一个有限的节点集合&#xff0c;它或者为空&#xff0c;或者由一个根连同两个二叉树组成。 二叉树的自然方法&#xff1a; 在每个节点内&#xff0c;有两个链接&#xff0c;LLINK和RLINK以及作为“指向树的指针”的链接变量T(T是…

《计算机程序设计艺术》

计算机程序设计艺术&#xff08;国防工业出版社&#xff09; 《计算机程序设计艺术》重译自Donald E. Knuth(汉名 高德纳)的三卷著作&#xff1a;"The Art of Computer Programming: 1. Fundamental Algorithms; 2. Seminumerical Algorithms; 3. Sorting and Searching&q…

计算机程序设计艺术 介绍

《计算机程序设计艺术 》&#xff08;The Art of Computer Programming &#xff09;&#xff0c;簡稱TAOCP&#xff0c;是高德纳 &#xff08;Donald Ervin Knuth&#xff09;编著的关于计算机程序设计的七卷本著作。作者並因此获得美国计算机协会1974年 图灵奖 。[1] 目录 …