700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 【树莓派不吃灰】基础篇⑬ 简要了解Linux文件系统 以及 树莓派debian文件系统

【树莓派不吃灰】基础篇⑬ 简要了解Linux文件系统 以及 树莓派debian文件系统

时间:2020-04-21 03:36:14

相关推荐

【树莓派不吃灰】基础篇⑬ 简要了解Linux文件系统 以及 树莓派debian文件系统

目录

1. 前言1.1 Linux 的发行版 2. Linux的树状目录结构2.1 /root2.1.1 树莓派 /root 2.2 /bin2.2.1 树莓派 /bin 2.3 /sbin2.3.1 树莓派 /sbin 2.4 /boot2.4.1 树莓派 /boot 2.5 /dev2.5.1 树莓派 /dev 2.6 /etc2.6.1 树莓派 /etc 2.7 /home2.7.1 树莓派 /home 2.8 /lib2.8.1 树莓派 /lib 2.9 /media2.9.1 树莓派 /media 2.10 /mnt2.10.1 树莓派 /mnt 2.11 /var2.11.1 树莓派 /var 2.12 /usr2.12.1 树莓派 /usr 2.13 /tmp2.13.1 树莓派 /tmp 2.14 /sys2.14.1 树莓派 /sys 2.15 /proc2.15.1 树莓派 /proc 3. 总结
❤️ 博客主页 单片机菜鸟哥,一个野生非专业硬件IOT爱好者 ❤️❤️ 本篇创建记录 -11-05 ❤️❤️ 本篇更新记录 -11-05 ❤️🎉 欢迎关注 🔎点赞 👍收藏 ⭐️留言 📝🙏 此博客均由博主单独编写,不存在任何商业团队运营,如发现错误,请留言轰炸哦!及时修正!感谢支持!🔥 Arduino ESP8266教程累计帮助过超过1W+同学入门学习硬件网络编程,入选过选修课程,刊登过无线电杂志🔥

1. 前言

玩了一段时间树莓派之后,觉得还是需要回溯本源Linux系统的学习。

对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步,深入了解Linux文件目录结构的标准和每个目录的详细功能,对于我们用好Linux系统非常重要。

所以本篇会简要学习一下树莓派官方系统的目录结构。

有一个点务必记住:

整个Linux操作系统就是文件的集合

1.1 Linux 的发行版

Linux 的发行版说简单点就是将 Linux 内核与应用软件做一个打包

目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。

2. Linux的树状目录结构

整个Linux系统最重要的地方就是在于目录树架构,所谓的目录树架构就是以根目录为主, 然后向下呈现分支状的目录结构的一种树形档案架构。

Linux里面所有一切的目录和文件都是从树根</>开始,这个树根</>就是Linux的根目录。我们在Linux里面去找目录或者文件的话,就得从根</>开始找。这个根目录</>就是我们第一个要记住的目录,也是最重要的一个目录。

类比windows会有点不一样,windows它有C盘、D盘、E盘等盘符,所以每一个盘符就是一个根目录,但是Linux只有一个根目录,它就是</>。

其次,认识了Linux的根目录,就可以了解一下根目录下的其他目录。

Linux中的重要的目录:

主目录:/root/home/<普通用户name>用户可执行文件:/bin/usr/bin/usr/local/bin系统可执行文件:/sbin/usr/sbin/usr/local/sbin其他设备挂载点:/media/mnt配置文件:/etc临时文件:/tmp内核和Bootloader:/boot服务器数据:/var/srv系统信息:/proc/sys共享库:/lib/usr/lib/usr/local/lib

重要知识点:

每个用户都拥有一个主目录。所有用户的个人文件(配置、数据甚至应用程序)都放在其中。根的主目录为/root。大多数非根主目录包含在/home 树中,通常以用户命名。重要的二进制位于/bin(用户二进制)以及/sbin(系统二进制)中。不重要的二进制(如图形环境或Office 工具)安装在/usr/bin 和 /usr/sbin中。进行这种分隔是为了尽可能地缩小根分区。使用源代码编译的软件通常位于 /usr/local/bin 和/usr/local/sbin中。

额外知识点:/bin,/sbin,/usr/bin,/usr/sbin区别

/ : this is root directory root 用户根目录/bin : commandsin this dir are all system installed user commands 系统的一些指令/sbin: commands in this dir are all system installedsuper user commands 超级用户指令系统管理命令,这里存放的是系统管理员使用的管理程序/usr/bin: usercommands for applications 后期安装的一些软件的运行脚本/usr/sbin:super user commands for applications 超级用户的一些管理程序/usr/X11R6/bin: X application user commands/usr/X11R6/sbin: X application super usercommands

简单来说,博主觉得学习Linux非常重要的思维就是:

根据用户权限来区分文件目录,系统级别放在公共目录,用户级别放在各自用户目录下。

Raspberry Pi OS 是基于debian开发而来,而debian本身也是linux系统的一个版本。我们也看看树莓派根目录下是不是也是差不多的结构?

ls -al

可以对比看看,本质上都是差不多树形结构。

2.1 /root

系统用户root的主目录,也就是超级用户或者叫系统管理员的主目录;它就类似windows中的Administrator目录的作用;

关键词:

root用户主目录

2.1.1 树莓派 /root

普通用户没有这个访问权限(当然,我们尽量也不要去修改这里的权限)。

那么我们需要切换到root用户(默认没有密码,最好设置一下):

sudo su #切换root用户su pi #切换普通用户sudo passwd root # 更改root用户密码sudo passwd pi # 更改普通用户密码

2.2 /bin

Binary的缩写,这个目录存放着系统必备执行命令。

