查看目前使用的shell,以及显示shell的种类。

1.png
2.png
shell命令的种类分为外部命令和内部命令
shell自带的命令如:cd dir pwd均为内部命令
非shell自带的命令如:ls ping ifconfig等均为外部命令,外部命令一般存放在/bin /sbin等的文件夹中。
shell为什么能够找到外部命令?这依赖于环境变量 PATH,可以通过 `echo PATH`对环境变量进行查看。

硬件—>内核—>系统调用—>shell 库函数—>应用

Linux文件系统:

程序编译方式: \把程序的源代码,转换成二进制格式的CPU指令,或汇编代码的过程。
动态连接 \编译程序的时候,指明库文件的路径,依赖操作系统有库文件。
静态编译 \编译程序的时候,把库文件复制到程序中去,不需要依赖操作系统的库文件。静态编译缺点:1.程序的体积会变大。2.如果存在多个程序的时候,就会存在多个库的副本。

进程的类型:
终端:硬件设备,关联一个用户接口
与终端相关:通过终端启动
与终端无关:操作系统引导启动过程当中自动启动

操作系统的组成:
静态:kernel,application
文件系统:组织成层级结构。

FHS:文件系统层级结构标准
Filesystem Hierarchy Standard
/bin:所有用户可用的基本命令程序文件;
/sbin:供系统管理使用的工具程序;
/boot:引导加载器必须用到的各静态文件:kernel,initramfs(initrd),grub等
/dev:存储特殊文件或设备文件;
设备有两种类型:字符设备(线性设备)、块设备(随机设备)
字符设备:比如a b c三个字符处理是安顺序执行的,线性设备,例如键盘的输 入是按顺序执行的。
块设备:比如将a b c三个字符打包,再进行处理。随机设备,例如看一部电影,可以随机的观看某一集,而不用从首集观看。
/etc:系统程序的配置文件,只能为静态,不是可执行文件。一般安装其他程序的时候,都会在/etc目录下,以程序的名字创建目录。
/home(可选):普通用户的家目录的集中位置:一般每个普通用户的家目录与用户同名的子目录,/home/USERNAME
/root:管理员的家目录:可选
/lib:为系统启动或根文件系统上的应用程序(/bin和/sbin等)提供共享库,以及为内核提供内核模块。
libc.so.:动态连接的C库;
ld
:运行时链接器/加载器;
modules:用于存储内核模块的目录;
/lib64:64位系统特有的存放64位共享库的路径;
/media:便携性设备挂载点,cdrom,floppy等;
/mnt:其他文件系统的临时挂载点(其他硬盘);
/opt:附加应用程序的安装位置;(可选路径);
/srv:当前主机为服务提供的数据;
/tmp:为哪些会产生临时文件的程序提供的用于存储临时文件的目录:可供所有用户执行写入操作;有特殊权限;
/usr:usr Hierarchy,全局共享的只读数据路径;
子目录:bin,sbin,
lib,lib64
include:C程序头文件
share:命令手册页和自带文档等架构特有的文件存储位置
local:另一个层级目录;
src:程序源码文件的存储位置

/usr/local:local hierarchy,让系统管理员安装本地应用程序;也通常用于安装第三方程序;
/var hierarchy,存储常发生变化的数据的目录;
/proc :虚拟文件系统,内核及进程存储其相关信息;它们多为内核参数,例如net.ipv4.ip_forward,虚拟为net/ipv4/ip_forward,存储于/proc/sys/,因此其完整路径为/proc/sys/net/ipv4/ip_forward;
/sys:sysfs虚拟文件系统提供了一种比proc更为理想的访问内核数据的途径。其主要作用为管理Linux设备提供一种统一模型的接口;