CLI简介与linux命令初步
⼈们所使⽤的计算机是由许多看得见摸得着的硬件和运⾏于其上的软件所组成的,但使⽤者并不能直接操作硬件,只能通过操作系统这个计算机中最重要的软件来和计算机交互以完成计算任务。当前各种操作系统实现的⼈机交互接⼝中,最重要的两种为:CLI和GUI。
GUI或者说graphical user interface(图形⽤户接⼝),允许⽤户使⽤⿏标和键盘操纵屏幕上的各种视觉元素来完成和计算机的交互。linux循环执行命令脚本
CLI或者说command-line interface(命令⾏接⼝),是⼀种通过在终端窗⼝中键⼊⽂本命令来实现与计算机交互的接⼝。
⼀个终端窗⼝中的命令⾏接⼝看起来可能是这个样⼦的:
许多设备(如计算机,路由器,交换机等)的操作系统中均包含命令⾏接⼝,命令⾏允许⽤户为命令指定特定的参数来更精确的控制计算机的执⾏。⼀些重复的任务可以写成脚本来执⾏,这样可以更⾼效和更少出错。通过命令⾏执⾏任务在⼀些情况下要⽐使⽤图形⽤户接⼝更快⼀些,但同时也需要使⽤者记住⼤量的命令。因此,命令⾏接⼝通常被更专业的⽤户来使⽤。
在类unix操作系统中的命令⾏接⼝称为shell,在linux的各种shell实现中,使⽤最为⼴泛的是bash。(注:在本⽂和之后的⽂章中,如⽆特殊说明,所说的shell均指bash,准确的说是GNU bash,版本:4.2.46(1)-release。实验所⽤的linux操作系统为centos7.1,内核版本
为3.10.0-327.el7.x86_64)
下⾯让我们来看看如何使⽤⼀个命令⾏接⼝:
如上图所⽰,窗⼝右上⽅有⼀段字符,紧随其后的是不停闪烁的光标。其中这段字符是命令提⽰符prompt,后⾯的光标意味着⽤户可以在此处键⼊命令了。⽤户每键⼊⼀个字符,光标即向右移动⼀格。当⼀条命令键⼊完成后,通常通过按下enter键来通知shell去解释和执⾏。 shell中,⼀条简单命令(simple command)包含命令名称(command name),可选数⽬的选项(option)或参数(argument)和重定向(redirection)。它们之间通常由空格键产⽣的空⽩字符所分隔:
command [option|argument]... [redirection]...
#在描述⼀个命令的使⽤⽅法时,如⽆特殊说明处于[]内的代表可选,...代表多个,|代表或者。
如下图实例:
图中在命令⾏键⼊了ls -并按下回车键,终端打印出⼀⾏字符,之后再出现命令提⽰符。这个过程shell便执⾏了⼀条命令,并做好准备等待⽤户的再次输⼊了。其中ls代表这条命令的命令名称,-是命令ls的两个参数,这条命令中并没有出现重定向。(注:关于重定向和终端显⽰的那⾏字符的意思,后⾯会有相关⽂章具体解释。此处略过。)
⼀个linux系统中包含⼤量的命令,通常每个命令⼜包含许多选项或参数。要了解每个命令的⽤法是不现实的,要在⼀篇或⼏篇博⽂内去描述它们也是不可能完成的任务。好在linux系统中有这些命令的⼿册manual。想要了解某个命令的使⽤⽅法或选项⽤法时可以在命令⾏中执⾏特定的命令来查看该命令的⼿册。如:
man cmd_name #⽤于查看cmd_name的manual⼿册。
info cmd_name #⽤于查看cmd_name的描述信息。
cmd_name --help 或 cmd_name -h #在终端中打印出command_name的帮助信息。
除此之外还有许多其他⽅式来学习命令的⽤法,但通常知道这三个就⾜够了。其中man命令显⽰的⼿册⾮常详细,也是在linux命令查询中使⽤最为频繁的⼀个。这⾥简单介绍⼀下man的使⽤⽅法,man后加命令名并执⾏后会在终端打开⼿册,以⽂本的⽅式显⽰在终端窗⼝之上。其中:
按下键盘上q键即退出此⼿册
向下箭头和enter键为显⽰下⼀⾏内容
空格键为显⽰下⼀页内容
键⼊字符串/pattern并回车之后即为从当前页开始向下搜索关键词pattern
键⼊字符n为重复前⼀个搜索
man的⽤法还有很多,这⾥只列出常⽤的⼏个。现在,关于它的更多⽤法我们完全可以执⾏man man这条命令来查看了。
linux中的命令有许多种,粗略的看可以分为内部命令和外部命令两种。在这⾥,内部命令是bash内部实现的命令,即在bash源码中能够到这个命令是如何定义的,它们是bash这个接⼝程序的⼀部分。那么显然,外部命令就是独⽴于bash之外的命令,系统中绝⼤多数为外部命令。为了⽅便⽤户更灵活的使⽤这些命令,bash还实现了组合使⽤多个命令,循环和分⽀结构,历史命令记录等等功能。
熟练掌握bash和各种基础命令的⽤法,是⼀个linux系统管理员必不可少的技能。⽽且透过命令⾏接⼝,还能让其他计算机软硬件从业⼈员或爱好者了解操作系统的⼯作原理。
作为开篇,我们对命令⾏接⼝和linux命令做了简介。之后的⼏篇我们会进⼊到linux常⽤基础命令的讲解中。let’s begin!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。