成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

整理幾個(gè)超實(shí)用的前端提效shell命令

開發(fā) 前端
curl 是常用的命令行工具,用來請(qǐng)求 Web 服務(wù)器。它的名字就是客戶端(client)的 URL 工具的意思。curl 功能非常強(qiáng)大,它的命令可以直接放到 postman 使用,postman 也是支持 curl 的請(qǐng)求方式。

curl

curl 是常用的命令行工具,用來請(qǐng)求 Web 服務(wù)器。它的名字就是客戶端(client)的 URL 工具的意思。curl 功能非常強(qiáng)大,它的命令可以直接放到 postman 使用,postman 也是支持 curl 的請(qǐng)求方式。

常用的結(jié)果參數(shù)

curl 的參數(shù)包括很多,這里只說幾個(gè)常用的,如果遇到復(fù)雜情況可以參考文檔。

不知道是不是還有的小伙伴不知道 postman 直接支持 curl 命令,在 postman 中點(diǎn)擊 code 就會(huì)出現(xiàn)對(duì)應(yīng)請(qǐng)求的curl命令

  •  -X 參數(shù)指定 HTTP 請(qǐng)求的方法。
  •  -H 參數(shù)添加 HTTP 請(qǐng)求的標(biāo)頭。
  •  -d 參數(shù)用于發(fā)送 POST 請(qǐng)求的數(shù)據(jù)體。使用 -d 參數(shù)以后,HTTP 請(qǐng)求會(huì)自動(dòng)加上標(biāo)頭Content-Type : application/x-www-form-urlencoded。并且會(huì)自動(dòng)將請(qǐng)求轉(zhuǎn)為 POST 方法,因此可以省略-X POST
  •  -b 參數(shù)用來向服務(wù)器發(fā)送 Cookie。
  •  想了解更多參數(shù)可以去看下阮一峰老師文檔 https://www.ruanyifeng.com/blog/2019/09/curl-reference.html

curl 項(xiàng)目中應(yīng)用

如果對(duì) curl 熟悉的小伙伴完全可以替代 postman 等工具,小伙伴可以直接模擬請(qǐng)求。(我認(rèn)為curl能看到懂常用命令就夠了)

