Linux下Shell介绍以及TCP、IP基础
一、Linux下的shell
概述:每个人在成功登录Linux后,系统会出现不同的提示符号,例如 $、~、#等,然后你就可以开始输入需要的命令,若是命令正确,系统 就会依据命令的要求来执行,直到注销系统为止,在登录到注销期间, 输入的每个命令都会经常解译及执行。而这个负责的机制就是shell。其实作为命令语言互动式地解释和执行用户输入的命令只是Shell 功能的一个方面,Shell还可以用来进行程序设计,它提供了定义变量和 参数的手段以及丰富的程序控制结构。使用Shell编程类似于DOS中的批 处理文件,称为Shell script,又叫Shell程序或Shell命令文件。
如下图所示:
二、shell的分类
概述:shell有很多,但常用的就几种:
Shell名称 开发者 命令名称
Bourne S.R.Bourne /bin/sh ->/bin/bash (大陆)
C Bill Joy /bin/csh
Kom David /bin/ksh
看看Ubuntu上的shell种类:
查看目前使用的是哪种shell
命令:env 【显示当前系统的环境变量】
如果你不想使用bash的shell命令,可以进行修改,命令:
chsh -s 输入新的shell 如:/bin/dash
chsh -s /bin/dash,然后注销一下。
这里我就不试了。
三、小技巧
(1)shell命令的补全:是指用户输入命令时,并不需要输入完整的命令,而系统自 动会找出最符合的名称。这种功能可以节省经常输入命令的时间。 直接输入“mk”——再按两下“tab“键——出现两头两个字 母为”mk“的命令。cat p 再按两下“tab“键 会出现开头字母为 “p“的所有文件或目录。
(2)在linux下,我们有时可能希望知道或是使用最 近执行的命令,history可能会帮上大忙。
1、history 5:此项说明会显示最近使用的5个命令。
2、 !5:此项说明执行历史编号为5的命令。
3、 !ls:此项说明执行最后一次以“ls”开头的命令。
如果不想输入命令,可以这样使用:
四、TCP/IP基础
这里简单介绍一下,关于更深入的东西,可以参考其他的资料,《TCP/IP详解卷1:协议》
概述:linux /unix的世界就是网络的世界,而网络的 基础就是tcp/ip,在某种意 义上,unix网络就是Tcp/ip,而且Tcp/ip就是网络互联的 标准。它不是一个独立的协议,而是一组协议。(tcp,ip ,udp,arp,rarp等协议)。所以一个优秀的程序员必 须了解并掌握tcp/ip,tcp/ip究竟是什么呢?
- Ip地址与包的路由传递
每个internet上的主机和路由器都有一个ip地址 ,它包括网络号和主机号,所有ip地址都是32位的(当然现在也有IPV6),ip 地址按照国际标准的划分为a,b,c,d,e五种类型(从上到下)
a类的IP地址非常珍贵,原因是:网络号8位,剩余的全是主机号,所以能分配更多的IP地址。其中网络号确定了就不能再变了。
如何查看Linux中的ip地址:ifconfig
下面我们举个例子:两个微信的通信案例
比如有两个用户使用微信聊天,其中一个用户A向另外一个用户B发送了:“您好!”,然后,这条消息会经过应用层,会被在开头加上一个app(这里的app指的是微信这个程序,唯一标识),接着向下走,到了传输层,数据会上面传过来的数据全面再加上tcp头,接着经过IP层,数据段,会在前面加上ip,形成数据包,最后经过链路层,在数据包的前面加上了帧头,然后发到网卡,在通过路由器发送到B用户,当到了B用户的网卡之后,再进入到数据链路层,去掉数据包的帧头,在经过IP层的时候,会把IP头去掉,在经过TCP层,会把TCP头去掉,在经过应用层的时候,根据app找到对应的微信,并把app头去掉,最后“您好!”就会被对方收到。
好了,大概就是这个过程,可能有些专业术语描述的不准确,关于网络方面的知识也是我的一个盲区,希望能和大家一起学习。