通常来讲,计算机硬件是由运算器、控制器、存储器、输入/输出设备等共同组成的,而让各种硬件设备各司其职且又能协同运行的东西就是系统内核。Linux系统的内核负责完成对硬件资源的分配、调度等管理任务。由此可见,系统内核对计算机的正常运行来讲是太重要了,因此一般不建议直接去编辑内核中的参数,而是让用户通过基于系统调用接口开发出的程序或服务来管理计算机,以满足日常工作的需要,如图2-1所示。
必须肯定的是,Linux系统中有些图形化工具(比如逻辑卷管理器[Logical Volume Manager,LVM])确实非常好用,极大地降低了运维人员操作出错的概率,值得称赞。但是,很多图形化工具其实是调用了脚本来完成相应的工作,往往只是为了完成某种工作而设计的,缺乏Linux命令原有的灵活性及可控性。再者,图形化工具相较于Linux命令行界面会更加消耗系统资源,因此经验丰富的运维人员甚至都不会给Linux系统安装图形界面,需要开始运维工作时直接通过命令行模式远程连接过去,不得不说这样做确实挺高效的。
图2-1 用户与Linux系统的交互
Shell就是这样的一个命令行工具。Shell(也称为终端或壳)充当的是人与内核(硬件)之间的翻译官,用户把一些命令“告诉”终端,它就会调用相应的程序服务去完成某些工作。现在包括红帽系统在内的许多主流Linux系统默认使用的终端是Bash(Bourne-Again SHell)解释器。主流Linux系统选择Bash解释器作为命令行终端主要有以下4项优势,读者可以在今后的学习和生产工作中细细体会Linux系统命令行的美妙之处,真正从心里爱上它们。
>1:通过上下方向键来调取过往执行过的Linux命令;
>2:命令或参数仅需输入前几位就可以用Tab键补全;
>3:具有强大的批处理脚本;
>4:具有实用的环境变量功能。