shell、redis使用、服務端監控、cURL


一.跳板機

來源什么是跳板機

 

SSH【Secure Shell】(遠程連接工具)連接原理:ssh服務是一個守護進程(demon),系統后台監聽客戶端的連接,ssh服務端的進程名為sshd,負責實時監聽客戶端的請求(IP 22端口),包括公共秘鑰等交換等信息。

ssh服務端由2部分組成: openssh(提供ssh服務)    openssl(提供加密的程序)

ssh的客戶端可以用 XSHELL,Securecrt, Mobaxterm等工具進行連接

來源:Linux SSH命令詳解

 

SSH兩種級別的遠程登錄:

來源SSH簡介及兩種遠程登陸方法

資源如何利用XShell隧道通過跳板機連接內網機器

 

二.shell使用

資料來源Shell腳本:Linux Shell腳本學習指南(超詳細)

Shell 是用戶和應用程序與內核溝通的橋梁。

Shell 既是一種命令語言,又是一種程序設計語言。

在線運行 Shell 命令

各位讀者請務必安裝 Linux 系統,可以在物理機上安裝,也可以在虛擬機上安裝,如果手頭沒有 Linux 系統,又想運行 Shell 命令,那么我給大家推薦一個線上的運行環境:http://www.dooccn.com/shell/

來源Shell提示符:#和$

 

資源linux命令大全

 

Linux 打包

tar  -cvzf  打包名  打包文件目錄

 

mv命令用來對文件或目錄重新命名,或者將文件從一個目錄移到另一個目錄中。

source表示源文件或目錄,target表示目標文件或目錄

mv source target

 

Linux操作數據庫

 資料來源在Linux下登錄mysql和退出mysql

Linux下MySQL 數據庫的基本操作

 

數據庫登錄

mysql -hlocalhost -uroot -p
-h數據庫主機
-u用戶
-p密碼
-P端口號(大寫P) 

 

查看當前數據庫列表--顯示數據庫(show databases):

 

 

激活當前數據庫--選擇數據庫(use hivgw):

 

 

 操作表:

 

三.redis使用

來源REDIS命令

REmote DIctionary Server(Redis) 是一個由Salvatore Sanfilippo寫的key-value存儲系統。

 

Redis 命令用於在 redis 服務上執行操作。

要在 redis 服務上執行命令需要一個 redis 客戶端。Redis 客戶端在我們之前下載的的 redis 的安裝包中。

 


Redis Zrange 返回有序集中,指定區間內的成員。

下標參數 start 和 stop 都以 0 為底,也就是說,以 0 表示有序集第一個成員,以 1 表示有序集第二個成員,以此類推。

你也可以使用負數下標,以 -1 表示最后一個成員, -2 表示倒數第二個成員,以此類推。

 

Redis查詢、修改:

 

 

Redis數據結構

1.字符串(String)【Redis 字符串數據類型的相關命令用於管理 redis 字符串值】

 

設置指定key的值:

set key value

獲取指定key的值:

get key

刪除指定的鍵中的值(這個命令可以用於所有的類型)

del key

 

2.列表(List)

 Redis列表是簡單的字符串列表,按照插入順序排序。你可以添加一個元素到列表的頭部(左邊)或者尾部(右邊)

 

將給定值推入列表的右端

rpush key value

獲取列表在指定范圍的所有值

lrange key 0 -1

獲取列表在指定范圍的單個值

lindex key index

從列表的左端彈出一個值,並返回這個值

lpop key

 

 

3.集合(set)

Redis 的 Set 是 String 類型的無序集合。集合成員是唯一的,這就意味着集合中不能出現重復的數據。

Redis 中集合是通過哈希表實現的,所以添加,刪除,查找的復雜度都是 O(1)。

 

將給定元素添加到集合

sadd key value

返回集合包含的所以元素

smembers key

檢查指定元素是否存在集合中

sismember key value

