快速学习命令的方法

概述:用户使用shell跟内核交互,Linux 中有很多命令,不同的命令有不同的功能。多个命令合起来可以完成一个大的功能。命令很多我们不可能记得每条命令的用法。

所以,我们必须有一种方法来快速知道一个命令是如何使用的,有什么作用。所以,几乎所有的命令都提供了帮助手册,告诉命令的使用者如何使用命令、命令 的作用等等。帮助手册页很长,我们不可能为了使用一个命令,而从头到尾把帮助手册读完,这时候需要一种快速读懂(有目的的去读)命令的帮助手册的方法。是如何实现的呢?管理整个计算硬件的其实是核心(kernel 计算要系统),通常用户(user)都是以 shell 来与核心沟通,让核心达到我们所想要实现的目的。

shell 就是一个应用程序,它读入用户键入的命令,把它转换成 Linux 系统更易于理解的格式。它也包括一些基本的程序结构,让用户做选项、循环,以及把值

存储在变量中。

一、了解命令的基本格式

shell 执行程序:

shell 负责执行终端请求的程序。

用户每次向 shell ” 命令提示符[[email protected] ~]# ” 键入一行信息,shell 会在分析后决定做什么。 shell 所涉及到的每行信息都遵循相同的基本格式。如:

[[email protected] ~]# command   [optons parameter1 | parameter2]...  parameter1  parameter2 ...
                  命令      选项    选项参数                   命令参数(1)   命令参数(2)

命令,一般都会提供帮助文档,只有了解了命令格式的各项意义,我们才可能很快学会新命令的使用。至少在命令行提示符中键入命令时,不会写错。

第一字段: command(命令)   可执行文件

第二字段: 命令的选项,些命令的选项带参数,有些命令的选项不带参数

中括号 [] 是可选择项,在键入该命令的时候可以选择是否省略命令的选项。

竖线 “|” 表示左右两边任选一个作为,命令选项的参数。

省略号“...” 表示该命令选项可以有多个,但是书写时,要按照下面的格式。

选项又分为:

1、长选项,使用 --options 格式。 一般选项名称是完整的。如果一个命令的长选项有多个,是不可以合并的。

2、短选项,使用 -options 格式, 一般是长选项名的简写格式。如果一个命令的短选项有多个,是可以合并的。

ls 命令的选项 -b 和 --escape 作用是一样的。

[[email protected] ~]# ls -b /root/
anaconda-ks.cfg  install.log  install.log.syslog
[[email protected] ~]# ls --escape /root/
anaconda-ks.cfg  install.log  install.log.syslog

注意:长选项是不可以合并使用的,在命令行提示符中,键入的命令使用到多个长选项的时候要分开写

[[email protected] ~]# ls --allblock-size=1 /etc/
ls: unrecognized option ‘--allblock-size=1‘
[[email protected] ~]# ls --all --block-size=4 /root/
.                .bash_history  .bashrc      install.log.syslog  .tcshrc
..               .bash_logout   .cshrc       .lesshst            .viminfo
anaconda-ks.cfg  .bash_profile  install.log  .ssh

第三字段:     命令参数

命令参数有多个需要使用空格隔开。

当用户按照上述描述的格式,在命令行提示符中键入命令以后,按 [Enter] 键后,shell 就分析执行该命令。( Linux 中 [Enter] 为 <CR> 字符表示)shell 会先判断该命令的类型,如果是内部命令的话就直接执行,否则的话,shell 会按照 $PATH 变量的值到磁盘搜索,用户键入的命令。

1、如果搜索到用户键入的命令,产生中断,由内核(kernel)负责把命令文件从磁盘中加载到内存

中来,并开始执行该命令。此时,命令就表示为一个进程。

2、如果 shell 按照 $PATH 变量的值到磁盘中找不到该命令的话,就会报错。

[[email protected] ~]# tree /etc
-bash: tree: command not found

说明:

命令的位置不在 $PATH 中 和 命令不存在,都会报“command not found”

