Ary's HERE


  • Startseite

  • Archiv

  • Tags

go

Veröffentlicht am 2016-09-30

框架

fasthttp

github地址

node

Veröffentlicht am 2016-09-30

框架

toa.js

github地址

basic

Veröffentlicht am 2016-09-30

used to provide info-support about basic knowledge about CS

BIOS

basic input output System

是一组固化到计算机主板上一个ROM芯片上的程序,保存着计算机最重要的基本输入输出的程序、开机后自检和系统自启动。
可以从CMOS中读写系统设置的基本信息。
主要功能是为系统提供最底层、最直接的硬件设置和控制。
一块主板性能优越与否,很大程度上取决于主板上的BIOS管理功能是否先进。

linux

Veröffentlicht am 2016-09-26

linux

/

可以把Linux系统看作由四部分构成:内核、用户界面、文件结构和实用工具
目录结构如下

root

启动Linux时使用的一些核心文件。如操作系统内核、引导程序Grub等。

home

存储普通用户的个人文件

  • ftp — 用户所有服务

  • httpd

  • samba

  • user

bin

系统启动时需要的执行文件(二进制)

sbin

可执行程序的目录,但大多存放涉及系统管理的命令。只有root权限才能执行

proc

虚拟,存在linux内核镜像;保存所有内核参数以及系统配置信息

  • 1 — 进程编号

usr

用户目录,存放用户级的文件

  • bin — 几乎所有用户所用命令,另外存在与/bin,/usr/local/bin
  • sbin — 系统管理员命令,与用户相关,例如,大部分服务器程序
  • include — 存放C/C++头文件的目录
  • lib — 固定的程序数据
  • local — 本地安装软件保存位置
  • man — 手工生成的目录
  • info — 信息文档
  • doc — 不同包文档信息
  • tmp
  • X11R6 — 该目录用于保存运行X-Window所需的所有文件。该目录中还包含用于运行GUI要的配置文件和二进制文件。
  • X386 — 功能同X11R6,X11 发行版5 的系统文件

boot

引导加载器所需文件,系统所需图片保存于此

lib

根文件系统目录下程序和核心模块的公共库

  • modules
    可加载模块,系统崩溃后重启所需模块

dev

设备文件目录

etc

配置文件

  • skel — home目录建立,该目录初始化
  • sysconfig — 网络,时间,键盘等配置目录

var

  • file
  • lib — 该目录下的文件在系统运行时,会改变
  • local — 安装在/usr/local的程序数据,变化的
  • lock — 文件使用特定外设或文件,为其上锁,其他文件暂时不能访问
  • log — 记录日志
  • run — 系统运行合法信息
  • spool — 打印机、邮件、代理服务器等假脱机目录
  • tmp
  • catman — 缓存目录

mnt

临时用于挂载文件系统的地方。一般情况下这个目录是空的,而在我们将要挂载分区时在这个目录下建立目录,再将我们将要访问的设备挂载在这个目录上,这样我们就可访问文件了。

tmp

临时文件目录,系统启动后的临时文件存放在/var/tmp

lost+found

在文件系统修复时恢复的文件

/

根目录,一般根目录下只存放目录,不要存放文件,/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中

/bin:/usr/bin

可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。

/boot

放置linux系统启动时用到的一些文件。/boot/vmlinuz为linux的内核文件,以及/boot/gurb。建议单独分区,分区大小100M即可

/dev

存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱mount /dev/cdrom /mnt。

/etc

系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有/etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d修改配置文件之前记得备份。

注:/etc/X11存放与x windows有关的设置。

/home

系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,~表示当前用户的家目录,~test表示用户test的家目录。建议单独分区,并设置较大的磁盘空间,方便用户存放数据

/lib:/usr/lib:/usr/local/lib

系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助,比较重要的目录为/lib/modules。

/lost+fount

系统异常产生错误时,会将一些遗失的片段放置于此目录下,通常这个目录会自动出现在装置目录下。如加载硬盘于/disk 中,此目录下就会自动产生目录/disk/lost+found

/mnt:/media

光盘默认挂载点,通常光盘挂载于/mnt/cdrom下,也不一定,可以选择任意位置进行挂载。

/opt

给主机额外安装软件所摆放的目录。如:FC4使用的Fedora 社群开发软件,如果想要自行安装新的KDE 桌面软件,可以将该软件安装在该目录下。以前的 Linux 系统中,习惯放置在 /usr/local 目录下

/proc

此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的目录有/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/ 等

/root\

系统管理员root的家目录,系统第一个启动的分区为/,所以最好将/root和/放置在一个分区下。

/sbin:/usr/sbin:/usr/local/sbin

放置系统管理员使用的可执行命令,如fdisk、shutdown、mount等。与/bin不同的是,这几个目录是给系统管理员root使用的命令,一般用户只能”查看”而不能设置和使用。

/tmp

一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下

/srv

服务启动之后需要访问的数据目录,如www服务需要访问的网页数据存放在/srv/www内

/usr

