Linux學習博客
一、雜項知識整理
1、添加新磁盤後,ls /dev/sd* 無法讀出,用echo "- - -" /sys/class/scsi_host/host2/scan命令
觸發磁盤搜索,讀取HBA卡列表,再次執行ls便會顯示。
2、查看目錄或者文件大小:du -sh /DIR
3、兩個特殊設備:/dev/null 數據黑洞 /dev/zero 吐零機
4、如果某磁盤空間將要滿,直接刪除訪問量小的文件時空間一般不會立即釋放。
此處立刻釋放空間的做法應該是: > /testdir/a 將文件置空 rm -f /testdir/a 然後再刪除文件
5、刪除帶有符號的文件或者文件夾時,應注意符號的中英文區別,例如!和!等。
6、hexedit 十六進制編輯器
7、cat -A 查看文件隱藏字符,windows與Linux中的換行符號不一樣。
dos2unix unix2dos windows和Linux文件相互轉換。
8、pwd -P 如果目錄是鏈接文件,則顯示實際路徑即鏈接後的路徑(物理路徑)
而非鏈接路徑(符號鏈接)。
9、cd -P 路徑:切換至鏈接後的路徑,與pwd -P類似,例如:
[root@localhost project]# cd /testdir/project1 [root@localhost project1]# ls test.a test.b test.c test.d [root@localhost project1]# cd -P /testdir/project1 [root@localhost project]# ls
二、具體命令及事例
1、dd命令:convert and copy a file
dd if=/PATH/FROM/SRC of=/PATH/TO/DEST
bs=# block size複製單元大小
count=# 複製多少個單元(bs)
將a文件填充至1G
dd if=/dev/zero of=/testdir/a bs=1M count=1024
磁盤copy
dd if=/dev/sda of=dev/sdb
備份MBR
dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1
破壞MBR中的bootloader
dd if=/dev/zero of=/dev/sda bs=512 count=1
2、rmdir刪除空目錄
-p 刪除某目錄後如果其父目錄爲空,則刪除連同父目錄
-v 顯示過程
3、hexdump命令:查看文件的16進制編碼;例如hexdump aaa
-n LENGTH 只格式化輸入文件的前LENGTH個字節
-c 單字節字符顯示
-C 輸出規範的十六進制和ASCII碼
-d 雙字節十進制顯示
-o 雙字節八進制顯示
-s 偏移 從偏移量開始輸出,跳過開頭指定長度個字節
-e 格式 指定格式字符串,格式字符串包含在一對單引號中,
格式字符串形式如:'a/b "format1" "format2"'
4、xxd命令,make a hexdump or do the reverse
-b 以2進制格式進行輸出
xxd -b a
-c 每行輸出多少個字節
xxd -c4 a
-g 幾個字節組成一組
xxd -g4 a
-i 將文件內容輸出成c的一個數組格式
-l 輸出幾個字節後結束
xxd -l4 a
-p 以一個整塊輸出所有的hex,不是用空格進行分割
-r 反轉操作,將16進制轉成2進制
-u 輸出採用大寫
5、ls命令:
-a 所有文件
-A 除了路徑的所有文件
--author,與-l類似 列出所有文件的創建者,包括各種信息
-B 不列出以~結尾的隱藏文件
-c 配合-lt:根據ctime排序
[root@localhost /]# ls -clt 總用量 36 drwxrwxrwt. 7 root root 4096 7月 28 12:55 tmp drwxr-xr-x. 6 root root 4096 7月 28 11:38 testdir dr-xr-x---. 5 root root 4096 7月 28 10:18 root drwxr-xr-x. 26 root root 740 7月 28 08:43 run drwxr-xr-x. 91 root root 8192 7月 28 08:31 etc drwxr-xr-x. 20 root root 3260 7月 28 08:13 dev drwxr-xr-x. 20 root root 4096 7月 28 08:13 var dr-xr-xr-x. 13 root root 0 7月 28 08:13 sys dr-xr-xr-x. 391 root root 0 7月 28 08:13 proc dr-xr-xr-x. 4 root root 4096 7月 27 08:04 boot drwxr-xr-x. 3 root root 18 7月 26 21:19 media drwxr-xr-x. 6 root root 56 7月 26 14:51 home drwxr-xr-x. 3 root root 18 7月 24 11:53 mnt drwxr-xr-x. 2 root root 6 7月 22 12:18 mydata drwxr-xr-x. 2 root root 6 7月 19 21:30 extended drwxr-xr-x. 3 root root 15 7月 19 05:00 opt drwxr-xr-x. 13 root root 4096 7月 19 04:56 usr
-d 只顯示目錄
-g 與-l類似,但是不列出所有者
-h human-readable
-si 類似-h,但文件大小取1000的次方而不是1024
-i 顯示出每個文件的inode號
-k 以k字節的形式表示文件大小
-S 根據文件大小排序
-s 以塊大小爲單位列出所有文件的大小
-m 列出的文件以逗號分隔
-o 類似-l,顯示文件除組信息外的詳細信息
-v 根據版本進行排序
-X 根據擴展名排序
-x 逐行累出項目而不是逐欄列出
-w 自己指定屏幕寬度而不是用目前的數值
-p 在所有的目錄上顯示出/
-1 數字1,列出的文件分行顯示
-r 按照文件名反向排序
-F 在每類文件後面加上特有的標識,"@"表示符號鏈接、"|"表示FIFOS、
"/"表示目錄、"="表示套接字。
-u 根據訪問時間進行排序
[root@localhost /]# ls -u lib testdir root dev run var usr media tmp mydata extended bin boot etc lib64 sys proc sbin opt mnt home srv
配合-l顯示訪問時間但根據名稱排序
[root@localhost /]# ls -ul 總用量 36 lrwxrwxrwx. 1 root root 7 7月 28 12:20 bin -> usr/bin dr-xr-xr-x. 4 root root 4096 7月 28 10:27 boot drwxr-xr-x. 20 root root 3260 7月 28 08:13 dev drwxr-xr-x. 91 root root 8192 7月 28 08:30 etc drwxr-xr-x. 2 root root 6 7月 19 21:30 extended drwxr-xr-x. 6 root root 56 7月 21 18:49 home lrwxrwxrwx. 1 root root 7 7月 28 12:25 lib -> usr/lib lrwxrwxrwx. 1 root root 9 7月 28 08:13 lib64 -> usr/lib64 drwxr-xr-x. 3 root root 18 7月 27 10:08 media drwxr-xr-x. 3 root root 18 7月 25 12:04 mnt drwxr-xr-x. 2 root root 6 7月 22 12:18 mydata drwxr-xr-x. 3 root root 15 7月 26 22:57 opt dr-xr-xr-x. 390 root root 0 7月 28 08:13 proc dr-xr-x---. 5 root root 4096 7月 28 10:26 root drwxr-xr-x. 26 root root 740 7月 28 08:13 run lrwxrwxrwx. 1 root root 8 7月 27 14:01 sbin -> usr/sbin drwxr-xr-x. 2 root root 6 7月 19 05:51 srv dr-xr-xr-x. 13 root root 0 7月 28 08:13 sys drwxr-xr-x. 6 root root 4096 7月 28 11:38 testdir drwxrwxrwt. 7 root root 4096 7月 25 15:34 tmp drwxr-xr-x. 13 root root 4096 7月 27 14:10 usr drwxr-xr-x. 20 root root 4096 7月 28 08:13 var
配合-lt顯示訪問時間並且根據訪問時間排序
[root@localhost /]# ls -ult 總用量 36 lrwxrwxrwx. 1 root root 7 7月 28 12:25 lib -> usr/lib lrwxrwxrwx. 1 root root 7 7月 28 12:20 bin -> usr/bin drwxr-xr-x. 6 root root 4096 7月 28 11:38 testdir dr-xr-xr-x. 4 root root 4096 7月 28 10:27 boot dr-xr-x---. 5 root root 4096 7月 28 10:26 root drwxr-xr-x. 91 root root 8192 7月 28 08:30 etc drwxr-xr-x. 20 root root 3260 7月 28 08:13 dev lrwxrwxrwx. 1 root root 9 7月 28 08:13 lib64 -> usr/lib64 drwxr-xr-x. 26 root root 740 7月 28 08:13 run dr-xr-xr-x. 13 root root 0 7月 28 08:13 sys drwxr-xr-x. 20 root root 4096 7月 28 08:13 var dr-xr-xr-x. 390 root root 0 7月 28 08:13 proc drwxr-xr-x. 13 root root 4096 7月 27 14:10 usr lrwxrwxrwx. 1 root root 8 7月 27 14:01 sbin -> usr/sbin drwxr-xr-x. 3 root root 18 7月 27 10:08 media drwxr-xr-x. 3 root root 15 7月 26 22:57 opt drwxrwxrwt. 7 root root 4096 7月 25 15:34 tmp drwxr-xr-x. 3 root root 18 7月 25 12:04 mnt drwxr-xr-x. 2 root root 6 7月 22 12:18 mydata drwxr-xr-x. 6 root root 56 7月 21 18:49 home drwxr-xr-x. 2 root root 6 7月 19 21:30 extended drwxr-xr-x. 2 root root 6 7月 19 05:51 srv