2017-10-10Linux基础知识基础命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2017-10-10Linux基础知识基础命令相关的知识,希望对你有一定的参考价值。

2017-10-10Linux基础知识(6)基础命令

  上一章中我们主要介绍了一些Linux的基础命令和命令行接口的格式,在Linux中,命令是必须要掌握一些基础命令,在以后的shell脚本当中,我们也要运用这些命令来进行处理系统当中繁杂的任务,那么在接下来的章节中,我们开始讲述命令的格式和如何获取使用帮助等。

一、命令的语法格式

  在Linux中,所有的命令都基本是有它的语法格式,示例如下:

  # COMMAND OPTIONS ARGMENTS

  以上这三个很好的解释,无非就是命令、选项和参数组成,说明用户发起的命令,就是请求内核将某个二进制程序运行为一个进程来对参数进行操作,而添加选项就是指定命令的特性功能进行添加和修改的一种,那么命令本身就是一个可执行的程序文件,通常为二进制格式的文件,也有可能是调用共享库文件,命令也是分为两大类,一种是管理的命令,另一种是普通的命令,不过多数的文件也都会存放在其它以下路径中:

  /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/bin, /usr/local/sbin

  而普通和管理类命令则存放以下路径:

  普通命令:/bin, /usr/bin, /usr/local/bin
  管理命令:/sbin, /usr/sbin/, /usr/local/sbin

  除了一些普通类和管理类以及其它的命令之外,还有共享库,之前我们也讲过系统调用的作用,通过内核将底层复杂而又有差异化的硬件给隐藏起来,从而向上统一输出一个简洁而又统一的接口,不过这个接口还是过于底层,所以在系统调用的接口上,又封装了一个更复杂的组件,我们称之为库,使得离人又更近了一步,使得在程序开发中直接调用该功能的库就可以了,如果不想调用该功能的库,可以从系统调用接口进行开发程序,所以共享库方便了程序开发维护的成本以及缩短了开发的时间周期,共享库有两类,一种是32位的库,另一种是64位的库,而32位不能兼容64位的,反之是可以的,那么共享库路径如下:

  共享库:/lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64
    32bit的库:/lib, /usr/lib, /usr/local/lib
    64bit的库:/lib64, /usr/lib64, /usr/local/lib64

  注意:并非所有命令都有一个在某目录与之对应的可执行文件。
  既然命令基本都是可执行的二进制文件,那么就要有它的遵守命令格式,比如在常见的Windows中,可执行文件格式为.exe,而Linux的格式为elf。在之前的第一章中我们讲过,使用file来解析命令格式,这里便不多做介绍。

1.1 内部命令和外部命令

  刚才介绍完命令的格式以及命令所在的路径之后,现在介绍一下什么内部命令和外部命令。
  内部命令就是Shell程序自带的命令,我们可使用builtin help查看一下内部命令,而Shell程序是个独特的程序,负责解析用户提供的命令。
  外部命令也就独立的可执行的程序文件,通常文件名即为命令名,由环境变量来进行提供。
  当用户键入某个命令或其它字符时,Shell程序会负责解析用户提供的命令,如果解析为外部命令会从环境变量中进行查找,而环境变量就是从那些路径中查找用户键入的命令字符串对应的命令文件。查找次序是自左而右,如果找到了该命令对应的文件时,就会停止查找。环境变量的名称为$PATH,我们使用echo回显命令来查看$PATH的环境变量:

  # echo $PATH
  /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

  如果查看改命令是内部还是内部命令,我们需要用type命令来查看,格式如下:

  # type COMMAND

1.2 命令选项

  命令的选项(OPTIONS)是指定其命令的运行特性,通过它就可以对命令的功能进行修改和增加以及改变某些特性,通常选项两种表现形式,一种是长选项,可以做到见名之意,但是长选项有可能会让人记不住,例如--help,和--human-readable,这就是长选项,但需要注意的是,长选项不能合并。
  另一种是短选项,例如:-C-l-d等,不过需要注意的是,有些命令选项没有-,如果同一个命令使用多个短选项,可多数合并,例如:-l-d合并i来就是-ld,但短选项不能做到见名之意。

