LINUX系统的DD命令使用教程

LINUX系统的DD命令使用教程
LINUX系统的DD命令使用教程

一、基础用法

dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。

注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512;c=1;k=1024;w=2 参数注释:

if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file ;

of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file ; ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。

obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。

bs=bytes:同时设置读入/输出的块大小为bytes个字节。

cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。

skip=blocks:从输入文件开头跳过blocks个块后再开始复制。

seek=blocks:从输出文件开头跳过blocks个块后再开始复制。

注意:通常只用当输出文件是磁盘或磁带时才有效,即备份到磁盘或磁带时才有效。count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。

conv=conversion:用指定的参数转换文件。

ascii:转换ebcdic为ascii

ebcdic:转换ascii为ebcdic

ibm:转换ascii为alternate ebcdic

block:把每一行转换为长度为cbs,不足部分用空格填充

unblock:使每一行的长度都为cbs,不足部分用空格填充

lcase:把大写字符转换为小写字符

ucase:把小写字符转换为大写字符

swab:交换输入的每对字节

noerror:出错时不停止

notrunc:不截短输出文件

sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。

二、dd应用实例

1.将本地的/dev/hdb整盘备份到/dev/hdd

代码如下:

heng@me: dd if=/dev/hdb of=/dev/hdd

2.将/dev/hdb全盘数据备份到指定路径的image文件

代码如下:

heng@me: dd if=/dev/hdb of=/root/image

3.将备份文件恢复到指定盘

代码如下:

heng@me: dd if=/root/image of=/dev/hdb

4.备份/dev/hdb全盘数据,并利用gzip工具进行压缩,保存到指定路径代码如下:

heng@me: dd if=/dev/hdb | gzip ; /root/image.gz

5.将压缩的备份文件恢复到指定盘

代码如下:

heng@me: gzip -dc /root/image.gz | dd of=/dev/hdb

6.备份与恢复MBR

备份磁盘开始的512个字节大小的MBR信息到指定文件:

代码如下:

heng@me: dd if=/dev/hda of=/root/image count=1 bs=512

count=1指仅拷贝一个块;bs=512指块大小为512个字节。

恢复:

代码如下:

heng@me: dd if=/root/image of=/dev/had

将备份的MBR信息写到磁盘开始部分

7.备份软盘

代码如下:

heng@me: dd if=/dev/fd0 of=disk.img count=1 bs=1440k (即块大小为1.44M) 8.拷贝内存内容到硬盘

代码如下:

heng@me: dd if=/dev/mem of=/root/mem.bin bs=1024 (指定块大小为1k)

9.拷贝光盘内容到指定文件夹,并保存为cd.iso文件

代码如下:

heng@me: dd if=/dev/cdrom(hdc) of=/root/cd.iso

10.增加swap分区文件大小

第一步:创建一个大小为256M的文件:

代码如下:

heng@me: dd if=/dev/zero of=/swapfile bs=1024 count=262144

第二步:把这个文件变成swap文件:

代码如下:

heng@me: mkswap /swapfile

第三步:启用这个swap文件:

代码如下:

heng@me: swapon /swapfile

第四步:编辑/etc/fstab文件,使在每次开机时自动加载swap文件:

代码如下:

/swapfile swap swap default 0 0

11.销毁磁盘数据

代码如下:

heng@me: dd if=/dev/urandom of=/dev/hda1

注意:利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据。

12.测试硬盘的读写速度

代码如下:

heng@me: dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file heng@me: dd if=/root/1Gb.file bs=64k | dd of=/dev/null

通过以上两个命令输出的命令执行时间,可以计算出硬盘的读、写速度。

13.确定硬盘的最佳块大小:

代码如下:

heng@me: dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file heng@me: dd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.file heng@me: dd if=/dev/zero bs=4096 count=250000 of=/root/1Gb.file heng@me: dd if=/dev/zero bs=8192 count=125000 of=/root/1Gb.file

通过比较以上命令输出中所显示的命令执行时间,即可确定系统最佳的块大小。

14.修复硬盘:

代码如下:

heng@me: dd if=/dev/sda of=/dev/sda 或dd if=/dev/hda of=/dev/hda

当硬盘较长时间(一年以上)放置不使用后,磁盘上会产生magnetic flux point,当磁头读到这些区域时会遇到困难,并可能导致I/O错误。当这种情况影响到硬盘的第一个扇区时,可能导致硬盘报废。上边的命令有可能使这些数据起死回生。并且这个过程是安全、高效的。

15.利用netcat远程备份

代码如下:

heng@me: dd if=/dev/hda bs=16065b | netcat < targethost-IP ; 1234

在源主机上执行此命令备份/dev/hda

代码如下:

heng@me: netcat -l -p 1234 | dd of=/dev/hdc bs=16065b

在目的主机上执行此命令来接收数据并写入/dev/hdc

代码如下:

heng@me: netcat -l -p 1234 | bzip2 ; partition.img

heng@me: netcat -l -p 1234 | gzip ; partition.img

以上两条指令是目的主机指令的变化分别采用bzip2、gzip对数据进行压缩,并将备份文件保存在当前目录。

16.将一个很大的视频文件中的第i个字节的值改成0x41(也就是大写字母A的ASCII值)

代码如下:

echo A | dd of=bigfile seek=$i bs=1 count=1 conv=notrunc

三、/dev/null和/dev/zero的区别

/dev/null,外号叫无底洞,你可以向它输出任何数据,它通吃,并且不会撑着!

/dev/zero,是一个输入设备,你可你用它来初始化文件。该设备无穷尽地提供0,可以使用任何你需要的数目——设备提供的要多的多。他可以用于向设备或文件写入字符串0。

/dev/null——它是空设备,也称为位桶(bit bucket)。任何写入它的输出都会被抛弃。如果不想让消息以标准输出显示或写入文件,那么可以将消息重定向到位桶。

