- ❤️ 博客主页 单片机菜鸟哥,一个野生非专业硬件IOT爱好者 ❤️
- ❤️ 本篇创建记录 2022-11-05 ❤️
- ❤️ 本篇更新记录 2022-11-05 ❤️
- 欢迎关注 点赞 收藏 ⭐️留言
- 此博客均由博主单独编写,不存在任何商业团队运营,如发现错误,请留言轰炸哦!及时修正!感谢支持!
- Arduino ESP8266教程累计帮助过超过1W+同学入门学习硬件网络编程,入选过选修课程,刊登过无线电杂志
玩了一段时间树莓派之后,觉得还是需要回溯本源Linux系统的学习。
对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步,深入了解Linux文件目录结构的标准和每个目录的详细功能,对于我们用好Linux系统非常重要。
所以本篇会简要学习一下树莓派官方系统的目录结构。
有一个点务必记住:
整个Linux操作系统就是文件的集合
Linux 的发行版说简单点就是将 Linux 内核与应用软件做一个打包
。
目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。
整个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
/boot
/var
、/srv
/proc
、/sys
/lib
、/usr/lib
、/usr/local/lib
重要知识点:
/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系统的一个版本。我们也看看树莓派根目录下是不是也是差不多的结构?
系统用户root
的主目录,也就是超级用户或者叫系统管理员的主目录;它就类似windows中的Administrator
目录的作用;
关键词:
root用户主目录
普通用户没有这个访问权限(当然,我们尽量也不要去修改这里的权限)。
那么我们需要切换到root用户(默认没有密码,最好设置一下):
- sudo su #切换root用户
- su pi #切换普通用户
- sudo passwd root # 更改root用户密码
- sudo passwd pi # 更改普通用户密码
Binary
的缩写,这个目录存放着系统必备执行命令。
常用命令基本都在这里,而且所有用户(不管是系统用户还是普通用户)都可用;它类似windows中除了C盘的Progrom Files文件夹以外,其他用来存放用户安装的程序的作用;如:cat
、chmod
、chown
、mkdir
、cp
等
关键词:
所有用户都可以执行的命令
bin 是一个链接,对应目录 usr/bin
。
可以看到,命令非常多。实际上我们大多数都是与这些命令打交道。
sbin,也就是 system binary。
s就是Super User。系统用户管理命令都在这个目录里面,此目录里面的命令只有系统用户才能使用,普通用户是使用不了的;它类似windows中C盘的Progrom Files文件夹的作用,用来存放的是系统程序;
如fdisk
、shutdown
、mount
等。与 /bin 不同的是,这几个目录是给系统管理员 root使用的命令,一般用户只能"查看"而不能设置和使用
关键词:
超级用户可以执行的命令
比如我们常用的reboot
、shutdown
命令。
相比常用命令,这里命令数量少了很多。
这里存放的是启动Linux时使用的一些核心文件,包括linux内核
文件、一些链接文件以及镜像文件,自己的安装别放这里。了解即可,基本上不会去动它。
关键词:
启动相关文件
Device
(设备)的缩写,该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。只要通过访问这个目录下面的某个文件就相当于访问该设备。类似windows的驱动盘(DVD驱动/U盘)的作用; 正常情况下也不会去改动。
关键词:
设备相关文件
系统配置文件
存放的目录。如用户账号、密码、各种服务起始文件等、该目录下的文件普通用户可以查看,但只有root用户有权修改。FHS建议不要放置可执行文件(binary)在此目录。类似windows的注册表功能。如/etc/fstab、/etc/rc*.d、/etc/init.d、/etc/hosts等等安装各种软件
的配置文件目录。如 /etc/mysql、/etc/nginx 等等我们自己安装的软件这个目录需要重点学习
。
关键词:
配置相关文件
pi@raspberrypi:/ $ cd etc/
pi@raspberrypi:/etc $ ls -al
total 1212
drwxr-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.conf
drwxr-xr-x 3 root root 4096 Sep 22 01:11 alsa
drwxr-xr-x 2 root root 12288 Sep 22 01:22 alternatives
drwxr-xr-x 3 root root 4096 Sep 22 01:12 apache2
drwxr-xr-x 2 root root 4096 Sep 22 01:22 apparmor
drwxr-xr-x 7 root root 4096 Sep 22 01:22 apparmor.d
drwxr-xr-x 8 root root 4096 Sep 22 01:07 apt
drwxr-xr-x 3 root root 4096 Sep 22 01:07 avahi
-rw-r--r-- 1 root root 1994 Mar 27 2022 bash.bashrc
-rw-r--r-- 1 root root 45 Jan 24 2020 bash_completion
drwxr-xr-x 2 root root 4096 Sep 22 01:10 bash_completion.d
-rw-r--r-- 1 root root 367 Mar 29 2022 bindresvport.blacklist
drwxr-xr-x 2 root root 4096 Sep 13 02:58 binfmt.d
drwxr-xr-x 2 root root 4096 Sep 22 01:06 bluetooth
drwxr-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.conf
drwxr-s--- 2 root dip 4096 Sep 22 01:07 chatscripts
drwxr-xr-x 3 root root 4096 Sep 22 01:10 chromium
drwxr-xr-x 2 root root 4096 Sep 22 01:10 chromium.d
drwxr-xr-x 2 root root 4096 Sep 22 01:05 cifs-utils
drwxr-xr-x 2 root root 4096 Sep 22 01:07 console-setup
drwxr-xr-x 2 root root 4096 Sep 22 01:03 cron.d
drwxr-xr-x 2 root root 4096 Sep 22 01:03 cron.daily
drwxr-xr-x 2 root root 4096 Sep 22 01:06 cron.hourly
drwxr-xr-x 2 root root 4096 Sep 22 01:03 cron.monthly
-rw-r--r-- 1 root root 1042 Feb 22 2021 crontab
drwxr-xr-x 2 root root 4096 Sep 22 01:03 cron.weekly
drwxr-xr-x 5 root lp 4096 Nov 5 01:15 cups
drwxr-xr-x 2 root root 4096 Sep 22 01:13 cupshelpers
drwxr-xr-x 4 root root 4096 Sep 22 01:06 dbus-1
drwxr-xr-x 3 root root 4096 Sep 22 01:08 dconf
-rw-r--r-- 1 root root 2969 Jun 10 2021 debconf.conf
-rw-r--r-- 1 root root 5 Sep 12 01:26 debian_version
drwxr-xr-x 2 root root 4096 Sep 22 02:01 default
-rw-r--r-- 1 root root 604 Jun 26 2016 deluser.conf
drwxr-xr-x 4 root root 4096 Sep 22 01:03 dhcp
-rw-rw-r-- 1 root netdev 1777 Jul 25 16:48 dhcpcd.conf
drwxr-xr-x 2 root root 4096 Sep 22 01:14 dictionaries-common
drwxr-xr-x 2 root root 4096 Sep 22 01:13 dillo
-rw-r--r-- 1 root root 1100 Sep 22 01:07 dphys-swapfile
drwxr-xr-x 4 root root 4096 Sep 22 01:07 dpkg
-rw-r--r-- 1 root root 685 Jun 7 2021 e2scrub.conf
drwxr-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 2019 ethertypes
-rw-r--r-- 1 root root 20 Nov 5 02:17 fake-hwclock.data
-rw-r--r-- 1 root root 24501 Apr 3 2020 fb.modes
drwxr-xr-x 3 root root 4096 Sep 22 01:21 firebird
drwxr-xr-x 4 root root 4096 Sep 22 01:06 fonts
-rw-r--r-- 1 root root 216 Sep 22 02:02 .fstab
-rw-r--r-- 1 root root 314 Sep 22 02:02 fstab
-rw-r--r-- 1 root root 694 Jun 20 2021 fuse.conf
-rw-r--r-- 1 root root 2584 Mar 29 2022 gai.conf
drwxr-xr-x 3 root root 4096 Sep 22 01:07 gdb
drwxr-xr-x 2 root root 4096 Sep 22 01:20 geoclue
drwxr-xr-x 4 root root 4096 Sep 22 01:12 ghostscript
drwxr-xr-x 3 root root 4096 Sep 22 01:08 glvnd
drwxr-xr-x 2 root root 4096 Sep 22 01:13 gnome
drwxr-xr-x 2 root root 4096 Sep 22 01:03 groff
-rw-r--r-- 1 root root 955 Sep 22 02:02 group
-rw-r--r-- 1 root root 999 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 gss
drwxr-xr-x 2 root root 4096 Sep 22 01:09 gtk-2.0
drwxr-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 root 12 Sep 22 01:05 hostname
-rw-r--r-- 1 root root 132 Sep 22 01:05 hosts
-rw-r--r-- 1 root root 411 Sep 22 01:06 hosts.allow
-rw-r--r-- 1 root root 711 Sep 22 01:06 hosts.deny
drwxr-xr-x 2 root root 4096 Sep 22 01:13 hp
-rw-r--r-- 1 root root 206 Jun 28 2021 idmapd.conf
drwxr-xr-x 3 root root 4096 Sep 22 01:07 ifplugd
drwxr-xr-x 2 root root 4096 Sep 22 01:03 init
drwxr-xr-x 2 root root 4096 Sep 22 02:02 init.d
drwxr-xr-x 5 root root 4096 Sep 22 01:05 initramfs-tools
-rw-r--r-- 1 root root 1865 Sep 22 01:07 inputrc
drwxr-xr-x 2 root root 4096 Sep 22 01:06 insserv.conf.d
drwxr-xr-x 2 root root 4096 Sep 22 01:12 ipp-usb
drwxr-xr-x 4 root root 4096 Sep 22 01:03 iproute2
-rw-r--r-- 1 root root 29 Sep 12 01:26 issue
-rw-r--r-- 1 root root 22 Sep 12 01:26 issue.net
drwxr-xr-x 3 root root 4096 Sep 22 01:20 .java
drwxr-xr-x 3 root root 4096 Sep 22 01:22 java
drwxr-xr-x 5 root root 4096 Sep 22 01:20 java-11-openjdk
drwxr-xr-x 5 root root 4096 Sep 22 01:22 java-17-openjdk
drwxr-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 root 34 Mar 29 2022 ld.so.conf
drwxr-xr-x 2 root root 4096 Sep 22 01:06 ld.so.conf.d
-rw-r--r-- 1 root root 54 Sep 22 01:05 ld.so.preload
-rw-r--r-- 1 root root 191 Jan 6 2021 libaudit.conf
drwxr-xr-x 3 root root 4096 Sep 22 01:06 libblockdev
drwxr-xr-x 2 root root 4096 Sep 22 01:12 libibverbs.d
drwxr-xr-x 2 root root 4096 Sep 22 01:05 libnl-3
drwxr-xr-x 2 root root 4096 Jun 25 2019 libpaper.d
drwxr-xr-x 3 root root 4096 Sep 22 01:22 libreoffice
drwxr-xr-x 2 root root 4096 Sep 22 02:01 lightdm
drwxr-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.gen
lrwxrwxrwx 1 root root 33 Sep 22 01:07 localtime -> /usr/share/zoneinfo/Europe/London
drwxr-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 root 494 Jan 30 2022 logrotate.conf
drwxr-xr-x 2 root root 4096 Sep 22 01:13 logrotate.d
-r--r--r-- 1 root root 33 Sep 22 02:01 machine-id
-rw-r--r-- 1 root root 111 Nov 19 2020 magic
-rw-r--r-- 1 root root 111 Nov 19 2020 magic.mime
-rw-r--r-- 1 root root 26356 Sep 22 01:22 mailcap
-rw-r--r-- 1 root root 449 Feb 25 2021 mailcap.order
-rw-r--r-- 1 root root 5215 Feb 19 2021 manpath.config
-rw-r--r-- 1 root root 39901 Feb 2 2021 matplotlibrc
drwxr-xr-x 2 root root 4096 Sep 22 01:09 menu-methods
-rw-r--r-- 1 root root 70481 Jan 15 2021 mime.types
-rw-r--r-- 1 root root 812 Jun 7 2021 mke2fs.conf
-rw-r--r-- 1 root root 19354 Jul 10 2021 mkshrc
drwxr-xr-x 2 root root 4096 Sep 22 01:13 modprobe.d
-rw-r--r-- 1 root root 203 Sep 22 01:13 modules
drwxr-xr-x 2 root root 4096 Sep 22 01:13 modules-load.d
-rw-r--r-- 1 root root 286 Sep 12 01:26 motd
lrwxrwxrwx 1 root root 19 Sep 22 02:01 mtab -> ../proc/self/mounts
drwxr-xr-x 4 root root 4096 Sep 22 01:22 mysql
-rw-r--r-- 1 root root 10056 Nov 21 2021 nanorc
-rw-r--r-- 1 root root 767 Aug 1 15:26 netconfig
drwxr-xr-x 7 root root 4096 Sep 22 01:07 network
drwxr-xr-x 7 root root 4096 Sep 22 01:07 NetworkManager
-rw-r--r-- 1 root root 60 Sep 22 01:03 networks
-rwxr-xr-x 1 root root 228 Jul 20 2021 nftables.conf
-rw-r--r-- 1 root root 526 Sep 22 01:07 nsswitch.conf
drwxr-xr-x 2 root root 4096 Sep 22 01:10 openal
drwxr-xr-x 2 root root 4096 Sep 22 01:10 openni2
drwxr-xr-x 2 root root 4096 Sep 22 01:02 opt
lrwxrwxrwx 1 root root 21 Sep 12 01:26 os-release -> ../usr/lib/os-release
drwxr-xr-x 2 root root 4096 Sep 22 01:11 PackageKit
-rw-r--r-- 1 root root 552 Jan 30 2021 pam.conf
drwxr-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 2016 paxctld.conf
drwxr-xr-x 3 root root 4096 Sep 22 01:05 perl
-rw-r--r-- 1 root root 57 Jul 16 2021 pip.conf
drwxr-xr-x 3 root root 4096 Sep 22 01:13 pipewire
drwxr-xr-x 2 root root 4096 Sep 22 01:13 plymouth
drwxr-xr-x 4 root root 4096 Sep 22 01:06 polkit-1
drwxr-xr-x 8 root root 4096 Sep 22 01:07 ppp
-rw-r--r-- 1 root root 801 Sep 22 01:07 profile
drwxr-xr-x 2 root root 4096 Sep 22 01:09 profile.d
-rw-r--r-- 1 root root 2932 Apr 1 2013 protocols
drwxr-xr-x 3 root root 4096 Sep 22 01:13 pulse
-rw------- 1 root root 0 Sep 22 01:02 .pwd.lock
drwxr-xr-x 2 root root 4096 Sep 22 01:15 python2.7
drwxr-xr-x 2 root root 4096 Sep 22 01:05 python3
drwxr-xr-x 2 root root 4096 Sep 22 01:05 python3.9
drwxr-xr-x 2 root root 4096 Sep 22 01:13 rc0.d
drwxr-xr-x 2 root root 4096 Sep 22 01:13 rc1.d
drwxr-xr-x 2 root root 4096 Sep 22 02:01 rc2.d
drwxr-xr-x 2 root root 4096 Sep 22 02:02 rc3.d
drwxr-xr-x 2 root root 4096 Sep 22 02:01 rc4.d
drwxr-xr-x 2 root root 4096 Sep 22 02:01 rc5.d
drwxr-xr-x 2 root root 4096 Sep 22 01:13 rc6.d
-rwxr-xr-x 1 root root 420 Sep 22 01:07 rc.local
drwxr-xr-x 2 root root 4096 Sep 22 01:22 rcS.d
-rw-r--r-- 1 root root 1889 Feb 10 2020 request-key.conf
drwxr-xr-x 2 root root 4096 Sep 22 01:06 request-key.d
-rw-r--r-- 1 root root 49 Sep 22 02:02 resolv.conf
-rw-r--r-- 1 root root 19 Sep 22 02:02 resolv.conf.bak
-rw-r--r-- 1 root root 500 Jan 2 2021 resolvconf.conf
lrwxrwxrwx 1 root root 13 Feb 17 2021 rmt -> /usr/sbin/rmt
-rw-r--r-- 1 root root 887 Apr 1 2013 rpc
-rw-r--r-- 1 root root 145 Sep 22 02:01 rpi-issue
-rw-r--r-- 1 root root 1974 May 20 22:05 rsyslog.conf
drwxr-xr-x 2 root root 4096 May 20 22:05 rsyslog.d
-rw-r--r-- 1 root root 12100 Aug 19 2015 RTIMULib.ini
drwxr-xr-x 3 root root 4096 Sep 22 01:06 runit
drwxr-xr-x 3 root root 4096 Sep 22 01:13 sane.d
drwxr-xr-x 4 root root 4096 Sep 22 01:04 security
drwxr-xr-x 2 root root 4096 Sep 22 01:02 selinux
-rw-r--r-- 1 root root 10593 Jan 30 2021 sensors3.conf
drwxr-xr-x 2 root root 4096 Sep 22 01:09 sensors.d
-rw-r--r-- 1 root root 12813 Mar 27 2021 services
drwxr-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 root 188 Sep 22 01:06 shells
drwxr-xr-x 2 root root 4096 Sep 22 01:06 skel
drwxr-xr-x 2 root root 4096 Sep 22 01:13 snmp
drwxr-xr-x 4 root root 4096 Jan 1 1970 ssh
drwxr-xr-x 4 root root 4096 Sep 22 01:04 ssl
-rw-r--r-- 1 root root 16 Sep 22 01:05 subgid
-rw-r--r-- 1 root root 16 Sep 22 01:05 subuid
-rw-r--r-- 1 root root 3975 Feb 27 2021 sudo.conf
-r--r----- 1 root root 669 Feb 27 2021 sudoers
drwxr-xr-x 2 root root 4096 Sep 22 02:02 sudoers.d
-rw-r--r-- 1 root root 6169 Feb 27 2021 sudo_logsrvd.conf
drwxr-xr-x 3 root root 4096 Sep 22 01:06 sv
-rw-r--r-- 1 root root 2355 Apr 6 2021 sysctl.conf
drwxr-xr-x 2 root root 4096 Sep 22 01:06 sysctl.d
drwxr-xr-x 5 root root 4096 Sep 22 01:05 systemd
drwxr-xr-x 2 root root 4096 Sep 22 01:02 terminfo
-rw-r--r-- 1 root root 14 Sep 22 01:07 timezone
drwxr-xr-x 2 root root 4096 Sep 22 01:10 timidity
drwxr-xr-x 2 root root 4096 Sep 13 02:58 tmpfiles.d
drwxr-xr-x 3 root root 4096 Sep 22 01:04 triggerhappy
-rw-r--r-- 1 root root 1260 Jun 16 2020 ucf.conf
drwxr-xr-x 4 root root 4096 Sep 22 01:03 udev
drwxr-xr-x 2 root root 4096 Sep 22 01:07 udisks2
drwxr-xr-x 3 root root 4096 Sep 22 01:06 ufw
drwxr-xr-x 3 root root 4096 Sep 22 02:02 unbound
drwxr-xr-x 2 root root 4096 Sep 22 01:02 update-motd.d
drwxr-xr-x 2 root root 4096 Sep 22 01:13 UPower
-rw-r--r-- 1 root root 1523 Jul 10 2020 usb_modeswitch.conf
drwxr-xr-x 2 root root 4096 Feb 24 2020 usb_modeswitch.d
-rw-r--r-- 1 root root 51 Apr 9 2020 vdpau_wrapper.cfg
drwxr-xr-x 2 root root 4096 Sep 22 01:03 vim
drwxr-xr-x 4 root root 4096 Nov 5 01:10 vnc
drwxr-xr-x 5 root root 4096 Sep 22 01:08 vulkan
-rw-r--r-- 1 root root 4942 Nov 23 2021 wgetrc
drwxr-xr-x 2 root root 4096 Sep 22 02:02 wpa_supplicant
drwxr-xr-x 10 root root 4096 Sep 22 01:19 X11
-rw-r--r-- 1 root root 642 Dec 24 2020 xattr.conf
drwxr-xr-x 12 root root 4096 Sep 22 01:14 xdg
drwxr-xr-x 3 root root 4096 Sep 22 01:22 xml
/etc 目录包含各种系统配置文件。
关键词:
用户目录
/bin/ 以及/sbin/中二进制文件必要的库文件
)。/lib/modules/这个目录下放置内核相关的驱动程序。关键词:
必要动态链接共享库
pi@raspberrypi:/lib $ ls -al
total 6732
drwxr-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 apparmor
drwxr-xr-x 5 root root 4096 Sep 22 01:03 apt
drwxr-xr-x 2 root root 4096 Sep 22 01:10 arandr
drwxr-xr-x 90 root root 86016 Sep 22 01:22 arm-linux-gnueabihf
drwxr-xr-x 3 root root 4096 Sep 22 01:06 arm-linux-musleabihf
drwxr-xr-x 3 root root 12288 Sep 22 01:18 aspell
drwxr-xr-x 2 root root 4096 Sep 22 01:06 bfd-plugins
drwxr-xr-x 2 root root 4096 Sep 13 02:58 binfmt.d
drwxr-xr-x 2 root root 4096 Sep 22 01:12 blt2.5
drwxr-xr-x 7 root root 4096 Sep 22 01:09 chromium-browser
drwxr-xr-x 2 root root 4096 Sep 22 01:06 compat-ld
drwxr-xr-x 2 root root 4096 Sep 22 01:06 console-setup
lrwxrwxrwx 1 root root 21 Sep 22 01:07 cpp -> /etc/alternatives/cpp
drwxr-xr-x 3 root root 4096 Sep 22 01:05 crda
drwxr-xr-x 10 root root 4096 Sep 22 01:12 cups
drwxr-xr-x 2 root root 4096 Sep 22 01:06 dbus-1.0
drwxr-xr-x 5 root root 4096 Sep 22 01:19 debug
drwxr-xr-x 3 root root 4096 Sep 22 01:07 dhcpcd
drwxr-xr-x 3 root root 4096 Sep 22 01:06 diet
drwxr-xr-x 3 root root 4096 Sep 22 01:03 dpkg
drwxr-xr-x 3 root root 4096 Sep 22 01:08 emacsen-common
drwxr-xr-x 2 root root 4096 Sep 22 01:02 environment.d
drwxr-xr-x 6 root root 4096 Sep 22 01:18 erlang
drwxr-xr-x 2 root root 4096 Sep 22 01:05 file
drwxr-xr-x 3 root root 4096 Sep 22 01:07 firewalld
drwxr-xr-x 41 root root 4096 Sep 22 01:07 firmware
drwxr-xr-x 3 root root 4096 May 15 2020 gcc
drwxr-xr-x 2 root root 4096 Sep 22 01:12 girepository-1.0
drwxr-xr-x 3 root root 4096 Sep 22 01:10 git-core
drwxr-xr-x 2 root root 4096 Sep 22 01:12 gnome-session
drwxr-xr-x 2 root root 4096 Sep 22 01:12 gnome-settings-daemon-3.0
drwxr-xr-x 2 root root 4096 Sep 22 01:03 gnupg
drwxr-xr-x 2 root root 4096 Sep 22 01:03 gnupg2
drwxr-xr-x 2 root root 4096 Sep 22 01:06 gold-ld
drwxr-xr-x 4 root root 4096 Sep 22 01:03 groff
drwxr-xr-x 2 root root 4096 Sep 22 01:12 gui-pkinst
drwxr-xr-x 2 root root 4096 Sep 22 01:08 gvfs
drwxr-xr-x 2 root root 4096 Sep 22 01:03 ifupdown
drwxr-xr-x 2 root root 4096 Sep 22 01:02 init
drwxr-xr-x 2 root root 4096 Sep 22 01:08 ispell
drwxr-xr-x 5 root root 4096 Sep 22 01:21 jvm
drwxr-xr-x 3 root root 4096 Sep 22 01:02 kernel
drwxr-xr-x 3 root root 4096 Sep 22 01:05 klibc
-rwxr-xr-x 1 root root 75224 Jun 10 2021 klibc-krh8Sgsh8PW7Qbsa0KsFm65rfDw.so
lrwxrwxrwx 1 root root 30 Aug 30 16:11 ld-linux-armhf.so.3 -> arm-linux-gnueabihf/ld-2.31.so
lrwxrwxrwx 1 root root 24 Sep 22 01:05 ld-linux.so.3 -> /lib/ld-linux-armhf.so.3
-rw-r--r-- 1 root root 1151988 Dec 23 2020 libBLT.2.5.so.8.6
-rw-r--r-- 1 root root 263748 Dec 23 2020 libBLTlite.2.5.so.8.6
lrwxrwxrwx 1 root root 20 Apr 26 2012 libcompface.so.1 -> libcompface.so.1.0.0
-rw-r--r-- 1 root root 20344 Apr 26 2012 libcompface.so.1.0.0
lrwxrwxrwx 1 root root 27 Sep 19 2016 libhardsid-builder.so.0 -> libhardsid-builder.so.0.0.1
-rw-r--r-- 1 root root 12568 Sep 19 2016 libhardsid-builder.so.0.0.1
lrwxrwxrwx 1 root root 16 Nov 11 2016 libident.so.0 -> libident.so.0.22
-rw-r--r-- 1 root root 7976 Nov 11 2016 libident.so.0.22
lrwxrwxrwx 1 root root 19 Mar 30 2021 libpigpiod_if2.so -> libpigpiod_if2.so.1
-rw-r--r-- 1 root root 78576 Mar 30 2021 libpigpiod_if2.so.1
lrwxrwxrwx 1 root root 18 Mar 30 2021 libpigpiod_if.so -> libpigpiod_if.so.1
-rw-r--r-- 1 root root 62192 Mar 30 2021 libpigpiod_if.so.1
lrwxrwxrwx 1 root root 14 Mar 30 2021 libpigpio.so -> libpigpio.so.1
-rw-r--r-- 1 root root 259928 Mar 30 2021 libpigpio.so.1
lrwxrwxrwx 1 root root 24 Mar 31 2021 libpigpioultrasonic.so -> libpigpioultrasonic.so.2
-rw-r--r-- 1 root root 5440 Mar 31 2021 libpigpioultrasonic.so.2
lrwxrwxrwx 1 root root 21 May 2 2021 libpypy-c.so -> pypy/bin/libpypy-c.so
lrwxrwxrwx 1 root root 28 Feb 5 2021 libqscintilla2_qt5.so.15 -> libqscintilla2_qt5.so.15.0.0
lrwxrwxrwx 1 root root 28 Feb 5 2021 libqscintilla2_qt5.so.15.0 -> libqscintilla2_qt5.so.15.0.0
-rw-r--r-- 1 root root 3266236 Feb 5 2021 libqscintilla2_qt5.so.15.0.0
drwxr-xr-x 5 root root 4096 Sep 22 01:21 libreoffice
lrwxrwxrwx 1 root root 25 Sep 19 2016 libresid-builder.so.0 -> libresid-builder.so.0.0.1
-rw-r--r-- 1 root root 170832 Sep 19 2016 libresid-builder.so.0.0.1
lrwxrwxrwx 1 root root 16 Apr 19 2021 libRTIMULib.so -> libRTIMULib.so.7
lrwxrwxrwx 1 root root 20 Apr 19 2021 libRTIMULib.so.7 -> libRTIMULib.so.7.2.1
-rw-r--r-- 1 root root 155140 Apr 19 2021 libRTIMULib.so.7.2.1
lrwxrwxrwx 1 root root 19 Dec 23 2020 libscsynth.so.1 -> libscsynth.so.1.0.0
-rw-r--r-- 1 root root 521668 Dec 23 2020 libscsynth.so.1.0.0
lrwxrwxrwx 1 root root 20 Sep 19 2016 libsidplay2.so.1 -> libsidplay2.so.1.0.1
-rw-r--r-- 1 root root 204980 Sep 19 2016 libsidplay2.so.1.0.1
lrwxrwxrwx 1 root root 20 May 24 2012 libsigc-1.2.so.5 -> libsigc-1.2.so.5.0.7
-rw-r--r-- 1 root root 23724 May 24 2012 libsigc-1.2.so.5.0.7
-rw-r--r-- 1 root root 16500 Aug 29 2016 libsupp.a
drwxr-xr-x 3 root root 4096 Sep 22 01:04 locale
drwxr-xr-x 2 root root 4096 Sep 22 01:22 lp_solve
drwxr-xr-x 3 root root 4096 Sep 22 01:02 lsb
drwxr-xr-x 2 root root 4096 Sep 22 01:09 lxinput
drwxr-xr-x 2 root root 4096 Sep 22 01:12 lxplugins
drwxr-xr-x 2 root root 4096 Sep 22 01:03 man-db
drwxr-xr-x 2 root root 4096 Sep 22 01:08 menu-cache
drwxr-xr-x 3 root root 4096 Sep 22 01:05 mime
drwxr-xr-x 2 root root 4096 Sep 22 01:03 modprobe.d
drwxr-xr-x 6 root root 4096 Sep 22 01:04 modules
drwxr-xr-x 2 root root 4096 Sep 13 02:58 modules-load.d
drwxr-xr-x 6 root root 4096 Sep 22 01:07 NetworkManager
drwxr-xr-x 3 root root 4096 Sep 22 01:21 nodejs
drwxr-xr-x 2 root root 4096 Sep 22 01:06 openssh
-rw-r--r-- 1 root root 309 Sep 12 01:26 os-release
drwxr-xr-x 2 root root 4096 Sep 22 01:06 p7zip
drwxr-xr-x 2 root root 4096 Sep 22 01:02 pam.d
drwxr-xr-x 2 root root 4096 Sep 22 01:12 piclone
drwxr-xr-x 2 root root 4096 Sep 22 01:12 pipanel
drwxr-xr-x 2 root root 4096 Apr 21 2020 pkgconfig
-rw-r--r-- 1 root root 20 Apr 21 2020 pkg-config.multiarch
drwxr-xr-x 3 root root 4096 Sep 22 01:07 pm-utils
drwxr-xr-x 2 root root 4096 Sep 22 01:06 policykit-1
drwxr-xr-x 3 root root 4096 Sep 22 01:07 pppd
drwxr-xr-x 2 root root 4096 Sep 22 01:12 printer-driver-escpr
drwxr-xr-x 3 root root 4096 Sep 22 01:11 pulse-14.2
drwxr-xr-x 8 root root 4096 Sep 22 01:12 pypy
drwxr-xr-x 26 root root 20480 Sep 22 01:20 python2.7
drwxr-xr-x 3 root root 4096 Sep 22 01:05 python3
drwxr-xr-x 34 root root 12288 Sep 22 01:12 python3.9
drwxr-xr-x 2 root root 4096 Sep 22 01:10 qpdfview
drwxr-xr-x 2 root root 4096 Sep 22 01:07 raspberrypi-net-mods
drwxr-xr-x 2 root root 4096 Sep 22 01:06 raspberrypi-sys-mods
drwxr-xr-x 2 root root 4096 Sep 22 01:05 raspi-config
drwxr-xr-x 2 root root 4096 Sep 22 01:12 rc-gui
drwxr-xr-x 3 root root 4096 Sep 22 01:07 resolvconf
drwxr-xr-x 2 root root 4096 Sep 22 01:12 rp-prefapps
drwxr-xr-x 2 root root 4096 Sep 22 01:03 rsyslog
drwxr-xr-x 5 root root 4096 Sep 22 01:18 ruby
drwxr-xr-x 2 root root 4096 Sep 22 01:06 runit-helper
drwxr-xr-x 2 root root 4096 Feb 25 2022 sasl2
drwxr-xr-x 5 root root 4096 Sep 22 01:19 scratch3
lrwxrwxrwx 1 root root 19 Jul 1 23:37 sftp-server -> openssh/sftp-server
drwxr-xr-x 3 root root 4096 Sep 22 01:19 sonic-pi
drwxr-xr-x 4 root root 4096 Sep 22 01:19 squeak
drwxr-xr-x 3 root root 4096 Sep 22 01:04 ssl
drwxr-xr-x 2 root root 4096 Sep 22 01:06 sudo
drwxr-xr-x 3 root root 4096 Sep 22 01:19 SuperCollider
drwxr-xr-x 2 root root 4096 Sep 22 01:08 sysctl.d
drwxr-xr-x 16 root root 4096 Sep 22 01:06 systemd
drwxr-xr-x 2 root root 4096 Sep 22 01:06 sysusers.d
drwxr-xr-x 4 root root 4096 Sep 22 01:03 tasksel
drwxr-xr-x 2 root root 4096 Sep 22 01:03 tc
drwxr-xr-x 3 root root 4096 Sep 22 01:12 tcltk
drwxr-xr-x 16 root root 4096 Jan 1 2021 terminfo
drwxr-xr-x 2 root root 4096 Sep 22 01:09 thunar-archive-plugin
drwxr-xr-x 2 root root 4096 Sep 22 01:12 tmpfiles.d
drwxr-xr-x 4 root root 4096 Sep 22 01:14 udev
drwxr-xr-x 2 root root 4096 Sep 22 01:06 udisks2
drwxr-xr-x 2 root root 4096 Sep 22 01:06 userconf-pi
drwxr-xr-x 2 root root 4096 Sep 22 01:15 valgrind
drwxr-xr-x 2 root root 4096 Sep 22 01:11 vnc
drwxr-xr-x 2 root root 4096 Feb 15 2021 X11
drwxr-xr-x 3 root root 4096 Sep 22 01:09 xorg
包括了各种软件的动态链接库。比如 vnc、x11、dpkg、python、systemd等等常用的。
linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
关键词:
外接设备
与/media功能相同,只是有了/media之后,这个目录用来暂时挂载某个设备使用。
系统提供该目录是为了让用户临时挂载别的文件系统,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容。
关键词:
挂载外部设备
这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
/var 包含系统一般运行时要改变的数据。通常这些数据所在的目录的大小是要经常变化或扩充的。原来/var目录中有些内容是在/usr中的,但为了保持/usr目录的相对稳定,就把那些需要经常改变的目录放到/var中了。每个系统是特定的,即不通过网络与其他计算机共享。
这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
/usr 是个很重要的目录,通常这一文件系统很大,因为所有程序安装在这里。/usr 里的
所有文件一般来自linux发行版( distribution);本地安装的程序和其他东西在/usr/local
下,因为这样可以在升级新版系统或新发行版时无须重新安装全部程序。/usr目录下的许多内容是可选的,但这些功能会使用户使用系统更加有效。/ 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
用于存放各种临时文件,是公用的临时文件存储点。
我们可以下载文件到这里
Sysfs文件系统是一个类似于proc文件系统的特殊文件系统,用于将系统中的设备组织成层次结构,并向用户模式程序提供详细的内核数据结构信息。其实,就是在用户态可以通过对sys文件系统的访问,来看内核态的一些驱动或者设备等。
正在运行的内核信息映射。
/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 链接到当前正在运行的进程
玩了一段时间树莓派之后,觉得还是需要回溯本源Linux系统的学习。
对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步,深入了解Linux文件目录结构的标准和每个目录的详细功能,对于我们用好Linux系统非常重要。同时也来对比学习一下我们的debian树莓派系统。