什么是shell (重要)
Shell是命令解释器(command interpreter),是Unix操作系统的用户接口,程序从用户接口得到输入信息,shell将用户程序及其输入翻译成操作系统内核(kernel)能够识别的指令,并且操作系统内核执行完将返回的输出通过shell再呈现给用户
Linux哲学思想
一切都是一个文件。(包括硬件,文本,二进制,源代码)
系统中拥有小型,单一用途的程序。(一个程序只负责做好自己的本职工作)
当遇到复杂任务,通过不同功能用途的程序组合起来完成。
避免令人困惑的用户界面就是没有复杂的图形界面。
连配置文件都存储在文本中,方便增删改查。
不在乎后缀名,有没有都无所谓,不是通过后缀名来定义文件的类型。
shell基本知识
用户使用应用程序发布指令,比如使用浏览器访问网页;
shell去通知操作系统需要进行什么样的操作(相当于解释层);
内核相当于操作系统去指挥硬件;
硬件才能工作,否则无法交互。
目录和文件管理
由于 Linux 系统免费开源,使得 Linux 发行版本有很多,利用 Linux 开发产品的团队也有很多,如果任由每个人都按照自己的想法来配置 Linux 系统文件目录,后期可能会产生诸多的管理问题。试想,如果你进入一家公司,所用 Linux 系统的文件目录结构与所学的完全不同,实在令人头疼。
为了避免诸多使用者对 Linux 系统目录结构天马行空,Linux 基金会发布了 FHS 标准。多数 Linux 发行版系统都遵循这一标准。
目标层次
linux根目录
常见非一级目录
usr(注意不是 user),全称为 Unix Software Resource,此目录用于存储系统软件资源。FHS 建议所有开发者,应把软件产品的数据合理的放置在 /usr 目录下的各子目录中,而不是为他们的产品创建单独的目录。
Linux 系统中,所有系统默认的软件都存储在 /usr 目录下,/usr 目录类似 Windows 系统中 C:\Windows\ + C:\Program files\ 两个目录的综合体。
/var 目录用于存储动态数据,例如缓存、日志文件、软件运行过程中产生的文件等。通常,此目录下建议包含如表 4 所示的这些子目录。
/var/lib/ | 程序运行中需要调用或改变的数据保存位置。如 MySQL 的数据库保存在 /var/lib/mysql/ 目录中 |
/var/log/ | 登陆文件放置的目录,其中所包含比较重要的文件如 /var/log/messages, /var/log/wtmp 等。 |
/var/run/ | 一些服务和程序运行后,它们的 PID(进程 ID)保存位置 |
/var/spool/ | 里面主要都是一些临时存放,随时会被用户所调用的数据,例如 /var/spool/mail/ 存放新收到的邮件,/var/spool/cron/ 存放系统定时任务。 |
/var/www/ | RPM 包安装的 Apache 的网页主目录 |
/var/nis和/var/yp | NIS 服务机制所使用的目录,nis 主要记录所有网络中每一个 client 的连接信息;yp 是 linux 的 nis 服务的日志文件存放的目录 |
/var/tmp | 一些应用程序在安装或执行时,需要在重启后使用的某些文件,此目录能将该类文件暂时存放起来,完成后再行删除 |
- 根(/)相当于一个入口,文件的总入口,也是唯一入口
- bin (sbin) 二进制文件,可执行文件,也可能存在别处,默认使用较多所有用户软连接文件
- sbin 管理员可使用的二进制文件
- boot 系统内核、启动文件
- dev 硬件文件(黄色)
- etc 配置文件等同于windows 注册表,一般都是文本文件
- run 运行的内存中文件
- tmp 临时文件 -t
- usr应用程序和操作系统相关的文件
- var日志文件,数据变化的
- home 普通用户的家目录的上级目录zhangsan目录会在 home
- root系统管理员的目录上 /root
- lib 动态库文件 类似于windows 的dll文件
- proc 主要保存系统的内核、进程、外部设备状态和网络状态等
- media 可移动设备
- mnt 默认挂载点
- opt 第三方应用程序安装所在目录程序
七类常见的linux的文件
- d 目录文件directory
- b 块设备文件block 块设备文件,就是保存大块数据的设备,比如最常见的硬盘。
- c 字符设备character 这些文件通常隐藏在 /dev/ 目录下,当进行设备读取或外设交互时才会被使用; 一个字符一个字符读取 /dev/zero (/dev/null)
- l 符号链接文件link
- p 管道文件pipe 主要用于进程间通信单向传输, 一个只读、另一个只写 ,其主要作用是解决多个程序同时存取一个文件所造成的错误。
- s 套接字文件socket 套接字文件一般隐藏在 /var/run/ 目录下,用于进程间的网络通信。(可以双向)
- -普通文件 普通文件,包括纯文本文件、二进制文件、各种压缩文件等
颜色表示的文件类型
黑色 | 普通文件 |
绿色 | 可执行文件 |
黄色 | 块设备文件 |
红色 | 压缩包 |
蓝色 | 文件夹 |
天蓝色 | 链接文件(快捷方式) |