一、Linux目录结构
你想知道为什么某些程序位于/bin下,或者/sbin,或者/usr/bin,或/usr/sbin目录下吗?例如,less命令位于/usr/bin目录下。为什么没在/bin中,或/sbin,或/usr/sbin目录中?所有这些目录之间有什么不同?
在这篇文章中,让我们回顾一下Linux的文件系统结构,并理解各上层目录的含义。
蓝色:表示目录
青色:表示链接
黑色:表示文件
1、/- 根 每一个文件和目录从根目录开始。 只有root用户具有该目录下的写权限。请注意,/root是root用户的主目录,这与/.不一样
2、/bin中 - 用户二进制文件 包含二进制可执行文件。 在单用户模式下,你需要使用的常见Linux命令都位于此目录下。系统的所有用户使用的命令都设在这里。 例如:ps、ls、ping、grep、cp
3、/sbin目录 - 系统二进制文件 就像/bin,/sbin同样也包含二进制可执行文件。 但是,在这个目录下的linux命令通常由系统管理员使用,对系统进行维护。例如:iptables、reboot、fdisk、ifconfig、swapon命令
4、/etc - 配置文件 包含所有程序所需的配置文件。 也包含了用于启动/停止单个程序的启动和关闭shell脚本。例如:/etc/resolv.conf、/etc/logrotate.conf
5、/dev - 设备文件 包含设备文件。 这些包括终端设备、USB或连接到系统的任何设备。例如:/dev/tty1、/dev/usbmon0
6、/proc - 进程信息 包含系统进程的相关信息。 这是一个虚拟的文件系统,包含有关正在运行的进程的信息。例如:/proc/{pid}目录中包含的与特定pid相关的信息。 这是一个虚拟的文件系统,系统资源以文本信息形式存在。例如:/proc/uptime
7、/var - 变量文件 var代表变量文件。 这个目录下可以找到内容可能增长的文件。 这包括 - 系统日志文件(/var/log);包和数据库文件(/var/lib);电子邮件(/var/mail);打印队列(/var/spool);锁文件(/var/lock);多次重新启动需要的临时文件(/var/tmp);
8、/tmp - 临时文件 包含系统和用户创建的临时文件。 当系统重新启动时,这个目录下的文件都将被删除。
9、/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中。
10、/home - HOME目录 所有用户用home目录来存储他们的个人档案。 例如:/home/john、/home/nikita
11、/boot - 引导加载程序文件 包含引导加载程序相关的文件。 内核的initrd、vmlinux、grub文件位于/boot下。 例如:initrd.img-2.6.32-24-generic、vmlinuz-2.6.32-24-generic
12、/lib - 系统库 包含支持位于/bin和/sbin下的二进制文件的库文件. 库文件名为 ld*或lib*.so.* 例如:ld-2.11.1.so,libncurses.so.5.7
13、/opt - 可选的附加应用程序 opt代表可选的。 包含从个别厂商的附加应用程序。 附加应用程序应该安装在/opt/或者/opt/的子目录下。
14、/mnt - 挂载目录 临时安装目录,系统管理员可以挂载文件系统。
15、/media - 可移动媒体设备 用于挂载可移动设备的临时目录。 举例来说,挂载CD-ROM的/media/cdrom,挂载软盘驱动器的/media/floppy;
16、/srv - 服务数据 srv代表服务。 包含服务器特定服务相关的数据。 例如,/srv/cvs包含cvs相关的数据。
【参考】
Linux Filesystem Hierarchy
Source and pre-formatted versions available 1. Linux Filesystem Hierarchy
- 1.1. Foreward
- 1.2. The Root Directory
- 1.3. /bin
- 1.4. /boot
- 1.5. /dev
- 1.6. /etc
- 1.7. /home
- 1.8. /initrd
- 1.9. /lib
- 1.10. /lost+found
- 1.11. /media
- 1.12. /mnt
- 1.13. /opt
- 1.14. /proc
- 1.15. /root
- 1.16. /sbin
- 1.17. /usr
- 1.18. /var
- 1.19. /srv
- 1.20. /tmp
Glossary A. UNIX System V Signals B. Sources C. About the Author D. Contributors E. Disclaimer F. Donations G. Feedback H. GNU Free Documentation License
- H.1. PREAMBLE
- H.2. APPLICABILITY AND DEFINITIONS
- H.3. VERBATIM COPYING
- H.4. COPYING IN QUANTITY
- H.5. MODIFICATIONS
- H.6. COMBINING DOCUMENTS
- H.7. COLLECTIONS OF DOCUMENTS
- H.8. AGGREGATION WITH INDEPENDENT WORKS
- H.9. TRANSLATION
- H.10. TERMINATION
- H.11. FUTURE REVISIONS OF THIS LICENSE
- H.12. ADDENDUM: How to use this License for your documents
-
-
二、常用命令
1、命令帮助 2、用户 3、SHELL 4、显示硬盘、分区、CPU、内存信息 5、网络 6、进程 7、文件
- 1、命令帮助
- [root@localhost ~]#man ps
-
- 2、用户
- $finger username 显示用户username的信息
$who 显示当前登陆用户 $who am I $su 成为root用户 $sudo command 以root用户身份执行 $passwd 更改密码 -
-
- 3、SHELL
- $history 显示在当前shell下命令历史
$alias 显示所有的命令别称 $alias new_command='command' 将命令command别称为new_command $env 显示所有的环境变量 $export var=value 设置环境变量var为value -
-
- 4、显示硬盘、分区、CPU、内存信息
- $df -lh 显示所有硬盘的使用状况
$mount 显示所有的硬盘分区挂载 $mount partition path 挂在partition到路径path $umount partition 卸载partition $sudo fdisk -l 显示所有的分区 $sudo fdisk device 为device(比如/dev/sdc)创建分区表。 进入后选择n, p, w $sudo mkfs -t ext3 partition 格式化分区patition(比如/dev/sdc1) 修改 /etc/fstab,以自动挂载分区。增加行: /dev/sdc1 path(mount point) ext3 defaults 0 0 $arch 显示架构 $cat /proc/cpuinfo 显示CPU信息 $cat /proc/meminfo 显示内存信息 $free 显示内存使用状况 -
- 5、网络
- $ifconfig 显示网络接口以及相应的IP地址。ifconfig可用于设置网络接口
$ifup eth0 运行eth0接口 $ifdown eth0 关闭eth0接口 $iwconfig 显示无线网络接口 $route 显示路由表。route还可以用于修改路由表 $netstat 显示当前的网络连接状态 $ping IP 发送ping包到地址IP $traceroute IP 探测前往地址IP的路由路径 $dhclient 向DHCP主机发送DHCP请求,以获得IP地址以及其他设置信息。 $host domain DNS查询,寻找域名domain对应的IP $host IP 反向DNS查询 $wget url 使用wget下载url指向的资源 $wget -m url 镜像下载 -
- 6、进程
- $top 显示进程信息,并实时更新
$ps 显示当前shell下的进程 $ps -lu username 显示用户username的进程 $ps -ajx 以比较完整的格式显示所有的进程 $kill PID 杀死PID进程 (PID为Process ID) -
-
- 7、文件
- $touch filename 如果文件不存在,创建一个空白文件;如果文件存在,更新文件读取和修改时间。
$rm filename 删除文件 $cp file1 file2 复制file1为file2 $ls -l path 显示文件和文件相关信息 $mkdir dir 创建dir文件夹 $mkdir -p path 递归创建路径path上的所有文件夹 $rmdir dir 删除dir文件夹,dir必须为空文件夹。 $rm -r dir 删除dir文件夹,以及其包含的所有文件 $file filename 文件filename的类型描述 $chown username:groupname filename 更改文件的拥有者为owner,拥有组为group $chmod 755 filename更改文件的权限为755: owner r+w+x, group: r+x, others: r+x $od -c filename 以ASCII字符显示文件
$cat filename 显示文件 $cat file1 file2 连接显示file1和file2 $head -1 filename 显示文件第一行 $tail -5 filename 显示文件倒数第五行 $diff file1 file2 显示file1和file2的差别 $sort filename 对文件中的行排序,并显示 $sort -f filename 排序时,不考虑大小写 $sort -u filename 排序,并去掉重复的行 $uniq filename 显示文件filename中不重复的行 (内容相同,但不相邻的行,不算做重复) $wc filename 统计文件中的字符、词和行数 $wc -l filename 统计文件中的行数
|