1、命令行shell
shell其实就是我们常常谈起的命令行。shell实际上是一个程序,接收由键盘输入的命令并将其传递给操作系统来执行,最后将结果反馈给应用层或者用户。
2、bash和.bashrc文件
bash:
shell是一个程序,可以称之为壳程序,用于用户与操作系统进行交互。用来区别与核,相当于是一个命令解析器,Shell有很多种:Bourne SHell(sh)、 Bourne Again SHell(bash)、C SHell(csh)、KornSHell(ksh)、zsh。
各种shell差别不大,主要是语法上有所区别。Linux的shell就是bash。
.bashrc文件:
bash在每次启动时都会自动载入bashrc配置文件中的内容,可对bashrc中的内容进行更改,达到每次启动bash时都自动配置好一些需要的指令。
3、用户的根目录
Ubuntu中不同的用户,实质上是为每个用户创建了一个专属根目录,Linux首先进入的是当前登录用户根目录,例如我的用户根目录/home/zhu。
可点击“其他位置”中的计算机,进入Ubuntu的根目录“/”
可以看到home文件夹。用户根目录/home/zhu,实质上就是在home文件夹中创建了zhu这个用户文件夹。创建其他用户也是相当于给他创建一个专属的文件夹。
用户可以对自己用户根目录下的文件随意读写操作,但若要修改根目录“/”下的文件会提示没有权限。
4、根目录下文件的划分
可以看到路径切换为了“/”(根目录下),这里是对根目录下重要文件的一些说明:
加粗的是认为比较重要的文件夹
文件夹名 | 作用 |
/bin | 存储二进制可执行命令,/usr/bin也存放了一些基于用户的命令文件 |
/sbin | 存储了很多系统命令,/usr/bin也存储了许多系统命令 |
超级用户root的根目录文件 | |
/home | 普通用户没人目录,该目录下,每个用户都有一个以本用户名命名的文件夹 |
/boot | 存放Ubuntu系统的内核和系统启动文件 |
/mnt | 包括系统引导后被挂载的文件系统的挂载点 |
/dev | 存放设备文件,Linux驱动主要是跟这个文件夹打交道 |
/etc | 保存系统管理所需的库文件 |
/lib | 保存系统程序运行所需的库文件,/usr/lib下存放了一些用于普通用户的库文件 |
一般为空,当系统非正常关机后,会保存一些零散文件 | |
/var | 存储一些不断变化的文件,例如日志文件 |
/usr | 存储与系统用户直接相关的文件和目录,例如应用程序和所需的库文件 |
/media | 存放Ubuntu系统自动挂载的设备文件 |
/proc | 虚拟目录,不实际存储在磁盘上,通常用来保存系统信息和进程信息 |
/tmp | 存储系统和用户的临时文件,该文件夹对所有的用户都提供读写权限 |
/opt | 可选文件和程序的存放目录 |
/sys | 系统设备和文件层次结构,并向用户程序提供详细的内核数据信息 |
5、文件类型
可在用户根目录下使用“ls -l”命令查看该目录下所有文件的信息。第一个字符表示文件的类型,例如第一个bin文件中的字符“d”表示该文件为目录文件。
字符 | 文件类型 |
- | 普通文件,应用程序创建,比如文档、图片等 |
d | 目录文件 |
c | 字符设备文件,Linux驱动里面的字符设备驱动,比如串口设备,音频设备等 |
b | 块设备文件,存储设备驱动,比如硬盘,U盘等 |
l | 符号连接文件,相当于Window下的快捷方式 |
s | 套接字文件 |
p | 管道文件,主要为FIFO文件 |
Linux驱动开发主要涉及的就是字符设备文件和块设备文件
6、文件权限
除了第一位表示文件类型外,可以看到剩下9位,以3位一组,分别表示文件拥有者的权限,文件拥有者所在用户组的权限以及其他用户权限。在一些书中又将这三个分别称之为属主,属组,其他用户。
标识符后面的“zhu zhu”分别代表文件的拥有者(用户)和该用户所在的用户组,bin文件的权限如下:
1) 拥有者是用户zhu,对文件bin的权限是“rwx”(前3位),可对该文件读、写和执行。
2) 用户zhu所在的用户组也叫zhu,组内用户对文件bin的权限也是“rwx”(中间3位)
3) 其他用户对文件bin的权限是“r-x”(后三位),只能对文件读和执行。
三种权限具体作用如下:
权限属性 | 文件 | 目录 |
r | 允许打开并读取文件 | 允许列出目录内容 |
w | 允许写入但不允许重命名或删除文件。(文件重命名和删除时由目录属性决定的) | 允许在目录内创建、删除、重命名文件 |
x | 允许将该文件作为执行文件。以脚本语言编写的程序文件需设置为刻度才能被执行 | 允许进入该目录 |