当命令行输入javac TestApplication.java
时发生了什么?
文件系统
- 找到javac命令
- 找到Javac所指向的程序
- 找到TestApplication.java这个文件
登录式shell读取配置文件?
发现不是绝对路径命令,也不是别名命令,也不是内部命令,所以直接得去系统路径PATH里面依次找,PATH以冒号分割
还可以使用env命令来查看到系统中所有的环境变量。
这里会在/usr/bin/java里面找到java这个命令.但是这个命令好像不是软链接(Symbolic link),因为ls -al | grep java 没有反应?
自己也可以定义命令:ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home/bin/java /usr/local/bin/java8
这就是在/usr/local/bin/中创建了一个java8的软链接指向/Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home/bin下的java程序。
表面上,用户通过文件名,打开文件。 系统内部这个过程分成三步: 首先,系统找到这个文件名对应的inode号码; 其次,通过inode号码,获取inode信息; 最后,根据inode信息,找到文件数据所在的block,读出数据。 、 https://blog.csdn.net/angelxf520/article/details/82713132
文件储存在硬盘上,硬盘的最小存储单位叫做”扇区”(Sector)。每个扇区储存512字节(相当于0.5KB)。 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个”块”(block)。这种由多个扇区组成的”块”,是文件存取的最小单位。”块”的大小,最常见的是4KB,即连续八个 sector组成一个 block。 文件数据都储存在“块”中,那么很显然,还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为“索引节点”。 每个inode都有一个号码,操作系统用inode号码来识别不同的文件。这里值得重复一遍,Unix/Linux系统内部不使用文件名,而使用inode号码来识别文件。对于系统来说,文件名只是inode号码便于识别的别称或者绰号。