常用命令基本都在这里,而且所有用户(不管是系统用户还是普通用户)都可用;它类似windows中除了C盘的Progrom Files文件夹以外,其他用来存放用户安装的程序的作用;如:catchmodchownmkdircp

关键词:

所有用户都可以执行的命令

2.2.1 树莓派 /bin

bin 是一个链接,对应目录usr/bin

可以看到,命令非常多。实际上我们大多数都是与这些命令打交道。

2.3 /sbin

sbin,也就是 system binary。

s就是Super User。系统用户管理命令都在这个目录里面,此目录里面的命令只有系统用户才能使用,普通用户是使用不了的;它类似windows中C盘的Progrom Files文件夹的作用,用来存放的是系统程序;

fdiskshutdownmount等。与 /bin 不同的是,这几个目录是给系统管理员 root使用的命令,一般用户只能"查看"而不能设置和使用

关键词:

超级用户可以执行的命令

2.3.1 树莓派 /sbin

比如我们常用的rebootshutdown命令。

相比常用命令,这里命令数量少了很多。

2.4 /boot

这里存放的是启动Linux时使用的一些核心文件,包括linux内核文件、一些链接文件以及镜像文件,自己的安装别放这里。了解即可,基本上不会去动它。

关键词:

启动相关文件

2.4.1 树莓派 /boot

也是启动相关文件,包括一些Linux内心Kernel文件。

2.5 /dev

Device(设备)的缩写,该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。只要通过访问这个目录下面的某个文件就相当于访问该设备。类似windows的驱动盘(DVD驱动/U盘)的作用; 正常情况下也不会去改动。

关键词:

设备相关文件

2.5.1 树莓派 /dev

2.6 /etc

系统配置文件存放的目录。如用户账号、密码、各种服务起始文件等、该目录下的文件普通用户可以查看,但只有root用户有权修改。FHS建议不要放置可执行文件(binary)在此目录。类似windows的注册表功能。如/etc/fstab、/etc/rc*.d、/etc/init.d、/etc/hosts等等安装各种软件的配置文件目录。如 /etc/mysql、/etc/nginx 等等我们自己安装的软件

这个目录需要重点学习

关键词:

配置相关文件

2.6.1 树莓派 /etc

