zoukankan      html  css  js  c++  java
  • 20161111学习笔记

    我们必须要透过『 Shell 』将我们输入的指令与 Kernel 沟通,好让 Kernel 可以控制硬件来正确无误的工作。

    由于 kernel 听不懂人类的语言,而人类也没有办法直接记得 kernel 的语言,所以两者的沟通就得藉由 shell 来支持了

    kernel 是『核心』的意思,而 Shell 是『壳』的意思,呵呵!也就是说, shell 是最外头的咚咚!而 kernel 乃是最内层的的咚咚啦!核心是操作系统的最底层的东西! 这个核心里头包括了各种的支持硬件的工具。也可以理解为shell撬开核心的大门,再让核心去找硬件的大门。

    使计算机主机工作的正是核心的任务,但是操作核心来替使用者工作的,却是 shell 喔

    一般来说,在 Linux 里头,所谓的 shell 就是指 BASH 这个文字模式的 shell

    多学一点总是好的,尤其我们可以有备而无患嘛

    cat /etc/shells  //查看使用者能使用的shell    echo  $SHELL

    cat /etc/passwd  //可以查看登录后的预设shell版本

    alias lm='ls -al'  //给指令取别名

    利用 echo 这个指令来取用变量, 但是,变量在被取用时,前面必须要加上 $ 才行

    [ling@localhost ~]$ echo $PATH
    /usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/ling/bin
    [ling@localhost ~]$ echo ${PATH}
    /usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/ling/bin

    变量的取用就如同上面的范例,利用 ehco 就能够读出,只是需要在变量名称前面加上 $ , 或者是以 ${variable} 的方式来取用都可以

    变量设定的规则:

    1. 变量与变量内容以等号『=』来连结;
    2. 等号两边不能直接接空格符;
    3. 变量名称只能是英文字母与数字,但是数字不能是开头字符;
    4. 若有空格符可以使用双引号『 " 』或单引号『 ' 』来将变量内容结合起来,但须要特别留意, 双引号内的特殊字符可以保有变量特性,但是单引号内的特殊字符则仅为一般字符;
    5. 必要时需要以跳脱字符『 』来将特殊符号 ( 如 Enter, $, \, 空格符, ' 等 ) 变成一般符号;
    6. 在一串指令中,还需要藉由其它的指令提供的信息,可以使用 quote 『 ` command` 』;(特别特别注意,那个 ` 是键盘上方的数字键 1 左边那个按键,而不是单引号!)
    7. 若该变量为扩增变量内容时,则需以双引号及 $变量名称 如:『 "$PATH":/home』继续累加内容;
    8. 若该变量需要在其它子程序执行,则需要以 export 来使变量变成环境变量, 如『export PATH』;
    9. 通常大写字符为系统预设变量,自行设定变量可以使用小写字符,方便判断 ( 纯粹依照使用者兴趣与嗜好 ) ;
    10. 取消变量的方法为:『unset 变量名称』。

    [ling@localhost ~]$ name=VBird
    [ling@localhost ~]$ echo $name
    VBird
    [ling@localhost ~]$ myname="$name its me"
    [ling@localhost ~]$ echo $myname
    VBird its me
    [ling@localhost ~]$ myname='$name its me'  //单引号的时候,那么 $name 将失去原有的变量内容,
    [ling@localhost ~]$ echo $myname
    $name its me

    在指令与指令中间利用分号 (;) 来隔开,这样一来,分号前的指令执行完后, 就会立刻接着执行后面的指令了。

    管道命令  |

    grep [-acinv] '搜寻字符串' filename

    grep 可以解析一行文字,取得关键词,若该行有存在关键词, 就会整行列出来!

    sort命令[root@linux ~]# cat /etc/passwd | sort

    :/etc/passwd 内容是以 : 来分隔的,我想以第三栏来排序,该如何?

    cat /etc/passwd | sort -t ':' -k 3 -n  //-n 来告知 sort 以数字排序,-t :分隔符,预设是 tab 键;-k :以那个区间 (field) 来进行排序的意思

    个人账号都记录在/etc/passwd下

    wc统计  //-l近列出行  -w仅列出有多少列 -m多少字符

    在 Linux 里面,任何一个档案都具有『User, Group 及 Others』三个权限

    Linux 系统里面账号/etc/passwd、密码/etc/shadow、群组信息/etc/group的集中地

    ==========================================================================

    互联网的分类:
    广域网:广域网的范围很大,从几十公里到数千公里不等,形成国际间的网络
    城域网:一个城市内建立起的网络,有着很快的传输速度,范围从几公里到几十公里不等
    局域网:多台计算机组成的一个计算机组,同处一个局域网的计算机可以相互通信

    网络协议的概念

    为计算机网络中进行数据交换而建立的规则、标准或约定的集合。简单的说,网络协议就像是计算机间相互交流的语言和翻译机,有了这些协议,互联网中的计算机便可以相互间“索取”服务或者提供服务。
    TCP/IP协议族无疑是我们重要的学习对象,OSI模型中将其划分为7层:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层。每一层都为上层协议提供支持服务


    7.应用层:位于OSI模型的最上层,提供我们熟悉的网络服务,如http,ftp,telnet等
    6.表示层:起到翻译机的作用,使得不同主机间的“语言”统一
    5.会话层:用于建立及维持会话
    4.传输层:负责数据的传输,常见的在传输层的协议有TCP,UDP
    3.网络层:管理网络中的数据通信
    2.数据链路层:将源机网络层来的数据可靠地传输到相邻节点的目标机网络层
    1.物理层:互联网所需要的各种硬件设施

    互联网的寻址技术


    互联网中有成千上万台计算机,于是它们相互之间如何找到对方便成了一个问题,通常我们用IP地址来标识一台处在互联网中的计算机。而用端口号指定要连接的这台计算机上所提供的服务,例如:
    115.239.210.27:80
    这个地址就指向ip为115.239.210.27主机80端口所提供的服务,此外我们也可以使用对应的域名地址指向这台主机:http://baidu.com,因为dns协议将协助把域名解析成为ip地址


    通常计算机有65536个协议端口,前1024个端口通常有指定服务,一般不去更改,而1024到65535则为动态端口,可以将自己的服务设置在上面。

    IP的分类:
    A类地址:1.0.0.1—126.255.255.254
    B类地址:128.0.0.1—191.255.255.254
    C类地址:192.0.0.1—223.255.255.254
    D类地址:224.0.0.1—239.255.255.254
    E类地址:240.0.0.1—255.255.255.254
    (请自己查询它们的分类标准)

    了解几个常用协议


    telnet:telnet协议的默认端口为23,允许管理员远程登录主机进行操作
    ftp:ftp协议用于远程上传或下载文件到远程服务器,默认端口为21
    ssh:linux主机常用的远程管理协议,默认端口为22
    http:超文本传输协议,构成web的主要协议,默认端口为80
    sftp:使用ssl的ftp协议
    https:在http协议的基础上添加的ssl加密,使得传输更为安全
    rdp:远程桌面登录,默认端口为3389

    除此以外还有很多重要的端口,如25,110,135,139,443,445等
    除这些协议外,网络应用程序使用的端口中比较重要的还有:
    sql server:1443端口
    mysql:3306等等、

    =====================================================================

    微服务框架:

    微服务架构强调的第一个重点就是业务系统需要彻底的组件化和服务化,原有的单个业务系统会拆分为多个可以独立开发,设计,运行和运维的小应用。这些小应用之间通过服务完成交互和集成。每个小应用从前端web ui,到控制层,逻辑层,数据库访问,数据库都完全是独立的一套。在这里我们不用组件而用小应用这个词更加合适,每个小应用除了完成自身本身的业务功能外,重点就是还需要消费外部其它应用暴露的服务,同时自身也将自身的能力朝外部发布为服务。

    微服务的基本思想在于考虑围绕着业务领域组件来创建应用,这些就应用可独立地进行开发、管理和加速。在分散的组件中使用微服务云架构和平台使部署、管理和服务功能交付变得更加简单。

    博客收录内容大部分是网上自己找的,非原创。
  • 相关阅读:
    Java注解学习
    微信小程序开发的一些基础知识点
    feign请求传送实体类参数的一些摸索
    springcloud bus中踩过的坑
    API网关初接触
    ELKF学习(Elasticsearch+logstash+kibana+filebeat)
    getWriter() has already been called for this response异常的一些问题
    kafka的学习
    如何优化一个丑陋的switch语句!
    项目启动之后进行一些初始化的方法
  • 原文地址:https://www.cnblogs.com/zero1224/p/6053169.html
Copyright © 2011-2022 走看看