Linux 下幾個特別有用的裝置檔案

2021-04-21 23:32:14 字數 3702 閱讀 3196

原貼:http://www.ownlinux.cn/2008/11/13/tips-in-linux-command-line/

登雲梯於 2008-11-15,21:36 瀏覽(649)

正如大家所知道的那樣,linux下的裝置很特別,系統總是以總一的方式讀取裝置,而裝置間的差別由裝置驅動程式來負責完成。正因為如此,裝置管理起來非常地容易。linux也提供了虛裝置檔案,即無實際物理硬體相對應的裝置,它們在實際的工作學習中會經常用到,現介紹如下

(一)-首先說的當然是回環裝置,loop device,這是什麼呢?就是把檔案模擬成裝置,然後就可以像實際裝置那樣進行相關的操作啦,是大家所熟悉的就是掛載光碟鏡象啦,比如說掛載centos-5.2-i386-bin-***.iso 這個,那麼在shell中輸入 並用ls看其內容

[root@xx ~]# mount -o loop /mnt/iso/centos-5.2-i386-bin-***/centos-5.2-i386-bin-***.iso /media

[root@xx ~]# ls /media -l

總計 462

drwxr-xr-x 2 root root 397312 06-19 23:23 centos

-rw-r–r– 7 root root 212 06-15 06:32 eula

-rw-r–r– 7 root root 18009 06-15 06:32 gpl

drwxr-xr-x 4 root root 2048 06-19 23:22 images

drwxr-xr-x 2 root root 2048 06-19 23:05 isolinux  (以下省略)

那麼乙個系統中有多少個loop device呢,我們有來看一看

[root@xx ~]# ls /dev |grep ^loop

loop0

loop1

loop2

loop3

loop4

loop5

loop6

loop7

一般乙個系統中就有這麼多,當然你也可以自行增加哈, 在看看剛剛掛的個鏡象用的是哪個loop device

[root@xx ~]# losetup -a

/dev/loop0: [0805]:1245190 (/mnt/iso/centos-5.2-i386-bin-***/centos-5.2-i386-bin-***.iso)

(二),/dev/zero,這個裝置是做什麼的,,每次對它讀一次它就對外輸出乙個位元組,現在來做乙個10m的資料檔案,然後有file命令來檢視

[root@xx ~]# dd if=/dev/zero of=hd.img bs=1k count=10000

10000+0 records in

10000+0 records out

10240000 bytes (10 mb) copied, 0.0853896 seconds, 120 mb/s

[root@xx ~]# file hd.img

hd.img: data

由file命令hd.img的是資料檔案,現在用loop device把它掛成一虛擬的硬碟

losetup /dev/loop1 hd.img

[root@xx ~]# losetup -a

/dev/loop0: [0805]:1245190 (/mnt/iso/centos-5.2-i386-bin-***/centos-5.2-i386-bin-***.iso)

/dev/loop1: [fd00]:2586037 (hd.img)

可知,hd.img 對應著loop1,而 centos-5.2-i386-bin-***/centos-5.2-i386-bin-***.iso對應著loop0,

現在我們就可以通過/dev/loop1 來操作hd.img啦,,它就象乙個真實的裝置一樣,可以進行分割槽,建立檔案系統等

[root@xx ~]# fdisk /dev/loop1

device contains neither a valid dos partition table, nor sun, sgi or osf disklabel

building a new dos disklabel. changes will remain in memory only,

until you decide to write them. after that, of course, the previous

content won』t be recoverable.

warning: invalid flag 0×0000 of partition table 4 will be corrected by w(rite)

command (m for help):

用fdisk進行分割槽,然後建立檔案系統,並用file檢視hd.img的屬性

[root@xx ~]# mkfs -t ext2 /dev/loop1

mke2fs 1.39 (29-may-2006)

filesystem label=

os type: linux

block size=1024 (log=0)

fragment size=1024 (log=0)

2512 inodes, 10000 blocks

500 blocks (5.00%) reserved for the super user

first data block=1

maximum filesystem blocks=10485760

2 block groups

8192 blocks per group, 8192 fragments per group

1256 inodes per group

superblock backups stored on blocks:

8193

writing inode tables: done

writing superblocks and filesystem accounting information: done

this filesystem will be automatically checked every 33 mounts or

180 days, whichever comes first. use tune2fs -c or -i to override.

[root@xx ~]# file hd.img

hd.img: linux rev 1.0 ext2 filesystem data

你可借助 loop device 來學習lvm,raid,借用loop device  來建立多個虛擬硬碟

(三)/dev/null

這個呢,,在學shell程式設計時就會知道啦,所有發往此裝置的資訊全部都會變為無,借用重定向可以把不須要在shell視窗顯示的資訊全部給刪除

用cat顯示c.c檔案的內容

[root@xx ~]# cat c.c

main()

{}接著把其重定向到/dev/null,發現沒有什麼內容會出現在shell視窗

[root@xx ~]# cat c.c > /dev/null

[root@xx ~]#

位運算中特別有用的功能

date 2017 3 17 author soaringlee 最近在學習和除錯乙個工程專案時,發現很多操作都是通過位運算或者逗號表示式進行實現的。一方面是因為位運算的效率是很高的 位運算是非常迅速的,因為它直接對記憶體中的二進位制資料進行操作。另一方面,可以對 進行優化,提高效率的的同時,也可以...

Linux 特別有意思的幾點知識

1.用windows下我們習慣把安裝的程式放在program files目錄下,在linux下面習慣放在 usr local下。2.我們知道linux下的檔案不是同過字尾名來確定型別的,而windows是依靠字尾名來區分檔案型別的,如果剛好某個檔案沒有定義字尾名,我們可以通過file命令來檢視字尾名...

Linux下的幾個遊戲

我想很多人使用windows 是由於大部分的遊戲只能在windows上玩,特別是網路遊戲,其實在 linux 下的遊戲也不少,而且大多數都是開源的。下面介紹幾款我覺得比較好玩的 1 yo frankie 乙個3d的動作遊戲,使用了blender和crystal space兩種引擎,具體參看官方主頁 ...