pi@raspberrypi:/ $ cd etc/pi@raspberrypi:/etc $ ls -altotal 1212drwxr-xr-x 130 root root 12288 Nov 5 02:10 .drwxr-xr-x 18 root root 4096 Sep 22 02:02 ..-rw-r--r-- 1 root root 2981 Sep 22 01:02 adduser.confdrwxr-xr-x 3 root root 4096 Sep 22 01:11 alsadrwxr-xr-x 2 root root 12288 Sep 22 01:22 alternativesdrwxr-xr-x 3 root root 4096 Sep 22 01:12 apache2drwxr-xr-x 2 root root 4096 Sep 22 01:22 apparmordrwxr-xr-x 7 root root 4096 Sep 22 01:22 apparmor.ddrwxr-xr-x 8 root root 4096 Sep 22 01:07 aptdrwxr-xr-x 3 root root 4096 Sep 22 01:07 avahi-rw-r--r-- 1 root root 1994 Mar 27 bash.bashrc-rw-r--r-- 1 root root45 Jan 24 bash_completiondrwxr-xr-x 2 root root 4096 Sep 22 01:10 bash_completion.d-rw-r--r-- 1 root root367 Mar 29 bindresvport.blacklistdrwxr-xr-x 2 root root 4096 Sep 13 02:58 binfmt.ddrwxr-xr-x 2 root root 4096 Sep 22 01:06 bluetoothdrwxr-xr-x 3 root root 4096 Sep 22 01:03 ca-certificates-rw-r--r-- 1 root root 5662 Sep 22 01:03 ca-certificates.confdrwxr-s--- 2 root dip4096 Sep 22 01:07 chatscriptsdrwxr-xr-x 3 root root 4096 Sep 22 01:10 chromiumdrwxr-xr-x 2 root root 4096 Sep 22 01:10 chromium.ddrwxr-xr-x 2 root root 4096 Sep 22 01:05 cifs-utilsdrwxr-xr-x 2 root root 4096 Sep 22 01:07 console-setupdrwxr-xr-x 2 root root 4096 Sep 22 01:03 cron.ddrwxr-xr-x 2 root root 4096 Sep 22 01:03 cron.dailydrwxr-xr-x 2 root root 4096 Sep 22 01:06 cron.hourlydrwxr-xr-x 2 root root 4096 Sep 22 01:03 cron.monthly-rw-r--r-- 1 root root 1042 Feb 22 crontabdrwxr-xr-x 2 root root 4096 Sep 22 01:03 cron.weeklydrwxr-xr-x 5 root lp4096 Nov 5 01:15 cupsdrwxr-xr-x 2 root root 4096 Sep 22 01:13 cupshelpersdrwxr-xr-x 4 root root 4096 Sep 22 01:06 dbus-1drwxr-xr-x 3 root root 4096 Sep 22 01:08 dconf-rw-r--r-- 1 root root 2969 Jun 10 debconf.conf-rw-r--r-- 1 root root 5 Sep 12 01:26 debian_versiondrwxr-xr-x 2 root root 4096 Sep 22 02:01 default-rw-r--r-- 1 root root604 Jun 26 deluser.confdrwxr-xr-x 4 root root 4096 Sep 22 01:03 dhcp-rw-rw-r-- 1 root netdev 1777 Jul 25 16:48 dhcpcd.confdrwxr-xr-x 2 root root 4096 Sep 22 01:14 dictionaries-commondrwxr-xr-x 2 root root 4096 Sep 22 01:13 dillo-rw-r--r-- 1 root root 1100 Sep 22 01:07 dphys-swapfiledrwxr-xr-x 4 root root 4096 Sep 22 01:07 dpkg-rw-r--r-- 1 root root685 Jun 7 e2scrub.confdrwxr-xr-x 3 root root 4096 Sep 22 01:08 emacs-rw-r--r-- 1 root root 0 Sep 22 01:02 environment-rw-r--r-- 1 root root 1816 Dec 27 ethertypes-rw-r--r-- 1 root root20 Nov 5 02:17 fake-hwclock.data-rw-r--r-- 1 root root 24501 Apr 3 fb.modesdrwxr-xr-x 3 root root 4096 Sep 22 01:21 firebirddrwxr-xr-x 4 root root 4096 Sep 22 01:06 fonts-rw-r--r-- 1 root root216 Sep 22 02:02 .fstab-rw-r--r-- 1 root root314 Sep 22 02:02 fstab-rw-r--r-- 1 root root694 Jun 20 fuse.conf-rw-r--r-- 1 root root 2584 Mar 29 gai.confdrwxr-xr-x 3 root root 4096 Sep 22 01:07 gdbdrwxr-xr-x 2 root root 4096 Sep 22 01:20 geocluedrwxr-xr-x 4 root root 4096 Sep 22 01:12 ghostscriptdrwxr-xr-x 3 root root 4096 Sep 22 01:08 glvnddrwxr-xr-x 2 root root 4096 Sep 22 01:13 gnomedrwxr-xr-x 2 root root 4096 Sep 22 01:03 groff-rw-r--r-- 1 root root955 Sep 22 02:02 group-rw-r--r-- 1 root root999 Sep 22 02:01 group--rw-r----- 1 root shadow 793 Sep 22 02:02 gshadow-rw-r----- 1 root shadow 837 Sep 22 02:01 gshadow-drwxr-xr-x 3 root root 4096 Aug 23 21:49 gssdrwxr-xr-x 2 root root 4096 Sep 22 01:09 gtk-2.0drwxr-xr-x 2 root root 4096 Sep 22 01:09 gtk-3.0-rw-r--r-- 1 root root 9 Sep 12 01:26 host.conf-rw-r--r-- 1 root root12 Sep 22 01:05 hostname-rw-r--r-- 1 root root132 Sep 22 01:05 hosts-rw-r--r-- 1 root root411 Sep 22 01:06 hosts.allow-rw-r--r-- 1 root root711 Sep 22 01:06 hosts.denydrwxr-xr-x 2 root root 4096 Sep 22 01:13 hp-rw-r--r-- 1 root root206 Jun 28 idmapd.confdrwxr-xr-x 3 root root 4096 Sep 22 01:07 ifplugddrwxr-xr-x 2 root root 4096 Sep 22 01:03 initdrwxr-xr-x 2 root root 4096 Sep 22 02:02 init.ddrwxr-xr-x 5 root root 4096 Sep 22 01:05 initramfs-tools-rw-r--r-- 1 root root 1865 Sep 22 01:07 inputrcdrwxr-xr-x 2 root root 4096 Sep 22 01:06 insserv.conf.ddrwxr-xr-x 2 root root 4096 Sep 22 01:12 ipp-usbdrwxr-xr-x 4 root root 4096 Sep 22 01:03 iproute2-rw-r--r-- 1 root root29 Sep 12 01:26 issue-rw-r--r-- 1 root root22 Sep 12 01:26 drwxr-xr-x 3 root root 4096 Sep 22 01:20 .javadrwxr-xr-x 3 root root 4096 Sep 22 01:22 javadrwxr-xr-x 5 root root 4096 Sep 22 01:20 java-11-openjdkdrwxr-xr-x 5 root root 4096 Sep 22 01:22 java-17-openjdkdrwxr-xr-x 5 root root 4096 Sep 22 01:05 kernel-rw-r--r-- 1 root root 85378 Sep 22 01:22 ld.so.cache-rw-r--r-- 1 root root34 Mar 29 ld.so.confdrwxr-xr-x 2 root root 4096 Sep 22 01:06 ld.so.conf.d-rw-r--r-- 1 root root54 Sep 22 01:05 ld.so.preload-rw-r--r-- 1 root root191 Jan 6 libaudit.confdrwxr-xr-x 3 root root 4096 Sep 22 01:06 libblockdevdrwxr-xr-x 2 root root 4096 Sep 22 01:12 libibverbs.ddrwxr-xr-x 2 root root 4096 Sep 22 01:05 libnl-3drwxr-xr-x 2 root root 4096 Jun 25 libpaper.ddrwxr-xr-x 3 root root 4096 Sep 22 01:22 libreofficedrwxr-xr-x 2 root root 4096 Sep 22 02:01 lightdmdrwxr-xr-x 4 root root 4096 Sep 22 01:12 lighttpd-rw-r--r-- 1 root root 2996 Aug 30 16:11 locale.alias-rw-r--r-- 1 root root 9372 Sep 22 01:04 locale.genlrwxrwxrwx 1 root root33 Sep 22 01:07 localtime -> /usr/share/zoneinfo/Europe/Londondrwxr-xr-x 4 root root 4096 Sep 22 01:06 logcheck-rw-r--r-- 1 root root 10516 Sep 22 01:07 login.defs-rw-r--r-- 1 root root494 Jan 30 logrotate.confdrwxr-xr-x 2 root root 4096 Sep 22 01:13 logrotate.d-r--r--r-- 1 root root33 Sep 22 02:01 machine-id-rw-r--r-- 1 root root111 Nov 19 magic-rw-r--r-- 1 root root111 Nov 19 magic.mime-rw-r--r-- 1 root root 26356 Sep 22 01:22 mailcap-rw-r--r-- 1 root root449 Feb 25 mailcap.order-rw-r--r-- 1 root root 5215 Feb 19 manpath.config-rw-r--r-- 1 root root 39901 Feb 2 matplotlibrcdrwxr-xr-x 2 root root 4096 Sep 22 01:09 menu-methods-rw-r--r-- 1 root root 70481 Jan 15 mime.types-rw-r--r-- 1 root root812 Jun 7 mke2fs.conf-rw-r--r-- 1 root root 19354 Jul 10 mkshrcdrwxr-xr-x 2 root root 4096 Sep 22 01:13 modprobe.d-rw-r--r-- 1 root root203 Sep 22 01:13 modulesdrwxr-xr-x 2 root root 4096 Sep 22 01:13 modules-load.d-rw-r--r-- 1 root root286 Sep 12 01:26 motdlrwxrwxrwx 1 root root19 Sep 22 02:01 mtab -> ../proc/self/mountsdrwxr-xr-x 4 root root 4096 Sep 22 01:22 mysql-rw-r--r-- 1 root root 10056 Nov 21 nanorc-rw-r--r-- 1 root root767 Aug 1 15:26 netconfigdrwxr-xr-x 7 root root 4096 Sep 22 01:07 networkdrwxr-xr-x 7 root root 4096 Sep 22 01:07 NetworkManager-rw-r--r-- 1 root root60 Sep 22 01:03 networks-rwxr-xr-x 1 root root228 Jul 20 nftables.conf-rw-r--r-- 1 root root526 Sep 22 01:07 nsswitch.confdrwxr-xr-x 2 root root 4096 Sep 22 01:10 openaldrwxr-xr-x 2 root root 4096 Sep 22 01:10 openni2drwxr-xr-x 2 root root 4096 Sep 22 01:02 optlrwxrwxrwx 1 root root21 Sep 12 01:26 os-release -> ../usr/lib/os-releasedrwxr-xr-x 2 root root 4096 Sep 22 01:11 PackageKit-rw-r--r-- 1 root root552 Jan 30 pam.confdrwxr-xr-x 2 root root 4096 Sep 22 01:13 pam.d-rw-r--r-- 1 root root 3 Sep 22 01:10 papersize-rw-r--r-- 1 root root 2095 Sep 22 02:02 passwd-rw-r--r-- 1 root root 2171 Sep 22 02:01 passwd--rw-r--r-- 1 root root 2668 Dec 25 paxctld.confdrwxr-xr-x 3 root root 4096 Sep 22 01:05 perl-rw-r--r-- 1 root root57 Jul 16 pip.confdrwxr-xr-x 3 root root 4096 Sep 22 01:13 pipewiredrwxr-xr-x 2 root root 4096 Sep 22 01:13 plymouthdrwxr-xr-x 4 root root 4096 Sep 22 01:06 polkit-1drwxr-xr-x 8 root root 4096 Sep 22 01:07 ppp-rw-r--r-- 1 root root801 Sep 22 01:07 profiledrwxr-xr-x 2 root root 4096 Sep 22 01:09 profile.d-rw-r--r-- 1 root root 2932 Apr 1 protocolsdrwxr-xr-x 3 root root 4096 Sep 22 01:13 pulse-rw------- 1 root root 0 Sep 22 01:02 .pwd.lockdrwxr-xr-x 2 root root 4096 Sep 22 01:15 python2.7drwxr-xr-x 2 root root 4096 Sep 22 01:05 python3drwxr-xr-x 2 root root 4096 Sep 22 01:05 python3.9drwxr-xr-x 2 root root 4096 Sep 22 01:13 rc0.ddrwxr-xr-x 2 root root 4096 Sep 22 01:13 rc1.ddrwxr-xr-x 2 root root 4096 Sep 22 02:01 rc2.ddrwxr-xr-x 2 root root 4096 Sep 22 02:02 rc3.ddrwxr-xr-x 2 root root 4096 Sep 22 02:01 rc4.ddrwxr-xr-x 2 root root 4096 Sep 22 02:01 rc5.ddrwxr-xr-x 2 root root 4096 Sep 22 01:13 rc6.d-rwxr-xr-x 1 root root420 Sep 22 01:07 rc.localdrwxr-xr-x 2 root root 4096 Sep 22 01:22 rcS.d-rw-r--r-- 1 root root 1889 Feb 10 request-key.confdrwxr-xr-x 2 root root 4096 Sep 22 01:06 request-key.d-rw-r--r-- 1 root root49 Sep 22 02:02 resolv.conf-rw-r--r-- 1 root root19 Sep 22 02:02 resolv.conf.bak-rw-r--r-- 1 root root500 Jan 2 resolvconf.conflrwxrwxrwx 1 root root13 Feb 17 rmt -> /usr/sbin/rmt-rw-r--r-- 1 root root887 Apr 1 rpc-rw-r--r-- 1 root root145 Sep 22 02:01 rpi-issue-rw-r--r-- 1 root root 1974 May 20 22:05 rsyslog.confdrwxr-xr-x 2 root root 4096 May 20 22:05 rsyslog.d-rw-r--r-- 1 root root 12100 Aug 19 RTIMULib.inidrwxr-xr-x 3 root root 4096 Sep 22 01:06 runitdrwxr-xr-x 3 root root 4096 Sep 22 01:13 sane.ddrwxr-xr-x 4 root root 4096 Sep 22 01:04 securitydrwxr-xr-x 2 root root 4096 Sep 22 01:02 selinux-rw-r--r-- 1 root root 10593 Jan 30 sensors3.confdrwxr-xr-x 2 root root 4096 Sep 22 01:09 sensors.d-rw-r--r-- 1 root root 12813 Mar 27 servicesdrwxr-xr-x 2 root root 4096 Sep 22 01:14 sgml-rw-r----- 1 root shadow 1184 Nov 5 02:10 shadow-rw-r----- 1 root shadow 1155 Sep 22 02:01 shadow--rw-r--r-- 1 root root188 Sep 22 01:06 shellsdrwxr-xr-x 2 root root 4096 Sep 22 01:06 skeldrwxr-xr-x 2 root root 4096 Sep 22 01:13 snmpdrwxr-xr-x 4 root root 4096 Jan 1 1970 sshdrwxr-xr-x 4 root root 4096 Sep 22 01:04 ssl-rw-r--r-- 1 root root16 Sep 22 01:05 subgid-rw-r--r-- 1 root root16 Sep 22 01:05 subuid-rw-r--r-- 1 root root 3975 Feb 27 sudo.conf-r--r----- 1 root root669 Feb 27 sudoersdrwxr-xr-x 2 root root 4096 Sep 22 02:02 sudoers.d-rw-r--r-- 1 root root 6169 Feb 27 sudo_logsrvd.confdrwxr-xr-x 3 root root 4096 Sep 22 01:06 sv-rw-r--r-- 1 root root 2355 Apr 6 sysctl.confdrwxr-xr-x 2 root root 4096 Sep 22 01:06 sysctl.ddrwxr-xr-x 5 root root 4096 Sep 22 01:05 systemddrwxr-xr-x 2 root root 4096 Sep 22 01:02 terminfo-rw-r--r-- 1 root root14 Sep 22 01:07 timezonedrwxr-xr-x 2 root root 4096 Sep 22 01:10 timiditydrwxr-xr-x 2 root root 4096 Sep 13 02:58 tmpfiles.ddrwxr-xr-x 3 root root 4096 Sep 22 01:04 triggerhappy-rw-r--r-- 1 root root 1260 Jun 16 ucf.confdrwxr-xr-x 4 root root 4096 Sep 22 01:03 udevdrwxr-xr-x 2 root root 4096 Sep 22 01:07 udisks2drwxr-xr-x 3 root root 4096 Sep 22 01:06 ufwdrwxr-xr-x 3 root root 4096 Sep 22 02:02 unbounddrwxr-xr-x 2 root root 4096 Sep 22 01:02 update-motd.ddrwxr-xr-x 2 root root 4096 Sep 22 01:13 UPower-rw-r--r-- 1 root root 1523 Jul 10 usb_modeswitch.confdrwxr-xr-x 2 root root 4096 Feb 24 usb_modeswitch.d-rw-r--r-- 1 root root51 Apr 9 vdpau_wrapper.cfgdrwxr-xr-x 2 root root 4096 Sep 22 01:03 vimdrwxr-xr-x 4 root root 4096 Nov 5 01:10 vncdrwxr-xr-x 5 root root 4096 Sep 22 01:08 vulkan-rw-r--r-- 1 root root 4942 Nov 23 wgetrcdrwxr-xr-x 2 root root 4096 Sep 22 02:02 wpa_supplicantdrwxr-xr-x 10 root root 4096 Sep 22 01:19 X11-rw-r--r-- 1 root root642 Dec 24 xattr.confdrwxr-xr-x 12 root root 4096 Sep 22 01:14 xdgdrwxr-xr-x 3 root root 4096 Sep 22 01:22 xml

