猿人旅程

XDL_NO.3 知识类化

2016-08-09  本文已影响32人  Junting

知识类化

----- 让知识成为我身体的一部分!


Linux 常用命令

ubuntu 远程登录不支持 root 远程
ifconfig 查看当前网络信息
sudo 普通用户执行一些或者全部的root命令的,就跟手拿圣旨一样!
pwd 该命令显示整个路径名,显示当前的所处位置
who 当前用户

Vim 的一些操作

  • vim 有两种模式: 命令模式和插入模式(默认一进去就是命令模式下)
  • 使用 vim 文件名
  • :set nu 显示行号(带冒号,就是在命令模式下)
  • 进入插入模式:
  • i (当前光标位置的前面插入) 、I (行首)
  • a (当前光标的后面插入)、A (行尾)
  • o (下一行插入)、O (上一行)
    yy 复制当前行
    p 黏贴,当前光标行的下一行
    dd 删除当前行 10 dd 删除10行,删除当前光标行的下1行
    d 删除一个字母
    :8 移动到第8行
    gg 第一行
    GG 最后一行
    :w 写入 :q 退出 :wq 保存退出
    :q! 强制退出,这样在Linux里有个机制,这种强行退出,会生成一个临时文件在当前目录,可以查看之前的信息
    sudo su 切换root 用户, exit切换回之前的用户

文件处理命令

1、ls 命令

-a 显示所有文件,包括隐藏文件
-l 显示详细信息,也叫长格式
-d 查看目录属性

2、10位文件描述符

0123456789
第0位:
d 表示目录
l 软链接文件 link
2 表示二进制文件
第1-3位:文件所有者u拥有权限
第4-5位:所属组g用户有的权限
第7-9位:其他用户o拥有的权限
r 读权限 w 写权限 x 执行权限

3、cd 命令

切换根目录:cd /
切换到上一级目录: cd ..

4、touch命令

创建空文件

5、cp 命令

复制文件:cp 原文件名 目标地址
复制目录:cp -R 原目录 目标地址

6、mv命令

移动文件和更改文件名: mv 原文件名 目标地址(新文件名)

7、rm命令

强制删除文件: rm -f 文件名
强制删除目录: rm -rf 目录名(这里目录下的文件也都会删除)

8、cat 命令

显示文件内容 : cat 文件名

9、more 命令

分页显示文件内容: more 文件名
下一页: 空格 或 f
下一行: 回车键
退出查看: q 或者 Q

10、head命令

显示文件的前20行(默认10行): head -20 文件名

11、tail 命令

显示文件的结尾5行(默认10行): tail -5 文件名
-f 动态显示,用在一边写一边看情况

12、ln 命令

创建软连接: ln -s 源文件 链接文件名,相当于win下的快捷方式,源文件没了就不能通过软链接访问了
创建硬链接: ln 源文件 链接名,相当于拷贝了一份新的文件,但是他俩是同步更新的,删除后任然可以访问

13、mkdir 命令

创建目录: mkdir 目录名
递归创建目录 mkdir -p /www/html/a1/a2/a3
递归创建多个目录 mkdir -p /www/html/a1 a2 a3


Node.js 了解

  • Node.js 就是运行在服务器端的Javascript。
  • Node.js 是一个基于Chrome Javascript 运行时建立的一个平台。
  • Node.js 是一个事件驱动I/O服务器端Javascript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。
  • Node.js 搭建自己的服务,让你更快的明白程序底层的原理!

扩展

Javascript 语言最大的特点就是单线程的,也就是说,同一个时间只能做一件事。那么,为什么JavaScript不能有多个线程呢?这样能提高效率啊。
详细,请看

首先来搭建下我们的开发环境

详细步骤 详细,请看
安装成功后,在命令行窗口输入:node -v 查看你当前node.js 的版本 (项目开发推荐使用 LTS版的)

版本

环境搭建好了,那我们来个小实例吧!

官方文档

Node.js Web 模块

使用 Node 创建Web服务器

Node.js 提供了http模块,http模块主要用于搭建HTTP服务器端和客户端,使用HTTP服务器或客户端功能必须调用http模块,代码如下:

 var http  = require('http');

以下是官方文挡给的一个实例: 最基本的HTTP服务器架构(使用端口1337),创建一个server.js文件,代码如下:


 const http = require('http');
 const fs    =  require('fs');
 const url   =  require('url');

 // 创建一个服务器
 http.createServer( function (request,response)) {
     // 解析请求,包括文件名
      var pathname = url.parse(request.url).pathname;
     // 输出请求的文件名
      console.log(" Request for "+ pathname + "received.");
     // 从文件系统中读取请求的文件内容
     fs.readFile(pathname.substr(1),function (err,data)) {
         if (err) {
             console.log(err);
             // HTTP 状态码: 404 : Not Found
             // Content Type : text/plain
             response.writeHead(200,{'Content-Type': 'text/html'});
             // 响应文件内容
             response.write(data.toString());
         }
         // 发送响应数据
         response.end();
     });
}).listen(8081);
// 控制台会输出以下信息
console.log('Server running at  http://127.0.0.1:8081/');

这个小例子是根据,官方文档修改的!

反回请求信息
const http = require('http');
const net = require('net');
const url = require('url');
 // 创建一个HTTP代理服务器
var proxy = http.createServer( (req, res) => {         

     res.writeHead(200, {'Content-Type': 'text/plain'}); 
     res.end('okay');
 });
 proxy.on('connect', (req, cltSocket, head) => { 
      // connect to an origin server 
      var srvUrl = url.parse(`http://${req.url}`);
      var srvSocket = net.connect(srvUrl.port, srvUrl.hostname, () => {
            cltSocket.write('HTTP/1.1 200 Connection Established\r\n' +
                                   'Proxy-agent: Node.js-Proxy\r\n' + 
                                   '\r\n');
            srvSocket.write(head);                  
            srvSocket.pipe(cltSocket);   
            cltSocket.pipe(srvSocket);
        });
    });
   // now that proxy is running
   proxy.listen(1337, '127.0.0.1', () => { 
        // make a request to a tunneling proxy
         var options = {
               port: 1337, 
               hostname: '127.0.0.1',
               method: 'CONNECT', 
               path: 'www.google.com:80' 
          }; 
          var req = http.request(options); 
          req.end();
     
          req.on('connect', (res, socket, head) => {  
             console.log('got connected!'); 
            // make a request over an HTTP tunnel       
            socket.write('GET / HTTP/1.1\r\n'  +
                                'Host: www.google.com:80\r\n' + 
                                'Connection: close\r\n' +
                                '\r\n');
           socket.on('data', (chunk) => {  
               console.log(chunk.toString()); 
           }); 
           socket.on('end', () => {
               proxy.close();
           }); 
         });
       });
上一篇下一篇

猜你喜欢

热点阅读