专栏首页self_studyCLI简介与linux命令初步

CLI简介与linux命令初步

作为开篇,我们对命令行接口和linux命令做一下简介。之后的几篇我们会进入到linux常用基础命令的讲解中。let's begin!

注:在本文和之后的文章中,如无特殊说明,所说的shell均指bash,准确的说是GNU bash,版本:4.2.46(1)-release。实验所用的linux操作系统为centos7.1,内核版本为3.10.0-327.el7.x86_64

人们所使用的计算机是由许多看得见摸得着的硬件和运行于其上的软件所组成的,但使用者并不能直接操作硬件,只能通过操作系统这个计算机中最重要的软件来和计算机交互。当前各种操作系统实现的人机交互接口中,最重要的两种为:CLIGUI。 GUI或者说graphical user interface(图形用户接口),允许用户使用鼠标和键盘操纵屏幕上的各种视觉元素来完成和计算机的交互。 CLI或者说command-line interface(命令行接口),是一种通过在终端窗口中键入文本命令来实现与计算机交互的接口。

许多设备(如计算机,路由器,交换机等)的操作系统中均包含命令行接口,命令行允许用户为命令指定特定的参数来更精确的控制计算机的执行。一些重复的任务可以写成脚本来执行,这样可以更高效和更少出错。通过命令行执行任务在一些情况下要比使用图形用户接口更快一些,但同时也需要使用者记住大量的命令。因此,命令行接口通常被更专业的用户来使用。

在类unix操作系统中的命令行接口称为shell,在linux的各种shell实现中,使用最为广泛的是bash。

一个终端窗口中的命令行接口看起来可能是这个样子的:

下面让我们来看看如何使用一个命令行接口: 如上图所示,窗口左上方显示的字符串是命令提示符(prompt),紧随其后的是不停闪烁的光标,意味着用户可以在此处键入命令了。用户每键入一个字符,光标即向右移动一格。当一条命令键入完成后,通常通过按下enter键来通知shell去解释和执行。 shell中,一条简单命令(simple command)包含命令名称(command name),可选数目的选项(option)或参数(argument)和重定向(redirection)。它们之间通常由空格键产生的空白字符所分隔:

command [option|argument]... [redirection]...

#在描述一个命令的使用方法时,如无特殊说明 处于[]内的代表可选,...代表多个,|代表或者。

如下图实例:

图中在命令行键入了ls -l test.txt并按下回车键,终端显示命令执行的结果,随后继续出现命令提示符,等待用户的再次输入。其中ls代表这条命令的命令名称,-l test.txt是命令ls的两个参数,这条命令中并没有出现重定向。(注:关于重定向和执行结果的意义,后面会有相关文章具体解释。此处略过。) 一个linux系统中包含大量的命令,通常每个命令又包含许多选项或参数。要在一篇或几篇博文内去讲解清楚每个命令的用法是不现实的。好在linux系统中有这些命令的手册(manual)。用户随时可以查阅。

方法为执行如下命令:

man cmd_name #用于查看cmd_name的手册。
info cmd_name #用于查看cmd_name的描述信息。
cmd_name --help 或 cmd_name -h #在终端中打印出cmd_name的帮助信息。

除此之外还有许多其他方式来学习命令的用法,但通常知道这三个就足够了。其中man命令显示的手册非常详细,也是在linux命令查询中使用最为频繁的一个。这里简单介绍一下man的使用方法,man加命令名并执行后会在终端打开手册,以文本的方式显示。

可以执行的操作有:

q键退出此手册
向下箭头和enter键显示下一行内容
空格键显示下一页内容
键入字符串/pattern并回车代表从当前页开始向下搜索关键词pattern
n键为重复前一个搜索

man的用法还有很多,这里只列出常用的几个。关于它的更多用法我们现在可以执行命令man man(打开man命令的手册)来查看了。 熟练掌握bash和各种基础命令的用法,是一个linux系统管理员必不可少的技能。而且透过命令行接口,还能让其他计算机软硬件从业人员或爱好者了解操作系统的工作原理。接下来,让我们进入到具体命令的学习当中。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • SHELL(bash)脚本编程六:执行流程

    bash命令的执行分为四大步骤:输入、解析、扩展和执行。 本文将详述bash命令的一般处理过程: 如图所示

    用户5030870
  • linux基础命令介绍四:文本编辑 vim

    其中file可以是一个新文件,也可以是原有文件。这样的命令执行后将打开编辑器,显示文件file的内容。如图所示:

    用户5030870
  • linux基础命令介绍十二:磁盘与文件系统

    本篇讲述磁盘管理相关的命令。计算机中需要持久化存储的数据一般是保存在硬盘等辅助存储器中。硬盘一般容量较大,为了便于管理和使用,可以将硬盘分成一到多个逻辑磁盘,称...

    用户5030870
  • 一个好的Qml文件(翻译文)

      什么样的Qml文件(通常称为组件)是一个高质量的文件?   让我们看看示例1:

    Qt君
  • CNCF网络研讨会:运行在Kubernetes上的应用程序的数据保护(视频+PDF)

    Kubernetes现在实际上是部署和管理无状态应用程序的平台。它还在部署和管理有状态应用程序方面取得了长足的进步。管理有状态应用程序不仅仅是在出现故障时配置和...

    CNCF
  • CNCF网络研讨会:运行在Kubernetes上的应用程序的数据保护(PDF)

    Kubernetes现在实际上是部署和管理无状态应用程序的平台。它还在部署和管理有状态应用程序方面取得了长足的进步。管理有状态应用程序不仅仅是在出现故障时配置和...

    CNCF
  • 可读代码编写炸鸡十 - 保持单纯

    难以置信,我用了一个月的时间重新捡起了这个炸鸡。很惭愧,我很长的时间没有阅读相关的东西了。但是感谢当时的我留下了宝贵的思维导图,保留了我当时的思路。

    syy
  • 线性资本合伙人:技术驱动这个词被说滥了,但我们真理解对了吗?

    首先这里只谈软件。这个话题分成三部分,我们将分三篇文章来讨论,读完之后你可以知道: 1)什么叫技术驱动; 2)什么叫数据公司; 3)为什么要做一家技术驱动的数...

    新智元
  • 白话深度神经网络

    近些年来,深度神经网络异常火爆,各种深度神经网络架构层出不穷。大有千树万树梨花开,各领风骚数小时的趋势!

    用户1263954
  • [virt][qemu]clocksource的管理和虚拟化

    前言: kvm-clock,tsc,hpet,acpi_pm,pit,rtc。。。这些词看着都晕了@@ 虚拟化场景下,容作者在这里一一道来。 分析: 1,L...

    皮振伟

扫码关注云+社区

领取腾讯云代金券