原貼: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那麼乙個系統中有多少個loop device呢,我們有來看一看-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 (以下省略)
[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用fdisk進行分割槽,然後建立檔案系統,並用file檢視hd.img的屬性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):
[root@xx ~]# mkfs -t ext2 /dev/loop1你可借助 loop device 來學習lvm,raid,借用loop device 來建立多個虛擬硬碟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
(三)/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兩種引擎,具體參看官方主頁 ...