代码如下:

heng@me:if=/dev/zero of=./test.txt bs=1k count=1

heng@me:ls –l

total 4

-rw-r--r-- 1 oracle dba 1024 Jul 15 16:56 test.txt

heng@me:find / -name access_log 2;/dev/null

1使用/dev/null

把/dev/null看作黑洞,它等价于一个只写文件,所有写入它的内容都会永远丢失.,而尝试从它那儿读取内容则什么也读不到。然而, /dev/null对命令行和脚本都非常的有用

禁止标准输出

代码如下:

heng@me:cat $filename ;/dev/null #文件内容丢失,而不会输出到标准输出.

禁止标准错误

代码如下:

heng@me:rm $badname 2;/dev/null #这样错误信息[标准错误]就被丢到太平洋去了

禁止标准输出和标准错误的输出

代码如下:

heng@me:cat $filename 2;/dev/null ;/dev/null

如果$filename不存在,将不会有任何错误信息提示;如果$filename存在,文件的内容不会打印到标准输出。因此,上面的代码根本不会输出任何信息。当只想测试命令的退出码而不想有任何输出时非常有用。

2使用/dev/zero

像/dev/null一样, /dev/zero也是一个伪文件,但它实际上产生连续不断的null的流(二进制的零流,而不是ASCII型的)。写入它的输出会丢失不见,而从/dev/zero读出一连串的null也比较困难,虽然这也能通过od或一个十六进制编辑器来做到。

/dev/zero主要的用处是用来创建一个指定长度用于初始化的空文件,就像临时交换文件。

用/dev/zero创建一个交换临时文件

代码如下:

#!/bin/bash

# 创建一个交换文件.

ROOT_UID=0 # Root 用户的 $UID 是 0.

E_WRONG_USER=65 # 不是 root?

FILE=/swap

BLOCKSIZE=1024

MINBLOCKS=40

SUCCESS=0

# 这个脚本必须用root来运行.

if [ $UID -ne $ROOT_UID ]

then

echo; echo You must be root to run this script.; echo

exit $E_WRONG_USER

fi

blocks=${1:-$MINBLOCKS} # 如果命令行没有指定,

#+ 则设置为默认的40块.

# 上面这句等同如:

# --------------------------------------------------

# if [ -n $1 ]

# then

# blocks=$1

# else

# blocks=$MINBLOCKS

# fi

# --------------------------------------------------

if [ $blocks -lt $MINBLOCKS ]

then

blocks=$MINBLOCKS # 最少要有 40 个块长.

fi

echo Creating swap file of size $blocks blocks (KB).

dd if=/dev/zero of=$FILE bs=$BLOCKSIZE count=$blocks # 把零写入文件. mkswap $FILE $blocks # 将此文件建为交换文件(或称交换分区).

swapon $FILE # 激活交换文件.

echo Swap file created and activated.

exit $SUCCESS

关于 /dev/zero 的另一个应用是为特定的目的而用零去填充一个指定大小的文件,如挂载一个文件系统到环回设备 (loopback device)或安全地删除一个文件。

例子创建ramdisk

代码如下:

#!/bin/bash

# ramdisk.sh

# ramdisk是系统RAM内存的一段,

#+ 它可以被当成是一个文件系统来操作.

# 它的优点是存取速度非常快 (包括读和写).

# 缺点: 易失性, 当计算机重启或关机时会丢失数据.

#+ 会减少系统可用的RAM.

# 10 # 那么ramdisk有什么作用呢?

# 保存一个较大的数据集在ramdisk, 比如一张表或字典,

#+ 这样可以加速数据查询, 因为在内存里查找比在磁盘里查找快得多.

E_NON_ROOT_USER=70 # 必须用root来运行.

ROOTUSER_NAME=root

MOUNTPT=/mnt/ramdisk

SIZE=2000 # 2K 个块 (可以合适的做修改)

BLOCKSIZE=1024 # 每块有1K (1024 byte) 的大小

DEVICE=/dev/ram0 # 第一个 ram 设备

username=`id -nu`

if [ $username != $ROOTUSER_NAME ]

then

echo Must be root to run `basename $0`.

exit $E_NON_ROOT_USER

fi

if [ ! -d $MOUNTPT ] # 测试挂载点是否已经存在了,

then #+ 如果这个脚本已经运行了好几次了就不会再建这个目录了

mkdir $MOUNTPT #+ 因为前面已经建立了.

fi

dd if=/dev/zero of=$DEVICE count=$SIZE bs=$BLOCKSIZE

# 把RAM设备的内容用零填充.

# 为何需要这么做?

mke2fs $DEVICE # 在RAM设备上创建一个ext2文件系统.

mount $DEVICE $MOUNTPT # 挂载设备.

chmod 777 $MOUNTPT # 使普通用户也可以存取这个ramdisk.

# 但是, 只能由root来缷载它.

echo $MOUNTPT now available for use.

# 现在 ramdisk 即使普通用户也可以用来存取文件了.

# 注意, ramdisk是易失的, 所以当计算机系统重启或关机时ramdisk里的内容会消失. # 拷贝所有你想保存文件到一个常规的磁盘目录下.

# 重启之后, 运行这个脚本再次建立起一个 ramdisk.

# 仅重新加载 /mnt/ramdisk 而没有其他的步骤将不会正确工作.

# 如果加以改进, 这个脚本可以放在 /etc/rc.d/rc.local,

#+ 以使系统启动时能自动设立一个ramdisk.

# 这样很合适速度要求高的数据库服务器.

exit 0

四、查看dd的拷贝进度

linux中的DD命令可以很方便的作二进制拷贝,比如可以做硬盘克隆。

一般使用方式如下:

代码如下:

dd if=/src/device/name of=/dst/device/name

