什么是Shell
Shell 把我们输入的指令,传递给操作系统去执行,所以 Shell 是一个命令行的用户界面,平时一个词是Bash (Bourne Again Shell) 是 shell 组成的程序。也就是说,我们熟悉的cat 指令,是由shell来实现的。
我们日常所用的命令,都会记录在文件中,比如:which less,会显示出less 抽象出来的程序
我们可以猜测,在 linux 中,一切皆文件,哪里不对,找文件!!!
文件类型
Linux 下的目录也是一种文件;但是文件也不只有目录和可执行文件两种。常见的文件类型有以下 7 种:
-
普通文件(比如一个文本文件);
-
目录文件(目录也是一个特殊的文件,它用来存储文件清单,比如/也是一个文件);
-
可执行文件(上面的rm就是一个可执行文件);
-
管道文件(我们会在 07 课时讨论管道文件);
-
Socket 文件(我们会在模块七网络部分讨论 Socket 文件);
-
软链接文件(相当于指向另一个文件所在路径的符号);
-
硬链接文件(相当于指向另一个文件的指针,关于软硬链接我们将在模块六文件系统部分讨论)。
你如果使用ls -F就可以看到当前目录下的文件和它的类型。比如下面这种图:
-
- 结尾的是可执行文件;
-
= 结尾的是 Socket 文件;
-
@ 结尾的是软链接;
-
| 结尾的管道文件;
-
/ 结尾的是目录
-
没有符号结尾的是普通文件;
查找/看文件基本命令
- touch xxx.txt 创建文件
- mkdir xxx 创建文件夹
- 查看
- rm 删除
- vi
- cat :查看完成的文件适合小型文件
- more / less: 查看一个文件但是只读取用户看到的内容到内存,因此消耗资源较少,适合在服务器上看日志
- head/tail
- find: 全局查找文件
- find 指令帮助我们在文件系统中查找文件。 比如我们如果想要查找所有.txt 扩展名的文件,可以使用find / -iname “*.txt”,-iname这个参数是用来匹配查找的,i 字母代表忽略大小写,这里也可以用-name替代
grep
这个要重点说下,刚开始学一脸懵逼。上面也讲,linux 很多配置都在文件中,如果用cat,less, more,会很冗余,不进入文件怎么查看想要的信息呢?
grep 这个词,我们分成三段来看,是 g|re|p。
-
g 就是 global,全局;
-
re 就是 regular expression,正则表达式;
-
p 就是 pattern,模式。
体会一下:
echo ‘wo e le’ >> text.txt
grep ‘wo’ text.txt
是不是出现了包含 wo 的行