天天看点

hualinux ros 1.7: 命令(一)如何学好RouterOS命令一、前言二、ros命令写法三、如何ros命令串讲四、小结

目录

一、前言

二、ros命令写法

2.1 层次结构

2.2 ros命令的格式

三、如何ros命令串讲

3.1 把winbox的操作转为命令方式:起程

3.1.1 使用winbox分析对应的ros命令

3.1.2 例子

3.2 使用问号帮助命令(?):导购

3.2.1 帮助命令的作用

3.2.2 例子

3.3 tab自动补全命令:代步工具

3.3.1 tab补全命令说明

3.3.2 例子

3.4 简写ros命令:加速

四、小结

在前章《RouterOS登录的几种方式》讲到如何使用ssh登录ros,这章开始将讲ros命令,主要是使用ssh连接上ros执行命令。

ros命令很强大,可以直接支持脚本,如果要学好脚本,现在开始使用ros命令是一个不错的选择。

相对winbox的gui图形界面来说,使用命令操作速度更快,如果是批量操作,可以直接把一堆命令放在脚本中执行

这一章我将讲如果用好ros命令

一、前言

在我学ros的这些年,结合我的使用心得,分享一下我是怎么快速学好ros命令的

  1. 与winbox结合。大部分命令位置和winbox差不多,所以结合winbox可以猜命令是怎么打的。
  2. 参考ros官网wiki手册。当有些命令位置与winbox不同的时候,可以去看一下ros的官网手册,里面有相关操作说明
  3. 不要死记硬背。刚开始可以先使用winbox的图形界面,多练习一下就行了,自然能记住,结合自己的理解就更好
  4. 学会使用使用问号帮助命令。有些命令我们只知道大概位置就行了,可以使用的参数之类,可能不记得,这样问号帮助命令就很有用了
  5. 学会使用tab快速补全。有些命令比较长,我们只需要记住前面几个字母(一般3-4个)就行了,剩下的直接使用tab键,如果有相同的也会帮列出来。
  6. 学会简写。为了提速有些命令可以使用简写,比如ip address print ,可以写成 ip add print 或 ip addr print,前者容易产生误解,所以推荐后者

二、ros命令写法

学好ros命令,学语法是必不可少的。

2.1 层次结构

ros由于有许多可用的命令,因此将它们分为以分层菜单级别的方式组织的组。菜单级别的名称反映了相关部分可访问的配置信息。

用winbox登录ros就知道了,命令是按层次的,这个是方便分类管理,也方便查找。

2.2 ros命令的格式

ros命令的语法一般格式如下:

[prefix] [path] command [uparam] [param=[value]] .. [param=[value]]
           

[prefix] - 前缀,以":"或"/"开头(字符用来表达路径除外),可选。如果是菜单路径用'/'默认的,可以省略,如果是不是路径式,如全局命令则用英文冒号“:”,如输出“:put”

[path] - 命令菜单层相对路径,可选。相对路径可以结合两个点号“..”,表示此路径上一级路径。

cmdmand - 命令,在指定菜单级别可用的命令之一,必选。

[uparam] - 非注明参数(纯值),可选。直接输入值,其实就是使用默认的参数名。

[param=[value]] - 注明参数名称=值,可选

命令行的结尾由标记“;”表示 或NEWLINE。 有时是“;” 或不需要NEWLINE即可结束命令行。

从上面一看,初学者可能有点懵了,这么复杂,因为命令行支持脚本,其实使用的是ros脚本的语法,所以才这么复杂。

再复杂都是从简单开始的,我们慢慢从简单再深入就行了。可以是把我们熟悉的winbox操作转为命令操作,把这些最基础的熟悉之后再学习一下脚本,学ros脚本之前如果没学过编程的,我还是建议看一下python,只学基础语法就行了。因为python教程多、文档也多、还特别适合初学者,上手快,这几年也很火!

三、如何ros命令串讲

这小节我将以一个命令为例子把上面介绍如何学好最基础的ros命令进行串讲,因为没有讲到脚本,所以只简单使用基础命令。

3.1 把winbox的操作转为命令方式:起程

3.1.1 使用winbox分析对应的ros命令

因为我这个人比较懒,不会太记ros命令,目前为止,只记得顶级菜单命令和命令的大概位置。如果不怎么用的命令,我会先打开winbox,找一个位置,然后再ssh登录ros写对应的命令。这只是个人的学习习惯,仅供参考。我觉得对初学者也挻有用的。

此方法只对有命令路径的有效,如果是脚本命令则无效,什么是脚本命令,可以理解为这个命令在菜单中找不到。

3.1.2 例子

比如我为ether5 网卡添加一个IP为192.168.5.6,如果winbox上用鼠标操作如下:

hualinux ros 1.7: 命令(一)如何学好RouterOS命令一、前言二、ros命令写法三、如何ros命令串讲四、小结

那么转为为ros命令行操作为 "ip address",然后这个 “+”号怎表达了,一般符号会转为英文,有添加的意思的英文有:add、into、and,那那咋整?!接着可以出第二招了

3.2 使用问号帮助命令(?):导购

3.2.1 帮助命令的作用

因学习的东西太多,我们不可能记得每一个命令的具体使用,这种死记的方式,一来效率低下,二来很快会忘记。

我推荐的记忆方式是只记顶级菜单的命令,二级常用的记一下,其它不常用的了解一下,知道大概在哪里就行了。就比如我们学汉字常用的就是3000个字,你不可能把整个字典的汉字都学完吧!!!!这样也不切实际啊!

在路由交换中,当我们不知道接下来有哪些选项,这时帮助命令就很有用了,帮助命令的用法很简单,只需要在命令后面加空格再加英文问号“?”即可。