... 然后就等它完成,进程退出

但是当我们需要copy的东西很巨大的时候,这个过程是很痛苦的

很多人会查看iostat, 来估算大概需要多少时间完成, 这是很不直观的, 也不可靠

如果我们dd --help

会看到其实是有方法可以查看copy进度的, 帮助文件中的example如下:

代码如下:

$ dd if=/dev/zero of=/dev/null& pid=$! 后台运行dd测试,保存进程号到pid 中

实际我们使用的时候可以新开一个终端,

代码如下:

ps -ef | grep dd

史上最全Linux系统命令及使用方法详解(程序员)

Linux 系统命令及其使用详解(大全) (来源: 中国系统分析员) cat cd chmod chown cp cut 名称:cat 使用权限:所有使用者 使用方式:cat [-AbeEnstTuv] [--help] [--version] fileName 说明:把档案串连接后传到基本输出(萤幕或加> fileName 到另一个档案) 参数: -n 或--number 由 1 开始对所有输出的行数编号 -b 或--number-nonblank 和-n 相似,只不过对于空白行不编号 -s 或--squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行 -v 或--show-nonprinting 范例: cat -n textfile1 > textfile2 把textfile1 的档案内容加上行号后输入textfile2 这个档案里cat -b textfile1 textfile2 >> textfile3 把textfile1 和textfile2 的档案内容加上行号(空白行不加)之后将内容附加到textfile3 名称:cd 使用权限:所有使用者 使用方式:cd [dirName] 说明:变换工作目录至dirName。其中dirName 表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的home directory (也就是刚login 时所在的目录).另外,"~" 也表示为home directory 的意思,"." 则是表示目前所在的目录,".." 则表示目前目录位置的上一层目录。 范例:跳到/usr/bin/: cd /usr/bin 跳到自己的home directory: cd ~ 跳到目前目录的上上两层: cd ../.. 指令名称:chmod 使用权限:所有使用者 使用方式:chmod [-cfvR] [--help] [--version] mode file... 说明:Linux/Unix 的档案存取权限分为三级:档案拥有者,群组,其他。利用chmod 可以藉以控制档案如何被他人所存取。 把计: mode:权限设定字串,格式如下:[ugoa...][[+-=][rwxX]...][,...],其中u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者

Linux常用命令

查询相关 find 按规则查找某个文件或文件夹,包括子目录 ?find . -name '*.sh' -- 以.sh结尾的文件 ?find . -name '*channel*' -- 包含channel字符的文件 ?find . -name 'build*' -- 以build开头的文件 ?find . -name 'abc??' -- abc后面有两个字符的文件 grep 查找内容包含指定的范本样式的文件,Global Regular Expression Print ?grep -n pattern files -- 规则-n表示显示行号 ?grep -n 'PostsActivity' AndroidManifest.xml ?grep -n '\d' AndroidManifest.xml ?grep 'aapt' build-channel.xml -- 文件中包含字符串的所有地方 ?grep -n 'aapt' build-channel.xml -- 文件中包含字符串的所有地方,并显示行号 ?ps -e | grep java -- 所有java进程 ?ps -e | grep -i qq --所有qq进程,不区分大小写 ?find . -name '*channel.xml' | xargs grep -n 'aapt' -- 在以channel.xml 结尾的文件中查找包含‘aapt’关键字的地方 ?ls | grep 'channel' -- 包含channel关键字的文件 which 在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果?which zip ?which grep 查看命令 tail tail [-f] [-c Number | -n Number | -m Number | -b Number | -k Number] [File] 从指定点开始将文件写到标准输出。使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容。 ?tail -f test.log,循环查看文件内容,Ctrl+c来终止 ?tail -n 5 test.log,显示文件最后5行内容

Linux常用命令

(1)基于虚拟机的Linux操作系统的使用 1.启动VMware Workstation应用程序,启动Windows以后,选择开始—程序——VMware—VMware Workstation,出现如图7—1所示窗口。 2.选择File—Open选择安装好的Linux虚拟机文件,或者直接单击Start this virtual machine 启动Linux操作系统。 3.启动系统后需要输入用户名和密码,如图7—2所示,用户名为“root”,密码为“jsjxy308”。 4.启动终端,成功进入系统后,选择“应用程序”—“系统工具”—“终端”。 5.在终端中执行Linux 命令,终端运行以后,就可以在这里输入Linux命令,并按回车键执行。 (2)文件与目录相关命令的使用 1.查询/bin目录,看一看有哪些常用的命令文件在该目录下: ll /bin 2.进入/tmp目录下,新建目录myshare: cd /tmp mkdir myshare ls –ld myshare/ 3.用pwd命令查看当前所在的目录: pwd 4.新建testfile文件: touch testfile ls -l 5.设置该文件的权限模式: chomd 755 testfile ls -l testfile 6.把该文件备份到/tmp/myshare目录下,并改名为testfile.bak: cp testfile myshare/testfile.bak ls -l myshare/ 7.在/root目录下为该文件创建1个符号连接: ln -s /tmp/testfile /root/testfile.ln ls -l /root/testfile.ln 8.搜索inittab 文件中含有initdefault字符串的行: cat /etc/inittab | grep initdefault (3)磁盘管理与维护命令的使用 1)Linux 下使用光盘步骤 1.确认光驱对应的设备文件: ll /dev/cdrom 2.挂载光盘: mout -t iso9600/dev/cdrom test/dir 1.查询挂载后的目录: ll /media/cdrom 2.卸载光盘: umount /dev/cdrom 2)Linux下USB设备的使用

linux命令详解:pgrep命令

