ctrl + / 清楚当前行
ctrl + a 光标到行首
ctrl + e 光标到行尾
ctrl + d 删除光标所在字母
ctrl + u 删除光标前的内容
ctrl + k 删除光标后的内容
ctrl + left 向左跳一个单词
ctrl + right 向右跳一个单词

su - USERNAME 切换到其他目录

ls -h humen人性化显示
ls -A 显示隐藏文件,但不包括 . 和 ..
ls -d 显示目录的自身属性
ls -i 显示文件的index node 索引节点号,Linux的每个文件都有一个 index node
ls -R 递归显示(recursive)显示,子目录中的内容也会显示

cd ~username 切换到家目录,root用户才可以进其他用户的家目录
cd - 在前一个目录和当前目录来回切换

date 系统时间
clock 硬件时间

hwclock -w 将当前系统时间同步到硬件时间
hwclock -s 将硬件时间同步到系统

date 121614072016.24 修改时间,月日时分年.秒

export 修改字符集

获取命令帮助方法

内部命令:
help COMMAND

外部命令:
COMMAND --help

命令手册:
man COMMAND
手册的介绍部分
1:用户命令
2:系统调用
3:库调用
4:特殊文件(设备文件)
5:文件格式
6:游戏
7:杂项
8:管理命令(/sbin /usr/sbin /usr/local/sbin)

<> 必须的
[] 可选的
... 多个
| 多选一
{} 分组

whartis COMMAND 查看命令章节


翻页
空格  下一页
b    上一页
回车 下一行
k    上一行

文本内搜索
/KEYWORD 自前像后
n 下一个搜索结果
N 上一个搜索结果

?KEYWORD 自后向前
同上

文档位置 /usr/share/doc

cal 日历命令 calendar,查看日历
cal 2016 查看2016年的日历

文件系统:
/boot 系统启动相关文件
/dev 设备文件
/etc 配置文件
/home 普通用户家目录
/root 管理员家目录
/lib 库文件
静态库
动态库  .so(如windows的dll)
/lib/modules
/media 挂载点目录
/mnt 挂载点目录
/misc 杂项目录
/opt 可选目录
/proc 伪文件系统,内核映射文件
/sys 伪文件系统,跟硬件设备相关的属性映射文件
/tmp 临时文件
/var 可变化的文件
/bin 可执行文件
/sbin 管理命令
/usr shared read-only 全局共享的只读文件
/usr/bin 系统的指令
/usr/sbin 超级用户的指令
/usr/lib

/usr/local/ 第三方软件安装目录
/usr/local/bin
/usr/local/sbin
/usr/local/lib


mkdir -p 递归创建目录
mkdir -p /mnt/test/{x/y,y} 花括号展开,括号前面的路径公用

tree DIR 显示树状目录

rmdir 删除空目录

file 识别文件类型

type COMMAND 查看命令类型

stat FILE 查看文件的信息

touch -c FILE 只修改文件时间戳,文件不存在时不创建文件

加“\”使用原生命令而不是命令别名,如 \rm 删除文件就不会有提示信息


开机启动文件 /etc/rc.local

service crond start 启动定时任务
/sbin/service crond start 启动定时任务

ntsysv 查看那些服务自启动 *表示开机启动项

cp -r DIR 递归复制目录
-f 强行复制
-i 有问题提示
-p 保持原有的属主,属组,权限,时间戳
-a 归档复制,常用于备份

cp /etc{a,b,c} /tmp 移动同一个目录下的多个文件


install
-d       创建目录
源 目标 复制目录,复制后的文件有执行权限

查看文本命令:
cat tac
cat 链接并显示,将给的文本文件连接并显示
cat /etc/issue /etc/fstab 显示多个文件
cat -n 显示行号
cat -E 显示换行符

tac 倒着显示文件,最后一行作为第一行显示
more less
more 不支持向上翻页
less 同man用法
head tail
查看前N行
查看后N行
-n 指定显示行数,n默认为10
head -n 20  显示前20行
head -20    显示前20行

tail 显示后几行,用法相同
tail -f  显示继续追加的内容,用于监控日志


文本处理
cut join sed awk
cut 
-d 指定分割符
-f 指定风格的第几段
-f 1,3 一与三
-f 1-3 一到三

查看某文件有多少行
wc -l /etc/inittab | cut -d' ' <-f1></-f1>