檢查指定元素是否存在在集合中,如果存在就移除

srem key value

 

4.哈希(hash)

Redis hash 是一個string類型的field和value的映射表,hash特別適合用於存儲對象。

在字符串類型中,value 只能是一個字符串。那么在散列類型,也叫哈希類型中,value 對應的也是一個字典(關聯數組)。

 

在散列里面關聯起指定的鍵值對

HSET KEY_NAME FIELD VALUE

獲取指定散列鍵的值

HGET KEY_NAME FIELD_NAME

獲取散列對所有鍵的值

hgetall key

如果給定的鍵值對存在在散列對,那么就刪除

HDEL KEY_NAME FIELD1

 

5.有序集合sorted set(zset)

 Redis 有序集合和集合一樣也是string類型元素的集合,且不允許重復的成員。

不同的是每個元素都會關聯一個double類型的分數。redis正是通過分數來為集合中的成員進行從小到大的排序。

有序集合的成員是唯一的,但分數(score)卻可以重復。

 

將一個帶有給定分值的成員添加到有序集合里面

zadd key scores value

根據元素在有序排列中所處的位置,從有序集合里面獲取多個元素

zrange key 0 -1 withscores

獲取有序集合在給定分值范圍內的所有元素

zrangebyscore key scroes1 scroes2 withscores

如果指定成員存在於有序集合中,那么移除這個成員

zrem key value

資料來源:Redis ZSet類型及操作

 Redis 數據結構詳解

 

四.vi命令詳解

資料來源:Linux中vi命令詳解

Linux——vi命令詳解

 

1) 命令行模式command mode)

  控制屏幕光標的移動,字符、字或行的刪除,移動復制某區段及進入Insert mode下,或者到 last line mode。

2) 插入模式(Insert mode) 

  只有在Insert mode下,才可以做文字輸入,按「ESC」鍵可回到命令行模式。

3) 底行模式(last line mode)

  將文件保存或退出vi,也可以設置編輯環境,如尋找字符串、列出行號……等。

不過一般我們在使用時把vi簡化成兩個模式,就是將底行模式(last line mode)也算入命令行模式command mode)。

 

五.服務端監控

資料來源:后端線上服務監控與報警方案

 

六.cURL

1.cURL是一個利用URL語法在命令行下工作的文件傳輸工具

2.Linux 命令行:cURL 的十種常見用法

a.獲取頁面內容【當我們不加任何選項使用 curl 時,默認會發送 GET 請求來獲取鏈接內容到標准輸出。】

例:curl http://www.codebelief.com

 

b.顯示HTTP頭【如果我們只想要顯示 HTTP 頭,而不顯示文件內容,可以使用 -I 選項】

例:curl -I http://www.codebelief.com

【也可以同時顯示 HTTP 頭和文件內容,使用 -i 選項】

例:curl -i http://www.codebelief.com

 

c.將鏈接保存到文件【我們可以使用 > 符號將輸出重定向到本地文件中。】

例:curl http://www.codebelief.com > index.html 

【也可以通過 curl 自帶的 -o/-O 選項將內容保存到文件中。】

-o(小寫的 o):結果會被保存到命令行中提供的文件名
-O(大寫的 O):URL 中的文件名會被用作保存輸出的文件名
curl -o index.html http://www.codebelief.com
curl -O http://www.codebelief.com/page/2/
注意:使用 -O 選項時,必須確保鏈接末尾包含文件名,否則 curl 無法正確保存文件。如果遇到鏈接中無文件名的情況,應該使用 -o 選項手動指定文件名,或使用重定向符號。

 

d.同時下載多個文件【可以使用 -o 或 -O 選項來同時指定多個鏈接,按照以下格式編寫命令】

例:curl -O http://www.codebelief.com/page/2/ -O http://www.codebelief.com/page/3/

或者

curl -o page1.html http://www.codebelief.com/page/1/ -o page2.html http://www.codebelief.com/page/2/

 

 