/etc 目录包含各种系统配置文件。

启动、或改变运行级时运行的脚本或脚本的目录

用户数据库,其中的域给出了用户名、真实姓名、用户起始目录、加密口令和用户的其他信息。

指定启动时需要自动安装的文件系统列表(可用于自动挂载)。

类似/etc/passwd ,但说明的不是用户信息而是组的信息。包括组的各种数据。

init 的配置文件。

host配置

2.7 /home

存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。它类似windows中的User文件夹的作用;只要我们创建了一个普通用户,这个目录下就会自动生产一个目录文件,通常目录文件名就是创建的用户名;

关键词:

用户目录

2.7.1 树莓派 /home

当前存在一个pi用户目录。

2.8 /lib

系统开机所需要最基本的动态链接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库(/bin/ 以及/sbin/中二进制文件必要的库文件)。/lib/modules/这个目录下放置内核相关的驱动程序。

关键词:

必要动态链接共享库

2.8.1 树莓派 /lib

pi@raspberrypi:/lib $ ls -altotal 6732drwxr-xr-x 106 root root 4096 Sep 22 01:22 .drwxr-xr-x 11 root root 4096 Sep 22 01:02 ..drwxr-xr-x 2 root root 4096 Sep 22 01:21 apparmordrwxr-xr-x 5 root root 4096 Sep 22 01:03 aptdrwxr-xr-x 2 root root 4096 Sep 22 01:10 arandrdrwxr-xr-x 90 root root 86016 Sep 22 01:22 arm-linux-gnueabihfdrwxr-xr-x 3 root root 4096 Sep 22 01:06 arm-linux-musleabihfdrwxr-xr-x 3 root root 12288 Sep 22 01:18 aspelldrwxr-xr-x 2 root root 4096 Sep 22 01:06 bfd-pluginsdrwxr-xr-x 2 root root 4096 Sep 13 02:58 binfmt.ddrwxr-xr-x 2 root root 4096 Sep 22 01:12 blt2.5drwxr-xr-x 7 root root 4096 Sep 22 01:09 chromium-browserdrwxr-xr-x 2 root root 4096 Sep 22 01:06 compat-lddrwxr-xr-x 2 root root 4096 Sep 22 01:06 console-setuplrwxrwxrwx 1 root root21 Sep 22 01:07 cpp -> /etc/alternatives/cppdrwxr-xr-x 3 root root 4096 Sep 22 01:05 crdadrwxr-xr-x 10 root root 4096 Sep 22 01:12 cupsdrwxr-xr-x 2 root root 4096 Sep 22 01:06 dbus-1.0drwxr-xr-x 5 root root 4096 Sep 22 01:19 debugdrwxr-xr-x 3 root root 4096 Sep 22 01:07 dhcpcddrwxr-xr-x 3 root root 4096 Sep 22 01:06 dietdrwxr-xr-x 3 root root 4096 Sep 22 01:03 dpkgdrwxr-xr-x 3 root root 4096 Sep 22 01:08 emacsen-commondrwxr-xr-x 2 root root 4096 Sep 22 01:02 environment.ddrwxr-xr-x 6 root root 4096 Sep 22 01:18 erlangdrwxr-xr-x 2 root root 4096 Sep 22 01:05 filedrwxr-xr-x 3 root root 4096 Sep 22 01:07 firewallddrwxr-xr-x 41 root root 4096 Sep 22 01:07 firmwaredrwxr-xr-x 3 root root 4096 May 15 gccdrwxr-xr-x 2 root root 4096 Sep 22 01:12 girepository-1.0drwxr-xr-x 3 root root 4096 Sep 22 01:10 git-coredrwxr-xr-x 2 root root 4096 Sep 22 01:12 gnome-sessiondrwxr-xr-x 2 root root 4096 Sep 22 01:12 gnome-settings-daemon-3.0drwxr-xr-x 2 root root 4096 Sep 22 01:03 gnupgdrwxr-xr-x 2 root root 4096 Sep 22 01:03 gnupg2drwxr-xr-x 2 root root 4096 Sep 22 01:06 gold-lddrwxr-xr-x 4 root root 4096 Sep 22 01:03 groffdrwxr-xr-x 2 root root 4096 Sep 22 01:12 gui-pkinstdrwxr-xr-x 2 root root 4096 Sep 22 01:08 gvfsdrwxr-xr-x 2 root root 4096 Sep 22 01:03 ifupdowndrwxr-xr-x 2 root root 4096 Sep 22 01:02 initdrwxr-xr-x 2 root root 4096 Sep 22 01:08 ispelldrwxr-xr-x 5 root root 4096 Sep 22 01:21 jvmdrwxr-xr-x 3 root root 4096 Sep 22 01:02 kerneldrwxr-xr-x 3 root root 4096 Sep 22 01:05 klibc-rwxr-xr-x 1 root root 75224 Jun 10 klibc-krh8Sgsh8PW7Qbsa0KsFm65rfDw.solrwxrwxrwx 1 root root30 Aug 30 16:11 ld-linux-armhf.so.3 -> arm-linux-gnueabihf/ld-2.31.solrwxrwxrwx 1 root root24 Sep 22 01:05 ld-linux.so.3 -> /lib/ld-linux-armhf.so.3-rw-r--r-- 1 root root 1151988 Dec 23 libBLT.2.5.so.8.6-rw-r--r-- 1 root root 263748 Dec 23 libBLTlite.2.5.so.8.6lrwxrwxrwx 1 root root20 Apr 26 libcompface.so.1 -> libcompface.so.1.0.0-rw-r--r-- 1 root root 20344 Apr 26 libcompface.so.1.0.0lrwxrwxrwx 1 root root27 Sep 19 libhardsid-builder.so.0 -> libhardsid-builder.so.0.0.1-rw-r--r-- 1 root root 12568 Sep 19 libhardsid-builder.so.0.0.1lrwxrwxrwx 1 root root16 Nov 11 libident.so.0 -> libident.so.0.22-rw-r--r-- 1 root root 7976 Nov 11 libident.so.0.22lrwxrwxrwx 1 root root19 Mar 30 libpigpiod_if2.so -> libpigpiod_if2.so.1-rw-r--r-- 1 root root 78576 Mar 30 libpigpiod_if2.so.1lrwxrwxrwx 1 root root18 Mar 30 libpigpiod_if.so -> libpigpiod_if.so.1-rw-r--r-- 1 root root 62192 Mar 30 libpigpiod_if.so.1lrwxrwxrwx 1 root root14 Mar 30 libpigpio.so -> libpigpio.so.1-rw-r--r-- 1 root root 259928 Mar 30 libpigpio.so.1lrwxrwxrwx 1 root root24 Mar 31 libpigpioultrasonic.so -> libpigpioultrasonic.so.2-rw-r--r-- 1 root root 5440 Mar 31 libpigpioultrasonic.so.2lrwxrwxrwx 1 root root21 May 2 libpypy-c.so -> pypy/bin/libpypy-c.solrwxrwxrwx 1 root root28 Feb 5 libqscintilla2_qt5.so.15 -> libqscintilla2_qt5.so.15.0.0lrwxrwxrwx 1 root root28 Feb 5 libqscintilla2_qt5.so.15.0 -> libqscintilla2_qt5.so.15.0.0-rw-r--r-- 1 root root 3266236 Feb 5 libqscintilla2_qt5.so.15.0.0drwxr-xr-x 5 root root 4096 Sep 22 01:21 libreofficelrwxrwxrwx 1 root root25 Sep 19 libresid-builder.so.0 -> libresid-builder.so.0.0.1-rw-r--r-- 1 root root 170832 Sep 19 libresid-builder.so.0.0.1lrwxrwxrwx 1 root root16 Apr 19 libRTIMULib.so -> libRTIMULib.so.7lrwxrwxrwx 1 root root20 Apr 19 libRTIMULib.so.7 -> libRTIMULib.so.7.2.1-rw-r--r-- 1 root root 155140 Apr 19 libRTIMULib.so.7.2.1lrwxrwxrwx 1 root root19 Dec 23 libscsynth.so.1 -> libscsynth.so.1.0.0-rw-r--r-- 1 root root 521668 Dec 23 libscsynth.so.1.0.0lrwxrwxrwx 1 root root20 Sep 19 libsidplay2.so.1 -> libsidplay2.so.1.0.1-rw-r--r-- 1 root root 204980 Sep 19 libsidplay2.so.1.0.1lrwxrwxrwx 1 root root20 May 24 libsigc-1.2.so.5 -> libsigc-1.2.so.5.0.7-rw-r--r-- 1 root root 23724 May 24 libsigc-1.2.so.5.0.7-rw-r--r-- 1 root root 16500 Aug 29 libsupp.adrwxr-xr-x 3 root root 4096 Sep 22 01:04 localedrwxr-xr-x 2 root root 4096 Sep 22 01:22 lp_solvedrwxr-xr-x 3 root root 4096 Sep 22 01:02 lsbdrwxr-xr-x 2 root root 4096 Sep 22 01:09 lxinputdrwxr-xr-x 2 root root 4096 Sep 22 01:12 lxpluginsdrwxr-xr-x 2 root root 4096 Sep 22 01:03 man-dbdrwxr-xr-x 2 root root 4096 Sep 22 01:08 menu-cachedrwxr-xr-x 3 root root 4096 Sep 22 01:05 mimedrwxr-xr-x 2 root root 4096 Sep 22 01:03 modprobe.ddrwxr-xr-x 6 root root 4096 Sep 22 01:04 modulesdrwxr-xr-x 2 root root 4096 Sep 13 02:58 modules-load.ddrwxr-xr-x 6 root root 4096 Sep 22 01:07 NetworkManagerdrwxr-xr-x 3 root root 4096 Sep 22 01:21 nodejsdrwxr-xr-x 2 root root 4096 Sep 22 01:06 openssh-rw-r--r-- 1 root root309 Sep 12 01:26 os-releasedrwxr-xr-x 2 root root 4096 Sep 22 01:06 p7zipdrwxr-xr-x 2 root root 4096 Sep 22 01:02 pam.ddrwxr-xr-x 2 root root 4096 Sep 22 01:12 piclonedrwxr-xr-x 2 root root 4096 Sep 22 01:12 pipaneldrwxr-xr-x 2 root root 4096 Apr 21 pkgconfig-rw-r--r-- 1 root root20 Apr 21 pkg-config.multiarchdrwxr-xr-x 3 root root 4096 Sep 22 01:07 pm-utilsdrwxr-xr-x 2 root root 4096 Sep 22 01:06 policykit-1drwxr-xr-x 3 root root 4096 Sep 22 01:07 pppddrwxr-xr-x 2 root root 4096 Sep 22 01:12 printer-driver-escprdrwxr-xr-x 3 root root 4096 Sep 22 01:11 pulse-14.2drwxr-xr-x 8 root root 4096 Sep 22 01:12 pypydrwxr-xr-x 26 root root 20480 Sep 22 01:20 python2.7drwxr-xr-x 3 root root 4096 Sep 22 01:05 python3drwxr-xr-x 34 root root 12288 Sep 22 01:12 python3.9drwxr-xr-x 2 root root 4096 Sep 22 01:10 qpdfviewdrwxr-xr-x 2 root root 4096 Sep 22 01:07 raspberrypi-net-modsdrwxr-xr-x 2 root root 4096 Sep 22 01:06 raspberrypi-sys-modsdrwxr-xr-x 2 root root 4096 Sep 22 01:05 raspi-configdrwxr-xr-x 2 root root 4096 Sep 22 01:12 rc-guidrwxr-xr-x 3 root root 4096 Sep 22 01:07 resolvconfdrwxr-xr-x 2 root root 4096 Sep 22 01:12 rp-prefappsdrwxr-xr-x 2 root root 4096 Sep 22 01:03 rsyslogdrwxr-xr-x 5 root root 4096 Sep 22 01:18 rubydrwxr-xr-x 2 root root 4096 Sep 22 01:06 runit-helperdrwxr-xr-x 2 root root 4096 Feb 25 sasl2drwxr-xr-x 5 root root 4096 Sep 22 01:19 scratch3lrwxrwxrwx 1 root root19 Jul 1 23:37 sftp-server -> openssh/sftp-serverdrwxr-xr-x 3 root root 4096 Sep 22 01:19 sonic-pidrwxr-xr-x 4 root root 4096 Sep 22 01:19 squeakdrwxr-xr-x 3 root root 4096 Sep 22 01:04 ssldrwxr-xr-x 2 root root 4096 Sep 22 01:06 sudodrwxr-xr-x 3 root root 4096 Sep 22 01:19 SuperColliderdrwxr-xr-x 2 root root 4096 Sep 22 01:08 sysctl.ddrwxr-xr-x 16 root root 4096 Sep 22 01:06 systemddrwxr-xr-x 2 root root 4096 Sep 22 01:06 sysusers.ddrwxr-xr-x 4 root root 4096 Sep 22 01:03 taskseldrwxr-xr-x 2 root root 4096 Sep 22 01:03 tcdrwxr-xr-x 3 root root 4096 Sep 22 01:12 tcltkdrwxr-xr-x 16 root root 4096 Jan 1 terminfodrwxr-xr-x 2 root root 4096 Sep 22 01:09 thunar-archive-plugindrwxr-xr-x 2 root root 4096 Sep 22 01:12 tmpfiles.ddrwxr-xr-x 4 root root 4096 Sep 22 01:14 udevdrwxr-xr-x 2 root root 4096 Sep 22 01:06 udisks2drwxr-xr-x 2 root root 4096 Sep 22 01:06 userconf-pidrwxr-xr-x 2 root root 4096 Sep 22 01:15 valgrinddrwxr-xr-x 2 root root 4096 Sep 22 01:11 vncdrwxr-xr-x 2 root root 4096 Feb 15 X11drwxr-xr-x 3 root root 4096 Sep 22 01:09 xorg