如果,我们键入的命令的位置不在shell搜索 $PATH 路径中,可以使用全路径描述该命令,或把该

命令所在的路径追加到 $PATH 变量中。

1、使用全路径描述文件

    [[email protected] etc]# /usr/bin/tree  /etc

2、把命令所在的路径加到 $PATH 变量中。

    [[email protected] ~]# vim /etc/profile

在 profile 文件中添加一行 $PATH=/path1/path2/:/path2/path3

如,在编译安装 MySQL 数据库,MySQL提供的工具所在的路径设置为,shell默认的搜索路径

($PATH)。这样使用MySQL提供的一些命令,对MySQL服务器操作维护时

就不需要输入命令的全路径了。这样比较方便。在 profile 文件中添加一行

$PATH=/usr/local/mysql/bin 但是刚添加到 $PATH 中的路径,shell并不知道。

我们要通知shell,重读 profile 文件,方法是:

     [[email protected] etc]# . profile

二、我们怎么,知道一个命令的使用方法呢?

一般,命令都会提供帮助文档,我们可以通过帮助文档来查看一个命令的使用方法。我们的命令又分为: shell 内置命令 和 外部命令。

命令的类型不同,获取它的帮助文档的方式也不同。所以,我们首先要判断一个命令的类型?

判断 command 类型,使用 【type】

[[email protected] etc]# type cd
cd is a shell builtin

得知【cd】命令,是 shell 内置命令,我们可以使用下述方法查看该命令使用方法

[[email protected] etc]# help cd
cd: cd [-L|-P] [dir]
    Change the shell working directory.

    Change the current directory to DIR.  The default DIR is the value of the
    HOME shell variable.
......

