tmpfs 的优势

  1,动态文件系统的大小。

  2,tmpfs 的另一个主要的好处是它闪电般的速度。因为典型的 tmpfs 文件系统会完全驻留在 RAM 中,读写几乎可以是瞬间的。

  3,tmpfs 数据在重新启动之后不会保留,因为虚拟内存本质上就是易失的。所以有必要做一些脚本做诸如加载,绑定的操作。

一、修改 /dev/shm 大小

  默认的最大一半内存大小在某些场合可能不够用,并且默认的 inode 数量很低一般都要调高些,这时可以用mount 命令来管理它。

  #mount -o size=1500M -o nr_inodes=1000000 -o noatime,nodiratime -o remount /dev/shm

  在 2G 的机器上,将最大容量调到 1.5G,并且 inode 数量调到 1000000,这意味着大致可存入最多一百万个小文件。

  如果需要永久修改 /dev/shm 的值,需要修改 /etc/fstab

  tmpfs /dev/shm tmpfs defaults,size=1.5G 0 0

  #mount -o remount /dev/shm

二、/dev/shm 应用

  首先在 /dev/shm 建个 tmp 文件夹,然后与实际 /tmp 绑定

  #mkdir /dev/shm/tmp

  #chmod 1777 /dev/shm/tmp

  #mount –bind /dev/shm/tmp /tmp(–bind )

  在使用 mount –bind olderdir newerdir命令来挂载一个目录到另一个目录后,newerdir 的权限和所有者等所有信息会发生变化。挂载后的目录继承了被挂载目录的所有属性,除了名称。Oracle 11g 的 amm 内存管理模式就是使用 /dev/shm,所以有时候修改 MEMORY_TARGET 或者 MEMORY_MAX_TARGET 会出现 ORA-00845 的错误。

/usr 文件系统

/usr 是个很重要的目录,通常这一文件系统很大,因为所有程序安装在这里。/usr 里的所有文件一般来自 linux 发行版( distribution);本地安装的程序和其他东西在 /usr/local 下,因为这样可以在升级新版系统或新发行版时无须重新安装全部程序。/usr 目录下的许多内容是可选的,但这些功能会使用户使用系统更加有效。/usr 可容纳许多大型的软件包和它们的配置文件。下面列出一些重要的目录(一些不太重要的目录被省略了)。

  1. /usr/x11r6

    包含 x window 系统的所有可执行程序、配置文件和支持文件,之所以取名为 X11R6 是因为最后的X版本为第11版,且该版的第6次释出之意。为简化 x 的开发和安装,x 的文件没有集成到系统中。x window 系统是一个功能强大的图形环境,提供了大量的图形工具程序。用户如果对 microsoft windows 或 machintosh 比较熟悉的话,就不会对 xwindow 系统感到束手无策了。

  2. /usr/x386

    类似 /usr/x11r6,但是是专门给 x 11 release 5 的。

  3. /usr/bin

    集中了几乎所有用户命令,是系统的软件库。另有些命令在 /bin 或 /usr/local/bin 中。

  4. /usr/sbin

    包括了根文件系统不必要的系统管理命令,例如多数服务程序。

  5. /usr/man、/usr/info、/usr/doc

    这些目录包含所有手册页、gnu 信息文档和各种其他文档文件。每个联机手册的“节”都有两个子目录。例如:/usr/man/man1 中包含联机手册第一节的源码(没有格式化的原始文件),/usr/man/cat1 包含第一节已格式化的内容。联机手册分为以下九节:内部命令、系统调用、库函数、设备、文件格式、游戏、宏软件包、系统管理和核心程序。

  6. /usr/include

    包含了 c 语言的头文件,这些文件多以 . h 结尾,用来描述 c 语言程序中用到的数据结构、子过程和常量。为了保持一致性,这实际上应该放在 /usr/lib 下,但习惯上一直沿用了这个名字。

  7. /usr/lib

    lib 是 library 的简写。存放的是各应用软件的动态链接库以及一些不被一般使用者惯用的执行档或脚本(script)。编程的原始库也存在 /usr/lib 里。当编译程序时,程序便会和其中的库进行连接。也有许多程序把配置文件存入其中。

  8. /usr/local

    系统管理员在本机安装下载的软件(非 distribution 默认提供者),建议安装到此目录, 这样会比较便于管理。举例来说,你的 distribution 提供的软件较旧,你想安装较新的软件但又不想移除旧版, 此时你可以将新版软件安装于 /usr/local/ 目录下,可与原先的旧版软件有分别啦。 你可以自行到 /usr/local 去看看,该目录下也是具有 bin, etc, include, lib...的次目录。

  9. /usr/share

    放置共享文件的地方,在这个目录下放置的数据几乎是不分硬件架构均可读取的数据, 因为几乎都是文本文件。在此目录下常见的还有这些次目录:/usr/share/man:联机帮助文件;/usr/share/doc:软件杂项的文件说明;/usr/share/zoneinfo:与时区有关的时区文件。

  10. /usr/src

    src 是 source 的缩写,一般原始码建议放置到这里。至于核心原始码则建议放置到 /usr/src/linux/ 目录下。

