相關命令工具 lsof sync mknod losetup uuidgen free df du lscpu dd convert ...
相關命令工具
lsof
lsof - list open files,列出那些文件被啟用了
lsof [ -?abChKlnNOPRtUvVX ] [ -A A ] [ -c c ] [ +c c ] [ +|-d d ] [ +|-D D ] [ +|-e s ] [ +|-f [cfgGn] ] [ -F [f] ] [ -g [s] ] [ -i [i] ] [ -k k ] [ +|-L [l] ] [ +|-m m ] [ +|-M ] [ -o [o] ] [ -p s ] [ +|-r [t[m<fmt>]] ] [ -s [p:s] ] [ -S [t] ] [ -T [t] ] [ -u s ] [ +|-w ] [ -x [fl] ] [ -z [z] ] [ -Z [Z] ] [ -- ] [names]
-?|-h 顯示幫助
-a and或or選擇
-b 避免內核阻礙
-c c cmd c ^c /c/[bix]
+c w COMMAND width (9)
+d s 目錄 s 文件
-d s 被FD設置選擇
+D D dir D tree *SLOW?*
+|-e s exempt s *RISKY*
-i select IPv[46] files
-K 列出任務(threads)
-l 列出uid
-n 不用主機名
-N 選擇NFS文件
-o 列出文件offset
-O no overhead *RISKY*
-P no port names
-R list paRent PID
-s 列出文件尺寸
-t 簡潔列表
-T 關閉 TCP/TPI 信息
-U 選擇 Unix 套接字
-v 列出版本信息
-V 詳細搜索
+|-w Warnings (+)
-X 跳過 TCP&UDP* 文件
-Z Z context [Z]
-- 末選項掃描
+f|-f +filesystem or -file names
+|-f[gG] flaGs
-F [f] select fields; -F? for help
+|-L [l] list (+) suppress (-) link counts < l (0 = all; default = 0)
+m [m] use|create mount supplement
+|-M portMap registration (-)
-o o o 0t offset digits (8)
-p s exclude(^)|select PIDs
-S [t] t second stat timeout (15)
-T qs TCP/TPI Q,St (s) info
-g [s] exclude(^)|select and print process group IDs
-i i select by IPv[46] address: [46][proto][@host|addr][:svc_list|port_list]
+|-r [t[m<fmt>]] repeat every t seconds (15); + until no files, - forever.An optional suffix to t is m<fmt>,
m must separate t from <fmt> and <fmt> is an strftime(3) format for the marker line.
-s p:s exclude(^)|select protocol (p = TCP|UDP) states by name(s).
-u s exclude(^)|select login|UID set s
-x [fl] cross over +d|+D File systems or symbolic Links
names select named files or files on named file systems
例如
lsof MOUNT_POINT
sync
sync - flush file system buffers,強制同步,更新超級塊
用法:
sync
mknod
mknod - make block or character special files
Create the special file NAME of the given TYPE.
mknod [options]... name type [major minor]
[options]
-m, --mode=MODE 設置文件許可權給MODE, not a=rw - umask
-Z 設置 SELinux 安全上下文給預設類型
--context[=CTX] 如同 -Z, or 如果 CTX 被指定,設置 SELinux or SMACK安全上下文給CTX
[type]
b 創建一個塊指定的文件(buffered)
c, u 創建一個字元指定文件 (unbuffered)
p 創建一個 FIFO
losetup
losetup - set up and control loop(環路) devices
losetup [options] [<loopdev>]
losetup [options] -f | <loopdev> <file>
-a, --all 列出所有使用的設備
-d, --detach <loopdev> [...] 分離一個或多個設備
-D, --detach-all 分離所有使用的設備
-f, --find 找到第一個不用的設備
-c, --set-capacity <loopdev> 重設設備
-j, --associated <file> 列出設備關聯的文件<file>
-l, --list 列出所有或指定的信息
-o, --offset <num> start at offset <num> into file
-O, --output <cols> 指定輸出的列, --list
--sizelimit <num> 設備限製為文件的<num> bytes
-P, --partscan 創建分區迴圈設備
-r, --read-only 安裝只讀迴圈設備
--show 在安裝後顯示設備名 (with -f)
Available --list columns:
NAME 環設備命令
AUTOCLEAR 自動清除標記設置
BACK-FILE 設備支持文件
BACK-INO 支持文件inode號
BACK-MAJ:MIN 支持文件major:minor 設備號
MAJ:MIN 環設備 major:minor 號
OFFSET 從開始處偏離
PARTSCAN partscan flag set
RO 只讀設備
SIZELIMIT 採用bytes的文件尺寸限制
用法示例:
Get info:
losetup loopdev
losetup -l [-a]
losetup -j file [-o offset]
Delete loop:
losetup -d loopdev...
Delete all used loop devices:
losetup -D
Print name of first unused loop device:
losetup -f
Setup loop device:
losetup [-o offset] [--sizelimit size][-p pfd] [-rP] {-f[--show]|loopdev} file
Resize loop device:
losetup -c loopdev
uuidgen
uuidgen - create a new UUID value,創建新的uuid值
uuidgen [options]
-r, --random 產生基於隨機數的uuid
-t, --time 產生基於時間的uuid
free
free - Display amount of free and used memory in the system,顯示記憶體空間使用狀態
free [options]
-b, --bytes 採用bytes顯示
-k, --kilo 採用kilobytes顯示
-m, --mega 以MB 為單位顯示
-g, --giga 以GB 為單位顯示
--tera 採用terabytes顯示
-h, --human 使用人類可讀的顯示
--si 使用1000而不是1024的格式
-l, --lohi 顯示低或高記憶體使用的狀態
-t, --total 顯示RAM + swap
-s N, --seconds N 重覆列印每 N 秒
-c N, --count N 重覆列印 N 時間然後退出
-w, --wide 廣泛輸出
在沒有裝好的系統時查看記憶體
cat /proc/meminfo
df
df - report file system disk space usage,查看文件系統空間占用信息
df [OPTION]... [FILE]...
-a或--all: 包含全部的文件系統;
--block-size=<區塊大小>: 以指定的區塊大小來顯示區塊數目;
-h或--human-readable: 以可讀性較高的方式來顯示信息;
-H或--si: 與-h參數相同,但在計算時是以1000 Bytes為換算單位而非1024 Bytes;
-i或--inodes: 顯示inode的信息;
-k或--kilobytes: 指定區塊大小為1024位元組;
-l或--local: 僅顯示本地端的文件系統;
-m或--megabytes: 指定區塊大小為1048576位元組;
--no-sync: 在取得磁碟使用信息前,不要執行sync指令,此為預設值;
-P或--portability: 使用POSIX的輸出格式;
--sync: 在取得磁碟使用信息前,先執行sync指令;
-t<文件系統類型>或--type=<文件系統類型>: 僅顯示指定文件系統類型的磁碟信息;
-T或--print-type: 顯示文件系統的類型;
-x<文件系統類型>或--exclude-type=<文件系統類型>: 不要顯示指定文件系統類型的磁碟信息
du
du - estimate(預估)file space usage,查看某目錄總體空間占用狀態。
Summarize disk usage of each FILE, recursively for directories.
du [OPTION]... [FILE]...
du [OPTION]... --files0-from=F
-0, --null 以0位元組而不是以換行符結束每個輸出行
-a, --all 為所有文件計數,而不是只給目錄計數
--apparent-size 列印當前尺寸而不是磁碟使用率
-B, --block-size=SIZE 以指定的SIZE來規範顯示,e.g.,'-BM' prints sizes in units of 1,048,576 bytes;see SIZE format below
-b, --bytes 等價於 '--apparent-size --block-size=1'
-c, --total 顯示總的統計
-D, --dereference-args 僅取消引用在命令行中的軟鏈接
-d, --max-depth=N 顯示一個目錄的統計信息 (or file, with --all), --max-depth=0 is the same as --summarize
--files0-from=F 總結在文件F中的指定為NUL-terminated文件的磁碟使用率,如果F為-,則從標準輸入中讀取名稱
-H 等價於--dereference-args (-D)
-h, --human-readable 以可讀格式顯示 (e.g., 1K 234M 2G)
--inodes 列出節點使用信息
-k 如同--block-size=1K
-L, --dereference 取消所有軟鏈接
-l, --count-links 若是硬鏈接的話多次計算尺寸
-m 如同 --block-size=1M
-P, --no-dereference 不允許任何軟鏈接
-S, --separate-dirs 不包括子目錄的尺寸
--si 如同 -h, 但使用的是1000而不是1024
-s, --summarize 僅顯示每個參數的彙總
-t, --threshold=SIZE 如果為正數,則排除小於SIZE的項,若為負載數則為大於SIZE的項
--time 顯示在目錄中任何文件或子目錄最近修改的時間
--time=WORD 用WORD來代替修改時間atime, access, use, ctime or status來顯示時間
--time-style=STYLE 用STYLE來顯示時間,可以是:full-iso, long-iso, iso, or +FORMAT;FORMAT可理解為 'date'
-X, --exclude-from=FILE 排除任何匹配到的FILE的文件
--exclude=PATTERN 排除匹配到PATTERN的文件
-x, --one-file-system 在不同的文件系統中跳過目錄
lscpu
lscpu - display information about the CPU architecture,查看cpu情況
lscpu [options]
-a, --all 顯示線上或離線的cpu情況 (default for -e)
-b, --online 僅顯示線上cpu (default for -p)
-c, --offline 僅顯示離線cpu
-e, --extended[=<list>] 輸出一個擴展的可讀格式
-p, --parse[=<list>] 輸出一個不變的格式
-s, --sysroot <dir> 使用指定的目錄作為系統root
-x, --hex 以16進位掩碼顯示而不是列出cpu
Available columns:
CPU logical CPU number
CORE logical core number
SOCKET logical socket number
NODE logical NUMA node number
BOOK logical book number
CACHE shows how caches are shared between CPUs
POLARIZATION CPU dispatching mode on virtual hardware
ADDRESS physical address of a CPU
CONFIGURED shows if the hypervisor has allocated the CPU
ONLINE shows if Linux currently makes use of the CPU
查看cpu情況,用於無法使用命令的情況
cat /proc/cpuinfo
dd
dd - convert(轉換)and copy a file
Copy a file, converting and formatting according to the operands.
dd [OPERAND]...
dd OPTION
用法:
dd if=/PATH/FROM/SRC of=/PATH/TO/DEST
bs=# : block size, 複製單元大小
count=# : 複製多少個bs
of=file 寫到所命名的文件而不是到標準輸出
if=file 從所命名文件讀取而不是從標準輸入
bs=size 指定塊大小(既是是ibs 也是obs)
ibs=size 一次讀size個byte
obs=size 一次寫size個byte
cbs=size 一次轉化size個byte
skip=blocks 從開頭忽略blocks個ibs 大小的塊
seek=blocks 從開頭忽略blocks個obs 大小的塊
count=n 只拷貝n個記錄
conv=conversion[,conversion...] 用指定的參數轉換文件
轉換參數:
ascii 轉換 EBCDIC(十進位交換碼)為ASCII
ebcdic 轉換 ASCII為EBCDIC
lcase 把大寫字元轉換為小寫字元
ucase 把小寫字元轉換為大寫字元
nocreat 不創建輸出文件
noerror 出錯時不停止
notrunc 不截短輸出文件
sync 把每個輸入塊填充到ibs 個位元組,不足部分用空(NUL)字 字元補齊
備份MBR:
dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1
破壞MBR中的bootloader:
dd if=/dev/zero of=/dev/sda bs=64 count=1 seek=446
有一個大與2K 的二進位文件fileA 。現在想從第64 個位元組位置開始讀取,需要讀取的大小是128Byts 。又有fileB, 想把上面讀取到的128Bytes 寫到第32 個位元組開始的位置,替換128Bytes ,實現如下:
#dd if=fileA of=fileB bs=1 count=128 skip=63 seek=31 conv=notrunc
備份:
dd if=/dev/sdx of=/dev/sdy
將本地的/dev/sdx 整盤備份到/dev/sdy
dd if=/dev/sdx of=/path/to/image
將/dev/sdx 全盤數據備份到指定路徑的image 文件
dd if=/dev/sdx | gzip >/path/to/image.gz
備份/dev/sdx 全盤數據,並利用gzip 壓縮,保存到指定路徑
恢復:
dd if=/path/to/image of=/dev/sdx
將備份文件恢復到指定盤
gzip -dc /path/to/image.gz | dd of=/dev/sdx
將壓縮的備份文件恢復到指定盤
拷貝記憶體資料到硬碟
dd if=/dev/mem of=/root/mem.bin bs=1024
將記憶體里的數據拷貝到root目錄下的mem.bin 文件
從光碟拷貝iso 鏡像
dd if=/dev/cdrom of=/root/cd.iso
拷貝光碟數據到root 文件夾下,並保存為cd.iso 文件
銷毀磁碟數據
dd if=/dev/urandom of=/dev/sda1
利用隨機的數據填充硬碟,在某些必要的場合可以用來銷毀數據,執行此操作以後,/dev/sda1將無法掛載,創建和拷貝操作無法執行
得到最恰當的block size
dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file
dd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.file
dd if=/dev/zero bs=4096 count=250000 of=/root/1Gb.file
通過比較dd指令輸出中所顯示的命令執行時間,即可確定系統最佳的block size 大小
測試硬碟寫速度
dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
測試硬碟讀速度
dd if=/root/1Gb.file bs=64k | dd of=/dev/null
修複硬碟
dd if=/dev/sda of=/dev/sda
當硬碟較長時間(比如1,2 年)放置不使用後,磁碟上會產生消磁點。當磁頭讀到這些區域時會遇到困難,並可能導致I/O錯誤。當這種情況影響到硬碟的第一個扇區時,可能導致硬碟報廢。上邊的命令有可能使這些數據起死回生, 且這個過程是安全高效的
備份mbr分區表
恢復mbr分區表
convert
相當於window中的ps,由包ImageMagick-6.7.8.9-15.el7_2.x86_64提供
convert - convert between image formats as well as resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more.
convert [input-options] input-file [output-options] output-file
查看man瞭解更多配置選項