2.1-2.5系统目录结构

2.1-2.5系统目录结构


2.1-2.2 系统目录结构(上)

目录结构的介绍

  • / 根 每一个文件和目录从根目录开始。 只有root用户具有该目录下的写权限。请注意,/root是root用户的家目录。
  • /bin中 - 用户二进制文件 包含二进制可执行文件。 在单用户模式下,你需要使用的常见linux命令都位于此目录下。系统的所有用户使用的命令都设在这里。 例如:ps、ls、ping、grep、cp
  • /sbin目录 - 系统二进制文件 就像/bin,/sbin同样也包含二进制可执行文件。 但是,在这个目录下的linux命令通常由系统管理员使用,对系统进行维护。例如:iptables、reboot、fdisk、ifconfig、swapon命令 普通用户用的命令都在/bin下,管理员可以使用命令在/sbin下。
  • /etc - 配置文件 包含所有程序所需的配置文件。 也包含了用于启动/停止单个程序的启动和关闭shell脚本。例如:/etc/resolv.conf、/etc/logrotate.conf
  • /dev - 设备文件 包含设备文件。 这些包括终端设备、USB或连接到系统的任何设备。例如:/dev/tty1、/dev/usbmon0
  • /proc - 进程信息 包含系统进程的相关信息,每个进程在该目录下都有一个目录。 这是一个虚拟的文件系统,包含有关正在运行的进程的信息。例如:/proc/{pid}目录中包含的与特定pid相关的信息。 这是一个虚拟的文件系统,系统资源以文本信息形式存在。例如:/proc/uptime
  • /var - 变量文件 var代表变量文件。 这个目录下可以找到内容可能增长的文件。 这包括 - 系统日志文件(/var/log);包和数据库文件(/var/lib);电子邮件(/var/mail);打印队列(/var/spool);锁文件(/var/lock);多次重新启动需要的临时文件(/var/tmp);
  • /tmp - 临时文件 包含系统和用户创建的临时文件。 当系统重新启动时,这个目录下的文件都将被删除。
  • /usr - 用户程序 包含二进制文件、库文件、文档和二级程序的源代码。 /usr/bin中包含用户程序的二进制文件。如果你在/bin中找不到用户二进制文件,到/usr/bin目录看看。例如:at、awk、cc、less、scp。 /usr/sbin中包含系统管理员的二进制文件。如果你在/sbin中找不到系统二进制文件,到/usr/sbin目录看看。例如:atd、cron、sshd、useradd、userdel。 /usr/lib中包含了/usr/bin和/usr/sbin用到的库。 /usr/local中包含了从源安装的用户程序。例如,当你从源安装Apache,它会在/usr/local/apache2中。
  • /home - HOME目录 所有用户用home目录来存储他们的个人档案。 例如:/home/john、/home/nikita 普通用户是在/home下,root用户则是在/下。
  • /boot - 引导加载程序文件 包含引导加载程序相关的文件。 内核的initrd、vmlinux、grub文件位于/boot下。 例如:initrd.img-2.6.32-24-generic、vmlinuz-2.6.32-24-generic
  • /lib - 系统库 包含支持位于/bin和/sbin下的二进制文件的库文件. 库文件名为 ld或lib.so.* 例如:ld-2.11.1.so,libncurses.so.5.7
  • /opt - 可选的附加应用程序 opt代表可选的。 包含从个别厂商的附加应用程序。 附加应用程序应该安装在/opt/或者/opt/的子目录下。
  • /mnt - 挂载目录 临时安装目录,系统管理员可以挂载文件系统。
  • /media - 可移动媒体设备 用于挂载可移动设备的临时目录,默认是空的。 举例来说,挂载CD-ROM的/media/cdrom,挂载软盘驱动器的/media/floppy;
  • /srv - 服务数据 srv代表服务。 包含服务器特定服务相关的数据。 例如,/srv/cvs包含cvs相关的数据。

如何查看一个命令依赖于哪些库,使用如下命令则会列出ls命令依赖的所有库文件。

ldd /bin/ls

树形查看目录的命令

tree /root   树形查看/root下目录及文件

如果没有此命令需要先安装tree

yum install -y tree

Ctrl+c可以中断此命令,因为有的目录很多,刷出来会比较慢。

指定目录最大的深度(如2层)

tree -L 2 /root

这样就会只显示/root下两层的目录,更深层的目录将不会显示出来。


2.3 ls命令

ls命令是linux下最常用的命令之一,ls是list的缩写。因为linux目录或者文件记录的信息实在太多,所以默认ls只显示非隐藏的目录以及文件名。ls直接执行不加参数时显示当前目录下的文件名。