因?yàn)樵?BFF 項(xiàng)目中,好多時(shí)候前端也參與開發(fā),我們也會(huì)直接調(diào)用后端的接口,有時(shí)候報(bào)錯(cuò)不知道是不是自己參數(shù)寫錯(cuò)了,或者 cookie 有問題,找問題調(diào)試不方便,在 local 環(huán)境下,我們會(huì)直接打印出完整的 curl 請(qǐng)求,這時(shí)候可以直接看出錯(cuò)誤,開發(fā)者只需要知道 curl 的一些參數(shù)就可以,還可以直接把 curl 命令復(fù)制到 postman 進(jìn)行調(diào)試??匆幌戮唧w實(shí)現(xiàn)部分代碼 

  1.  //只在本地環(huán)境輸出  
  2.     if (ctx.app.config.env === 'local') {  
  3.       const str =  
  4.         curlString(url, {  
  5.           method,  
  6.           headers,  
  7.           body,  
  8.         }) + '\n';  
  9.       console.log('\x1b[32m%s\x1b[0m', str);  
  10.     }     
  11. /**  
  12.  * Builds a curl command and returns the string.  
  13.  * @param  {String} url               Endpoint  
  14.  * @param  {Object} options           Object with headers, etc. (fetch format)  
  15.  * @return {String}                   cURL command  
  16.  */  
  17. function curlString(url, options) {  
  18.   const method = options && options.method && typeof options.method === 'string' ? options.method.toUpperCase() : 'GET';  
  19.   const hasHeaders = options && options.headers && typeof options.headers === 'object';  
  20.   const hasBody = options && options.body;  
  21.   let curl = `\ncurl --request ${method} \\\n--url '${url}'`;  
  22.   if (hasHeaders) {  
  23.     curl +=  
  24.       ' \\\n' +  
  25.       Object.entries(options.headers)  
  26.         .filter(([key, value]) => value !== undefined)  
  27.         .map(([key, value]) => `--header '${key}: ${value}'`)  
  28.         .join(' \\\n');  
  29.   }  
  30.   if (hasBody) {  
  31.     curl += ` \\\n--data '${bodyToDataString(options)}'`;  
  32.   }  
  33.   return curl;  
  34.  
  35. /**  
  36.  * Constructs a body string for use inside --data  
  37.  * @param  {Object} options           Object with headers, etc. (fetch format)  
  38.  * @return {String}                   cURL command data string  
  39.  */  
  40. function bodyToDataString(options) {  
  41.   let parsedData;  
  42.   try {  
  43.     parsedData = JSON.parse(options.body);  
  44.   } catch (e) {  
  45.     // fall back to original body if it could not be parsed as JSON  
  46.     parsedData = options.body;  
  47.   }  
  48.   // return an ampersand delimited string  
  49.   const headers = _.get(options, 'headers');  
  50.   const contentType = _.toLower(_.get(headers, 'content-type') || _.get(headers, 'Content-Type'));  
  51.   if (contentType === 'application/x-www-form-urlencoded') {  
  52.     if (typeof parsedData === 'string') {  
  53.       return parsedData;  
  54.     } else {  
  55.       return Object.entries(parsedData)  
  56.         .map(([key, val]) => `${key}=${val}`)  
  57.         .join('&');  
  58.     }  
  59.   } else {  
  60.     return JSON.stringify(parsedData);  
  61.   }  

vim 中的基本操作和配置

非 insert 模式

在 vim 打開文件后,還沒有使用插入編輯,可以做哪些基本操作

  1.  G 快速移動(dòng)到文件底部(常用于查看日志)
  2.  gg 快速移動(dòng)到文件頂部
  3.  0 快速移動(dòng)到行首
  4.  $ 快速移動(dòng)到行尾
  5.  :13 快速移動(dòng)到特定行
  6.  ZZ 光標(biāo)移動(dòng)到本屏中間
  7.  dd 剪切本行
  8.  yy 復(fù)制本行
  9.  u 撤銷(undo縮寫,撤銷)
  10.  p 粘貼 (p指paste,粘貼)
  11.  在 mac 系統(tǒng)下可以 option+點(diǎn)擊 快速移動(dòng)到想要的位置(也就是光標(biāo))

insert 模式

前面說了多種移動(dòng)方式,接下來結(jié)束幾個(gè)常用的 insert 命令,我這里就結(jié)束一些常用簡(jiǎn)單的

  1.  i 在當(dāng)前光標(biāo)的前面進(jìn)行編輯
  2.  o 快速進(jìn)入 insert 模式,并定位到下一行編輯
  3.  esc 退出 insert 模式,與 <crtl-[>

ping

在網(wǎng)絡(luò)中 ping 是一個(gè)十分強(qiáng)大的 TCP/IP 工具。

  1.  用來檢測(cè)網(wǎng)絡(luò)的連通情況和分析網(wǎng)絡(luò)速度
  2.  根據(jù)域名得到服務(wù)器IP
  3.  根據(jù)ping返回的TTL值來判斷對(duì)方所使用的操作系統(tǒng)及數(shù)據(jù)包經(jīng)過路由器數(shù)量。

bytes值:數(shù)據(jù)包大小,也就是字節(jié)。

time值:響應(yīng)時(shí)間,這個(gè)時(shí)間越小,說明你連接這個(gè)地址速度越快。

TTL值:Time To Live,表示DNS記錄在DNS服務(wù)器上存在的時(shí)間,它是 IP 協(xié)議包的一個(gè)值,告訴路由器該數(shù)據(jù)包何時(shí)需要被丟棄??梢酝ㄟ^ Ping 返回的 TTL 值大小,粗略地判斷目標(biāo)系統(tǒng)類型是 Windows 系列還是 UNIX/Linux 系列。

默認(rèn)情況下,Linux 系統(tǒng)的TTL值為64或255,WindowsNT/2000/XP 系統(tǒng)的 TTL 值為 128,Windows98 系統(tǒng)的 TTL 值為32,UNIX 主機(jī)的 TTL 值為 255。

除了直接 ping ip ,還可以 ping 域名,會(huì)自動(dòng)把域名解析為 ip。

應(yīng)用

最常用的方式是直接ping ip地址,測(cè)試網(wǎng)絡(luò)連通性

學(xué)會(huì)看懂出錯(cuò)提示信息

(1)NoAnswer:這種故障表明本機(jī)有一條通向中心主機(jī)的路由,但沒有收到發(fā)給該中心主機(jī)的任何信息。原因可能是:中心主機(jī)沒有工作、本機(jī)或中心主機(jī)網(wǎng)絡(luò)配置不正確、本地或中心的路由器沒有工作、通信線路有故障、中心主機(jī)存在路由選擇問題,等等。

(2)Request Timed Out:超時(shí)錯(cuò)誤,被測(cè)試的機(jī)器不能正常連接,原因可能是該主機(jī)此時(shí)未連接(如已關(guān)機(jī))、或到路由器的連接有問題、或路由器不能通過,或?qū)Ψ街鳈C(jī)使用了防火墻軟件禁止進(jìn)行 Ping 測(cè)試等等。

(3)Unknown Host Name:無法解析主機(jī)名字,可能是DNS設(shè)置不對(duì),或者對(duì)方主機(jī)不存在

telnet

telnet 經(jīng)常可以確定遠(yuǎn)程服務(wù)的狀態(tài),比如確定遠(yuǎn)程服務(wù)器的某個(gè)端口是否能訪問(端口連通性)。

telenet是windows標(biāo)準(zhǔn)服務(wù),可以直接用;如果是linux或者mac,需要自己安裝telnet

使用 telnet ip port

1)先用telnet連接不存在的端口 

  1. [root@localhost ~]# telnet 10.0.250.3 80  
  2. Trying 10.0.250.3...  

telnet: connect to address 10.0.250.3: Connection refused #直接提示連接被拒絕

2)再連接存在的端口 

  1. [root@localhost ~]# telnet localhost 22  
  2. Trying ::1...  
  3. Connected to localhost. #看到Connected就連接成功了  
  4. Escape character is '^]'.  
  5. SSH-2.0-OpenSSH_5.3  
  6.  
  7. Protocol mismatch.  
  8. Connection closed by foreign host. 

