Shell学习笔记

本文主要是Shell学习过程中的一些记录,方便后续使用。

1. Shell概述

Shell是什么

  • shell是一个命令行解释器,也就是操作界面。它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序。
  • shell还是一个功能强大的编程语言。shell是解释执行的脚本语言,在shell中可以直接调用Linux系统级命令。

Shell的分类

Shell的两种语法类型有Bourne Shell和C Shell。

  • Bourne Shell: 1979年起Unix中使用,主文件名为sh;
  • C Shell : 主要在BSD版本的Unix中使用,其语法与C语言类似而得名。

Bourne Shell家族主要包括 sh , ksh , Bash , psh , zsh;C家族(主要给unix使用)主要包括csh,tcsh。Bash是Linux中的标准Shell。

常用命令

  • 查看Shell版本: echo $SHELL ($的意思是变量,SHELL是变量名字)

  • 查看Linux支持的Shell : vi /etc/shells

  • 切换Shell : sh / bash / csh。退出exit

  • 新建文件 : touch hello.sh

  • 新建文件夹 : mkdir testmdic

  • 查看文件 : cat hello.sh

  • 复制 :cp

  • 粘贴 : mv

阅读全文

《learning Typescript中文版》学习笔记

网上关于Typescript的书实在是太少了,搜来搜去好像就《learning Typescript中文版》一本,果断购买之。读了以后发现,关于Typescript语法的部分其实讲的并不多,更多的是前端项目的架构部分讲解。

暂将本书关于typescript的部分做一些整理。

概念

  • Typescript通过向Javascript增加可选的静态类型声明来把Javscript变成强类型的程序语言
  • 可选的静态类型声明可约束函数,变量,属性等程序实体,这样编译器和相应的开发工具就可以在开发过程中提供更好的正确性验证和智能感知

一. 类型系统

1. 静态类型声明与静态类型推导

1
2
3
4
5
6
7
var counter = 0;	/*没有类型声明,Typescript会根据赋值来推测变量的类型。自动推断出类型是number*/
counter = 'asd'; /*类型变了,会报错*/

let a:any = 0;
a = '你好啊'; /*会报错*/

var count; /*无法推断,类型为any*/

2. 基本类型

基本类型有boolean,number,string,array,void和所有用户自定义的enum类型。所有这些类型在Typescript中 ,都是一个唯一的顶层的Any Type类型的子类型,any关键字代表这种类型。

在Typescript中,我们不能把null或undefined当作类型使用

2.1 Array类型的声明

array类型的声明有两种写法。一是可以在数组元素的类型后面跟着[]来表示包含这种类型元素的数组

1
var list:number[] = [1,2,3];

第二种是使用范型数组类型Array

1
var list:Array<number> = [1,2,3]

如果数组里混合了各种类型

1
2
3
4
5
var list:any[] = [1,'asd',true];
list[1] = 100

//也可以这么写(联合类型)
var list:Array<number|string|boolean> = [1,'asd',true];

2.2 enum类型的声明

enum类型是为了给一个数字集合更友好的命名。enum类型中的成员默认从0开始,但你也可以手动设置成员中的值来更改这种默认行为。

1
2
enum Color {Red,Green,Blue}
var c:Color =Color.Green

会编译为如下代码

1
2
3
4
5
6
7
8
9
var Color;
(function (Color) {
Color[Color["Red"] = 0] = "Red";
Color[Color["Green"] = 1] = "Green";
Color[Color["Blue"] = 2] = "Blue";
})(Color || (Color = {}));
var c = Color.Green;

/*{0: "Red", 1: "Green", 2: "Blue", Red: 0, Green: 1, Blue: 2}*/

阅读全文

如何利用Charles进行抓包

Charles作为一款抓包工具,在web调试,尤其是移动端的调试过程中意义重大。下面对它的使用流程做个记录,方便后续查阅。

一. 在PC(Mac)上抓包

  1. 打开菜单栏,选择“Proxy”,勾选“Starting Recording”和“Mac OS X Proxy”

  1. 打开系统偏好设置-网络-高级-代理;勾选“网络代理(HTTP)”和“安全网络代理(HTTPS)”,并设置网络代理服务器为127.0.0.1:8888(每次开完vpn以后这一项都得重新设置)。这样可以同时抓包http和https的请求。

  2. 抓包成功。

二. 移动端http请求抓包

  1. 在mac端charles内的设置:打开菜单栏,选择“Proxy-Proxy Settings”,设置端口,并勾选“Enable transparent HTTP proxying”

  1. 获取本机IP地址。打开”Help-Local IP Address”,即显示本机IP。

  1. 将手机与电脑连接至同一局域网。

  2. 点开手机当前连接网络的网络设置,修改代理方式为“手动”,并填写第一步设置的端口与第二步获取的IP。

  3. 点击确定,代理成功。

阅读全文