/var 文件系统

/var 包含系统一般运行时要改变的数据。通常这些数据所在的目录的大小是要经常变化或扩充的。原来 /var 目录中有些内容是在 /usr 中的,但为了保持 /usr 目录的相对稳定,就把那些需要经常改变的目录放到 /var 中了。每个系统是特定的,即不通过网络与其他计算机共享。下面列出一些重要的目录(一些不太重要的目录省略了)。

  1. /var/catman

    包括了格式化过的帮助( man )页。帮助页的源文件一般存在 /usr/man/man 中;有些 man 页可能有预格式化的版本,存在 /usr/man/cat 中。而其他的 man 页在第一次看时都需要格式化,格式化完的版本存在 /var/man 中,这样其他人再看相同的页时就无须等待格式化了。( /var/catman 经常被清除,就像清除临时目录一样。)

  2. /var/lib

    程序执行的过程中,需要使用到的数据文件放置的目录。在此目录下各自的软件应该要有各自的目录。 举例来说,MySQL 的数据库放置到 /var/lib/mysql/ 而 rpm 的数据库则放到 /var/lib/rpm 中。

  3. /var/local

    存放 /usr/local 中安装的程序的可变数据(即系统管理员安装的程序)。注意,如果必要,即使本地安装的程序也会使用其他 /var 目录,例如 /var/lock 。

  4. /var/lock

    锁文件。许多程序遵循在 /var/lock 中产生一个锁定文件的约定,以用来支持他们正在使用某个特定的设备或文件。其他程序注意到这个锁定文件时,就不会再使用这个设备或文件。

  5. /var/log

    各种程序的日志( log )文件,尤其是 login( /var/log/wtmp log纪录所有到系统的登录和注销) 和 syslog ( /var/log/messages 纪录存储所有核心和系统程序信息)。/var/log 里的文件经常不确定地增长,应该定期清除。

  6. /var/run

    保存在下一次系统引导前有效的关于系统的信息文件。例如, /var/run/utmp 包含当前登录的用户的信息。某些程序或者是服务启动后,会将他们的PID放置在这个目录下。

  7. /var/spool

    放置“假脱机( spool )”程序的目录,如mail、news、打印队列和其他队列工作的目录。每个不同的 spool 在 /var/spool 下有自己的子目录,例如,用户的邮箱就存放在 /var/spool/mail 中。

  8. /var/tmp

    比 /tmp 允许更大的或需要存在较长时间的临时文件。注意系统管理员可能不允许 /var/tmp 有很旧的文件。

  9. /var/cache

    应用程序运行过程中会产生的一些暂存档。

/proc 文件系统