linux命令详解:pgrep 前言 经常要查看进程的信息,包括进程的是否已经消亡,通过pgrep来获得正在被调度的进程的相关信息。pgrep通过匹配其程序名,找到匹配的进程 重要选项 -l 同时显示进程名和PID -o 当匹配多个进程时,显示进程号最小的那个 -n 当匹配多个进程时,显示进程号最大的那个 注:进程号越大,并不一定意味着进程的启动时间越晚 使用说明 查看指定名称的进程信息 默认只显示PID 1: [root@master ~]# pgrep ssh 2: 3686 3: 7907 4: 8815 5: 12874 同时显示PID和ProcessName : –l 1: [root@master ~]# pgrep -l sshd 2: 3686 sshd 3: 7907 sshd 4: 8815 sshd 5: 12874 sshd -o 当匹配多个进程时,显示进程号最小的那个 1: [root@master ~]# pgrep -l sshd 2: 3686 sshd 3: 7907 sshd 4: 8815 sshd 5: 12874 sshd 6: [root@master ~]# pgrep -l -o sshd 7: 3686 sshd -n 当匹配多个进程时,显示进程号最大的那个 1: [root@master ~]# pgrep -l -n sshd 2: 12874 sshd 特别说明 1)pgrep相当于ps –eo pid,cmd | awk ‘{print $1,$2}’ | grep KeyWord 1: [root@master ~]# ps -eo pid,cmd | awk '{print $1,$2}' | grep init 2: 1 init 3: [root@master ~]# pgrep init 4: 1

cat和grep指令

cat命令 功能1: 在标准输出上显示文件。 语法:cat [选项] 文件 说明:该命令功能之一是用来显示文件。它依次读取其后所指文件的内容并将其输出到标准输出。 该命令的各选项含义如下: -v 用一种特殊形式显示控制字符,LFD与TAB除外。 加了-v 选项后,-T 和-E 选项将起作用。其中: -T 将TAB显示为“ùI”。该选项需要与-v 选项一起使用。即如果没有使用-v 选项,则这个选项将被忽略。 -E 在每行的末尾显示一个$符。该选项需要与-v 选项一起使用。 -u 输出不经过缓冲区。 -A 等于-vET。 -t 等于-vT。 -e 等于-vE。 -n 在文件的每行前面显示行号。 指令实例: cat example.txt // 则在屏幕上显示出example.txt 文件的内容 cat -A exam2.txt // 在屏幕上显示出exam2.txt 文件的内容,而且如果文件中含有特殊字符的话,一并显示 功能2:连接两个或多个文件 说明:该命令功能之二是用来将两个或多个文件连接起来。 cat file1 file2 > file3 // 这样就把文件filel和文件file2的内容合并起来,放入文件file3中。 (此时在屏幕上并不能直接看到该命令执行后的结果。若想看到连接后的文件内容, 可以再使用“cat file3”。) 需要说明的是,当文件内容过多时,就带来一个问题,因为文本在屏幕上迅速地闪过,用户来不及看清其内容。因此,当文件内容较大时,一般可用more等命令分屏显示,以免因屏幕滚动太快而无法看清。 linux grep命令