ls参数介绍

  1. 命令格式: 命令[-选项][参数] 列入
ls -a /etc   显示/etc下隐藏文件

在Linux中“.”代表的是隐藏文件。

  1. ls命令集合
  • -a 显示所有文件,包括隐藏文件
  • -l 详细信息显示
  • -d 查看目录属性
  • -f 直接输出结果,不进行排序(ls预设会以档案名排序)
  • -i 列出inode号码
  • -F : 根据档案信息,给予附加数据结构,例如:*代表可执行文件 /代表目录 =代表socket档案 |代表FIFO档案
  • -A : 全部档案,包括隐藏档案,但是不显示 . 与 .. 这两个目录
  • -h : 档案容量以人类可以理解的方式显示(如GB、KB等)
  • -n : 列出UID与GID而非使用者与群组的名称
  • -r : 将结果反向序列输出
  • -R : 连同子目录内容一同列出
  • -S : 以档案容量大小排序,而不是用档案名排序
  • -t : 以时间排序,而不是用档案名排序
  • --color=never : 不依据档案特性给予颜色显示
  • --color=always : 总是依据档案特性给予颜色显示
  • --color=auto : 让系统自行依据设定来判断是否给予颜色
  • --full-time : 以完整时间模式(包括年月日时分)显示
  • --time={atime,ctime} : 输出access时间或改变权限属性时间(ctime),而非内容变更时间(mtime)

2.4 文件类型

ls -l文件每列的介绍

-rw-------. 1 root root  7690 12月  3 06:21

1列:文件类型和权限

2列 : 链接占用的节点(inode),如果是目录,这个数值与该目录有多少一级子目录有关系。

3列:该文件所有者

4列:该文件所属组

5列:该文件的大小

6列:6、7、8列为该文件最近的修改日期

9列:该文件文件名

inode是什么

理解inode,要从文件储存说起。

  • 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。
  • 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。
  • 文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。

文件类型详解

  • d目录文件
  • -普通文件 普通文件(regular file):就是一般类型的文件,当用 ls -l 查看某个目录时,第一个属性为 ‘-‘ 的文件就是正规文件,或者叫普通文件。正规文件又可分成纯文字文件(ascii)和二进制文件(binary)。纯文本文件是可以通过cat, more, less等工具直接查看内容的,而二进制文件并不能。例如我们用的命令/bin/ls 这就是一个二进制文件。
  • l 链接文件(linux file),软连接就是该类型的文件 链接文件(link):ls -l 查看第一个属性为 ‘l’, 类似windows下的快捷方式。这种文件在linux中很常见,而且阿铭在日常的系统运维工作中用的很多,所以要特意留意一下这种类型的文件。
  • b 块设备,/dev/sda就是块设备 设备(device):与系统周边相关的一些档案,通常都集中在 /dev 这个目录之下! 通常又分为两种:块(block)设备 :就是一些储存数据,以提供系统存取的接口设备,简单的说就是硬盘。例如您的一号硬盘的代码是 /dev/sda1, 第一个属性为 ‘b’;另一种是字符(character)设备 :是一些串行端口的接口设备,例如键盘、鼠标等等,第一个属性为 ‘c’.
  • c 串行端口,例如鼠标键盘。
  • s 套接字文件(socket),用于进程间通信
  • p 管道文件。

2.5 alias命令和which命令

如何看一个命令的别名

which ls

查看ls命令的别名

如何查看当前那些命令做了别名

alias

直接敲alias即可列出来

如何设置别名

alias gaohanwei=‘ls -A‘

当输入gaohanwei实际上使用的是ls -A这个命令

如何取消已经设置了的别名

unalias gaohanwei

这样就取消了gaohanwei这个别名

  • 用户可利用alias,自定指令的别名。若仅输入alias,则可列出目前所有的别名设置。 alias的效力仅及于该次登入的操作。若要每次登入是即自动设好别名,可在/etc/profile或自己的~/.bashrc中设定指令的别名。还有,如果想给每一位用户都生效的别名,请把alias la=‘ls -al‘一行加在/etc/bashrc最后面,bashrc是环境变量的配置文件 /etc/bashrc和~/.bashrc 区别就在于一个是设置给全系统一个是设置给单用户使用. 利用alias可以把很长的命令变成任意我们喜欢的简短的 如果想永久生效,就把这条写入到 /etc/bashrc里面,并使用命令source .bashrc进行重启bashrc即可生效。
时间: 2024-07-29 22:34:30

2.1-2.5系统目录结构的相关文章

《iOS应用逆向工程》学习笔记(二)iOS系统目录结构(部分)