總結(jié)

優(yōu)秀和常用的 shell 命令有好多,我這里只寫了幾個(gè)非常常用,并且前端開發(fā)者也會(huì)經(jīng)常用到的命令,希望對(duì)小伙伴們有一丟丟幫助。 

 

責(zé)任編輯:龐桂玉 來源: 前端大全
相關(guān)推薦

2016-09-26 14:40:25

Windows內(nèi)網(wǎng)實(shí)用命令

2021-08-24 06:42:50

IDEA插件工具

2023-03-07 10:44:05

前端JS 調(diào)試

2010-07-05 17:10:36

FTP命令

2023-11-22 19:10:42

前端父應(yīng)用文案

2023-03-23 21:08:59

head命令

2023-03-24 10:07:46

tail命令

2022-07-08 11:18:33

前端實(shí)踐自動(dòng)化

2021-03-04 22:15:36

JavaScript編程開發(fā)

2011-01-18 13:53:42

Linux Shell命令

2022-04-15 09:01:18

前端工具UTF8編碼

2024-09-02 08:03:23

2021-03-12 10:01:33

Sudo命令Linux

2021-04-22 10:28:52

開發(fā)技能代碼

2023-05-05 17:11:11

前端Mousetrap方式

2023-11-02 10:14:50

TinykeysWeb應(yīng)用

2024-02-29 13:42:00

Linuxsar命令uptime

2017-03-01 17:27:32

LinuxShell命令

2022-10-20 08:34:09

圖像算法商品

2023-12-27 18:15:42

組裝式生態(tài)提效開發(fā)中心
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产精品久久久亚洲 | 在线免费观看成年人视频 | 国产日韩欧美一区 | 91精品中文字幕一区二区三区 | 91久久久久久久久久久久久 | cao在线 | 精品成人 | 日本免费在线观看视频 | 久久精品国产久精国产 | 自拍偷拍第一页 | 九九伦理片 | 黄色免费三级 | 欧美在线视频一区二区 | www.国产精| 夜夜骚视频| 久久影音先锋 | 亚洲精品乱码久久久久久蜜桃91 | 91av在线免费播放 | 欧美国产精品一区二区三区 | 国产传媒毛片精品视频第一次 | 99久久日韩精品免费热麻豆美女 | 91久久精品一区二区二区 | 欧美性视频在线播放 | 欧美一级免费观看 | 国产激情免费视频 | 黄色日批视频 | 久久蜜桃av一区二区天堂 | 久久亚洲视频网 | 欧美成人猛片aaaaaaa | 亚洲国产精品一区二区三区 | 久久精品久久久久久 | 在线黄色网 | 成人妇女免费播放久久久 | 精品美女视频在线观看免费软件 | 羞羞网站免费 | 最新国产福利在线 | 日本激情一区二区 | 91精品国产综合久久精品 | 亚洲精品一区在线 | 五月香婷婷 | 久久宗合色|