Linux下一切皆文件
- 在Linux下的话,一切皆文件。主要是看待诸如软硬件设备与磁盘文件的看法:一切皆文件,比如说显示器它也是文件,键盘也是文件,普通文件肯定是文件。
- 首先就是显示器这个东西,它其实就是可以打印东西的,问题就在于,这是谁打印的,实际上就是你的程序在向显示器打印,站在程序的角度,就是在向显示器写入数据。那能不能从显示器读取?不会的,那些你看起来是在从显示器读取数据的行为,实际上是从键盘在读取数据,然后只不过是给你回显到显示器上面而已,为了让你看到你输入的效果而已。对于显示器,程序只负责写,读方法为空
- 如果说把键盘也当做文件来看待的话,那他提供的方法站在程序的角度之上***,程序只能从键盘那个文件读,不能写,写方法为空。***
- 对于一个正儿八经的普通文件来讲的话,那当然读写方法都有。
- 因此不管是对于那些普通文件还是键盘还有显示器,他们都有读写方法,在我Linux看来的话,能过去读,能够去写,那自然都是文件。
- 可能有时候部分读写方法为空,比如说键盘,显示器之类,但我就认为他与普通文件是一样的。Linux下一切皆文件网卡也是文件,也可以收发数据。
- ***正是因为Linux下面一切文件,所以说对于指令echo加一个字符串的话,在以前的说法就是说把这个字符串给他打印在显示器上,但实际上,其实就是把这个字符串给他写入到显示器文件当中。***是默认把这个字符串给他写入到显示器文件当中。
- 但凡能够去读,能够去写,这样的设备文件的话,一般来讲就当成文件,在Linux下的话,一切皆文件
- 键盘啊,显示器啊这些东西它与文件实际上没有任何区别,就是其实你往文件当中去写,跟你往显示器里面去写一模一样,你还看不到,而且你也根本就不知道他在干啥,到后来你就会发现就是从文件上当中读写与从显示器跟键盘当中读写其实根本没有任何差别。
Linux下指令的本质
- 首先到底是怎么去看待指令?这个指令究竟是什么东西,
- 首先,指令和可执行程序都是可以被执行的,所谓的指令,本质上就是可执行程序。
- 当输入一条指令的时候,首先是先在系统当中去查找这条指令,当输入一条非法的指令的话,就会返回command not found。
- 所以指令一定是在系统的某一个位置存在的。
- 指令就是可执行程序,然后你输入的指令首先是需要经过在系统当中去查找匹配,如果找到了,然后就去对应执行那个可执行程序
- 指令是在系统中特定的路径下存在的,这些指令一定是某种可执行程序,你肯定是可执行程序,如果不是可执行程序的话,凭什么就能够让你运行起来,这些肯定都是用c/c++/Python或某些脚本语言写的可执行程序
- 指令的本质就是可执行程序,和我们自己写的代码编译好的程序没有本质区别。
- 把可执行程序放到系统的某些特定路径下,这就是安装。把可执行程序从系统的某些路径下面删掉,其实这个行为就是卸载
- 这个世界上所有的指令,软件与工具全部都是可执行程序,所以对于指令而言,看了一番,说白了其实就是别人写好的可执行程序然后放在系统中仅此而已。
- 指令的本质就是一个文件,只不过是可执行文件.exe罢了,就是直接安装到了系统的某种路径下。
- 指令它其实并不神秘,只不过是系统当中的一个可执行程序文件而已,所以学指令其实就是在学一个一个的可执行程序的用法而已。
- 指令就是在Linux系统上面编好的一个软件,二进制指令罢了,我们一定能够在系统中去找到他
which 指令(查看指令所在系统路径)
- which 就是查看对应指令它的一个路径
- 指令的话一般是在Linux系统的根目录下/usr/bin/下