CCNA基础知识摘录
1、检测硬件(保存在rom)
2、载入软件(IOS)(保存在Flash)
3、调入配置文件(密码,IP地址,路由协议都保存在此)(此文件保存在NVRAM)
0x2102:正常调入配置文件到内存中
0x2142:不调入配置文件到内存中
即表示
:第六位(bit6)=0时就调入:第六位(bit6)=1时就不调入
CISCO设备的文件系统:
RAM/NVRAM/FLASH/TFTP
LAB1:路由器文件的备份:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
step1:按图连接好电源线,Console,Ether-Net网线。
step2:配置IP地址,确认连接的正确性,并运行数据通信测试。
step3:在本机运行TFTP Server(TFTP是UDP的69号端口)(tftpd32)
step4:察看FLASH中的IOS文件
ROUTER#show flash:
ROUTER#dir
flash:
(":"表示一个设备,有时不打会出问题)
step5:
ROUTER#dir nvram (察看nvram中有哪些文件)
ROUTER#more nvram :startup-config(具体察看某个文件的内容)
step6:
ROUTER#copy flash:tftp:
ROUTER#copy nvram:startup-config tftp
LAB2:路由器的文件升级
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
step1/2/3 与LAB1完全一致
step4:
ROUTER#copy tftp:flash:
2140 表进入ROMMON模式(按ctrl+break进入)
2141 表进入MINI IOS模式
2142 表进入正常模式
LAB3:路由器的密码恢复
step1:与lab1完全一致(无需网线)
step2:配置路由器的密码
config t
enable password cisco1
enable secret cisco2
step3:保存配置
(将当前的内存中的配置信息,保存到NVRAM中的start-config)
copy run..start-config
write
step4:将配置寄存器设置为0x2102,在线路由器的标准配置
R1(config)#config-register 0x2102
step5:当忘记了密码时,就在启动路由器的5秒内按CTRL+BREAK,进入ROMMON模式
>
>
>
step6:
>o 察看当前寄存器的取值
>o/r 0x2142 修改寄存器取值为0x2142
step7:
>i 重启路由器
step8:
在system configuration dialog 中输入no
step9:
ROUTER#dir nvram
ROUTER#more nvram:startup-config
step10:
将startup-config copy到内存中
ROUTER#copy nvram:startup-config running-config
(通过手工将startup-config copy 到running-config时,接口全是关闭的,需要手工打开)
step11:删除原密码
R1(config)#no enable passwor
R1(config)#no enable secret
step12:将所有需要工作的接口,手工打开
R1(config)#int e0
R1(config-if)#no shut
step13:
R1#config-register 0x2102
step14:保存配置
R1#copy running-config startup-config
R1#write
LAB4:交换机的文件备份
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
step1:按图连接好电源线,Console Eether网线
step2:配置IP地址,确认连接的正确性,并进行数据通信测试
switch(config)#int vlan 1
switch(config)#ip add 192.168.1.180 255.255.255.0
switch(config)#no shut
step3:在本机运行tftp
step4:备份交换机的IOS
switch#copy flash:c........... tftp:
备份交换机的配置文件
switch#copy flash:config.text tftp:
LAB5:交换机的IOS的升级
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
step1/2/3 与LAB1完全一致
step4:升级IOS
switch#copy tftp:flash:
LAB6:交换机的密码恢复:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
step1:先连接好Console,将交换机断电,然后按着交换机上的“MODE”不放,再重新接入电源,直到控制界面出现
交换机初始化失败为止,然后跟着它要求的初始化步骤执行
step2:对flash进行初始化
switch:flash_init
switch: load_helper
switch: dir flash: 查找flash中的config.text
switch: rename flash:config.text flash:co.t (将配置文件改名)
step3:让交换机继续启动,进入空白配置的交换机
switch:boot
step4:把配置文件copy到内存
switch#copy flash:co.t running-config
step5:删除原密码
switch(config)#no enable password
switch(config)#no enable secert
step6:打开交换机的接口(因为手工加入的是关闭的)
int vlan 1
no shut
step7:保存
switch#write
step8:删除不需要的原配置文件
switch#delete flash:co.t
switch交换的三种方式:
1、直通式:交换机一收到数据帧就立刻开始转发
2、存储转发:交换机要完整地接收到数据帧,并且经过校验后,才开始转发
3、Fragment-free:交换机对接收到是前64BYTES,进行校验,如果正确就开始转发。
交换机的地址学习:(交换机MAC表)
交换机总是学习数据帧的源地址(MAC),将此地址与进入与进入交换机的端口进行映射。
交换机对于数据帧的转发:
1、如果目标MAC是单播地址,交换机就按照MAC表进行单播。(已知MAC)
(除了目标MAC所对应的那个接口,之外的所有接口,都是不转发数据帧的)
2、如果目标MAC是组播/广播地址,交换机就会向除了入口以外的接口进行广播。
3、如果目标MAC是单播地址,但是交换机没有此MAC的对应映射端口,交换机就会
向除了入口以外的接口进行广播。(未知MAC)
4、如果目标MAC地址是单播地址,但此目标MAC所对应的接口就是数据帧进入交换机的端口,交换机会丢弃数据帧。
在BPDU信息当中有一段区域叫做bridge ID,Bridge ID=bridge
priority(优先级)+MAC(相加之和),交换机缺省
优先级为32768(16进制为8000)。如果两个bridge ID相等将以MAC地址为准,以MAC地址最小的bridge
ID值就小
当交换机运行stp协议,交换机的端口会存在如下状态 :
blocking(阻塞)、listening(监听)、learning(学习)、forwarding(转发)
blocking(阻塞)--listening(监听) 间隔20秒时间
listening(监听)--learning(学习) 间隔15秒时间
learning(学习)--forwarding(转发)间隔15秒时间
从listening到forwarding所经历的时间被称作转发延迟(默认30秒)
port在各个状态的功能:
blocking:不能接收转发任何数据
listening:不能接收转发数据,但是可以接收BPDU信息
learning:不能接收转发数据,但是能够通过接收BPUU信息创建MAC地址表
forwarding:可以接收转发数据
LAB7:交换机的基本配置
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
step1:为交换机配置网管ip(本网段网管)
SW1(config#)int vlan 1
ip add 192.168.1.1 255.255.255.0
no shut
step2:配置交换机的网关:(跨网段网管)
SW1(config)#ip default-gateway 192.168.1.10
step3:控制接口的速率
SW1(config)#int f0/1
switchport mode access(接入链路,一般连接主机)
speed 10
speed 100
speed auto(默认)
step4:控制接口的双工模式:
sw1(config-if)#depulex full
sw1(config-if)#depulex half
sw1(config-if)#depulex auto(默认)
LAB8:Port/Security (端口安全)
step1:
sw1(config)#int f0/2
switchport mode access(接入链路)
switchport port-security(启动端口安全)
switchport port-security mac-address
00c0.abcd.1234(绑定一个MAC)
switchport port-security violation
shutdown(关闭接口,上报)
switchport port-security violation
restrict(不转发数据,上报)
switchport port-security violation
protect(不转发数据)
step2:在一个端口上绑定多个MAC地址
switchport port-security macimum 3
switchport port-security mac-address
00c0.abcd.1234
switchport port-security mac-address
00c0.abcd.1235
switchport port-security mac-address
00c0.abcd.1236
step3:
switchport port-security maximun 100
switchport port-security mac-address sticky
VLAN:
实现vlan的主要目的:(segmentation)将网络分片,减少每个网络的规模,即缩减每一个广播域的大小。
一个vlan,对应着一个广播域,对应着一个逻辑子网:A VLAN=A Broadcast domain=logical
network(subnet)
HUB:所有端口都在一个冲突域,一个广播域中;
Switch:一个端口对应一个冲突域,所有端口都在一个广播域中;
Router:一个端口对应一个冲突域,一个端口对应一个广播域;
交换环境中的2 种连接类型:
1.access links:指的是只属于一个VLAN,且仅向该VLAN 转发数据帧的端口,也叫做native
VLAN.switches 把帧发送到
access-link 设备之前,移去任何的VLAN 信息.而access-link 设备不能与VLAN
外通信,除非数据包被路由
2.trunk links:指的是能够转发多个不同VLAN 的通信的端口.trunk link 必须使用100Mbps
以上的端口来进行点对点
连接,1 次最多可以携带1005 个VLAN 信息.trunk link 使你的单独的1个端口同时成为数个VLAN
的端口,这样可以不需
要层3 设备.当你在switches 之间使用了trunk link,多个VLAN 的信息将从这个连接上通过;如果在你switches
之间没
有使用 trunk link而使用一般的连接,那么只有VLAN1 的信息通过这个连接被互相传递.VLAN1
默认作为管理VLAN。
vlan分类:
静态Vlan
动态Vlan
sw1(config)#default int fa0/1(让一个接口恢复默认配置)
LAB9:静态Vlan的创建,修改,删除
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
step1:观察Vlan的配置信息:
SW1#sh vlan brief (默认情况下,交换机的所有的端口都在vlan 1)
pc2#sh arp
pc2#debug arp
pc2在ping通pc1后再观察“sh arp”
step2:创建vlan:
sw1#conf t
vlan
10(创建vlan10)
sh vlan brief观察
step3:将端口放入vlan 10:
sw1(config)#int f0/1
switchport access vlan 10
测试:
在pc2上再ping pc1,无法ping通!
(在不同vlan中的用户,默认是不能通信的)
step4:
sw1(config)#int f0/2
switchport access vlan 10
此之后再进行测试,可通;(证明相同的vlan中的用户是可以互通的)
step5:修改vlan:
sw1(config)#vlan 10
sw1(config-vlan)#name ENG
sw1(config-vlan)#EXIT
sw1(config)#VLAN 20
sw1(config-vlan)#name sale
sw1(config-vlan)#exit
step6:删除vlan
sw1(config)#no vlan 20
LAB10:vlan间的路由
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
step1:按图配置vlan,ip
step2:将R1/R2的路由能力关闭
pc2(config)#no ip routing
pc1同上
step3:在多层交换上,创建两个与VLAN一一对应的vlan接口,以此两接口作为两个vlan的网关
sw1(config)#int vlan 10
sw1(config-if)#ip add 192.168.10.100 255.255.255.0
sw1(config-if)#no shut
sw1(config)#int vlan 20
sw1(config-if)#ip add 192.168.20.100 255.255.255.0
sw1(config-if)#no shut
step4:
所有在VLAN10中的网关,都以if vlan 10 为网关:
pc1(config)#ip default-gateway 192.168.10.100
所有在VLAN20中的网关,都以if vlan 20 为网关:
pc2(config)#ip default-gateway 192.168.20.100
测试:每个用户都必需ping通自己的网关!!!!!!!
step5:启动交换机的路由能力:
sw1(config)#ip routing
sw1#sh ip route
step6#不同vlan间的用户数据通信
测试:两个pc互通!!!!!!!!!
Trunk:
在一条网络介质(网线/光纤)上,同时传输多个vlan的信息
trunk的种类:
1、cisco的私有标准:ISL
2、开放性的业界标准:802.1Q
LAB11:TRUNK
step1:
802.1Q的Trunk:
int f0/21
switchport trunk encapsulation dot1q
switchport mode trunk
ISL的Trunk:
int f0/21
switchport trunk encapsulation isl
switchport mode trunk
两个交换机配置相同。
step2:察看Trunk链路的连接状态:
SW1#sh int trunk
step3:
pc3(config)#ip default-gateway 192.168.10.100
PC3设置了网关后,可以实现跨vlan,跨交换机的通信的。
VTP(VLAN Trunk Protocol)
vtp只是用于构建富有效率的,便于管理的Vlan的网络
(让网络中的一个交换机VTP Server设定好Vlan信息,别的交换机都自动从这个交换机这里,动态地学习到VLAN信息)
cisco私有的协议
vtp信息,只能在trunk链路上传输。
VTP 是Cisco 创建的,但是现在已经不为Cisco 所私有.VTP 的主要目的是在一个交换性的环境中管理所有配置好的VLAN
使所有的VLAN 保持一致性VTP,允许增加,删除和重命名VLAN,然后这些修改后的信息传播到整个VTP 域里的所有switches
上。
LAB12:VTP
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
step1:确定网络中的VTP Server/Client
sw1(config)#vtp mode server
sw2(config)#vtp mode client
step2:确定在一个相同VTP域名:(CCNA)
sw2(config)#vtp domain CCNA
注意:所有vtp信息在sh run是看不到的
step3:检查vtp:
sw1/2#sh vtp status
step4:观察VTP信息的同步过程:
通过添加vlan观察版本号
Configuration Revision 2
当每改动一个属性时(如增加vlan,删除vlan,改名等动作),版本号就会改变
STP(Spanning-Tree Protocol)
1、每个交换网络,都有一个根桥(根交换机:BID最小的交换机)
2、每个非根桥,都只有一个根端口。(根端口即是去往根桥开销最小的端口)
3、每条网络介质,都必定有一个指定端口。(指定端口,根端口都是转发数据包的)
4、除了指定端口,根端口以外的端口,都被堵塞,不转发数据包。
LAB13:STP根桥的选定
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
所有交换机默认的BID优先级都是0x8000(32768)
step1:察看各个交换机的MAC地址
sw1#sh version
Base ethernet MAC Address:00:0F:.......
step2:察看优先级:
sw1#sh spanning-tree vlan 1
Bridge id
priority 32768 (priority 32768 sys-id-ext 1)
step3:控制交换网络的根桥:
根桥:
sw1(config)#spanning-tree vlan 1 root primary(24576/0x6000)
备份根桥:
sw2(config)#spanning-tree vlan 1 root secondary(28672/0x7000)
sw1#sw1#sh spanning-tree vlan 1
通过spanning-tree vlan 1 priority 4096(0x1000)直接更改优先级
R1#sh controllers serial 1查看是DTE还是DCE!!!!
CDP
LAB1:CDP
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
step1:
R1#sh cdp neighbors
step2:在接口级别控制CDP的运行:
R3(config)#int s1
R3(config-if)#cdp enable(启动接口的CDP能力,默认)
R3(config-if)#no cdp enable(关闭接口CDP)
step3:在全局上,控制所有接口CDP运行
R3(config)#cdp run(在全局上启动CDP)
R3(config)#no cdp run(在全局上关闭CDP)
step4:
SW1#sh cdp neighbors detail
SW1#sh cdp neighbors f0/1 detail
CDP timer:CDP 包传给每个活跃接口的时间间隔,默认是60 秒 ,即每60s发送一次cdp更新
CDP holdtime:某设备从相邻设备收到的包的保持时间,默认是180 秒
Telnet:通过Telnet,实现远程网管
LAB2:Telnet
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
step1:
在进行telnet之前,首先确认能够与被telnet的设备正常通信(ping)
step2:
R1#ping 192.168.10.2!!!!!!!!!!!!!!!!!!!!!
step3:
R1#telnet 192.168.10.2(不成功)
出现这些字样:Password required,but none set(原因:VTY没有设置密码)
解决办法:
R2(config)#line vty 0 4
R2(config-line)#password 1234
R2(config-line)#login
R2(config-line)#exit
step4:再telnet
R1#telnet 192.168.10.2(此时只能进入用户模式,因为没有设置enable密码)
出现这些字样: User Access Verification
password:1234
R2>
R2>
R2>en
此时无法进入,因为R2没设enable密码
step5:第三次再R2设置了enable后,再telnet
R2(config)#enable password cisco
R1#telnet 192.168.10.2
Trying 192.168.10.2 Open
password:
R2>
R2>
R2>en
password:
R2#
R2#exit
回到R1
step6:对交换机的Telnet是一样操作的,即在交换机上也需先设line密码,enable密码
step7:察看已连接的telnet进程:
7-1:在telnet发起方,察看自己发起的进程
R1#sh sessions
Conn
host
* 1 192.168.10.29
*表示此telnet是活动的
7-2:在被telnt方,察看自己被telnet的进程
sw2#sh users
Line
users
host(s)
idle
location
1 vty
0
idle
192.168.10.1
step8:发起telnet的设备,临时“挂起”(回到本设备上):(telnet进程是没有中断的)
用快捷键可临时挂起:1、ctrl+shift,不松手再按6;
2、松手后再按下 ‘x’
通过这两步就可以在telnet时临时挂起。
当想回到被telnet的机器上时,只需在特权模式下按下“回车”即可回到被telnet方。
step9:彻底中断telnet
9-1:发起方主动中断:
sw2#
sw2#exit
R1#
即用“exit”即可中断
也可用R1#disconnect 1 选择性的中断某一条telnet
9-2:被telnet方强制中断
sw2#clear line 1
[confirm]
[ok]
sw2#
step10:在多个被telnet设备之间进行切换:
R1#sh sessions
conn host
*
1
192.168.10.2
2
192.168.10.29
R1#2
就可进入ip地址为192.168.10.29的主机。
ACL/访问列表
主要作用:控制数据包,对其进行过滤。
还可以完成:QOS,DDR,路由过滤;
ACL的分类:
标准ACL:控制数据包的源IP地址。
1~99,(1300~1999)
扩展ACL:控制数据包的源IP,目标IP,协议号,源端口口,目标端口号.....
100~199,(2000~2699)
命名ACL(标准/扩展ACL)
CCNA基础知识摘录的更多相关文章
- Map/Reduce应用开发基础知识-摘录
Map/Reduce 这部分文档为用户将会面临的Map/Reduce框架中的各个环节提供了适当的细节.这应该会帮助用户更细粒度地去实现.配置和调优作业.然而,请注意每个类/接口的javadoc文档提供 ...
- http基础知识摘录
HTTP是一个基于请求/响应模式的,无状态的协议 (只有客户端发送请求服务器才会响应,否则服务器不会主动发送信息的,无状态指客户端发过来一个请求服务端给你发回一个响应,接着你再去发送一个请求,服务器根 ...
- Quartz.NET基础知识概述
Quartz.NET是什么 由于我现在使用的Quartz.NET2.2版本,相对2.x变化不大,主要是相对于1.x更新了很多东西,如下基础知识摘录网络. Quartz.NET是一个开源的作业调度框架, ...
- CCNA的基础知识及要点
一.CCNA中的基础知识及要点: 2.网线的制作:568B:橙白,橙,绿白,蓝,蓝白,绿,棕白,棕 568A的排线顺序从左到右依次为:白绿.绿.白橙.蓝.白蓝.橙.白棕.棕.实验目的:初学者常为做网线 ...
- Java基础知识【下】( 转载)
http://blog.csdn.net/silentbalanceyh/article/details/4608360 (最终还是决定重新写一份Java基础相关的内容,原来因为在写这一个章节的时候没 ...
- Runtime系列(一)-- 基础知识
众所周知,Objective-C 是一种运行时语言.运行时怎么来体现的呢?比如一个对象的类型确定,或者对象的方法实现的绑定都是推迟到软件的运行时才能确定的.而运行时的诸多特性都是由Runtime 来实 ...
- [源码解析] 深度学习分布式训练框架 Horovod (1) --- 基础知识
[源码解析] 深度学习分布式训练框架 Horovod --- (1) 基础知识 目录 [源码解析] 深度学习分布式训练框架 Horovod --- (1) 基础知识 0x00 摘要 0x01 分布式并 ...
- .NET面试题系列[1] - .NET框架基础知识(1)
很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...
- RabbitMQ基础知识
RabbitMQ基础知识 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然 ...
随机推荐
- 解决lxml不含etree模块导致scrapy startproject ***出错
本文环境:win10(64) python3.6(64) 背景:之前已成功安装scrapy(1.4.0),但在命令行敲 scrapy startproject ***出错,错误提示:from ... ...
- 个人php开发之工具--sublime主题配置(二)
摘要:俗话说:工欲善其事,必先利其器.作为一名开发者来说,熟练的使用工具可以达到事半功倍的效果,我就我自己使用的工具说自己的看法.当然,每个人对某个软件都有自己的看法或使用经验,还是那句老话,什么是最 ...
- Oracle RAC 11g DG Broker配置和测试
Oracle RAC 11g DG Broker配置和测试 之前在<RHEL6.4 + Oracle 11g DG测试环境快速搭建参考>已经简单说过. 本篇在实验环境中实际配置 环境: R ...
- FPGA功能仿真,门级仿真,后仿真的区别
前言 分清楚各种仿真间的关系,工具采用quartus prime16.0,仿真工具采用modelsim10 ae版:项目:led_display; 流程 1.RTL行为级仿真:也叫功能仿真,这个阶段的 ...
- 案例:数据库open时报错ORA-1172,ORA-1151 处理
环境:OEL 5.7 + Oracle 10.2.0.5 Clusterware + Oracle 10.2.0.5 RAC 故障:数据库open时报错ORA-1172,ORA-1151 1.故障详细 ...
- android学习SeekBar的使用
SeekBar介绍听歌的时候,我们常常想快进或者快退到某一时间段,听歌的时候我们控制音量大小听歌,SeekBar可以通过滑块的位置来标示数值,而且拖动条允许用户拖动滑块来改变进度条的大小 SeekBa ...
- 【leetcode】148. Sort List
Sort a linked list in O(n log n) time using constant space complexity. 链表排序可以用很多方法,插入,冒泡,选择都可以,也容易实现 ...
- WebBrowser keystroke
问题描述:将对话框中的回车消息传递到WebBrowser控件中去. 一开始的解决方案是:通过iwebbrowser2的成员函数get_HWND获取控件的句柄,然后通过SendMessage发送按键消息 ...
- bash启动时加载配置文件过程
本文目录: 1.1 判断是否交互式.是否登录式 1.2 几种常见的bash启动方式 1.3 加载bash环境配置文件 当用户登录系统时,会加载各种bash配置文件,还会设置或清空一系列变量,有时还会执 ...
- cygwin环境c语言开发
. 在windows上开发c语言,使用sublime编辑器 在工具栏tools-->run 结果报错,原因是没有在GNU环境下使用sublime text2 在 cygwin环境下启动subli ...