应用程序存放目录,/usr/bin存放应用程序,/usr/share存放共享数据,/usr/lib存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。/usr/local:存放软件升级包。/usr/share/doc:系统说明文件存放目录。/usr/share/man: 程序说明文件存放目录,使用 man ls时会查询/usr/share/man/man1/ls.1.gz的内容建议单独分区,设置较大的磁盘空间

/var

放置系统执行过程中经常变化的文件,如随时更改的日志文件/var/log,/var/log/message:所有的登录文件存放目录,/var/spool/mail:邮件存放的目录,/var/run:程序或服务启动后,其PID存放在该目录下。建议单独分区,设置较大的磁盘空间

grep

# grep root /etc/passwd
# cat /etc/passwd | grep root

使用方法
[root@www ~]# grep [-acinv] [–color=auto] ‘搜寻字符串’ filename
选项与参数:

  • -a :将 binary 文件以 text 文件的方式搜寻数据
  • -c :计算找到 ‘搜寻字符串’ 的次数
  • -i :忽略大小写的不同,所以大小写视为相同
  • -n :顺便输出行号
  • -v :反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行!
  • –color=auto :可以将找到的关键词部分加上颜色的显示喔!
# dmesg | grep -n -A3 -B2 --color=auto 'eth'  dmesg核心信息,以grep找出eth,所在行的前两行与后三行显示
# grep ‘energywise’ *                         在当前目录带'energywise'
# grep -r ‘energywise’ *                      在当前目录及其子目录下带'energywise'
# grep -l -r ‘energywise’ *                   在当前目录及其子目录下带'energywise',但只显示匹配的文件
# grep -n 't[ae]st' regular_express.txt       共通的 't?st' 存在
# grep -n '[^g]oo' regular_express.txt        不想要 oo 前面有 g
# grep -n '[^a-z]oo' regular_express.txt      oo 前面不想要有小写字节
# grep -n '[0-9]' regular_express.txt         取得有数字的那一行
# grep -n '^the' regular_express.txt          the 只在行首列出
# grep -n '^[^a-zA-Z]' regular_express.txt    不想要开头是英文字母
# grep -n '\.$' regular_express.txt           行尾结束为小数点 (.)
# grep -n '^$' regular_express.txt            找出空白行
# grep -n 'g..d' regular_express.txt          g??d
# grep -n 'ooo*' regular_express.txt          至少两个 o 以上的字串
# grep -n 'g.*g' regular_express.txt          g 开头与 g 结尾
# grep -n '[0-9][0-9]*' regular_express.txt   任意数字
# grep -n 'o\{2\}' regular_express.txt        两个 o 的字串
# grep -n 'go\{2,5\}g' regular_express.txt    g 后面接 2 到 5 个 o
# grep -n 'go\{2,\}g' regular_express.txt     2 个 o 以上的 goooo....g

alias

alias[别名]=[指令名称]

  • alias cp=’cp -i’
  • alias l.=’ls -d .* –color=tty’
  • alias ll=’ls -l –color=tty’
  • alias ls=’ls –color=tty’
  • alias mv=’mv -i’
  • alias rm=’rm -i’
  • alias which=’alias | /usr/bin/which –tty-only –read-alias –show-dot –show-tilde’

##

http

Veröffentlicht am 2016-09-23

http理解

长连接

WebSocket

header

WebSocket的连接请求头很小,只有2字节。相比http request的头很长,但可能只包含一个很小的值,性能提升很多。

handshaking

由浏览器发起创建连接,然后服务器做出回应,这个过程称为握手。
只要一次握手,2者之间就可以建立持久的连接,允许数据进行双向传输。

Socket

WebSocket是一种在tcp连接上进行全双工通讯的协议,与http的唯一联系是使用http 的101状态码进行协议切换,使用tcp的80端口。

html5

html5中定义的WebSocket

http request

双工

half-duplex

允许2台设备之间的数据传输,但同一时间只允许一个设备进行传输。

full-duplex

允许2台设备同一时间进行双向数据传输。

TDD

Time-Division Duplexing
用时间分隔多任务来分隔发送的和接收的信号。用半双工的传输来模拟全双工。
时分双工在非对称网络上(上传及下载速度不平衡)有明显优势,可动态调整对应带宽。

FDD

Frequency-Division Duplexing
用频率分隔技术来分隔发送及接受的信号。
上传及下载的区块之间用“频率偏移(frequency offset)”来分隔。
在上传下载相近时,更有效率。

http管线化

http pipelining
将多个http请求整批提交的技术,而在发送过程中不需要等待服务器响应。
管线化机制通过永久连接完成(persistent connection),并且只有GET和HEAD等请求可以被管线化,非幂等的方法如POST不会被管线化。

http持久连接

http1.0中会在现有协议中加一个参数

Connection:Keep-Alive

同时服务端也返回这样一个参数
在http1.1中,默认所以连接都是持久连接
持久连接即使用同一个TCP连接来发送和接收多个http请求/应答,不会打开新的连接。

协议科普

tftp