首先下载个iFile,可以用来直观地查看iOS系统的目录结构. 下面记录一些关键的iOS目录结构: /var:"variable"的简写,存放一些经常更改的文件,例如日志.用户数据.临时文件等.其中/var/mobile/Applications下存放了所有App Store App. /Applications:存放所有的系统App和来自Cydia的App,不包括App Store App.越狱的过程把/Applications变成了一个符号链接,实际指向/var/stash/App

Linux系统目录结构介绍

参考博客: http://www.cnblogs.com/chensiqiqi/p/6243549.html 感谢原博主为我学习Linux指明方向!! linux目录:一切从“根”开始,“/”是所有目录的起点(定点) linux每个目录可以挂载在不同的设备(磁盘)上. 在逻辑上所有目录(包括目录下的子目录)都在最高级别的目录“/”下,根(“/”)目录是linux系统中所有目录的起始点(丁点),根下面的目录及目录的子目录是一个有层次的树状结构,很像一颗倒挂着的一颗大树,这和Windows系统按照硬

Android系统目录结构

Android系统编译后生成三个映像文件,都是用cpio打包,gzip压缩的. ramdisk.img     文件系统,包含/system, /data, /bin等目录.kernel启动时负责初始化. system.img      系统包和库文件,挂载到/system目录 userdata.img    用户数据,挂载到/data目录 Android系统目录结构 /init                     系统启动文件 /system app               系统应用安

Linux基础篇之四系统目录结构

Linux 系统目录结构 ·思考:文件是什么?众多文件如何有效的组织起来? 文件指的是存储空间存储的一段数据流,对数据可以做到按名存取:文件存储的路径映射,我们称之为目录,文件就是存储在这些目录中. 众多文件通过层级结构来进行存储,可以把这种层级结构称之为倒置的树状结构. 在linux系统中,系统目录的第一层结构,原始起点"/",也就是所谓的根是所有目录的父目录,这个目录下的所有文件都按照倒置的树状结构排列. ·Linux系统与windows系统的目录结构有何不同? Linux系统通过

Linux系统目录结构以及简单说明

Linux系统目录结构以及简单说明 linux目录图: / root --- 启动Linux时使用的一些核心文件.如操作系统内核.引导程序Grub等. home --- 存储普通用户的个人文件 ftp --- 用户所有服务 httpd samba user1 user2 bin --- 系统启动时需要的执行文件(二进制) sbin --- 可执行程序的目录,但大多存放涉及系统管理的命令.只有root权限才能执行 proc --- 虚拟,存在linux内核镜像:保存所有内核参数以及系统配置信息 1

Linux文件系统目录结构解析

Linux系统目录结构 / 根目录: 包含了几乎所的文件目录.进入的最简单方法是:cd /.注意与根用户的区别.根用户是指系统管理员root,又为超级用户. /boot引导程序,内核等存放的目录: 这个目录,包括了在引导过程中所必需的文件,引导程序的相关文件(例如grub,lilo以及相应的配置文件以及Linux操作系统内核相关文件(例如vmlinuz等一般都存放在这里.在最开始的启动阶段,通过引导程序将内核加载到内存,完成内核的启动(这个时候,虚拟文件系统还不存在,加载的内核虽然是从硬盘读取的

asp.net MVC 多系统目录结构

学习了几天的mvc5,发现vs把所有的控制器都放在同一个目录Controllers目录下,细想一下,假如一个项目包含几个系统: 行政办公系统.培训管理系统.督办管理系统.会议管理系统…… 如果还把控制器都放在同一个目录下,那就只有一个字,乱! 如果把一个系统部署成对应一套mvc目录结构(即对应一个应用或站点),那就变成两个字,更乱!因为这样就无法共享css.js.图片等资源. 有问题找度娘,发现微软已经提供解决方案,那就是使用Areas,一个Area对应上面的一个系统,添加方法: 例如我添加两个

Linux 系统目录结构(二)

Linux 系统目录结构 登录系统后,在当前命令窗口下输入命令:  ls /  你会看到如下图所示: 树状目录结构: 以下是对这些目录的解释: /bin:bin是Binary的缩写, 这个目录存放着最经常使用的命令. /boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件. /dev :dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的. /etc:这个目录用来存放所有的系统管理所需要

CentOS7的系统目录结构

系统目录结构 / 是Linux系统的根目录,里面存放这所有文件目录.可以使用 ls / 来查看系统的目录结构. [[email protected] ~]# ls /bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var 要更加直观一点,可以使用 ls -l / [[email protected] ~]# ls -l /总用量 16lrwxrwx