sort FILE 对文本中的内容进行排序,默认按升序排序
-n 对数值排序
-r 倒序排序

uniq 去除重复的内容

history 历史命令列表
-c 清楚命令列表
-d 删除指定位置命令
-w 保存命令历史至历史文件中,即家目录下面的.bash_history

环境变量
PATH 命令搜索路径
HISTSIZE 命令缓冲器大小,保存命令条数
SHELL 输出当前shell

!n 执行命令历史中的第几条命令,n表示第几条
!-n 倒数第几条
!! 执行上一条命令
!string 执行命令历史中以string开头的命令
!$ 引用上一条命令的最后一条参数
按ESC 再按. 引用上一条命令的最后一条参数
alt + . 同上,但终端不支持

起别名
alias 查看当前系统定义的所有别名
alias 名称='命令+选项' 只是当前shell进程生效
unalias 名称

打印变量
echo "The current directory is $(pwd)";
用 $(命令) 即可打印出命令
$(date +%F-%H-%M-%S) 或 用反引号 `命令` 

文件名统配
* 匹配0~任意长度的任意字符
? 匹配任意一个字符
[] 指定范围内的任意单个字符,
[^] 取反,不包含括号里的
[:space:] 表示空白字符 [[:space:]]表示空白集合
[:punct:] 表示所有的标点符号
[:lower:] 所有的小写字母
[:upper:] 所有的大写字母
[:alpha:] 所有字母
[:digit:] 所有数字
[:alnum:] 数字和大小写字母


用户UID类型
管理员 0
普通用户 1-65535
系统用户 1-499
一般用户 500以上

md5sum FILE 获取某个文件的MD5值

which COMMAND 查看命令在什么位置

/etc/passwd 用户信息文件
/etc/shadow 密码文件
/etc/group 组文件

id [USERNAME] 查看用户的账号信息,默认查看当前用户、
-u 只看UID
-g 只看GID
-G 只看附加组
-Gn 显示名称,-un用户名,-gn组名称 -n表示显示名称

finger USERNAME 查看用户信息

用户管理
useradd userdel usermod passwd chsh chfn finger id chage

组管理
groupadd groupdel groupmod gpasswd

权限管理
chown chgrp chmod umask

添加用户
useradd USERNAME
-u UID       为新创建的用户指定UID
-g GROUPNAME 指定基本组
-G GROUPNAME 指定附加组,可以有多个
-c "string" 指定注释信息
-d HOME DIR 指定家目录
-s SHELL     指定shelll路径,必须在/etc/shells
-m -k  创建家目录并复制基本文件/etc/skel
-M           不创建家目录
-r           添加系统用户,系统用户不可登录与没有家目录UID小于500
/etc/logon.defs 创建用户的基本规则文件

passwd USERNAME 为用户修改密码
--stdin 通过标准输入来接收用户的密码,例: echo "" | passwd --stdin USERNAME
-l 锁定账户
-u 解锁账户
-d 删除用户密码

pwck 检查账户的完整性

userdel USERNAME
-r  同时删除家目录

usermod USERNAME 用法同useradd
-u 
-g 
-G -a 同时使用-a追加新的附加组,-G覆盖此前的附加组
usermod -a -G GROUPNAME USERNAME 为用户添加附加组
-c
-d -m 同时使用-m将此用户之前的文件复制到新的家目录
-s
-m
-M
-l NAME 改登录名称
-L 锁定用户
-U 解锁用户

chsh USERNAME 修改用户shell ,change shell
chfn USERNAME 修改用户注释信息

添加组
groupadd GROUPNAME
-g GID 指点GID
-r 添加系统组,系统组不可登录与没有家目录UID小于500

<groupmod></groupmod>
-g GID 修改GID
-n GROUPNAME 修改组名

groupdel GROUPNAME 删除组

gpasswd GROUPNAME 给组加密码
组密码是用户用newgrp命令临时切换组时所需要的组密码

chage 改变密码过期信息 change age
-d 指定密码最近修改时间
-E 指定用户的过期(禁用)时间
-I 指定非活动时间,密码过期但尚未修改密码
-m 密码最短使用期限
-M 密码最长使用期限
-w 警告时长


用户组管理
chown USERNAME FILE/DIR,.. 改变文件或目录的所有者
-R 递归修改子目录或子文件
--reference FILE FILE2,FILE3 衣FILE为参考将FILE2,FILE3设置系统的属主属性