PS:在这里得重点提醒一下,有的初学者,把符号写成中文的,结果报错了!ros还很人性,你在ssh中输入中文的?号输不进去。
 我把帮助命令形象地比喻为导购,当我们购买的时候会有一个小姐姐,一边带着你,一边跟你解说,贴心。

3.2.2 例子

接着上面的 “3.1.2 例子 ”,发现只知道 ip address,后面的不懂了,那么就在后面使用“空格 ?"试下,发现出了一堆东西,如下图所示:

hualinux ros 1.7: 命令(一)如何学好RouterOS命令一、前言二、ros命令写法三、如何ros命令串讲四、小结

上面第一行对”ip address“命令作用的说明,第三行开始介绍了有哪些子命令可以选择使用,还有解说,是不是很人性?!

我们需要添加一个IP地址,那么选择上面的 add 是最适合不过了。所以变成了 ”ip address add “,但是后面有哪些操作又不知道了,所以继续使用帮助命令,发现又一堆东西出来,给我们选择了,如下所示:

hualinux ros 1.7: 命令(一)如何学好RouterOS命令一、前言二、ros命令写法三、如何ros命令串讲四、小结

发现address可以选择,变成了 ”ip address add address“,

等等,突然发现一个问题,我输入 ”address“,如果手输,感觉可能会输错,如果每次都复制粘贴,还不如直接使用winbox鼠标操作来得快?!作者是不是忽悠我?!

OK,接着我教你第三式,那就是学会使用tab自动补全键

3.3 tab自动补全命令:代步工具

3.3.1 tab补全命令说明

像上面例子那个,每个命令都要写全,效率太低了,写多心也烦啊!就像走路上班那样,如果近的话还能接受;如果太远,走路去,你会崩溃不?!所以ros也帮我们想好了,添加了一个自动补全命令,只需要输入几个字母,然后tab,如果这个能在这一堆命令中直接识别出来的话就直接补全,如果有相同的就会帮你列出来。

3.3.2 例子

继续上面例子 add 命令的选项

# 查看 add选项
[[email protected]] > ip address add 
Creates new item with specified property values.

address -- Local IP address
broadcast -- Broadcast address
comment -- Short description of the item
copy-from -- Item number
disabled -- Defines whether item is ignored or used
interface -- Interface name
netmask -- Network mask
network -- Network prefix
           

如果我们要输入 address,直接输入一个a补全即可,因为这个列表只有一个a;如果要打注解属性comment,需要输入3个字母才能唯一区别出来,试下是不是这样

hualinux ros 1.7: 命令(一)如何学好RouterOS命令一、前言二、ros命令写法三、如何ros命令串讲四、小结

发现变成如下图所示,连等号都帮写上了

hualinux ros 1.7: 命令(一)如何学好RouterOS命令一、前言二、ros命令写法三、如何ros命令串讲四、小结

ok,那就直接再试下commnet试下,先打2个字母co+tab键,发现并不是唯一,列出了2个选项,所下图所示:

hualinux ros 1.7: 命令(一)如何学好RouterOS命令一、前言二、ros命令写法三、如何ros命令串讲四、小结

所以还需要打3个,试下 tom+tab,发现也自动帮补全了

hualinux ros 1.7: 命令(一)如何学好RouterOS命令一、前言二、ros命令写法三、如何ros命令串讲四、小结
hualinux ros 1.7: 命令(一)如何学好RouterOS命令一、前言二、ros命令写法三、如何ros命令串讲四、小结

这样操作使用效率是不是高很多啊?!,像不像坐上了代步工具

PS:根据经验,一般情况3个字母都唯一区别出一个命令或属性了,有的高频的1-2个字母就能区别了

这时候我们就可以配置一个下IP地址了,操作如下:

hualinux ros 1.7: 命令(一)如何学好RouterOS命令一、前言二、ros命令写法三、如何ros命令串讲四、小结
hualinux ros 1.7: 命令(一)如何学好RouterOS命令一、前言二、ros命令写法三、如何ros命令串讲四、小结

这样就配置成功了,可以在winbox看一下是否生成了,如下图所示:

因为我禁用了此网卡,所以变会成红色,提示出问题

hualinux ros 1.7: 命令(一)如何学好RouterOS命令一、前言二、ros命令写法三、如何ros命令串讲四、小结

也可以使用print命令查看一下

发现前面有一个大写的I,表示invalid无效,即不可用

hualinux ros 1.7: 命令(一)如何学好RouterOS命令一、前言二、ros命令写法三、如何ros命令串讲四、小结

好了,上面基础的”三板斧“就讲完了,有些人发现我打长了,老是tab也累啊,OK,还有最最后一招,那就是使用简写。

3.4 简写ros命令:加速

上面的tab补全是好了,但是感觉还能再快一些,就像开车那样,刚刚开始不敢开快,上手了有感觉了就要适当的加油门。今天这招就是使用简写。

命令简写前提是要熟悉使用的情况下才有用,简写像上面tab补全那样,你打出的字母已经足够唯分区此命令或属性了,就够了,但是有些情况为了方便阅读,我们还建议打多一个,比如上面例子的 ”ip address print“,可以写成 ”ip ad p“最简方式,没问题,自己看多也没问题,但是给别人看,人家半天都不知道你打的是什么,还要复制这个命令,运行一下,才知道是什么意思,所以要考虑可阅读性,写成”ip addr pri”会比较好些,如果写成“ip add pri”,人家会误认为是添加命令,不能产生歧义。

四、小结

你只需要记住一句:不断的使用问号?,不断的使用tab补全,就够了!

hualinux ros 1.7: 命令(一)如何学好RouterOS命令一、前言二、ros命令写法三、如何ros命令串讲四、小结

继续阅读