复习:
- 抽象思维
- 自上而下
- 自下而上
- 函数反复调用
- 复杂问题简单化
ubuntu启动一般在服务器端不使用图形界面 图形界面占用带宽 占用内存
关键点(知识类化)
远程连接工具 putty xshell ssh加密协议
- 查看ip地址 ifconfig
- win+r打开cmd
- 使用ping命令
- 打开远程连接工具->新建连接->输入用户名密码 ip->连接
- 获得管理员权限 sudo
- sudo su 切换到管理员模式(默认root没有密码su命令无法使用)
- clear 清理命令
磁盘文件管理命令
- ls 命令 显示当前文件夹文件
- ls -l 以列表形式显示文件(d开头是文件夹 l为链接)
- pwd 查看当前路径
- cd 改变路径
- 绝对路径 和 相对路径 (./当前目录 ../上级目录)
- ls -l -a 显示隐藏文件
- mkdir 创建目录
- mkdir -p 递归创建
- rm -rf 强制递归删除
vim编辑器
一、移动光标
- 左移h、右移l、下移j、上移k
- 向下翻页ctrl + f,向上翻页ctrl + b
- 向下翻半页ctrl + d,向上翻半页ctrl + u
- 移动到行尾$,移动到行首0(数字),移动到行首第一个字符处^
- 移动光标到下一个句子 ),移动光标到上一个句子(
- 移动到段首{,移动到段尾}
- 移动到下一个词w,移动到上一个词b
- 移动到文档开始gg,移动到文档结束G
- 移动到匹配的{}.().[]处%
- 跳到第n行 ngg 或 nG 或 :n
- 移动光标到屏幕顶端H,移动到屏幕中间M,移动到底部L
- 读取当前字符,并移动到本屏幕内下一次出现的地方 *
- 读取当前字符,并移动到本屏幕内上一次出现的地方 #
二、查找替换
- 光标向后查找关键字 #或者g#
- 光标向前查找关键字 或者g
- 当前行查找字符 fx, Fx, tx, Tx
- 基本替换 :s/s1/s2 (将下一个s1替换为s2)
- 全部替换 :%s/s1/s2
- 只替换当前行 :s/s1/s2/g
- 替换某些行 :n1,n2 s/s1/s2/g
- 搜索模式为 /string,搜索下一处为n,搜索上一处为N
- 制定书签 mx, 但是看不到书签标记,而且只能用小写字母
- 移动到某标签处 `x,1旁边的键
- 移动到上次编辑文件的位置`.
三、编辑操作
- 光标后插入a, 行尾插入A
- 后插一行插入o,前插一行插入O
- 删除字符插入s, 删除正行插入S
- 光标前插入i,行首插入I
- 删除一行dd,删除后进入插入模式cc或者S
- 删除一个单词dw,删除一个单词进入插入模式cw
- 删除一个字符x或者dl,删除一个字符进入插入模式s或者cl
- 粘贴p,交换两个字符xp,交换两行ddp
- 复制y,复制一行yy
- 撤销u,重做ctrl + r,重复.
- 智能提示 ctrl + n 或者 ctrl + p
- 删除motion跨过的字符,删除并进入插入模式 c{motion}
- 删除到下一个字符跨过的字符,删除并进入插入模式,不包括x字符 ctx
- 删除当前字符到下一个字符处的所有字符,并进入插入模式,包括x字符,cfx
- 删除motion跨过的字符,删除但不进入插入模式 d{motion}
- 删除motion跨过的字符,删除但不进入插入模式,不包括x字符 dtx
- 删除当前字符到下一个字符处的所有字符,包括x字符 dfx
- 如果只是复制的情况时,将12-17条中的c或d改为y
- 删除到行尾可以使用D或C
- 拷贝当前行 yy或者Y
- 删除当前字符 x
- 粘贴 p
- 可以使用多重剪切板,查看状态使用:reg,使用剪切板使用”,例如复制到w寄存器,”wyy,或者使用可视模式v”wy
- 重复执行上一个作用使用.
- 使用数字可以跨过n个区域,如y3x,会拷贝光标到第三个x之间的区域,3j向下移动3行
- 在编写代码的时候可以使用]p粘贴,这样可以自动进行代码缩进
- >> 缩进所有选择的代码
- << 反缩进所有选择的代码
- gd 移动到光标所处的函数或变量的定义处
- K 在man里搜索光标所在的词
- 合并两行 J
- 若不想保存文件,而重新打开 :e!
- 若想打开新文件 :e filename,然后使用ctrl + ^进行文件切换
四、窗口操作
- 分隔一个窗口:split或者:vsplit
- 创建一个窗口:new或者:vnew
- 在新窗口打开文件:sf {filename}
- 关闭当前窗口:close
- 仅保留当前窗口:only
- 到左边窗口 ctrl + w, h
- 到右边窗口 ctrl + w, l
- 到上边窗口 ctrl + w, k
- 到下边窗口 ctrl + w, j
- 到顶部窗口 ctrl + w, t
- 到底部窗口 ctrl + w, b
五、宏操作
- 开始记录宏操作q[a-z],按q结束,保存操作到寄存器[a-z]中
- @[a-z]执行寄存器[a-z]中的操作
- @@执行最近一次记录的宏操作
六、可视操作
- 进入块可视模式 ctrl + v
- 进入字符可视模式 v
- 进入行可视模式 V
- 删除选定的块 d
- 删除选定的块然后进入插入模式 c
- 在选中的块同是插入相同的字符 I<String>ESC
七、跳到声明
- [[ 向前跳到顶格第一个{
- [] 向前跳到顶格第一个}
- ]] 向后跳到顶格的第一个{
- ]] 向后跳到顶格的第一个}
- [{ 跳到本代码块的开头
- ]} 跳到本代码块的结尾
八、挂起操作
- 挂起Vim ctrl + z 或者 :suspend
- 查看任务 在shell中输入 jobs
- 恢复任务 fg [job number](将后台程序放到前台)或者 bg [job number](将前台程序放到后台)
- 执行shell命令 :!command
- 开启shell命令 :shell,退出该shell exit
- 保存vim状态 :mksession name.vim
- 恢复vim状态 :source name.vim
- 启动vim时恢复状态 vim -S name.vim
在ubuntu下编写nodejs
const http = require('http');
// Create an HTTP tunneling proxy
var server = http.createServer( (req, res) => {
res.writeHead(200, {
'Content-Type': 'text/plain'});
res.end('okay');
});
// now that proxy is running
server.listen(1337, '192.168.25.128', () => {
console.log("server start");
});
通过node app.js启动->浏览器输入ip地址192.168.25.128:1337访问
编写html
var server = http.createServer( (req, res) => {
res.writeHead(200, {'Content-Type': 'text/html'});
res.write("<html>");
res.write("<head>");
res.write("</head>");
res.write("<body>");
res.write("<h1>hello nodejs world!</h1>");
res.write("</body>");
res.write("</html>");
res.end();
});
console.log(req);打印请求信息
网友评论