chown USERNAME.GROUPNAME FILE,.. 同时改变属主和属组
chown USERNAME:GROUPNAME FILE,..
chown .GROUPNAME FILE,.. 只该属组
-R 支持递归修改

chgrp GROUPNAME FILE/DIR,..
-R 递归修改
--reference FILE FILE2,FILE3

修改权限
chmod MODE FILE,...
-R
--reference FILE FILE2,FILE3

chmod u=rwx FILE
chmod u=rwx,g=rw FILE
chmod g=,uo=rwx FILE
chmod a=rwx FILE a表示ugo

chmod u-x FILE
chmod u+x,g-x FILE
chmod a-rx FILE
chmod +x FILE

bc 启动linux计算器

umask 022 修改umask

bash全局配置文件
全局配置文件
/etc/profile  /etc/profile.d/*.sh  /etc/bashrc
个人配置
~ 表示家目录
~/.bash_profile  ~/.bashrc

profile类的文件
设定环境变量
运行命令或脚本

bashrc类的文件
设定本地变量
定义命令别名

登录式shell读取配置步骤
/etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc

非登录式shell读取配置步骤
~/.bash_profile --> /etc/bashrc --> /etc/profile.d/*.sh


输出重定向
> 覆盖输出
> 覆盖输入
>> 追加输出

>| 强置覆盖输出

2> 错误重定向覆盖输出
2>> 错误重定向追加输出

&> 正确错误都放一起
&>> 同理

set -C 禁止覆盖输出
set +C 开启追加输出

输入重定向
< 输入重定向 例:tr 'a-z' 'A-Z' < /etc/fstab
<< 此处生成文档
例:
[root@qiyang ~]# cat <<EOF
> this is word
> EOF
this is word

管道
| 管道
例: 
COMMAND | COMMAND | COMMAND   前一个命令的输出作为后一个命令的输入
echo "hello world" | tr 'a-z' 'A-Z'

tee FILE 输出并保存至文件

wc
-l 显示行数
-c 显示字节数
-w 显示字数


根据模式匹配文件
grep option pattern FILE 例 grep 'root' /etc/passwd
-i  忽略大小写
--color 匹配到的显示颜色
-v 没匹配到的显示颜色
-o 只显示匹配到的内容
-E 使用扩展正则表达式
-A 数字 匹配到的行下面几行也显示
-B 数字 前面的两行
-C 数字 前后几行
正则表达式
. 任意单个字符
* 表示字符个数
?
\{1,2\}\
^
$
^$ 空白行
\< \<root 匹配以root开头
\> root\> 匹配以root结尾
例:\<root\> 匹配root单词

\(ab)\ 以ab作为一个整体
\1 \2 括号中的第几个元素
例:grep \(l..e\).*\1 test.txt

扩展正则表达式
\<
\>
其他类似PHP正则

grep -E = egrep

声明变量

本地变量 作用域为整个bash进程
VARNAME=VALUE

局部变量 作用域为当前代码段
local VARNAME=VALUE

环境变量 作用域为当前shell进程及其子进程
export VARNAME=VALUE

位置变量
$1 $2 $3 ...

特殊变量
echo $? 输出上一个命令的执行状态返回值0表示成功 1-255表示不成功

撤销变量
unset VARNAME

set 查看当前shell中的变量

查看当前shell中的环境变量
printenv
env
export

命令 $> /dev/null 不需要的东西都重定向到/dev/null里面

整数比较
-eq 等于
-ne 不等于
-gt 大于
-lt 小于
-ge 大于或等于
-le 小于或等于

[ $USERID -eq 0 ] && echo 'this is root' || echo 'This is common user'

判断语句
if ;then
elif
elif
else
fi

在linux中0为真 其他均为假

#!/bin/bash
NAME=root
if [ `id -u $NAME` -eq 0 ];then
echo "root"
else
echo "common user"
fi

if id $NAME &> /dev/null ;then
echo "id NAME 命令执行成功"
fi

命令的结果=`ls -l`
命令的状态=ls -l

shell中的算术运算
1.
let C=$A+$B
2.
C=$[$A+$B]
3.
C=(($A+$B))
4.空格不可去掉
C=`expr $A + $B`

强制退出命令
exit
exit n n表示错误号

比较两值是否相等
[ $A -eq $B ]
[[ $A -eq $B ]]
test $A -eq $B

文件测试
-e FILE 测试文件是否存在
-f FILE 测试文件是否为普通文件
-d FILE 测试指定路径是否为目录
-r FILE 对当前用户是否可读
-w FILE 对当前用户是否可写
-x FILE 对当前用户是否可执行
使用方法
[ -e /etc/inittab ]

测试脚本是否有语法错误
bash -n FILE.sh
-x 单步执行

$1,$2 位置变量
$# 参数的个数
$* 参数列表
$@ 参数列表


$1 表示在运行此脚本时要输入参数
#!/bin/bash
USERNAME=root
if [ -e $1 ] ;then
echo "YES"
else
echo "NO"
fi

shift 轮替,每一个shift就会踢出第一个参数
shift n 一次踢掉n个
#!/bin/bash
echo $1
shift 2
echo $1
shift
echo $1

计算两个之和
#!/bin/bash
if [ $# -lt 2 ];then
echo "参数不够"
fi
echo "$1+$2的和为$[$1+$2]"
echo "$1+$2的乘积为$[$1*$2]"

sed数据流编辑器,不编辑源文件,输出编辑后的结果
sed 基本用法
sed [options] addressCommand FILE...
-n 静默模式,不再显示模式空间中的内容
address
1. startline,endline 比如1,100,$表示最后一行,$-1,倒数第二行
2. regexp /^root/
3. /pattern1/,/pattern2/ 处理两个正则中间的内容
4. lineNumber 指定的行
5. startline,+N 指定的行,向后N行
command
d 删除
p 显示符合条件的行
a string 在指定的行后面追加新行
i string 在指定的行前面添加新行
r FILE 将指定文件添加到符合条件的行处
w FILE 将指定内容保存到某文件  sed '/oot/w /demo.txt' /etc/fstab
s/pattern/string/g 将匹配到的替换为新字符 sed 's/root/ROOT' /etc/passwd
g 全局替换
i 忽略大小写
使用示例:
sed '1,2d' /etc/fstab 删除1到2行

字符串比较
[ $A = $B ] 等号两边要有空格,否则视为赋值
== 与 = 用法相同
!= 不等号
>
<
-n string 测试字符串是否为空
-s string 测试字符串是否 不为空

循环
for 变量 in 列表; do
循环
done

{1..100} 生成列表
seq [start [step]] end
seq 1 2 100 从1开始每两个数输出一次,到100结束

declare -i SUM=0 声明一个变量为整形

vim常用命令
ZZ 保存并退出
w 向右移动到单词开头
e 向右移动到单词结尾
b 向左移动到单词开头

0 绝对行首
^ 行首的第一个非空白字符
$ 绝对行尾

#G 跳转到第#行
G 跳转到最后一行

ctrl+f 上一页
ctrl+b 下一页

ctrl+d 下半页
ctrl+u 上半页

x 删除字符
#x 删除#个字符

d$ 删除到行尾
d0 删除到行首
dw 删除一个单词
3dw 删除3个字符
#dw,#de,#db
dd 删除行
#dd 删除#行
:,$-2d 删除到倒数第二行

复制整行
p 粘贴到光标的下面
P 粘贴到下面
复制半行
p 粘贴到后面
P 粘贴到前面

c 用法同d,只是操作完后立即变为插入模式

r 替换字符
R 变输入边替换

u 撤销
#u 撤销#次
ctrl+r 恢复

. 重复前一次的操作

v 按字符选取
V 按行选取

n 下一个搜索到的词
N 上一个搜索到的词

查找并替换
line1,line2s/pattern/string/gi g表示全局,i表示不区分大小写
.,$/hello/HELO/gi “.”表示从当前行开始
% 表示全文查找并替换

vim打开多个文件切换方法
next
prev
last
first
qa 全部退出

分屏
ctrl+w s 水平拆分窗口
ctrl+w ↓ 切换到下面的窗口

vim -o FILE1 FILE2 分窗口显示多个文件
-O 垂直显示

将某段内容保存到其他文件
line1,line2w /path/to/somewhere

将其他文件中的内容填充到当前文件
r /path

编辑过程中切换到shell
! shellCommand

自动缩进
set autoindent

语法高亮
syntax on
syntax off

配置文件
/etc/vimrc
~/.vimrc

vim -r FILE 恢复中断的内容


文件查找
locate 基于数据库模糊查找
updatedb 手动生成文件数据库

find
-name FILENAME 对文件名做精确查找
通配符
* find /etc -name "passwd*"
[]
-regex pattern 正则查找
-user username 查找某个用户的文件 find /tmp -user root
-group groupname 根据组查找、
-uid uid 根据uid查找
-gid gid 根据gid查找

-nouser 查找没有属主的文件
-nogroup 查找没有属组的文件

-type 根据文件类型查找
f
d find /tmp -type d
c
b
l
p
s

-size 根据文件大小查找
#k +1k 大于1k的  -1k小于1k的
#M find /tmp -size 1M 小于1M的都属于1M
#G

组合条件
-a 与
-o 或
-not 非
天
-mtime 修改时间,配合+-使用,-表示之内,+之外
-ctime 改变时间 find /tmp -ctime 1
-atime 访问时间
分钟
-min
-cmin
-amin

根据权限查找
-perm MODE find /tmp -perm 644
-MODE 包含该权限的都能匹配到 "-"与关系
find ./ -perm -111 权限包含111的文件都能找到
/MODE 任何一个匹配就行 "/"或者关系

运作
-print 显示
find ./ -prem /007 -ls -ls就是显示
-ok COMMAND {} \; -ok与-exec的区别是-ok需呀确认
-exec COMMAND {} \; {}表示引用找到的文件
例 find ./ -perm -006 -exec chmod o-w {} \;
fidn ./ -perm -020 -exec mv {} {}.new \; 
xargs
find /etc -size +1M -exec echo {} >> /etc/file
find /etc -size +1M | xargs echo >> /tmp/file


特殊权限
SUID 当文件有SUID时,运行这个文件时是以这个文件的所有者运行的,而不是启动程序的用户
chmod u+s FILE 为文件添加s权限
chmod u-s FILE
原来有x则显示“s”否则显示“S”
SUID的作用是可以让普通用户在执行某命令时拥有root权限

SGID 以原有的所属组运行
chmod g+s FILE
chmod g-s FILE
团队开发时可以在互相编辑对方的文件
sticky 在公共目录里面不可删除别人的文件
chmod o+t DIR
chmod o-t DIR

文件系统访问列表
利用文件扩展保存额外的访问控制权限
setfacl
-m 设定
u:USERNAME:权限 setfacl -m u:user1:rw FILE 设点文件用户facl
g:GROUPNAME:权限 setfacl -m g:group1:rw FILE 设置文件组的facl
-x 取消
setfacl -x u:user1 FILE 取消文件的facl
为目录设定访问控制列表
d:u:USERNAME:rw DIR
d:g:GROUPNAME:rw DIR
getfacl

终端类型
console 控制台
pty 物理终端
tty#  虚拟终端
ttys# 串行终端
pts/# 伪终端

who 查看登录的终端
-r 显示当前运行级别

w 显示登录的用户,与用户当前的操作

last 显示登录日志
still logged in 目前正在登录的用户
日志位置/var/log/wtmp
last -n # 显示最近几次

lastb 用户错误登录尝试 日志位置/var/log/btmp
lastb -n #

lastlog 显示每一个用户最近一次成功登录的信息
-u USERNAME 显示特定用户最近登录的信息

basename 从一个路径中取出文件名
在脚本中使用 `basename $0` 显示当前脚本的名称

mail 查看邮件

hostname 显示当前主机的主机名

RANDOM 生成0-32768之间的随机数,echo $RANDOM
随机数生成数器
/dev/random
/dev/urandom

case语句
case SWITCH in
value1)
...
;;
value2)
...
;;
*)
...
;;
esac

磁盘管理
创建硬链接
ln 源文件 链接名
-s 创建软连接
-v 显示过程
硬链接
硬链接指向inode号
不能跨文件系统
不可应用于目录
文件会增加链接的次数

软连接
软连接指向路径字符串
能跨文件系统
可应用于目录
文件不会增加链接的次数

du DIR 显示目录下每一个目录的大小
-s 显示整个目录大小
-h 单位换算

df DIR 显示整个磁盘分区使用情况
-h 单位换算
-i index node 使用情况
-P 显示时不换行

设备文件
b 块设备,按块为单位,随机访问的设备
c 字符设备,按字符为单位,线性设备

b 硬盘
c 键盘

/dev

创建设备文件
mknod
-m MODE 指定权限
mknod 设备名称 c 主设备号 次设备号
mknod mydev c 66 0

fdisk -l 列出当前磁盘上的所有分区
查看某个设备 fdisk -l /dev/sda1

管理磁盘分区
fdisk /dev/sda 创建磁盘分区
p 显示当前硬盘的分区,包括没保存的改动
n 创建新分区
e 扩展分区
p 主分区
d 删除分区
w 保存退出
q 不保存退出
t 修改分区类型
l 显示支持的类型
m 查看帮助

cat /proc/partitions 内核分区表
partprobe 让内核重读分区表
partx redhat 6

查看当前系统支持哪些文件系统
cat /proc/filesystems

创建文件系统(格式化)
mkfs
-t TYPE 例:mkfs -t ext3 /dev/sda5

mkfs -t ext2 = mkfs.ext2
mkfs -t ext3 = mkfs.ext3

专门管理ext系列文件
mke2fs
-j 创建ext3类型文件系统
-b 指定 BLOCK_SIZE 默认4096 可选1024,2048,4096
-L 指定卷标
-m 指定预留给超级用户的块百分比
-i 指定inode大小 mke2fs -i 4096 /dev/sda3
-N 指定inode个数
-F 强制创建文件系统
-E 用户指定额外文件系统属性

blkid 查看磁盘的设备的相关属性 blkid /dev/sda5
UUID TYPE LABEL

e2label 查看或定义卷标 e2label /dev/sda5

tune2fs 调整文件系统的相关属性
-j 不损坏原有数据升级文件系统,将ext2升级到ext3
-L 设定卷标
-m # 调整预留百分比
-r # 指定预留块数
-o 指定默认挂载选项
-c # 指定挂在次数#次进行自检 0或-1表示关闭此功能
-i # 每挂载使用多少天后进行自检,0或-1表示关闭此功能
-l 显示超级块中的信息

dumpe2fs 显示文件属性信息
-h 只显示超级块信息

fsck 检查并修复Linux文件系统
-t FSTYPE 指定文件系统
-a 自动修复,不询问

e2fsck 专用于修复ext2/ext3文件系统 e2fsck -f /dev/sda5
-f 强制检查
-p 自动修复


挂载:将新文件系统关联至当前根文件系统
卸载:将某文件系统与当前文件系统的关联关系移除

mount 挂载,查看已经挂载的设备
mount 设备 挂载点
设备:
设备文件: /dev/sda5
卷标: LABEL
UUID: UUID
挂载点:目录
要求:
1.目录没有被其他进程使用
2.目录中的原有文件将会被暂时隐藏
挂载完成后,要通过挂载点访问对应文件系统上的文件

umount 卸载某文件系统
umount 设备/挂载点
注意: 要卸载的设备没有进程使用

mount [option] [-o options] DEVICE MOUNT_POINT
-a 表示挂载 /etc/fstab 文件这种定义的所有文件系统
-n 默认情况下,mount命令每挂载一个设备都会把挂载的设备信息保存至/etc/mtab文件,使用-n表示不写入此文件
-t FSTYPE 指定正在挂载设备上的文件系统的类型,不适用则自动获取
-r 只读挂载
-w 读写挂载
-o 指定额外的挂载选项,也即指定文件系统启用的属性
remount 重新加载当前文件系统
ro 挂载为只读
rw 挂载为读写
mount -o loop FILE.iso /media 挂载本地iso文件

free 查看当前物理空间和交换内存的使用情况
-m 以兆为单位显示内存空间的大小

创建交换分区
mkswap /dev/sda8
-L LABEL指定卷标

swapon /dev/sda8 启用交换空间swap
-a 启用所有的定义在/etc/fstab文件中的交换设备
swapoff /dev/sda8 关闭交换空间swap

复制数据流的方式复制文件(可以备份或还原MBR等)
dd 
if=数据来源 
of=数据存储目标
bs=字节
count=复制的的bs个数
seek=跳过去的空间大小

dd if=/dev/sda of=/mnt/usb/mbr.backup bs=512 count=1 备份硬盘上的MBR
dd if=/dev/usb/mbr.backup of=/dev/sda bs=512 count=1 还原硬盘上的MBR


文件系统的配置文件 /etc/fstab
OS在初始化时,会自动挂载此文件中定义的每个文件系统