e.使用-L跟隨鏈接重定向

【通過瀏覽器打開鏈接時,會自動跳轉到 http://www.codebelief.com。此時我們想要 curl 做的,就是像瀏覽器一樣跟隨鏈接的跳轉,獲取最終的網頁內容。我們可以在命令中添加 -L 選項來跟隨鏈接重定向】

例:curl -L http://codebelief.com
這樣我們就能獲取到經過重定向后的網頁內容了。

 

f.使用-A 自定義User-Agent【可以使用 -A 來自定義用戶代理,例如下面的命令將偽裝成安卓火狐瀏覽器對網頁進行請求】

例:curl -A “Mozilla/5.0 (Android; Mobile; rv:35.0) Gecko/35.0 Firefox/35.0” http://www.baidu.com

 

g.使用-H自定義Header

當我們需要傳遞特定的 header 的時候,可以仿照以下命令來寫:
例:curl -H “Referer: www.example.com” -H “User-Agent: Custom-User-Agent” http://www.baidu.com
可以看到,當我們使用 -H 來自定義 User-Agent 時,需要使用 “User-Agent: xxx” 的格式。

我們能夠直接在 header 中傳遞 Cookie,格式與上面的例子一樣:
curl -H “Cookie: JSESSIONID=D0112A5063D938586B659EF8F939BE24” http://www.example.com
另一種方式會在下面介紹。

 

h.使用-c保存cookie

當我們使用 cURL 訪問頁面的時候,默認是不會保存 Cookie 的。有些情況下我們希望保存 Cookie 以便下次訪問時使用。例如登陸了某個網站,我們希望再次訪問該網站時保持登陸的狀態,這時就可以現將登陸時的 Cookie 保存起來,下次訪問時再讀取。

-c 后面跟上要保存的文件名。
例:curl -c “cookie-example” http://www.example.com

 

i.使用-b讀取cookie

前面講到了使用 -H 來發送 Cookie 的方法,這種方式是直接將 Cookie 字符串寫在命令中。如果使用 -b 來自定義 Cookie,命令如下:
curl -b “JSESSIONID=D0112A5063D938586B659EF8F939BE24” http://www.example.com
如果要從文件中讀取 Cookie,-H 就無能為力了,此時可以使用 -b 來達到這一目的:
curl -b “cookie-example” http://www.example.com
即 -b 后面既可以是 Cookie 字符串,也可以是保存了 Cookie 的文件名。

 

j.使用-d發送POST請求

我們以登陸網頁為例來進行說明使用 cURL 發送 POST 請求的方法。假設有一個登錄頁面 www.example.com/login,只需要提交用戶名和密碼便可登錄。我們可以使用 cURL 來完成這一 POST 請求,-d 用於指定發送的數據,-X 用於指定發送數據的方式:
curl -d “userName=tom&passwd=123456” -X POST http://www.example.com/login

在使用 -d 的情況下,如果省略 -X,則默認為 POST 方式:
curl -d “userName=tom&passwd=123456” http://www.example.com/login

強制使用 GET 方式
發送數據時,不僅可以使用 POST 方式,也可以使用 GET 方式,例如:
curl -d “somedata” -X GET http://www.example.com/api

或者使用 -G 選項:
curl -d “somedata” -G http://www.example.com/api

從文件中讀取 data
curl -d “@data.txt” http://www.example.com/login

帶 Cookie 登錄
當然,如果我們再次訪問該網站,仍然會變成未登錄的狀態。我們可以用之前提到的方法保存 Cookie,在每次訪問網站時都帶上該 Cookie 以保持登錄狀態。
curl -c “cookie-login” -d “userName=tom&passwd=123456” http://www.example.com/login
再次訪問該網站時,使用以下命令:
curl -b “cookie-login” http://www.example.com/login
這樣,就能保持訪問的是登錄后的頁面了。

 

3.curl 命令詳解


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM