【OS】Linux下 /dev 常見特殊裝置介紹與應用[loop]
【OS】Linux下 /dev 常見特殊裝置介紹與應用[loop]
在這裡詳細介紹一下loop裝置。在進行某些測試的時候,往往需要新建一些磁碟分割槽或者裝置等,此時對硬碟進行重新劃分往往不太方便。在這種情況下,可以通過loop偽裝置來實現迴圈掛載,從而達到目的。在使用之前,迴圈裝置必須與現存檔案系統上的檔案相關聯。這種關聯將提供給使用者一個應用程式介面,介面將允許檔案視為塊特殊檔案(參見裝置檔案系統)使用。因此,如果檔案中包含一個完整的檔案系統,那麼這個檔案就能如同磁碟裝置一般被掛載。這種裝置檔案經常被用於光碟或是磁碟映象。通過迴圈掛載來掛載包含檔案系統的檔案,便使處在這個檔案系統中的檔案得以被訪問。這些檔案將出現在掛載點目錄。
在Linux中,裝置名按照相應裝置驅動程式的符號表項進行命名。這些裝置被叫做“loop”裝置,裝置節點通常命名為/dev/loop0、/dev/loop1之類。
預設情況下Linux支援的loop裝置是8個。如果需要超過8個的loop裝置,那麼可能會遇到類似的錯誤“no such device”或“could not find any free loop device”,這是因為超過了可用loop設定裝置的最大限制,此時可以通過修改/etc/modprobe.conf配置檔案,增加如下引數的方式進行擴充套件:
options loop max_loop=20 #此次增加到20個
儲存退出即可,如果要馬上生效的話,那麼可以通過modprobe -v loop命令立即載入該模組。
還有一種擴充套件loop裝置數量辦法是,用mknod命令建立loop塊裝置:
mknod -m 0660 /dev/loopX b 7 X
其中的X代表第X個loop裝置。示例如下:
[root@rhel6lhr dev]# ll loop*
brw-rw---- 1 root disk 7, 0 Jul 27 09:39 loop0
brw-rw---- 1 root disk 7, 1 Jul 27 09:39 loop1
brw-rw---- 1 root disk 7, 2 Jul 27 09:39 loop2
brw-rw---- 1 root disk 7, 3 Jul 27 09:39 loop3
brw-rw---- 1 root disk 7, 4 Jul 27 09:39 loop4
brw-rw---- 1 root disk 7, 5 Jul 27 09:39 loop5
brw-rw---- 1 root disk 7, 6 Jul 27 09:39 loop6
brw-rw---- 1 root disk 7, 7 Jul 27 09:39 loop7
[root@rhel6lhr dev]# mknod -m 0660 /dev/loop8 b 7 8
[root@rhel6lhr dev]# ll loop*
brw-rw---- 1 root disk 7, 0 Jul 27 09:39 loop0
brw-rw---- 1 root disk 7, 1 Jul 27 09:39 loop1
brw-rw---- 1 root disk 7, 2 Jul 27 09:39 loop2
brw-rw---- 1 root disk 7, 3 Jul 27 09:39 loop3
brw-rw---- 1 root disk 7, 4 Jul 27 09:39 loop4
brw-rw---- 1 root disk 7, 5 Jul 27 09:39 loop5
brw-rw---- 1 root disk 7, 6 Jul 27 09:39 loop6
brw-rw---- 1 root disk 7, 7 Jul 27 09:39 loop7
brw-rw---- 1 root root 7, 8 Jul 27 19:36 loop8
[root@rhel6lhr dev]# chown root:disk /dev/loop8
[root@rhel6lhr dev]# chown root:disk /dev/loop20
[root@rhel6lhr dev]# ll loop*
brw-rw---- 1 root disk 7, 0 Jul 27 09:39 loop0
brw-rw---- 1 root disk 7, 1 Jul 27 09:39 loop1
brw-rw---- 1 root disk 7, 2 Jul 27 09:39 loop2
brw-rw---- 1 root disk 7, 3 Jul 27 09:39 loop3
brw-rw---- 1 root disk 7, 4 Jul 27 09:39 loop4
brw-rw---- 1 root disk 7, 5 Jul 27 09:39 loop5
brw-rw---- 1 root disk 7, 6 Jul 27 09:39 loop6
brw-rw---- 1 root disk 7, 7 Jul 27 09:39 loop7
brw-rw---- 1 root disk 7, 8 Jul 27 19:36 loop8
使用命令losetup -a可以查詢目前被使用的loop裝置:
[root@rhel6lhr dev]# losetup -a
/dev/loop0: [0005]:6631 (/dev/sr0)
/dev/loop1: [fd01]:131081 (/u05/oracle/asmdisk/disk1)
/dev/loop2: [fd01]:131080 (/u05/oracle/asmdisk/disk2)
/dev/loop3: [fd01]:131082 (/u05/oracle/asmdisk/disk3)
/dev/loop4: [fd01]:131083 (/u05/oracle/asmdisk/disk4)
使用loop裝置可以建立ASM磁碟,通過Faking的方式不需要額外新增磁碟,可以在現有檔案系統上分配一些空間用於ASM磁碟,過程如下所示:
mkdir -p /oracle/asmdisk
dd if=/dev/zero of=/oracle/asmdisk/disk1 bs=1024k count=1000
dd if=/dev/zero of=/oracle/asmdisk/disk2 bs=1024k count=1000
/sbin/losetup /dev/loop1 /oracle/asmdisk/disk1
/sbin/losetup /dev/loop2 /oracle/asmdisk/disk2
raw /dev/raw/raw1 /dev/loop1
raw /dev/raw/raw2 /dev/loop2
chmod 660 /dev/raw/raw1
chmod 660 /dev/raw/raw2
chown oracle:dba /dev/raw/raw1
chown oracle:dba /dev/raw/raw2
將以下內容新增到檔案/etc/rc.local檔案中:
/sbin/losetup /dev/loop1 /oracle/asmdisk/disk1
/sbin/losetup /dev/loop2 /oracle/asmdisk/disk2
raw /dev/raw/raw1 /dev/loop1
raw /dev/raw/raw2 /dev/loop2
chmod 660 /dev/raw/raw1
chmod 660 /dev/raw/raw2
chown oracle:dba /dev/raw/raw1
chown oracle:dba /dev/raw/raw2
這樣就可以使用ASM磁碟了。
& 說明:
有關如何建立ASM磁碟的更多內容請參考:http://blog.itpub.net/26736162/viewspace-1401193/。
linux是檔案型系統,所有硬體如軟體都會在對於的目錄下面有相應的檔案表示。對於dev這個目錄,我們知道它下面的檔案,表示的是linux的裝置。在windows系統中,裝置大家很好理解,象硬碟,磁碟指的是實實在在硬體。而在檔案系統的linux下面,都有對於檔案與這些裝置關聯的。訪問它們就可以放到實際硬體,想想還是linux靈活了。變成檔案,操作該多簡單了。不用呼叫以前com,prt等介面了。直接讀檔案,寫檔案就可以向裝置傳送讀或者寫操作了。 按照讀寫儲存資料方式,我們可以把裝置分為以下幾種:字元型裝置,塊裝置,偽裝置。
一、裝置分類
字元型裝置
字元裝置是指每次與系統傳輸1個字元的裝置。這些裝置節點通常為傳真、虛擬終端和串列埠調變解調器、鍵盤之類裝置提供流通訊服務,它通常不支援隨機存取資料。 字元裝置在實現時,大多不使用快取器。系統直接從裝置讀取/寫入每一個字元。例如,鍵盤這種裝置提供的就是一個資料流,當你敲入“cnblogs”這個字串時,鍵盤驅動程式會按照和輸入完全相同的順序返回這個由七個字元組成的資料流。它們是順序的,先返回c,最後是s。
塊裝置
塊裝置是指與系統間用塊的方式移動資料的裝置。這些裝置節點通常代表可定址裝置,如硬碟、CD-ROM和記憶體區域。
塊裝置通常支援隨機存取和定址,並使用快取器。作業系統為輸入輸出分配了快取以儲存一塊資料。當程式向裝置傳送了讀取或者寫入資料的請求時,系統把資料中的每一個字元儲存在適當的快取中。當快取被填滿時,會採取適當的操作(把資料傳走),而後系統清空快取。它與字元裝置不同之處就是,是否支援隨機儲存。字元型是流形式,逐一儲存。
偽裝置
在類Unix作業系統中,裝置節點並不一定要對應物理裝置。沒有這種對應關係的裝置是偽裝置。作業系統運用了它們提供的多種功能。部份經常使用到的偽裝置包括: null,zero,full,loop,random,urandom
二、特殊裝置及使用
這裡說到特殊裝置除了硬碟主機板等,只是它在linux shell命令裡面,有特殊的作用,因此把它們單獨拿出來。這些裝置分別是:
/dev/stdin
/dev/stdout
/dev/stderr
/dev/null
/dev/zero
/dev/full
/dev/random,urandom
/dev/fd
/dev/tcp|upd
/dev/loop
1、標準輸出輸入裝置
還記得上次說的,linux重定向嗎?可以看下:linux shell資料重定向(輸入重定向與輸出重定向)詳細分析 。它們就是與幾個特殊檔案描述符對應,fd0,fd1,fd2 (stdin,stdout,stderr)
如:
/dev/stdin指的就是鍵盤裝置
/dev/null裝置
是個黑洞裝置,它丟棄一切寫入其中資料,空裝置通常被用於丟棄不需要的輸出流。記得當年用windows時候,有個類似的裝置:NUL ,跟這個功能一樣。任何寫入該裝置資料都會被丟棄掉。從這個裡面讀取資料返回是空。將一些不用內容經常傳送給這個裝置,丟棄不需要的資料。
如:
/dev/zero裝置
在類UNIX 作業系統中, /dev/zero 是一個特殊的檔案,當你讀它的時候,它會提供無限的空字元(NULL, ASCII NUL, 0x00)。其中的一個典型用法是用它提供的字元流來覆蓋資訊,另一個常見用法是產生一個特定大小的空白檔案。
如:
在linux資源配額限制裡面,如果沒有現在普通使用者的磁碟空間利用,或記憶體使用。一個普通使用者就可以通過上面方法一會就塞滿整個磁碟。也可以通過while(true) {fork……}類程式,啟動無限執行緒,耗盡整個系統記憶體。
/dev/full裝置
類Unix系統中,/dev/full(常滿裝置)是一個特殊裝置檔案,總是在向其寫入時返回裝置無剩餘空間(錯誤碼為ENOSPC),讀取時則與/dev/zero相似,返回無限的空字元(NULL, ASCII NUL, 0x00)。這個裝置通常被用來測試程式在遇到磁碟無剩餘空間錯誤時的行為。
如:
/dev/random[urandom]
在類UNIX作業系統中,/dev/random是一個特殊的裝置檔案,可以用作隨機數發生器或偽隨機數發生器。它允許程式訪問來自裝置驅動程式或其它來源的背景噪聲。常用作隨機數發生器。具體參考:linux shell實現隨機數多種方法(date,random,uuid)
/dev/fd
記錄使用者開啟的檔案描述符
[chengmo@centos5 shell]$ ls /dev/fd/
0 1 2 3
詳細參考:
linux shell資料重定向(輸入重定向與輸出重定向)詳細分析 檔案描述符介紹。
/dev/tcp[udp]/host/port
讀取該類形式裝置,將會建立一個連線host主機port埠的tcp[upd]連線。開啟一個socket通訊介面。
詳細使用可以參考:
linux shell 指令碼實現tcp/upd協議通訊(重定向應用)
/dev/loop
在類UNIX作業系統中,Loop裝置 可以把loop 檔案,作為塊裝置掛載使用。
如:
[chengmo@centos5 shell]$mount -o loop example.img /home/chengmo/img
#將img映象檔案掛載到/home/chengmo/img目錄下面,有了這個裝置,我們不需要通過虛擬光碟機就可以讀虛擬磁碟格式的檔案。
說了很多linux 特殊裝置,其它象cpu,記憶體,磁碟,網路,鍵盤,終端裝置。跟我們windows裡面常見差不多。有什麼問題,歡迎交流!
在日常的後臺測試中,經常會在一些諸如dd等操作中用到一些系統的裝置型別,如/dev/zero、/dev/null等,接下來我們就將對這些裝置型別的具體含義以及其適用場景進行一個簡單的介紹,以便於大家在今後的測試工作中可以更好的對其進行了解和使用。
1、/dev/null(可以理解為系統的垃圾桶)
把 /dev/null 看作"黑洞", 它非常等價於一個只寫檔案, 所有寫入它的內容都會永遠丟失。而嘗試從它那兒讀取內容則什麼也讀不到。然而, /dev/null 對命令列和指令碼都非常的有用。
用法1:禁止標準輸出
cat $filename > /dev/null
解析:檔案內容丟失,而不會輸出到標準輸出。
用法2:禁止標準錯誤
rm $badname 2> /dev/null
解析:這樣錯誤資訊 [標準錯誤] 就被直接丟進垃圾桶了。
用法3:禁止標準輸出和標準錯誤的輸出
cat $filename 2> /dev/null > /dev/null
解析: 如果"$filename"不存在,將不會有任何錯誤資訊提示;
如果"$filename"存在,檔案的內容不會列印到標準輸出;
因此Therefore, 上面的程式碼根本不會輸出任何資訊,當只想測試命令的退出碼而不想有任何輸出時非常有用。
用法4:自動清空某些檔案內容
cat /dev/null > /var/log/wtmp
解析:自動清空日誌檔案的內容 (特別適合處理這些由商業Web站點傳送的討厭的"cookies")
--------------------------------------------------------------------------------
例:隱藏cookie而不再使用
if [ -f ~/.netscape/cookies ] # 如果存在則刪除.
then
rm -f ~/.netscape/cookies
fi
ln -s /dev/null ~/.netscape/cookies # 現在所有的cookies都會丟入黑洞而不會儲存在磁碟上了。
備註:
/dev/null ------它是空裝置,也稱為位桶(bit bucket)。任何寫入它的輸出都會被拋棄。如果不想讓訊息以標準輸出顯示或寫入檔案,那麼可以將訊息重定向到位桶。
2、/dev/zero(空檔案)
像 /dev/null 一樣,/dev/zero也是一個偽檔案,但它實際上產生連續不斷的null的流(二進位制的零流,而不是ASCII型的)。寫入它的輸出會丟失不見,而從/dev/zero讀出一連串的null 也比較困難,雖然這也能通過od或一個十六進位制編輯器來做到。/dev/zero主要的用處是用來建立一個指定長度用於初始化的空檔案,就像臨時交換檔案。
例:dd一個20G大小的空間,不寫入任何內容。
dd if=/dev/zero of=test.img bs=1G count=20
備註:
/dev/zero------該裝置無窮盡地提供0,可以使用任何你需要的數目——裝置提供的要多的多。他可以用於向裝置或檔案寫入字串0。
3、/dev/random以及/dev/urandom(linux系統中的隨機數生成裝置)
Linux中的隨機數可以從兩個特殊的檔案中產生,一個是/dev/urandom.另外一個是/dev/random。
他們產生隨機數的原理是利用 當前系統的熵池來計算出固定一定數量的隨機位元,然後將這些位元作為位元組流返回。熵池就是當前系統的環境噪音,熵指的是一個系統的混亂程度,系統噪音可以 通過很多引數來評估,如記憶體的使用,檔案的使用量,不同型別的程式數量等等。如果當前環境噪音變化的不是很劇烈或者當前環境噪音很小,比如剛開機的時候, 而當前需要大量的隨機位元,這時產生的隨機數的隨機效果就不是很好了。
這就是為什麼會有/dev/urandom和/dev/random這兩種不同的檔案,後者在不能產生新的隨機數時會阻塞程式,而前者不會 (ublock),當然產生的隨機數效果就不太好了,這對加密解密這樣的應用來說就不是一種很好的選擇。/dev/random會阻塞當前的程式,直到根 據熵池產生新的隨機位元組之後才返回,所以使用/dev/random比使用/dev/urandom產生大量隨機數的速度要慢。
舉例:
[lxf@sg01 dd]$ dd if=/dev/random of=random.dat bs=1024b count=1
0+1 records in
0+1 records out
128 bytes (128 B) copied, 0.000169 seconds, 757 kB/s
[lxf@sg01 dd]$ dd if=/dev/urandom of=random.dat bs=1024b count=1
1+0 records in
1+0 records out
524288 bytes (524 kB) copied, 0.091297 seconds, 5.7 MB/s
解析:
從上面的測試中,可以看到使用/dev/random產生隨機數的速度很慢,而且產生的量很有限,當然,/dev/urandom的隨機效果則好很多。
/dev/loop與裝置檔案系統
摘要:在進行測試的時候,我們往往需要新建一些磁碟分割槽或者裝置等,此時對硬碟進行重新劃分往往不太方面。這種情況下,我們可以通過偽裝置來實現迴圈掛載,從而達到目的。本文主要為你講解什麼是迴圈掛載,什麼是虛擬裝置,裝置和檔案系統有什麼關係。
1.迴圈掛載
在類Unix系統中,/dev/loop(或稱vnd (vnode disk)、lofi(迴圈檔案介面))是一種偽裝置,這種裝置使得檔案可以如同塊裝置一般被訪問。
在使用之前,迴圈裝置必須與現存檔案系統上的檔案相關聯。這種關聯將提供給使用者一個應用程式介面,介面將允許檔案視為塊特殊檔案(參見裝置檔案系統)使用。因此,如果檔案中包含一個完整的檔案系統,那麼這個檔案就能如同磁碟裝置一般被掛載。
這種裝置檔案經常被用於光碟或是磁碟映象。通過迴圈掛載來掛載包含檔案系統的檔案,便使處在這個檔案系統中的檔案得以被訪問。這些檔案將出現在掛載點目錄。
2.可用性
在各種作業系統中迴圈裝置的命名存在著一些混亂。各種類Unix作業系統中,功能性的迴圈裝置被以不同的名字命名。
在Linux中,裝置名按照相應裝置驅動程式的符號表項進行命名。這些裝置被叫做”loop“裝置,裝置節點通常命名為/dev/loop0, /dev/loop1之類。 靜態裝置目錄可以用makedev指令碼建立,或者動態地由裝置檔案系統(udev)設施建立。 迴圈裝置的管理介面是 losetup,這是util-linux軟體包的一部分。
有時,迴圈裝置被錯誤地認為是迴環裝置,但是這個術語在Linux核心中是為網路裝置保留的(參見迴環裝置)。迴圈裝置的概念和迴環裝置不同,雖然在名字上有相似的地方。
在NetBSD和OpenBSD等BSD所派生的系統中,迴圈裝置被稱為“虛擬節點裝置”或“vnd”,並且裝置被置於 /dev/vnd0, /dev/rvnd0 或/dev/svnd0等處。在檔案系統中,使用vnconfig程式來進行配置。
FreeBSD在發行版5之前和其他BSD系統一樣遵守約定,之後迴圈裝置便被納入記憶磁碟裝置("md")。目前使用mdconfig[1]程式進行配置。
在Solaris/OpenSolaris中,迴圈裝置被稱為 "迴環檔案介面" 或 lofi,[2] 位於 /dev/lofi/1等處。SunOS 擁有 lofiadm 配置程式。"lofi"驅動程式支援只讀壓縮和可讀寫的加密。 自從1988年夏季開始更有SunOS/Solaris平臺的第三方驅動 "fbk"[3] (檔案模擬塊裝置,英文:File emulates Blockdevice)
Mac OS X實現了一個本地的映象掛載機制並作為其隨機訪問磁碟裝置的抽象。這些裝置如同普通裝置一樣出現在 /dev 中,讀寫操作被送往一個使用者模式的輔助程式,並由輔助程式負責讀取和寫入的操作。在使用者介面中當開啟磁碟映象的時候自動被啟用。這可以處理多種格式的碟片、CD-ROM 或 DVD 映象。
在Microsoft Windows作業系統上並不能原生支援迴圈掛載(直到Windows 7,這個功能才被原生實現,並通過工具diskpart進行工作)。 [4] 然而,這項能力經常通過第三方程式得以實現,例如Daemon Tools 和 Alcohol 120% VMware的免費工具以及LTR Data (ImDisk)都可以實現類似的功能
3.例項
在目錄上掛載包含檔案系統的檔案一般需要兩步:
- 用一個迴圈裝置節點連線檔案。
- 在目錄上掛載該迴圈裝置
這兩個操作既可以用兩條命令來完成,也可以通過加上特殊的掛載符號的掛載命令來完成。第一個操作可以通過如Linux平臺下的losetup[5]或者是SunOS上的lofiadm[6]命令完成。
例如,如果 example.img 是一個包含檔案系統的常規檔案,並且 /home/you/dir 是 Linux使用者的目錄,超級使用者(root)或許可以通過執行如下的命令來將檔案掛載在目錄上:
losetup /dev/loop0 example.img
mount /dev/loop0 /home/you/dir
其中第二條命令將裝置掛載於目錄 /home/you/dir。執行上述語句的效果便是檔案被作為檔案系統掛載,檔案的內容出現在被掛載的目錄中(以被掛載的目錄作為根目錄)。
此外 mount 工具常常可以勝任整個掛載的程式:
mount -o loop example.img /home/you/dir
之後裝置便能用下列命令實現解除安裝:
umount /home/you/dir # 或者通過諸如 mount | grep "/home/you/dir" # 或是 losetup -a | grep example.img 的查詢找到與檔案相關聯的loop裝置號碼 # 並執行下列命令:(代表裝置號) umount /dev/loop
在較底層的應用程式介面中,檔案的關聯與解除關聯通過在迴圈裝置上的ioctl 系統呼叫來實現。
4.裝置檔案
在類Unix作業系統中,裝置檔案系統允許軟體通過標準輸入輸出系統呼叫與驅動程式互動,從而簡化了許多工。
裝置檔案系統包括裝置檔案、裝置節點、裝置特定檔案,它們是驅動程式的介面,而在檔案系統中,它們就像是普通檔案。
5.裝置
5.1塊裝置
塊裝置是指與系統間用塊的方式移動資料的裝置。這些裝置節點通常代表可定址裝置,如硬碟、CD-ROM和記憶體區域。
塊裝置通常支援隨機存取和定址,並使用快取器。作業系統為輸入輸出分配了快取以儲存一塊資料。當程式向裝置傳送了讀取或者寫入資料的請求時,系統把資料中的每一個字元儲存在適當的快取中。當快取被填滿時,會採取適當的操作(把資料傳走),而後系統清空快取。
5.2字元裝置
字元裝置是指每次與系統傳輸1個字元的裝置。這些裝置節點通常為傳真、虛擬終端和串列埠調變解調器之類裝置提供流通訊服務,它通常不支援隨機存取資料。
字元裝置在實現時,大多不使用快取器。系統直接從裝置讀取/寫入每一個字元。
5.3偽裝置
在類Unix作業系統中,裝置節點並不一定要對應物理裝置。沒有這種對應關係的裝置是偽裝置。作業系統運用了它們提供的多種功能。部份經常使用到的偽裝置包括:
/dev/null 接受和丟棄所有輸入;即不產生任何輸出。 /dev/full 永遠在被填滿狀態的裝置。 /dev/loop Loop裝置 /dev/zero 產生連續的NUL字元的串流(數值為0)。 /dev/random 產生一個虛假隨機的任意長度字元串流。(Blocking) /dev/urandom 產生一個虛假隨機的任意長度字元串流。(Non-Blocking)
6.兩個相關的linux命令
6.1dd命令
dd - convert and copy a file
bs=BYTES
read and write up to BYTES bytes at a time
if:inputfile
of:outputfile
6.2losetup命令
losetup - set up and control loop devices
Delete loop:
losetup -d loopdev...
Print name of first unused loop device:
losetup -f
About Me
.............................................................................................................................................
● 本文整理自網路
● 本文在itpub(http://blog.itpub.net/26736162/abstract/1/)、部落格園(http://www.cnblogs.com/lhrbest)和個人微信公眾號(xiaomaimiaolhr)上有同步更新
● 本文itpub地址:http://blog.itpub.net/26736162/abstract/1/
● 本文部落格園地址:http://www.cnblogs.com/lhrbest
● 本文pdf版、個人簡介及小麥苗雲盤地址:http://blog.itpub.net/26736162/viewspace-1624453/
● 資料庫筆試面試題庫及解答:http://blog.itpub.net/26736162/viewspace-2134706/
● DBA寶典今日頭條號地址:http://www.toutiao.com/c/user/6401772890/#mid=1564638659405826
.............................................................................................................................................
● QQ群:230161599 微信群:私聊
● 聯絡我請加QQ好友(646634621),註明新增緣由
● 於 2017-07-01 09:00 ~ 2017-07-31 22:00 在魔都完成
● 文章內容來源於小麥苗的學習筆記,部分整理自網路,若有侵權或不當之處還請諒解
● 版權所有,歡迎分享本文,轉載請保留出處
.............................................................................................................................................
● 小麥苗的微店:https://weidian.com/s/793741433?wfr=c&ifr=shopdetail
● 小麥苗出版的資料庫類叢書:http://blog.itpub.net/26736162/viewspace-2142121/
.............................................................................................................................................
使用微信客戶端掃描下面的二維碼來關注小麥苗的微信公眾號(xiaomaimiaolhr)及QQ群(DBA寶典),學習最實用的資料庫技術。
小麥苗的微信公眾號 小麥苗的QQ群 小麥苗的微店
.............................................................................................................................................
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26736162/viewspace-2142668/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- linux常見特殊符號介紹Linux符號
- Python的常見模組:OS和 time模組介紹Python
- 常見的反爬蟲措施與應對方法介紹爬蟲
- Linux下安裝與使用MySQL詳細介紹LinuxMySql
- 動物電子標籤閱讀器,常見應用介紹
- 【jetson orin】Jetson Containers介紹安裝與應用AI
- Linux系統常見的三種裝置分類!Linux
- meterpreter常見指令碼介紹指令碼
- Libevent應用 (零) Libevent簡單介紹與安裝
- Linux應用可通過USB訪問Android裝置-Chrome OS 75版釋出LinuxAndroidChrome
- Linux常見的開發命令有哪些?分類介紹!Linux
- Linux 裝置檔案/dev/*詳解、查詢Linuxdev
- 常見啟用函式的介紹和總結函式
- 如何在Chrome OS上安裝Linux應用程式ChromeLinux
- 如何進行程式碼混淆?方法與常見工具介紹行程
- wireshark、異常資料分析、常見RST介紹
- Linux 下 常見操作命令Linux
- Linux單裝置多路USB串列埠的實現方法介紹Linux串列埠
- HDI硬體裝置介面介紹
- 常見伺服器系統介紹伺服器
- 常見的代理IP型別介紹型別
- Disruptor的簡單介紹與應用
- CentOS即將停止維護,擁抱阿里“龍蜥“(Anolis OS),VMware安裝Anolis OS與介紹CentOS阿里
- 常見裝置螢幕解析度
- 代理IP常見錯誤程式碼介紹
- Numba編譯器的介紹與應用編譯
- 深度學習與CV教程(8) | 常見深度學習框架介紹深度學習框架
- python下Matplotlib繪圖案例與常見設定簡介Python繪圖
- redis介紹與安裝Redis
- RocketMQ 介紹與安裝MQ
- 常見原型設計工具介紹-00-overvuew原型Vue
- 高匿代理的介紹及常見問題
- 幾種常見網路抓包方式介紹
- 常見的四類HTTP狀態碼介紹HTTP
- ES6 let 與 const的應用介紹
- HTC VIVE Pro裝置引數配置介紹
- Sqlite 介紹及應用SQLite
- [轉帖]linux的tmpfs和/dev/shm目錄的詳細介紹Linuxdev
- Linux配置開機自啟動執行指令碼方法有哪些?常見介紹!Linux指令碼