文件处理类
dd
1、 作用
dd用来复制文件,并根据参数将数据转换和格式化
2、 格式
dd [options]
3、 主要参数
bs=字节:强迫ibs=<字节>;及obs=<字节>;
cbs=字节:每次转换指定的<字节>;
conv=关键字:根据以逗号分隔的关键字表示的方式来转换文件;
count=块数目:只赋值指定的<块数目>的输入数据;
ibs=字节:每次读取指定的<字节>;
if=文件:读取<文件>内容,而非标准输入的数据;
obs=字节:每次写入指定的<字节>;
of=文件:将数据写入<文件>,而不在标准输出显示
seek=块数目:先略过以obs为单位的指定<块数目>的输出数据;
skip=块数目:先略过以ibs为单位的指定<块数目>的输入数据
dd于cp的区别
问:
看了一些关于dd和cp的命令,但是我始终无法明白dd和cp之间有什么不同?
不是都可以看成是备份的作用么?还有什么区别呢?
答:
1、dd是对块进行操作的,cp是对文件操作的。
2、比如有两块硬盘,要将第一个硬盘里的数据复制到第二个硬盘上
dd if=/dev/hda of=/dev/hdc bs=4 count=1024
bs每次复制的块大小
count要复制的次数
这样第二块硬盘的数据布局和第一块是完全一样的(扇区级别,每个扇区上的数据和第一块硬盘都是一样的)
cp只是将第一个硬盘的数据复制到第二个硬盘上,由于系统写硬盘不是顺序写的,哪里有足够的空间就放到哪,所以第二个硬盘相同的扇区号上的数据和第一块硬盘有可能是不一样的。
dd:块界别拷贝
cp:文件目录界别拷贝
举个例子,如图所示。可以看出,dd将原始数据(raw data)按照数据源的格式原封不动的拷贝到目的地;cp将文件和目录拷贝到目的地后按照目的地的格式排列新数据。注意:对于不能以文件或目录格式呈现的数据(如引导启动块的数据),cp无能为力。
以上粗体字为转载内容,来源于网络。
grep
1、 作用
grep命令可以指定文件中搜索特定的内容,并将含有这些内容的行标准输出。全称:Global Regular Expression Print,表示全局正则表达式版本,使用权限为所有用户。
2、 格式
grep [options]
3、 主要参数:
-c:只输出匹配行的计数
-I:不区分大小写(只适用于单字符)
-h:查询多文件时不显示文件名
-l:查询多文件时只输出包含匹配字符的文件名
-n:显示匹配行及行号
-s:不显示不存在或无匹配文本的错误信息
-v:显示不包含匹配文本的所有行
4、 用法:grep 参数 关键字 目录 -r
find
1、 作用
find是在目录中搜索文件,使用权为所有用户。
2、 格式
find 目录 参数 匹配表达式
3、 主要参数
-depth:使用深度级别的查找过程方式,在某层指定目录中优先查找文件内容
-maxdepth levels:表示至多查找到开始目录的第level层子目录。level是一个非负数,如果level是0的话表示仅在当前目录中查找。
-mindepth levels:表示至少查找到开始目录的第level层子目录
-mount:不在其他文件系统的目录和文件中查找。
-version:打印版本
匹配表达式:
-name:支持通配符*和?
-atime n:搜索在过去n天读取过的文件
-ctime n:搜索在过去n天修改过的文件
-group grpoupname:搜索所有组为grpoupname的文件
-user 用户名:搜索所有文件属主我用户名的文件
-size n:搜索文件大小是n个block的文件
-print:输出搜索结果,并且打印。
主要用法:
根据文件名查找:
find / -name xxx
根据部分文件名查找
find / -name ’*xxx*’
ls
1、 作用
用于显示目录内容,使用权限为所有用户。
2、 格式
ls 参数 文件名
3、 主要参数
-a:显示所有档案及目录(ls内定将档案名或目录名称为“.”的视为影藏,不会列出);
-A:显示除影藏文件“.”和“..”以外的所有文件列表;
-C:多列显示输出结果。这是默认选项;
-l:与“-C”选项功能相反,所有输出信息用单列格式输出,不输出为多列;
-F:在每个输出项后追加文件的类型标识符,具体含义:“*”表示具有可执行权限的普通文件,“/”表示目录,“@”表示符号链接,“|”表示命令管道FIFO,“=”表示sockets套接字。当文件为普通文件时,不输出任何标识符;
-b:将文件中的不可输出的字符以反斜线“”加字符编码的方式输出;
-c:与“-lt”选项连用时,按照文件状态时间排序输出目录内容,排序的依据是文件的索引节点中的ctime字段。与“-l”选项连用时,则排序的一句是文件的状态改变时间;
-d:仅显示目录名,而不显示目录下的内容列表。显示符号链接文件本身,而不显示其所指向的目录列表;
-f:此参数的效果和同时指定“aU”参数相同,并关闭“lst”参数的效果;
-i:显示文件索引节点号(inode)。一个索引节点代表一个文件;
--file-type:与“-F”选项的功能相同,但是不显示“*”;
-k:以KB(千字节)为单位显示文件大小;
-l:以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间等;
-m:用“,”号区隔每个文件和目录的名称;
-n:以用户识别码和群组识别码替代其名称;
-r:以文件名反序排列并输出目录内容列表;
-s:显示文件和目录的大小,以区块为单位;
-t:用文件和目录的更改时间排序;
-L:如果遇到性质为符号链接的文件或目录,直接列出该链接所指向的原始文件或目录;
-R:递归处理,将指定目录下的所有文件及子目录一并处理;
--full-time:列出完整的日期与时间;
--color[=WHEN]:使用不同的颜色高亮显示不同类型的。
ln
1、 作用
ln用来为文件创建链接,连接类型分为硬连接和符号连接两种,默认的链接类型是硬链接。如果要创建符号链接必须使用"-s"选项。
2、 格式
ln 参数 源文件 链接名
3、 主要参数
-b或--backup:删除,覆盖目标文件之前的备份;
-d或-F或——directory:建立目录的硬连接;
-f或——force:强行建立文件或目录的连接,不论文件或目录是否存在;
-i或——interactive:覆盖既有文件之前先询问用户;
-n或--no-dereference:把符号连接的目的目录视为一般文件;
-s或——symbolic:对源文件建立符号连接,而非硬连接;
-S<字尾备份字符串>或--suffix=<字尾备份字符串>:用"-b"参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,预设的备份字符串是符号“~”,用户可通过“-S”参数来改变它;
-v或——verbose:显示指令执行过程;
-V<备份方式>或--version-control=<备份方式>:用“-b”参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,这个字符串不仅可用“-S”参数变更,当使用“-V”参数<备份方式>指定不同备份方式时,也会产生不同字尾的备份字符串;
源文件:指定链接的源文件。如果使用-s选项创建符号链接,则“源文件”可以是文件或者目录。创建硬链接时,则“源文件”参数只能是文件;
系统管理命令
top
1、 作用
top可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。通过top命令所提供的互动式界面,用热键可以管理。
2、 格式
top 参数
3、 主要参数
-b:以批处理模式操作;
-d:指定更新的间隔,以秒计算
-c:显示进程完整的路径和名称
-I:忽略失效过程;
-s:保密模式;
-S:累积模式;
-i<时间>:设置间隔时间;
-u<用户名>:指定用户名;
-p<进程号>:指定进程;
-n<次数>:循环显示的次数。
4、 top交互命令
h:显示帮助画面,给出一些简短的命令总结说明;
k:终止一个进程;
i:忽略闲置和僵死进程,这是一个开关式命令;
q:退出程序;
r:重新安排一个进程的优先级别;
S:切换到累计模式;
s:改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5s;
f或者F:从当前显示中添加或者删除项目;
o或者O:改变显示项目的顺序;
l:切换显示平均负载和启动时间信息;
m:切换显示内存信息;
t:切换显示进程和CPU状态信息;
c:切换显示命令名称和完整命令行;
M:根据驻留内存大小进行排序;
P:根据CPU使用百分比大小进行排序;
T:根据时间/累计时间进行排序;
w:将当前设置写入~/.toprc文件中。
kill
1、 作用
用来中止一个进程
2、 格式
kill 选项 参数
3、 选项
-a:当处理当前进程时,不限制命令名和进程号的对应关系;
-l <信息编号>:若不加<信息编号>选项,则-l参数会列出全部的信息名称;
-p:指定kill 命令只打印相关进程的进程号,而不发送任何信号;
-s <信息名称或编号>:指定要送出的信息;
-u:指定用户。
at
1、 作用
用来在指定时刻执行指定的命令序列。
2、 格式
at 选项 参数
3、 选项
-f:指定包含具体指令的任务文件;
-q:指定新任务的队列名称;
-l:显示待执行任务的列表;
-d:删除指定的待执行任务;
-m:任务执行完成后向用户发送E-mail。
4、 用法
实例1:三天后的下午 5 点执行 /bin/ls
命令:
at 5pm+3 days
输出:
[root@localhost ~]# at 5pm+3 days
at> /bin/ls
at> <EOT> 按Ctrl+D
job 7 at 2013-01-08 17:00
[root@localhost ~]#
实例2:明天17点钟,输出时间到指定文件内
命令:
at 17:20 tomorrow
输出:
[root@localhost ~]# at 17:20 tomorrow
at> date >/root/2013.log
at> <EOT> 按Ctrl+D
job 8 at 2013-01-06 17:20
[root@localhost ~]#
实例3:计划任务设定后,在没有执行之前我们可以用atq命令来查看系统没有执行工作任务
命令:
atq
输出:
[root@localhost ~]# atq
8 2013-01-06 17:20 a root
7 2013-01-08 17:00 a root
[root@localhost ~]#
实例4:删除已经设置的任务
命令:
atrm 7
输出:
[root@localhost ~]# atq
8 2013-01-06 17:20 a root
7 2013-01-08 17:00 a root
[root@localhost ~]# atrm 7
[root@localhost ~]# atq
8 2013-01-06 17:20 a root
[root@localhost ~]#
实例5:显示已经设置的任务内容
命令:
at -c 8
输出:
[root@localhost ~]# at -c 8
#!/bin/sh
# atrun uid=0 gid=0
# mail root 0
umask 22此处省略n个字符
date >/root/2013.log
[root@localhost ~]#
crontab
1、 作用
crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
2、 格式
crontab 选项 参数
3、 选项
-e:编辑该用户的计时器设置;
-l:列出该用户的计时器设置;
-r:删除该用户的计时器设置;
-u<用户名称>:指定要设定计时器的用户名称。
4、 实例
minute hour day month week command
每1分钟执行一次command
* * * * * command
每小时的第3和第15分钟执行
3,15 * * * * command
在上午8点到11点的第3和第15分钟执行
3,15 8-11 * * * command
每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * * command
每个星期一的上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1 command
每晚的21:30重启smb
30 21 * * * /etc/init.d/smb restart
每月1、10、22日的4 : 45重启smb
45 4 1,10,22 * * /etc/init.d/smb restart
每周六、周日的1:10重启smb
10 1 * * 6,0 /etc/init.d/smb restart
每天18 : 00至23 : 00之间每隔30分钟重启smb
0,30 18-23 * * * /etc/init.d/smb restart
每星期六的晚上11:00 pm重启smb
0 23 * * 6 /etc/init.d/smb restart
每一小时重启smb
* */1 * * * /etc/init.d/smb restart
晚上11点到早上7点之间,每隔一小时重启smb
* 23-7/1 * * * /etc/init.d/smb restart
每月的4号与每周一到周三的11点重启smb
0 11 4 * mon-wed /etc/init.d/smb restart
一月一号的4点重启smb
0 4 1 jan * /etc/init.d/smb restart
每小时执行/etc/cron.hourly目录内的脚本
01 * * * * root run-parts /etc/cron.hourly
quota
1、 作用
用于显示用户或工作组的磁盘配额信息。输出信息包括磁盘使用和配额限制
2、 格式
quota 选项 用户或工作组
3、 选项
-g:列出群组的磁盘空间限制;
-q:简明列表,只列出超过限制的部分;
-u:列出用户的磁盘空间限制;
-v:显示该用户或群组,在所有挂入系统的存储设备的空间限制;
-V:显示版本信息。
系统安全命令
umask
1、 作用
用来设置限制新建文件权限的掩码。当新文件被创建时,其最初的权限由文件创建掩码决定。用户每次注册进入系统时,umask命令都被执行, 并自动设置掩码mode来限制新文件的权限。用户可以通过再次执行umask命令来改变默认值,新的权限将会把旧的覆盖掉。
2、 格式
umask 选项 权限掩码
3、 选项
-p:输出的权限掩码可直接作为指令来执行;
-S:以符号方式输出权限掩码。
4实例:
umask -S
u=rwx,g=rx,o=rx
umask -p 177
umask -S
u=rw,g=,o=
chgrp
1、 作用
用来改变文件或目录所属的用户组。该命令用来改变指定文件所属的用户组。其中,组名可以是用户组的id,也可以是用户组的组名。文件名可以 是由空格分开的要改变属组的文件列表,也可以是由通配符描述的文件集合。如果用户不是该文件的文件主或超级用户(root),则不能改变该文件的组。
2、 格式
chgrp 选项 组(指定新工作名称)/文件(指定要改变所属组的文件列表,多个文件或目录之间使用空格隔开)
3、 选项
-c或——changes:效果类似“-v”参数,但仅回报更改的部分;
-f或--quiet或——silent:不显示错误信息;
-h或--no-dereference:只对符号连接的文件作修改,而不是该其他任何相关文件;
-R或——recursive:递归处理,将指令目录下的所有文件及子目录一并处理;
-v或——verbose:显示指令执行过程;
--reference=<参考文件或目录>:把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同;
4、 实例
chgrp -R mengxin /usr/meng 将/usr/meng及其子目录下的所有文件的用户组改为mengxin
chown
1、 作用
chown命令改变某个文件或目录的所有者和所属的组,该命令可以向某个用户授权,使该用户变成指定文件的所有者或者改变文件所属的组。用户可以是用户或者是用户D,用户组可以是组名或组id。文件名可以使由空格分开的文件列表,在文件名中可以包含通配符。
只有文件主和超级用户才可以便用该命令。
2、 格式
chown 选项 参数
用户:组:指定所有者和所属工作组。当省略“:组”,仅改变文件所有者;
文件:指定要改变所有者和工作组的文件列表。支持多个文件和目标,支持shell通配符。
3、 实例
chown -R liu /usr/meng 将目录/usr/meng及其下面的所有文件、子目录的文件主改成liu
chattr
1、 作用
修改ext2和ext3文件系统属性,权限是root。
2、 格式
chattr 选项 文件或目录
3、 选项
-R:递归处理,将指令目录下的所有文件及子目录一并处理;
-v<版本编号>:设置文件或目录版本;
-V:显示指令执行过程;
+<属性>:开启文件或目录的该项属性;
-<属性>:关闭文件或目录的该项属性;
=<属性>:指定文件或目录的该项属性。
4、 实例
chattr +i /etc/fstab
5、 说明
chattr命令的作用很大,通过chattr命令修改属性能够提高系统的安全性,但是它并不适合所有目录,如/、/dev、/tmp、/var
ps
1、 作用
用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。
2、 格式
ps 选项
3、 选项
-A:列出所有的进程
-l:显示长列表
-m:显示内存信息
-w:显示加宽可以显示较多的信息
-e:显示所有进程
a:显示终端上的所有进程,包括其他用户的进程
-au:显示较详细的信息
-aux:显示所有包含其它使用者的进程
4、 实例
在进行系统维护时,经常会出现内存使用量惊人,而又不知道是哪一个进程占用了大量资源的情况。除了top查看外,还可以使用下面的命令:
ps aux | sort+5n