travial file transfer protocel,简单文件传输协议。

是tcp/ip中一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂,开销不大的文件传输服务,端口号69
基于udp协议实现。
一个tftp包中会包含以下几段:

| local medium | internet | Datagram | TFTP |

tftp的优势
1.可用于UDP环境
当需要将程序或者文件同时向许多机器下载时,就需要使用到TFTP协议。
2.
TFTP所占的内存较小。

与FTP相比,
TFTP多用于局域网以及远程UNIX计算机中,常见FTP多用于互联网中,需要客户端验证,
FTP与服务器通信用TCP,而TFTP与服务器通信用UDP、
TFTP只支持文件传输,不支持交互。

MTFTP

是多点的TFTP服务,应用在windows无盘工作站的服务端。

vue init

Veröffentlicht am 2016-09-12

运行npm run dev来跑一个本地服务,把vue跑起来。

tools

Veröffentlicht am 2016-09-12

terminal

heroku

安装heroku首先需要ruby和go环境
安装命令

1
wget -O- https://toolbelt.heroku.com/install-ubuntu.sh | sh

安装好以后查看是否安装成功

1
heroku --version

输出如下:

heroku-toolbelt/3.43.12 (x86_64-linux-gnu) ruby/2.3.1
heroku-cli/5.2.41-7b040f4 (linux-amd64) go1.6.2
You have no installed plugins.

Heroku 是一个商业的Rails主机托管解决方案,提供的是“无需准备的部署服务”,因为操作和扩展都是自动的,无需任何系统管理。虽然相较于其它服务商而言Heroku目前的价格较高。

为适应不断变化的需求,Heroku可以在网格中其它地方启动新的完全独立的dyno,或者关闭那些闲置的dyno。Dyno的启动时间还不到2秒,这足以证明Heroku的平台空前的强大。为了满足更高需求而启动新的dyno实例时,Heroku特制的路由系统可以在把新的请求“冻结”。四个dyno的计算性能相当于传统环境中的一台服务器的计算性能。

Heroku 的网格本身建于一个强大的云计算环境中,这样它可以根据需要的dyno数量方便地进行扩展或者缩减。网格上层是一个成熟的高并发路由网络,它承担了把请求分派至dyno的工作。还有一些额外的元件,比如HTTP cache和memory cache,它们分别用来减少对dyno和数据库的访问。

pxe

pxe(perboot execute environment,预启动执行环境)

是由英特尔开发,工作于client/server的工作模式,支持工作站通过网络从远端服务器下载映像,并由此通过网络启动操作系统。
在执行过程中,终端要求服务器分配ip,再用TFTP或MTFTP协议下载一个启动软件包到本机内存中执行,这个安装包会完成终端基本软件配置,并引导预先安装在服务器中的终端操作系统。
比较直接的表现是,在网络环境下,pxe可以省去硬盘,该技术的pc相比有盘pc要快3倍以上。
但使用pxe的pc也不是传统意义上的 terminal终端,因为使用了pxe的pc并不消耗服务器的cpu、ram等资源,故服务器的硬件要求极低。

ntpdate 10.19.132.184
ntpdate 10.19.132.182

mosh

安装:

服务端
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:keithw/mosh
sudo apt-get update
sudo apt-get install mosh
sudo iptables -I INPUT -p udp --dport 60001 -j ACCEPT

客户端
mosh -p 60001 ary@10.19.132.212

这样就可以建立起基于udp的连接,ssh是基于tcp的连接的。
基本不不会断。

Iterm2

一些操作

command d : 水平新建
command shift d : 竖直新建
command t : 新建tab
command [/] : 当前tab内切换
command →/← : 切换tab 

hubot

Veröffentlicht am 2016-09-12

Flux

Veröffentlicht am 2016-09-06

thinking

Veröffentlicht am 2016-09-06

一些记录

传统软件开发流程

  • 确定产品定位和需求,确定首次迭代的范围
  • 制作界面原型
  • 技术选型,然后根据技术选型为每个开发者搭建开发环境和技术栈
    例如java环境,Ruby环境,数据库,各类中间件等
  • 构建基础技术框架和服务
    包括日志,存储,消息,缓存,搜索,数据源,集群扩展等
  • 模拟用户容量,构建测试环境。
  • 开始编写业务代码,实现产品功能
  • 迭代开发/测试,知道产品经理崩溃…

新型开发出现

所谓PaaS,全称是 Platform as a Service,平台即服务,如果采用完善的PaaS平台,就可以跳过3 、4 、5.
无论选哪个技术栈,PaaS都会为你提供相关的配套设施,包括语音环境、运行环境、存储和各种基础服务。
后来docker开源,以容器的方式自动部署应用,docker是一系列进程的集合,基于namespaces和cgroups实现资源的隔离和分组,基于copy-on-write技术创建文件系统,分层、快速、占用空间少;提供交互式shell和remote api。

12345
Ary

Ary

42 Artikel
© 2017 Ary
Erstellt mit Hexo
Theme - NexT.Mist