/proc 文件系统是一个伪文件系统,它并不存在磁盘上,只存在内存当中。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过 proc得到系统的信息,并可以改变内核的某些参数。下面说明一些最重要的文件和目录( /proc 文件系统在 proc man 页中有更详细的说明)。

  1. /proc/cmdline

    这个文件给出了内核启动的命令行。它和用于进程的cmdline项非常相似。

  2. /proc/x

    关于进程x的信息目录,这一x是这一进程的标识号。每个进程在/proc 下有一个名为自己进程号的目录。

  3. /proc/cpuinfo

    存放处理器(CPU)的信息,如 cpu 的类型、制造商、型号和性能等。

  4. /proc/meminfo

    这个文件给出了内存状态的信息。它显示出系统中空闲内存,已用物理内存和交换内存的总量。它还显示出内核使用的共享内存和缓冲区总量。这些信息的格式和free命令显示的结果类似。

  5. /proc/devices

    当前运行的核心配置的设备驱动的列表。

  6. /proc/dma

    这个文件列出由驱动程序保留的DMA通道和保留它们的驱动程序名称。

  7. /proc/filesystems

    这个文件列出可供使用的文件系统类型,一种类型一行。虽然它们通常是编入内核的文件系统类型,但该文件还可以包含可加载的内核模块加入的其它文件系统类型。

  8. /proc/interrupts

    显示被占用的中断信息和占用者的信息,以及被占用的数量。这个文件的每一行都有一个保留的中断。每行中的域有:中断号,本行中断的发生次数,可能带有一个加号的域(SA_INTERRUPT标志设置),以及登记 这个中断的驱动程序的名字。可以在安装新硬件前,像查看 /proc/dma和/proc/ioports 一样用 cat 命令手工查看手头的这个文件。这个文件列出了当前投入使用的资源(但是不包括那些没有加载驱动程序的硬件所使用的资源)。

  9. /proc/ioports

    当前使用的 i/o 端口。这个文件列出了诸如磁盘驱动器,以太网卡和声卡设备等多种设备驱动程序登记的许多I/O端口范围。

  10. /proc/kcore

    系统物理内存映像。与物理内存大小完全一样,然而实际上没有占用这么多内存;它仅仅是在程序访问它时才被创建。(注意:除非你把它拷贝到什么地方,否则 /proc 下没有任何东西占用任何磁盘空间。)

  11. /proc/kmsg

    这个文件用于检索用 printk 生成的内核消息。任何时刻只能有一个具有超级用户权限的进程可以读取这个文件。也可以用系统调用syslog检索这些消息。通常使用工具dmesg或守护进程klogd检索这些消息。

  12. /proc/ksyms

    核心符号表。这个文件列出了已经登记的内核符号;这些符号给出了变量或函数的地址。每行给出一个符号的地址,符号名称以及登记这个符号的模块。程序ksyms,insmod和kmod使用这个文件。它还列出了正在运行的任务数,总任务数和最后分配的PID。

  13. /proc/loadavg

    这个文件给出以几个不同的时间间隔计算的系统平均负载,这就如同uptime命令显示的结果那样。前三个数字是平均负载。这是通过计算过去1分钟,5分钟,15分钟里运行队列中的平均任务数得到的。随后是正在运行的任务数和总任务数。最后是上次使用的进程号。

  14. /proc/modules

    存放当前加载了哪些核心模块信息。

  15. /proc/mounts

    这个文件以 /etc/mtab 文件的格式给出当前系统所安装的文件系统信息。这个文件也能反映出任何手工安装从而在 /etc/mtab 文件中没有包含的文件系统。

  16. /proc/misc

    这个文件报告用内核函数misc_register登记的设备驱动程序。

  17. /proc/net

    此目录下的文件描述或修改了联网代码的行为。可以通过使用arp,netstat,route和ipfwadm命令设置或查询这些特殊文件中的许多文件。

  18. /proc/self

    存放到查看 /proc 的程序的进程目录的符号连接。当2个进程查看 /proc 时,这将会是不同的连接。这主要便于程序得到它自己的进程目录。

  19. /proc/stat

    这个文件包含的信息有 CPU 利用率,磁盘,内存页,内存对换,全部中断,接触开关以及启动时间(自1970年1月1日起的秒数)。

  20. /proc/uptime

    系统启动的时间长度。

  21. /proc/version

    核心版本

  22. /proc/locks

    这个文件包含在打开的文件上的加锁信息。文件中的每一行描述了特定文件和文档上的加锁信息以及对文件施加的锁的类型。内核也可以需要时对文件施加强制性锁。

  23. /proc/pci

    这个文件给出PCI设备的信息。用它可以方便地诊断PCI问题。你可以从这个文件中检索到的信息包括诸如IDE接口或USB控制器这样的设备,总线,设备和功能编号,设备延迟以及IRQ编号。

  24. /proc/scsi

    此目录下包含一个列出了所有检测到的SCSI设备的文件,并且为每种控制器驱动程序提供一个目录,在这个目录下又为已安装的此种控制器的每个实例提供一个子目录。

  25. /proc/sys

    在此目录下有许多子目录。此目录中的许多项都可以用来调整系统的性能。