包括了各种软件的动态链接库。比如 vnc、x11、dpkg、python、systemd等等常用的。

2.9 /media

linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。

关键词:

外接设备

2.9.1 树莓派 /media

挂载一个U盘看看:

2.10 /mnt

与/media功能相同,只是有了/media之后,这个目录用来暂时挂载某个设备使用。

系统提供该目录是为了让用户临时挂载别的文件系统,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容。

关键词:

挂载外部设备

2.10.1 树莓派 /mnt

2.11 /var

这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

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

2.11.1 树莓派 /var

/var/lib

存放系统正常运行时要改变的文件。/var/local

存放/usr/local 中安装的程序的可变数据(即系统管理员安装的程序)。/var/log

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

保存在下一次系统引导前有效的关于系统的信息文件。例如, /var/run/utmp 包含当前登录的用户的信息。/var/tmp

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

2.12 /usr

这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。

/usr 是个很重要的目录,通常这一文件系统很大,因为所有程序安装在这里。/usr 里的

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

2.12.1 树莓派 /usr

/usr/bin

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

/usr/sbin

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

/usr/include

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

/usr/lib

包含了程序或子系统的不变的数据文件,包括一些site - wide配置文件。名字l i b来源于库(library); 编程的原始库也存在/usr/lib 里。当编译程序时,程序便会和其中的库进行连接。也有许多程序把配置文件存入其中。参考 2.8