1.作用 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。 2.格式 grep [options] 3.主要参数 [options]主要参数: -c:只输出匹配行的计数。 -I:不区分大小写(只适用于单字符)。 -h:查询多文件时不显示文件名。 -l:查询多文件时只输出包含匹配字符的文件名。 -n:显示匹配行及行号。 -s:不显示不存在或无匹配文本的错误信息。 -v:显示不包含匹配文本的所有行。 pattern正则表达式主要参数: \:忽略正则表达式中特殊字符的原有含义。 ^:匹配正则表达式的开始行。 $: 匹配正则表达式的结束行。 \<:从匹配正则表达式的行开始。 \>:到匹配正则表达式的行结束。 [ ]:单个字符,如[A]即A符合要求。 [ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求。 。:所有的单个字符。 * :有字符,长度可以为0。 4.grep命令使用简单实例 $ grep ‘test’ d* 显示所有以d开头的文件中包含test的行。 $ grep ‘test’ aa bb cc 显示在aa,bb,cc文件中匹配test的行。 $ grep ‘[a-z]\{5\}’ aa 显示所有包含每个字符串至少有5个连续小写字符的字符串的行。 $ grep ‘w\(es\)t.*\1′aa 如果west被匹配,则es就被存储到内存中,并标记为1,然后搜索任意个字符(.*),这些字符后面紧跟着另外一个es(\1),找到就显示该行。如果用egrep或grep -E,就不用”\”号进行转义,直接写成’w(es)t.*\1′就可以了。 5.grep命令使用复杂实例 假设您正在’/usr/src/Linux/Doc’目录下搜索带字符串’magic’的文件: $ grep magic /usr/src/Linux/Doc/* sysrq.txt:* How do I enable the magic SysRQ key? sysrq.txt:* How do I use the magic SysRQ key? 其中文件’sysrp.txt’包含该字符串,讨论的是SysRQ 的功能。 默认情况下,’grep’只搜索当前目录。如果此目录下有许多子目录,’grep’会以如下形式列出:

Linux命令大全完整版

Linux命令大全完整版 目录 目录........................................................................................................................................... I 1. linux系统管理命令 (1) adduser (1) chfn(change finger information) (1) chsh(change shell) (1) date (2) exit (3) finger (4) free (5) fwhois (5) gitps(gnu interactive tools process status) (5) groupdel(group delete) (6) groupmod(group modify) (6) halt (7) id (7) kill (8) last (8) lastb (8) login (9) logname (9) logout (9) logrotate (9) newgrp (10) nice (10) procinfo(process information) (11) ps(process status) (11) pstree(process status tree) (14) reboot (15)

rlogin(remote login) (16) rsh(remote shell) (16) rwho (16) screen (17) shutdown (17) sliplogin (18) su(super user) (18) sudo (19) suspend (19) swatch(simple watcher) (20) tload (20) top (21) uname (21) useradd (22) userconf (22) userdel (23) usermod (23) vlock(virtual console lock) (24) w (24) who (25) whoami (25) whois (25) 2. linux系统设置命令 (27) alias (27) apmd(advanced power management BIOS daemon) (27) aumix(audio mixer) (27) bind (29) chkconfig(check config) (29) chroot(change root) (30)

Linux grep命令的使用用法

Linux Grep用法 QUOTE: 原帖由"网中人" 发表: 比方以grep 来说, 在Linux 上你可找到grep, egrep, fgrep 这几个程序, 其差异大致如下: * grep: 传统的grep 程序, 在没有参数的情况下, 只输出符合RE 字符串之句子. 常见参数如下: -v: 逆反模示, 只输出"不含" RE 字符串之句子. -r: 递归模式, 可同时处理所有层级子目录里的文件. -q: 静默模式, 不输出任何结果(stderr 除外. 常用以获取return value, 符合为true, 否则为false .) -i: 忽略大小写. -w: 整词比对, 类似\ . -n: 同时输出行号. -c: 只输出符合比对的行数. -l: 只输出符合比对的文件名称. -o: 只输出符合RE 的字符串. (gnu 新版独有, 不见得所有版本都支持.) -E: 切换为egrep . * egrep: 为grep 的扩充版本, 改良了许多传统grep 不能或不便的操作. 比方说: - grep 之下不支持? 与+ 这两种modifier, 但egrep 则可. - grep 不支持a|b 或(abc|xyz) 这类"或一"比对, 但egrep 则可. - grep 在处理{n,m} 时, 需用\{ 与\} 处理, 但egrep 则不需. 诸如此类的... 我个人会建议能用egrep 就不用grep 啦... ^_^ * fgrep: 不作RE 处理, 表达式仅作一般字符串处理, 所有meta 均失去功能. g r e p一般格式为: ][ - ] CODE: grep [选项]基本正则表达式[文件] 这里基本正则表达式可为字符串。 单引号双引号 在g r e p命令中输入字符串参数时,最好将其用双引号括起来。 在调用模式匹配时,应使用单引号。 例如:“m y s t r i n g”。这样做有两个原因,一是以防被误解为s h e l l命令,二是可以用来查找多个单词组成的字符串。在调用变量时,也应该使用双引号,诸如:g r e p“$ M Y VA R”文件名,如果不这样,将没有返回结果。 常用的g r e p选项有: QUOTE: -c 只输出匹配行的计数。 -i 不区分大小写(只适用于单字符)。 -h 查询多文件时不显示文件名。

grep命令详解

grep用法详解:grep与正则表达式 首先要记住的是: 正则表达式与通配符不一样,它们表示的含义并不相同! 正则表达式只是一种表示法,只要工具支持这种表示法,那么该工具就可以处理正则表达式的字符串。vim、grep、awk 、sed 都支持正则表达式,也正是因为由于它们支持正则,才显得它们强大;在以前上班的公司里,由于公司是基于web的服务型网站(nginx),对正则的需求比较大,所以也花了点时间研究正则,特与大家分享下: 1基础正则表达式 grep 工具,以前介绍过。 grep -[acinv] '搜索内容串' filename -a 以文本文件方式搜索 -c 计算找到的符合行的次数 -i 忽略大小写 -n 顺便输出行号 -v 反向选择,即找没有搜索字符串的行 其中搜索串可以是正则表达式! 1 搜索有the的行,并输出行号 $grep -n 'the' regular_express.txt 搜索没有the的行,并输出行号 $grep -nv 'the' regular_express.txt 2 利用[]搜索集合字符

[] 表示其中的某一个字符,例如[ade] 表示a或d或e woody@xiaoc:~/tmp$ grep -n 't[ae]st' regular_express.txt 8:I can't finish the test. 9:Oh! the soup tast e good! 可以用^符号做[]内的前缀,表示除[]内的字符之外的字符。 比如搜索oo前没有g的字符串所在的行. 使用'[^g]oo' 作搜索字符串woody@xiaoc:~/tmp$ grep -n '[^g]oo' regular_express.txt 2:apple is my favorite foo d. 3:Foo tball game is not use feet only. 18:google is the best too ls for search keyword. 19:go ooo oogle yes! [] 内可以用范围表示,比如[a-z] 表示小写字母,[0-9] 表示0~9的数字, [A-Z] 则是大写字母们。[a-zA-Z0-9]表示所有数字与英文字符。当然也可以配合^来排除字符。 搜索包含数字的行 woody@xiaoc:~/tmp$ grep -n '[0-9]' regular_express.txt 5:However ,this dress is about $ 3183 dollars. 15:You are the best is menu you are the no.1. 行首与行尾字符^ $. ^ 表示行的开头,$表示行的结尾( 不是字符,是位置)那么‘^$’ 就表示空行,因为只有 行首和行尾。 这里^与[]里面使用的^意义不同。它表示^后面的串是在行的开头。 比如搜索the在开头的行 woody@xiaoc:~/tmp$ grep -n '^the' regular_express.txt 12:the symbol '*' is represented as star. 搜索以小写字母开头的行 woody@xiaoc:~/tmp$ grep -n '^[a-z]' regular_express.txt

Linux基本命令大全

下面我们来介绍常用基本命令 一、注销,关机,重启 注销系统的logout命令 1,Logout 注销是登陆的相对操作,登陆系统后,若要离开系统,用户只要直接下达logout命令即可: [root@localhost root]#logout Red Hat Linuxrelease 9(Shike) Kernel 2.4.20.8 on an i686 Login: ←回到登陆的画面 2,关机或重新启动的shutdown命令 Shutdown命令可以关闭所有程序,依照用户的需要,重新启动或关机。 参数说明如下: λ立即关机:-h 参数让系统立即关机。范例如下: [root@localhost root]#shutdown –h now ←要求系统立即关机 λ指定关机时间:time参数可指定关机的时间;或设置多久时间后运行shutdown命令,范例如下: [root@localhost root]#shutdown now ←立刻关机 [root@localhost root]#shutdown +5 ←5分钟后关机 [root@localhost root]#shutdown 10:30 ←在10:30时关机 关机后自动重启:-rλ参数设置关机后重新启动。范例如下: [root@localhost root]#shutdown -r now ←立刻关闭系统并重启 [root@localhost root]#shutdown -r 23:59 ←指定在23:59时重启动 3,重新启动计算机的reboot命令 顾名思义,reboot命令是用来重新启动系统的。常用的参数如下: λ-f 参数:不依正常的程序运行关机,直接关闭系统并重新启动计算机。 -Iλ参数:在在重新启动之前关闭所有网络接口。 虽然reboot命令有个参数可以使用,但是一般只需要单独运行reboot命令就可以了 二、文件与目录的操作 列出文件列表的ls命令 1,ls(list)命令是非常有用的命令,用来显示当前目录中的文件和子目录列表。配合参数的使用,能以不同的方式显示目录内容。范例如下: ? 显示当前目录的内容: [tony@free tony]$ ls Desktop mail myinstall.log test.txt ←有两个目录及两个文件夹 ? 当运行ls命令时,并不会显示名称以―.‖开头的文件。因此可加上―-a‖参数指定要列出这些文件。范例如下: [tony@free tony]$ ls –a ? 以―-s‖参数显示每个文件所有的空间,并以―-S‖参数指定按所有占用空间的大小排序。范例如下: [tony@free tony]$ ls –s –S 总计36 4 Desktop 4 mail 24 myinstall.log 4 test.txt ? 在ls命令后直接加上欲显示的目录路径,就会列出该目录的内容。范例如下: [tony@free tony]$ ls –l/usr/games 2,切换目录的cd命令

linux操作系统基本命令

实验二常用命令和Vi编辑器 一.实验目的: 1.熟悉shell的常用命令; 2.掌握Linux系统终端方式使用的编辑器vi; 3.学习vi的启动、存盘、文本输入、现有文件的打开、光标移动、复制/剪贴、查找/替换等命令。 二.实验环境: Red Hat Enterprise Linux 6以上 三.实验内容: 1.练习使用shell的常用命令; 2.熟练掌握vi编辑器的使用。 四、实验练习: 1、使用Shell命令的简单操作 (1)查看当前目录命令:#pwd (2)切换目录命令:cd #cd(进入用户主目录) #cd..(回到上一级目录) #cd../..(回到上两级目录,以此类推) #cd/(进入根目录/) #cd/etc(进入目录/etc) (3)查看文件内容命令:cat

#cd/etc(进入目录/etc) #catxinetd.conf (查看/etc/xinetd.conf内容) #catxinetd.conf |more(若文件过长,分页方式查看文件内容)注意:cat命令只能查看文本文件内容,不能查看二进制文件内容 (4)查看命令帮助:man,--help,info,whatis #manls #mancp #ls --help (5)显示指定目录下的内容:ls 参考命令手册,使用ls命令结合其相关选项查看Linux的目录结构,了解各个目录存放与系统相关的文件; 2.使用Shell命令的高级操作 1)命令补齐功能 用date命令查看系统当前时间,在输入da后,按tab键,让shell自动补齐命令的后半部分。 用mkdir命令创建新的目录。首先输入第一个字母m,然后按tab键,由于以m开头的命令太多,shell会提示是否显示全部的可能命令,输入n。 再多输入一个字母k,按tab键,让shell列出以mk开头的所有命令的列表。 在列表中查找mkdir命令,看看还需要多输入几个字母才能确定mkdir这个命令,然后输入需要的字母,再按tab键,让shell补齐剩下的命令。 最后输入要创建的目录名,按回车键执行命令。 多试几个命令利用tab键补齐。

Grep命令详解

Grep命令详解 grep [ -E | -F ] [ -i ] [ -h ] [ -s ] [ -v ] [ -w ] [ -x ] [ -y ] [ [ [ -b ] [ -n ] ] | [ -c | -l | -q ] ] [ -p [ Separator ] ] { [ -e PatternList ... ] [ -f PatternFile ... ] | PatternList ... } [ 文件... ] 描述 grep 命令用于搜索由Pattern参数指定的模式,并将每个匹配的行写入标准输出中。这些模式是具有限定的正则表达式,它们使用ed或egrep命令样式。grep命令使用压缩的不确定算法。 如果在File参数中指定了多个名称,grep命令将显示包含匹配行的文件的名称。对shell 有特殊含义的字符($, *, [, |, ^, (, ), \ ) 出现在Pattern 参数中时必须带双引号。如果Pattern参数不是简单字符串,通常必须用单引号将整个模式括起来。在诸如[a-z], 之类的表达式中,-(减号)cml 可根据当前正在整理的序列来指定一个范围。整理序列可以定义等价的类以供在字符范围中使用。如果未指定任何文件,grep 会假定为标准输入。 注意: 1.行被限制为2048个字节。 2.段落(使用-p标志时)长度当前被限制为5000个字符。 3.请不要对特殊文件运行grep命令,这样做可能产生不可预计的结果。 4.输入行不应包含空字符。 5.输入文件应该以换行符作为结束。 6.正则表达式不会对换行符进行匹配。 7.虽然一些标志可以同时被指定,但其中的某些标志会覆盖其它标志。例如,-l选项将优先于所有其它标志。另外,如果您同时指定了-E 和-F标志,则后指定的那个会有优先权。 标志 -b 在每行之前添加找到该行时所在的块编号。使用这个标志有助于通过上下文来找到磁盘块号码。-b标志不能用于来自标准输入和管道的输入。 -c 仅显示匹配行的计数。

Linux操作系统及常用命令

Linux提供了大量的命令,利用它可以有效地完成大量的工 作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在Linux系统上工作离不开使用系统提供的命令。 下面我将比较常用的命令,按照系统中的作用分成以下6个部分 安装和登录命令:shutdown、reboot、install、mount、umount、exit、last; 文件处理命令:file、mkdir、grep、find、mv、ls、diff、cat; 系统管理相关命令:df、top、free、adduser、groupadd、kill、crontab; 网络操作命令:ifconfig、ping、netstat、telnet、ftp、route、scp、finger; 系统安全相关命令:passwd、su、chmod、chown、sudo、ps、who; 其它命令:tar、unzip、unarj、man 安装与登陆命令 shutdown 1.作用 shutdown命令的作用是关闭计算机,它的使用权限是超级用户root。 2.格式 shutdown [-h][-i][-k][-m][-t] 3.重要参数 -t:在改变到其它运行级别之前,告诉init程序多久以后关机。 -k:并不真正关机,只是送警告信号给每位登录者。 -h:关机后关闭电源。 -c:cancel current process取消目前正在执行的关机程序。所以这个选项当然没有时间参数,但是可以输入一个用来解释的讯息,而这信息将会送到每位使用者。 -F:在重启计算机时强迫fsck。 -time:设定关机前的时间。 -m: 将系统改为单用户模式。 -i:关机时显示系统信息。 -r:重启。 4.实用例子 远程重启满天星服务器192.168.0.25 shutdown -m \\192.168.0.25 -r -f -t 0 远程重启兴通博服务器192.168.0.41 shutdown -m \\192.168.0.41 -r -f -t 0 reboot 1.作用 reboot命令的作用是重新启动计算机,它的使用权限是系统管理者root。 2.格式

Linux(centos)的常用基本命令

Linux的常用基本命令。 首先启动Linux。启动完毕后需要进行用户的登录,选择登陆的用户不同自然权限也不一样,其中“系统管理员”拥有最高权限。 在启动Linux后屏幕出现如下界面显示: …… Red Hat Linux release 9 (Shrike) Kernel2.4.20.8 on an i686 login: 输入:root(管理员名)后,计算机显示输口令(password:),输入你的口令即可。当计算机出现一个“#”提示符时,表明你登录成功! 屏幕显示Linux提示符:[root@localhost root]#_ 这里需要说明的是“Red Hat Linux release 9 (Shrike)”表示当前使用的操作系统的名称及版本。“2.4.20.8”表示Linux操作系统的核 心版本编号。“i686”表示该台电脑使用的CPU的等级。 下面我们来介绍常用基本命令 一,注销,关机,重启 注销系统的logout命令 1,Logout 注销是登陆的相对操作,登陆系统后,若要离开系统,用户只要直接下达logout命令即可: [root@localhost root]#logout Red Hat Linuxrelease 9(Shike) Kernel2.4.20.8 on an i686 Login: ←回到登陆的画面 2,关机或重新启动的shutdown命令 Shutdown命令可以关闭所有程序,依照用户的需要,重新启动或关机。 参数说明如下:  立即关机:-h 参数让系统立即关机。范例如下: [root@localhost root]#shutdown –h now ←要求系统立即关机  指定关机时间:time参数可指定关机的时间;或设置多久时间后运行shutdown命令,范例如下: [root@localhost root]#shutdown now ←立刻关机

grep命令参数详解

1. grep退出状态: 0:表示成功; 1:表示在所提供的文件无法找到匹配的pattern; 2:表示参数中提供的文件不存在。 见如下示例: /> grep 'root' /etc/passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin /> echo $? /> grep 'root1' /etc/passwd#用户root1并不存在 /> echo $? 1 /> grep 'root' /etc/passwd1#这里的/etc/passwd1文件并不存在 grep: /etc/passwd1: No such file or directory /> echo $? 2 2. grep中应用正则表达式的实例: 需要说明的是下面所涉及的正则表达式在上一篇中已经给出了详细的说明,因此在看下面例子的时候,可以与前一篇的正则说明部分结合着看。 /> cat testfile northwest NW Charles Main 3.0 .98 3 34 western WE Sharon Gray 5.3 .97 5 23 southwest SW Lewis Dalsass 2.7 .8 2 18 southern SO Suan Chin 5.1 .95 4 15 southeast SE Patricia Hemenway 4.0 .7 4 17 eastern EA TB Savage 4.4 .84 5 20 northeast NE AM Main Jr. 5.1 .94 3 13 north NO Margot Weber 4.5 .89 5 9 central CT Ann Stephens 5.7 .94 5 13 /> grep NW testfile#打印出testfile中所有包含NW的行。 northwest NW Charles Main 3.0 .98 3 34 /> grep '^n' testfile#打印出以n开头的行。 northwest NW Charles Main 3.0 .98 3 34 northeast NE AM Main Jr. 5.1 .94 3 13 north NO Margot Weber 4.5 .89 5 9

linux下find命令详解

linux下find命令详解 find命令是一个无处不在命令,是linux中最有用的命令之一。find命令用于:在一个目录(及子目录)中搜索文件,你可以指定一些匹配条件,如按文件名、文件类型、用户甚至是时间戳查找文件。 一、find命令的一般形式 find [options] [查找路径] [查找条件] [处理动作] 查找路径:默认为当前目录 查找条件:默认为查找指定路径下的所有文件 处理动作:默认为显示 path:find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录 expression:expression可以分为——“-options [-print -exec -ok ...]” -options:指定find命令的常用选项 -print:find命令将匹配的文件输出到标准输出,默认,可省略 -exec:find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } \;,注意{ }和\;之间的空格 1、find ./ -size 0 -exec rm {} \;

删除文件大小为零的文件 rm -i `find ./ -size 0` 或 find ./ -size 0 | xargs rm -f & 为了用ls -l命令列出所匹配到的文件,可以把ls -l命令放在find命令的-exec选项中: 2、find . -type f -exec ls -l { } \; 在/logs目录中查找更改时间在5日以前的文件并删除它 们: find /logs -type f -mtime +5 -exec rm { } \; -ok:和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。 find . -name "*.conf" -mtime +5 -ok rm { } \; 在当前目录中查找所有文件名以.LOG结尾、更改时间在5日以上的文件,并删除它们,只不过在删除之前先给出提示 二、find命令的常用选项及实例 -a :组合条件“和” -not:组合条件“非” 非A并且非B:非(A或B) 非A或非B:非(A并B)

linux系统中的常见基本命令大全

linux系统中的常见基本命令大全 系统信息 arch显示机器的处理器架构(1) uname-m显示机器的处理器架构(2) uname-r显示正在使用的内核版本 dmidecode-q显示硬件系统部件-(SMBIOS/DMI) hdparm-i/dev/hda罗列一个磁盘的架构特性 hdparm-tT/dev/sda在磁盘上执行测试性读取操作 cat/proc/cpuinfo显示CPUinfo的信息 cat/proc/interrupts显示中断 cat/proc/meminfo校验内存使用 cat/proc/swaps显示哪些swap被使用 cat/proc/version显示内核的版本 cat/proc/net/dev显示网络适配器及统计 cat/proc/mounts显示已加载的文件系统 lspci-tv罗列PCI设备 lsusb-tv显示USB设备 date显示系统日期 cal2007显示2007年的日历表 date0412********.00设置日期和时间-月日时分年.秒 clock-w将时间修改保存到BIOS 关机(系统的关机、重启以及登出) shutdown-hnow关闭系统(1) init0关闭系统(2) telinit0关闭系统(3) shutdown-hhours:minutes&按预定时间关闭系统 shutdown-c取消按预定时间关闭系统 shutdown-rnow重启(1) reboot重启(2)

logout注销 文件和目录 cd/home进入'/home'目录' cd..返回上一级目录 cd../..返回上两级目录 cd进入个人的主目录 cd~user1进入个人的主目录 cd-返回上次所在的目录 pwd显示工作路径 ls查看目录中的文件 ls-F查看目录中的文件 ls-l显示文件和目录的详细资料 ls-a显示隐藏文件 ls*[0-9]*显示包含数字的文件名和目录名 tree显示文件和目录由根目录开始的树形结构(1) lstree显示文件和目录由根目录开始的树形结构(2) mkdirdir1创建一个叫做'dir1'的目录' mkdirdir1dir2同时创建两个目录 mkdir-p/tmp/dir1/dir2创建一个目录树 rm-ffile1删除一个叫做'file1'的文件' rmdirdir1删除一个叫做'dir1'的目录' rm-rfdir1删除一个叫做'dir1'的目录并同时删除其内容 rm-rfdir1dir2同时删除两个目录及它们的内容 mvdir1new_dir重命名/移动一个目录 cpfile1file2复制一个文件 cpdir/*.复制一个目录下的所有文件到当前工作目录 cp-a/tmp/dir1.复制一个目录到当前工作目录 cp-adir1dir2复制一个目录 ln-sfile1lnk1创建一个指向文件或目录的软链接 lnfile1lnk1创建一个指向文件或目录的物理链接

linux系统find命令详解

Linux系统find命令详解 一.用grep命令在当前目录下的所有普通文件中搜索hostname这个词#find . –name \* -type f –print | xargs grep “hostname” 注意在这个例子中,\用来取消find命令中的*再shell中的特殊含义 Find命令配合试用exec和xargs可以使用户对所匹配到的文件执行几乎所有的命令 二.Find命令参数使用name选项 使用某文件名模式来匹配文件,一定要用引号将文件名模式引起来 不管当前路径是什么,如果想要在自己的根目录$home中查找文件名符合*.txt的文件试用~作为‘pathname’参数,波浪线~代表了你的$home目录 例:$find ~ -name “*.txt”–print # ~代表了当前用户的根目录 例:$find . –name “*.txt”–print # .代表当前路径 例:$find . –name “[A-Z]*”–print # 查找以大写字母开头的文件 例:$find /etc –name “host*”–print # 在/etc目录下查找host开头的文件 例:$find / -name “*.txt”–print # 从根目录开始查找所有的*.txt文件 例:$find . –name “[a-z][a-z][0-9][0-9].txt” -print 三.Find命令参数使用perm选项 $find . –perm 755 -print #当前目录下查找文件权限为755的文件 -perm mode #文件许可整好符合mode -perm +mode #文件许可部分符合mode -perm –mode #文件许可完全符合mode 例如-007相当于777 四.Find命令参数忽略某个目录 如果希望在/apps目录下查找文件,但不希望在/apps/bin目录中查找可以使用 $find . -path "./asdf" -prune -o -name "*.txt" -print 五.Find命令参数使用user和nouser选项 在某用户的根目录下查找属主为seal的文件 $find ~ -user seal -print $find /etc –user seal –print 查找属主被删除的文件使用-nouser选项 $find /home –nouser -print 六.Find命令参数使用group和nogroup选项 查找属于dba用户组的文件 $find /home/ap/seal –group dba -print 查找没有有效用户组的文件 $find / –nogroup -print 七.Find命令参数按照更改时间或访问时间等查找文件 $find / -mtime -5 –print #查找更改时间在5日以内的文件 $find / -mtime +3 –print #查找更改时间在3天以前的文件 八.Find命令参数查找比某个文件新或旧的文件 查找比文件sam新但比temp旧的文件!是逻辑非符号 $find –newer sam ! –newer temp –ls 查找更改时间比temp文件新的文件 $find . –newer temp -print 九.Find命令参数使用type选项

相关文档
最新文档