linux 系统目录详解的更多相关文章

  1. linux系统目录详解

    Linux目录结构包括文件类型和一些重要的文件子目录. linux文件系统的最顶端是/,称为linux的root,所有的目录.文件.设备都在/之下.文件类型linux有四种基本文件系统类型:普通文件. ...

  2. 【Linux】一步一步学Linux——Linux系统目录详解(09)

    目录 00. 目录 01. 文件系统介绍 02. 常用目录介绍 03. /etc目录文件 04. /dev目录文件 05. /usr目录文件 06. /var目录文件 07. /proc 08. 比较 ...

  3. Linux 目录详解 树状目录结构图

    1.树状目录结构图 2./目录 目录 描述 / 第一层次结构的根.整个文件系统层次结构的根目录. /bin/ 需要在单用户模式可用的必要命令(可执行文件):面向所有用户,例如:cat.ls.cp,和/ ...

  4. Linux命令详解之—tail命令

    tail命令也是一个非常常用的文件查看类的命令,今天就为大家介绍下Linux tail命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux tail命令主要用来从指定点开始将文 ...

  5. Linux命令详解之—less命令

    Linux下还有一个与more命令非常类似的命令--less命令,相比于more命令,less命令更加灵活强大一些,今天就给大家介绍下Linux下的less命令. 更多Linux命令详情请看:Linu ...

  6. Linux命令详解之—more命令

    Linux more命令同cat命令一样,多用来查看文件内容,本文就为大家介绍下Linux more命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux的more命令类似 ca ...

  7. 【转】linux命令详解:md5sum命令

    [转]linux命令详解:md5sum命令 转自:http://blog.itpub.net/29320885/viewspace-1710218/ 前言 在网络传输.设备之间转存.复制大文件等时,可 ...

  8. Linux命令详解之—cat命令

    cat命令的功能是连接文件或标准输入并打印,今天就为大家介绍下Linux中的cat命令. 更多Linux命令详情请看:Linux命令速查手册 Linux 的cat命令通常用来显示文件内容,也可以用来将 ...

  9. Linux命令详解之—pwd命令

    Linux的pwd命令也是一个非常常用的命令,本文为大家介绍下Linux中pwd命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux pwd命令用于显示工作目录. 执行pwd指 ...

  10. Linux命令详解之–cd命令

    cd命令是linux实际使用当中另一个非常重要的命令,本文就为大家介绍下Linux中cd命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux cd命令用于切换当前工作目录至 d ...

随机推荐

  1. Java多线程-ThreadLocal(六)

    为了提高CPU的利用率,工程师们创造了多线程.但是线程们说:要有光!(为了减少线程创建(T1启动)和销毁(T3切换)的时间),于是工程师们又接着创造了线程池ThreadPool.就这样就可以了吗?-- ...

  2. 【文件】C语言文件操作及其使用总结篇【初学者保姆级别福利】

    [文件]C语言文件操作及其使用总结篇[初学者保姆级别福利] 一篇博客学好动态内存的管理和使用 这篇博客干货满满,建议收藏再看哦!! 求个赞求个赞求个赞求个赞 谢谢 先赞后看好习惯 打字不容易,这都是很 ...

  3. 【双指针】双指针算法详解两道经典OJ【力扣27,力扣26,力扣38】超详细算法教程

    [双指针]双指针算法详解两道经典OJ[力扣27,力扣26,力扣38]超详细算法教程 今天又又到了我们刷力扣题的时间啦! 今天博主给大家带来的三道题是: 27. 移除元素 26. 删除有序数组中的重复项 ...

  4. ASCII、Unicode、UTF8 10年后,重新整理《专题1》

    以后基本都是Unicode定义二进制对应的字符,UTF8来按照一种格式来存储Unicode二进制,所以只需知道 unicode unicode 官网:https://home.unicode.org/ ...

  5. docker离线安装及设置默认存储目录

    一.离线安装Docker 在内网环境下,一般不能联网在线部署,这时候就需要以离线的方式安装docker.本文介绍在CentOS 7.6环境中离线安装docker的步骤. 1. 下载docker安装包 ...

  6. Teams基础功能与会议介绍

    目录 Teams基本功能介绍 活动 聊天 如何查找联系人 如何开启语音或视频通话 如何共享自己的屏幕 如何新建群聊 发送文件的多种方式 快速安排一个会议 重要与紧急的消息 文件 分享的文件 OneDr ...

  7. ES6学习 第三章 字符串的扩展

    前言 本章主要是内容为是 ES6 对字符串的改造和增强. 本章记录字符串的扩展常用重点部分,不常用知识稍作记录. 本章原文链接: 字符串的扩展 模板字符串(template string) ES6字符 ...

  8. CF1833G Ksyusha and Chinchilla

    题目链接 题解 知识点:贪心,树形dp. 当 \(3 \not \mid n\) 时,显然无解. 考虑一种贪心策略,从叶子节点往上只,要以当前节点为根的子树大小能被 \(3\) 整除,就立刻切除这棵子 ...

  9. letcode-K个一组翻转链表(栈思想 + 递归)

    题目:输入一个有序链表,每K个一组进行反转. 输入:1, 2, 3, 4, 5, 5, 6, 8, 10 K = 3 输出:3, 2, 1, 5, 5, 4, 10, 8, 6 题解 反转,那么最先想 ...

  10. win32- copyfile的使用

    #include <stdio.h> #include <stdlib.h> #include <windows.h> #include <tchar.h&g ...