/usr/local

本地安装的软件和其他文件放在这里。

2.13 /tmp

用于存放各种临时文件,是公用的临时文件存储点。

我们可以下载文件到这里

2.13.1 树莓派 /tmp

2.14 /sys

Sysfs文件系统是一个类似于proc文件系统的特殊文件系统,用于将系统中的设备组织成层次结构,并向用户模式程序提供详细的内核数据结构信息。其实,就是在用户态可以通过对sys文件系统的访问,来看内核态的一些驱动或者设备等。

2.14.1 树莓派 /sys

Linux下/sys目录介绍

2.15 /proc

正在运行的内核信息映射。

/proc下文件基本都是只读的,除了/proc/sys目录,它是可写的(查看和修改内核的运行参数)。

/proc下数字命令的目录就是对于PID的进程目录

/proc/cmdline 启动时传递给kernel的参数信息(就是bootargs信息)/proc/cpuinfo cpu的信息/proc/crypto 内核使用的所有已安装的加密密码及细节/proc/devices 已经加载的设备并分类/proc/dma 已注册使用的ISA DMA频道列表/proc/execdomains Linux内核当前支持的execution domains/proc/fb 帧缓冲设备列表,包括数量和控制它的驱动/proc/filesystems 内核当前支持的文件系统类型/proc/interrupts x86架构中的每个IRQ中断数/proc/iomem 每个物理设备当前在系统内存中的映射/proc/ioports 一个设备的输入输出所使用的注册端口范围/proc/kcore 代表系统的物理内存,存储为核心文件格式,里边显示的是字节数,等于RAM大小加上4kb/proc/kmsg 记录内核生成的信息,可以通过/sbin/klogd或/bin/dmesg来处理/proc/loadavg 根据过去一段时间内CPU和IO的状态得出的负载状态,与uptime命令有关/proc/locks 内核锁住的文件列表/proc/mdstat 多硬盘,RAID配置信息(md=multiple disks)/proc/meminfo RAM使用的相关信息/proc/misc 其他的主要设备(设备号为10)上注册的驱动/proc/modules 所有加载到内核的模块列表/proc/mounts 系统中使用的所有挂载/proc/partitions 分区中的块分配信息/proc/pci 系统中的PCI设备列表/proc/slabinfo 系统中所有活动的 slab 缓存信息/proc/stat 所有的CPU活动信息/proc/uptime 系统已经运行了多久/proc/swaps 交换空间的使用情况/proc/version Linux内核版本和gcc版本/proc/bus 系统总线(Bus)信息,例如pci/usb等/proc/driver 驱动信息/proc/fs 文件系统信息/proc/ide ide设备信息/proc/irq 中断请求设备信息/proc/net 网卡设备信息/proc/scsi scsi设备信息/proc/tty tty设备信息/proc/net/dev 显示网络适配器及统计信息/proc/vmstat 虚拟内存统计信息/proc/vmcore 内核panic时的内存映像/proc/diskstats 取得磁盘信息/proc/schedstat kernel调度器的统计信息/proc/zoneinfo 显示内存空间的统计信息,对分析虚拟内存行为很有用

以下是/proc目录中进程N的信息

/proc/N/cmdline 进程启动命令/proc/N/cwd 链接到进程当前工作目录/proc/N/environ 进程环境变量列表/proc/N/exe 链接到进程的执行命令文件/proc/N/fd 包含进程相关的所有的文件描述符(ls /proc/<PID>/fd | wc -l 查看某个进程打开多少FD)/proc/N/maps 与进程相关的内存映射信息/proc/N/mem 指代进程持有的内存,不可读/proc/N/root 链接到进程的根目录/proc/N/stat 进程的状态/proc/N/statm 进程使用的内存的状态/proc/N/status进程状态信息,比stat/statm更具可读性/proc/self 链接到当前正在运行的进程

2.15.1 树莓派 /proc

linux下 /proc 和 /sys 详解

当前正在跑的PID进程:

挑一个 PID 920看看:

3. 总结

玩了一段时间树莓派之后,觉得还是需要回溯本源Linux系统的学习。

对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步,深入了解Linux文件目录结构的标准和每个目录的详细功能,对于我们用好Linux系统非常重要。同时也来对比学习一下我们的debian树莓派系统。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。