[[email protected] etc]# type ls
ls is aliased to `ls --color=auto‘

ls命令,是外部命令。我们使用 【command --help】或【man】命令来查看命令帮助文档。man 中文意思"男人",在 Linux 世界中遨游,不懂就问“男人”。所以要学会 man 的使用。

我们非内核命令的帮助文档存放在,/usr/share 中。

【man】命令是如何工作的?

man 会按照它的配置文件 /etc/man.config 中 MANPATH 定义的路径去搜索命令的帮助文档,当我

们用【man】去查看 command 的帮助文档时,如果 command 的帮助文档不在man 程序的搜索路径

中,man 是找不到 command 的帮助文档的。所以,我们在编译安装源程序的时候,如果我们安装的

程序的帮助文档目录不在【man】的默认搜索路径下,则需要把程序的帮助文档的路径添加【man】

的索引路径中。可以通过编译 /etc/man.config 在 MANPATH 指令中添加上程序的帮助文档的路径

就可以了,如:把 MySQL 的帮助文档的路径添加到【man】的搜索路径中

[[email protected] ~]# vim /etc/man.config
# MANBIN                /usr/local/bin/man
#
# Every automatically generated MANPATH includes these fields
#
MANPATH /usr/man
MANPATH /usr/share/man
MANPATH /usr/local/man
MANPATH /usr/local/share/man
MANPATH /usr/X11R6/man
MANPATH /usr/local/mysql/man/

我们的帮助文档是分章节的,不同章节表示不同的意思。了解帮助文档的不同章节的含义,我们才可以使用【man】命令快速定位到需要的内容。

查看的内容。

1、查看命令有哪些章节?使用【whatis】检索 whatis databases 数据库。而我们刚安装的程序的帮助文档不会记录到数据库里,Linux 系统使用【makewhatis】来生成数据库的。系统把生成数据库的动作做成了系统的周期性任务,“每周的星期天零晨4点22分”执行一次生成 whatis 数据数据的任务。所以我们刚安装的程序,使用【whatis command】是查不到命令有多少章节的。如果需要查看的话,我们可以手动执行一下【makewhatis】命令,生成 whatis databases.

[[email protected] ~]# whatis shutdown
shutdown             (2)  - shut down part of a full-duplex connection
shutdown             (3p)  - shut down socket send and receive operations
shutdown             (8)  - bring the system down

2、如章节表示的意义如下所述

man1       用户命令
man2       系统调用
man3       库调用
man4       设备文件
man5       配置文件
man6       游戏
man7       杂项
man8       管理命令

2、使用【man N】来实现用户随意查看帮助文档章节的内容

[[email protected] ~]# man 8 shutdown

3、使用【help command】来查看 command 的使用方法,没有 man 显示那么详细.

[[email protected] ~]# shutdown --help
shutdown: invalid option -- -
Usage:    shutdown [-akrhHPfnc] [-t secs] time [warning message]
                  -a:      use /etc/shutdown.allow
                  -k:      don‘t really shutdown, only warn.
                  -r:      reboot after shutdown.
                  -h:      halt after shutdown.
                  -P:      halt action is to turn off power.
                  -H:      halt action is to just halt.
                  -f:      do a ‘fast‘ reboot (skip fsck).
                  -F:      Force fsck on reboot.
                  -n:      do not go through "init" but go down real fast.

应用程序的帮助文档,通常是有不同的段落组成的。每个段落描述了应用程序的不同内容。了解帮助文档各段落表示的意义,我们可以快速找到我们想要读取到的内容。

手册的段落:
    1、NAME           命令名称
    2、DESCRIPTION    命令功能的详细描述
    3、OPTIONS        所有选项
    4、FILES          与当前命令相关的配置文件
    5、EXAMPLES       使用示例
    6、SYNOPSIS       使用格式
    7、SEE ALSO       可参考的其它手册

说明:

如果,我们想快速知道 command 是怎么使用的,可以查看帮助手册的 EXAMPLES 段。命令的帮助手册有很多字符组成,那么我们如何定位到 EXAMPLES 字符呢?

当我们使用【man】打开查看命令的帮助手册页的时候,可以使用字符串搜索。

1、输入"/keywork"  从文档的首部向尾部搜索,搜索到指定的字符会高亮显示。

2、输入"?keywork"  从文档的尾部向首部搜索,搜索到指定的字符会高亮显示。

当我们搜索到字符在文档中多处出现有的时候,可以按一些“键”来快速显示下一个搜索到的字符。

1、N键:     跟搜索命令相反,显示找到的下一个关键字

2、n键:     跟搜索命令相同,显示找到的下一个关键字

快速学习命令的方法,布布扣,bubuko.com

时间: 2024-10-23 04:51:34

快速学习命令的方法的相关文章

快速学习MD5的方法

MD5加密的Java实现 在各种应用系统中,如果需要设置账户,那么就会涉及到存储用户账户信息的问题,为了保证所存储账户信息的安全,通常会采用MD5加密的方式来,进行存储.首先,简单得介绍一下,什么是MD5加密.        MD5的全称是Message-Digest Algorithm 5 (信息-摘要算法),在90年代初,由MIT Laboratory for Computer Scientce 和RSA Data Security Inc 的 Ronald L.Rivest开发出来,经MD

Linux学习笔记——获取命令帮助方法及命令分类

命令类型: 内嵌命令:shell 内嵌 外部命令:在文件系统中存在某个路径与命令相同的可执行文件 环境变量:命名的内存空间 变量赋值 #printenv   显示环境变量 #hash     显示缓存命中命令 PATH:  使用:隔开的一组路径 0(1) 查找数据速度标准 获取命令帮助方法: 1.#help  COMMAND          获取内部命令帮助 ,例 help cd    查看cd命令帮助信息 2.# COMMAND --help        获取外部命令帮助,例  ls  -

Java快速学习笔记01

这一波快速学习主要是应付校招笔面试用,功利性质不可避免. 学习网址: http://www.runoob.com/java/java-tutorial.html 执行命令解析: 以上我们使用了两个命令 javac 和 java. javac 命令用于将 java 源文件编译为 class 字节码文件,如: javac HelloWorld.java. 运行javac命令后,如果成功编译没有错误的话,会出现一个 HelloWorld.class 的文件. java 命令可以运行 class 字节码

【Java的JNI快速学习教程】

1. JNI简介 JNI是Java Native Interface的英文缩写,意为Java本地接口. 问题来源:由于Java编写底层的应用较难实现,在一些实时性要求非常高的部分Java较难胜任(实时性要求高的地方目前还未涉及,实时性这类话题有待考究). 解决办法:Java使用JNI可以调用现有的本地库(C/C++开发任何和系统相关的程序和类库),极大地灵活Java的开发. 2. JNI快速学习教程 2.1 问题: 使用JNI写一段代码,实现string_Java_Test_helloworld

前端开发小白必学技能—非关系数据库又像关系数据库的MongoDB快速入门命令(2)

今天给大家道个歉,没有及时更新MongoDB快速入门的下篇,最近有点小忙,在此向博友们致歉.下面我将简单地说一下mongdb的一些基本命令以及我们日常开发过程中的一些问题.mongodb可以为我们提供数据库来存储数据,目前在各大培训机构都会有1天左右的课程进行讲解,同时在实际来发中我们有存储数据和文件的需求,我们需要了解后台数据存储和提供的数据接口,以及如何获取数据,解析数据,也就是我们常说的前后端交互,数据访问等操作,首先我们来启动mongdb服务器. mongodb服务器启动的命令窗口方法:

看我如何快速学习.Net(高可用数据采集平台)

最近文章:高可用数据采集平台(如何玩转3门语言php+.net+aauto).高并发数据采集的架构应用(Redis的应用) 项目文档:关键词匹配项目深入研究(二)- 分表思想的引入 吐槽:本人也是非常讨厌拿来主义的,有些培训每个细节都提到过,主管还找我要实际案例,而不是去安排合适的人去做这件事情,有点过于拿来主义了,有点担心. 好消息的是:高并发数据采集的架构应用(Redis的应用)团队已经实现了,不过有部分代码还是我写的,值得喝彩下,说明团队的能力还是不错的. 最近有时间,我也是用.net完成

Python快速学习10: 循环的对象及设计 (生活的规律)

前言 系列文章:[传送门] 生活逐渐规律,按时睡觉.今天写博客,明天补时间看会书.慢慢的时间很珍惜 我很喜欢! 时钟就像个循环体,我们将它融入生活. 正文 循环对象的并不是随着Python的诞生就存在的,但它的发展迅速,特别是Python 3x的时代,循环对象正在成为循环的标准形式. 灵活的循环方式 (我晚饭后爱上了萨克斯,因为这是生活的一部分.属于我的特殊循环对象,它的按键就像循环方式,然后出来一首美丽的歌曲) 我的萨克斯偶像 循环对象 循环对象是这样一个对象,它包含有一个next()方法(_

Laravel陌生知识点快速学习(二)

Laravel陌生知识点快速学习(二) Authentication用户授权登陆 midlleware中间件,即需要通过它的验证,才能够访问以下界面 例如博客,管理界面需要用户登陆才能访问,游客是不能进入的 以下是路由器的写法 Route::group(['prefix' => 'console', 'middleware' => 'auth'], function(){ Route::any('/', 'console\[email protected]'); Route::resource

【ruby项目,语言提交检查(一)】如何快速学习ruby ?

如何快速学习ruby ? 学习语言最快的思路. 变量,常量,变量类型,操作符, 逻辑语句如 if, else, switch, for, foreach, do while, break, 等等.要学的语言与这些命令相似的命令是什么?了解使用方法即可. 之后,如果是面向对象,就要了解一下关于对象的操作了. 有没有函数库,一般语言都有的.输出命令函数,操作数组,操作字符串,对象属性 操作文本文件 还有一个就是创建对象,类,数组这样的. 好了,成了会了上面的,你还没有学完此语言,但你是可以用此语言做