1.3 参数

  所谓的参数就是命令作用的对象,命令对什么生效,主要是目录或文件,但需要注意的是:不同的命令参数,有些命令可同时带多个参数,多个之间可以以空白字符分隔开来,例如:

  # ls -ld /var /etc

二、获取命令的使用帮助

  在Linux中无论是查询命令还是搭建服务,利用帮助文件会让你掌握该服务或命令的基本使用以及对它们的详细介绍,这无疑是你对学习Linux有很大的帮助,在内部和外部的命令中,都有该命令相关的帮助。
  内部命令示例如下:

  # help COMMAND

  那么外部命令是自带的简要格式的使用帮助,每个命令中的简要帮助都会显示其主要信息,示例如下:

  # COMMAND --help

  如果你想查看详细信息以及该命令或服务的描述,就要看命令的帮助手册manual,简称man手册,其位置就在/usr/share/man目录下,命令使用如下:

  # man COMMAND

  那么man手册的大致内容分布如下:

    SECTION(介绍):
	NAME:	     功能性说明;
	SYNOPSIS:   语法格式;
	DESCRIPTION:描述;
	OPTIONS:    选项;
	EXAMPLES:   使用示例;
	AUTHOR:     作者;
	BUGS:	     报告程序bug的方式;
	SEE ALSO:   参考;
	...
    SYNOPSIS(常用参数):
	[]:   可选内容;
	<>:   必须提供的;
	a|b|c:多选一;
	...:  同类的内容可出现多个;

  以上是使用手册大致的内容,而使用手册通常是压缩格式的文件,且man手册是有章节之分,通常为1-9章在/usr/share/man目录下有man1和man2等目录,这些目录都和man手册章节有关,章节示例如下:

  1、用户命令;
  2、系统调用;
  3、C库调用;
  4、设备文件及特殊文件;
  5、配置文件;
  6、游戏及使用帮助;
  7、杂项;
  8、系统管理命令工具及守护进程;
  9、内核进程(非标准);

  如果想查看某个章节的话,只需要在man命令后面跟上某个数字选项就可以了,命令格式为:

  # man CHAPTER COMMAND

  需要注意的是,其并非每个COMMAND在所章节下都有手册,如果你想查看某个命令或一些其它的例如库调用在那个章节的话,则命令格式为:

  # whatis COMMAND

  还得要注意的是,man的执行过程都是查村数据库来进行的,如果你想手动更新的话为一下命令:

  # makewhatis

  将man手册打开之后的操作方法说明一下:

    翻屏:
	空格:向文件尾部翻一屏;
	b:向文件首部翻一屏;
	Ctrl+d:向文件尾部翻半屏;
	Ctrl+u:向文件首部翻半屏;
	Enter:向文件尾部翻一行;
	k:向文件首部翻一行
	#G:跳转至最后一行;
	1G:跳转至文件首部;
    文件搜索:
	/keyword:从文件首部向文件尾部一次查找,不区分大小写;
	?keyword:从文件尾部向文件首部查找;
		n:与查找命令方向相同;
		N:与查找命令方向相反;
    退出:
	q: quit

  选项:-M /PATH/TO/SOMEDIR:到指定位置目录下查找手册并打开之;
  除了本地的之外,还有在线获取命令的帮助文档,命令为:

  # info COMMAND

  还有很多应用程序会自带帮助文档路径为:/usr/share/doc/APP-VERSION,文件如下:

  README:程序的相关信息;
  INSTALL:安装帮助;
  CHANGES:版本迭代时的改动信息;

本文出自 “天蝎座的博客” 博客,转载请与作者联系!

以上是关于2017-10-10Linux基础知识基础命令的主要内容,如果未能解决你的问题,请参考以下文章

Linux基础命令---bc

Linux基础命令---bc

Linux基础:简介安装常用命令和JDKMysqlTomcat的安装

Linux入门基础之 下

Linux应用程序基础 1应用程序与系统命令的关系 文件位置 主要用途

20145306《信息安全系统设计基础》课程总结