热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CLI简介与linux命令初步

CLI简介与linux命令初步,Go语言社区,Golang程序员人脉社

人们所使用的计算机是由许多看得见摸得着的硬件和运行于其上的软件所组成的,但使用者并不能直接操作硬件,只能通过操作系统这个计算机中最重要的软件来和计算机交互以完成计算任务。当前各种操作系统实现的人机交互接口中,最重要的两种为:CLIGUI
GUI或者说graphical user interface(图形用户接口),允许用户使用鼠标和键盘操纵屏幕上的各种视觉元素来完成和计算机的交互。
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 -l test.txt并按下回车键,终端打印出一行字符,之后再出现命令提示符。这个过程shell便执行了一条命令,并做好准备等待用户的再次输入了。其中ls代表这条命令的命令名称,-l test.txt是命令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!


推荐阅读
  • systemd-nspawn可以创建最轻量级的容器(ns的意思就是namespace),本文的实验平台是Ubuntu16.04,x86_64机器。本文的目的是:在Ubuntu中用syst ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 开发笔记:计网局域网:NAT 是如何工作的?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了计网-局域网:NAT是如何工作的?相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 本文介绍了如何使用双路由器有线搭建一个小型的局域网网络,解决家庭或公司多个网络设备无法同时上网的问题。详细讲解了两种简单快速的组网方式,并提供了具体的设置步骤和注意事项。 ... [详细]
  • 本文介绍了如何在Azure应用服务实例上获取.NetCore 3.0+的支持。作者分享了自己在将代码升级为使用.NET Core 3.0时遇到的问题,并提供了解决方法。文章还介绍了在部署过程中使用Kudu构建的方法,并指出了可能出现的错误。此外,还介绍了开发者应用服务计划和免费产品应用服务计划在不同地区的运行情况。最后,文章指出了当前的.NET SDK不支持目标为.NET Core 3.0的问题,并提供了解决方案。 ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
  • top命令使用方法及解读
    本文介绍了top命令的使用方法和解读,包括查看进程信息、系统负载、内存状态、CPU占用等内容。通过top命令可以持续观察系统上运行的进程,并了解系统负载情况,及时关闭一些进程以减轻系统负担。同时,还介绍了top命令的快捷键和安全模式启动方法。通过本文的学习,读者可以更好地使用top命令来管理系统进程。 ... [详细]
  • HSRP热备份路由器协议的应用及配置
    本文介绍了HSRP热备份路由器协议的应用及配置方法,包括设计目标、工作原理、配置命令等。通过HSRP协议,可以实现在主动路由器故障时自动切换到备份路由器,保证网络连通性。此外,还介绍了R1和R2路由器的配置方法以及Sw1和Sw2交换机的配置方法,最后还介绍了测试连通性和路由追踪的方法。 ... [详细]
  • 如何使用PLEX播放组播、抓取信号源以及设置路由器
    本文介绍了如何使用PLEX播放组播、抓取信号源以及设置路由器。通过使用xTeve软件和M3U源,用户可以在PLEX上实现直播功能,并且可以自动匹配EPG信息和定时录制节目。同时,本文还提供了从华为itv盒子提取组播地址的方法以及如何在ASUS固件路由器上设置IPTV。在使用PLEX之前,建议先使用VLC测试是否可以正常播放UDPXY转发的iptv流。最后,本文还介绍了docker版xTeve的设置方法。 ... [详细]
  • docker容器的数据管理一:数据卷实现数据的永久化,完全独立于容 ... [详细]
  • 俗话说,好记性不如烂笔头,这些东西也都是我Google来的,做个笔记以后自己安装也方便些。因为官方wiki的BeginnersGuide讲的非常好,大部分步骤按照wiki一步一步来就 ... [详细]
  • MySQL5.6.40在CentOS764下安装过程 ... [详细]
  • NSD cisco高级路由与交换技术2014.8.12
    实验01:DHCP服务的应用实验目标:通过建立DHCP服务,给计算机自动分配地址实验环境:实验步骤:一、配置计算机pc8pc ... [详细]
author-avatar
万承裕常明
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有