《鸟哥的LINUX私房菜(第2版)》基础篇:
第1-10章系统要点整理笔记
·需要你手上有鸟哥的这本书(第2版),配合起来看比较好。
·笔记包含个人整理的图解,以帮助记忆!如VI命令,快速上手。
·笔记不一定按1-10章的顺序来写,为了系统化,部分内容有调整。
·融入了个人学习时从其它资料、网上获取的内容。
第1-2章:略
第3-5章:硬件基础知识、安装--系统运行速度与“整个系统最慢的那台设备有关”
CPU:倍频:指CPU本身运算时的速度,外频:指CPU与接口设备进行数据传输/运算速度。
倍频*外频=CPU频率。与外频有关的是内存和主板芯片集。外频可以超频但不稳定。
内存:RAM越大,系统越快。内存容量有时比CPU还重要。DDR取代SDRAM;
显卡:PCI Express保持代传统AGP接口,目前最新的是Hdmi,服务器显卡最好用主板内置。
硬盘:LINUX对IDE和SATA接口的硬盘命名都是一样的。性能依次是SAS- SCSI- SATA-IDE
PCI适配卡:声卡、网卡等通过PCI插槽安装。网卡用知名3COM或INTEL品牌比较稳定。
主板:CPU、内存与主板(芯片集)在选购时需要一起考虑。--主板负责芯片集与各组件的通信。
I/O地址与IRQ中断:I/O有点类似门牌地址,每个设备都有自己的地址。IRQ相当于各个门牌号连接到CPU的专门路径。IRQ只有数量不足时,需要关掉一些没用到的设备接口,空出给有需要的接口。
BIOS(Basic Input/Output System基本输入/输出系统):I/O、IRQ可通过BIOS设置。
其它输入输出接口:
PS2接口:键盘与光标接口。
9针串行端口:以前用来连接鼠标的接口,常称为com1。
25针并行端口:打印机端口,常称为LPT1、LPT2…
声音输入、输入与麦克风:主板上必须装有内置音效芯片时才会有这3个设备。
USB接口:当前USB2.0速度已达到480Mbit/s。
电源:不要使用差的电源,这会是电脑不稳定的元凶。
速度、稳定性的主要原因:·系统超频·电源不稳定·内存负荷·系统过热
LINUX分区建议:/etc、bin、sbin、dev、lib这五个一定应放在根分区内,/etc还应定期备份
·应定期检查/var/logmessages文件是否异常。
·这几个应独立分区:/home,/usr,/var(最容易出问题的分区,更应独立), /tmp,TMP应定期清理
·/boot:引导区,分100M左右,应强制为主分区。硬盘大于60G应有boot独立分区。
·/var:邮件与WWW默认路径在/var下,像MYSQL数据库默认装在/var/lib/mysql/下,所以应大一些。
·/home:用户多时,该目录也要大点。特别是做samba服务时。
·swap:通常为RAM的2倍,视具体情况定。
必需的系统开发工具软件包:gcc、kernel-headers、kernel-source
硬盘分区原理:---软件安装不同的模式(个人机、工作站、服务器)的主要区别在于分区。
·硬盘分2个区:MBR分区表(主引导分区:引导程序与分区表)和实际存放数据区
·分区表定义了“第n个磁盘块是从第X个柱面到第Y个柱面”
·硬盘最多只能“4个主分区(4P)”或“3个主分区+1扩展分区(3P+1E)”,扩展分区可再分若干逻辑分区。
·每个分区最前面的扇区,会有一个超级块,扩展分区指定/dev/hda4的超级块处。
·不管分了几个主分区,sda1-4或hda1-4是固定预留的设备号,扩展分区是从sda5或hda5开始的。
安装摘要:
1、版本选择;服务器:debian, 其它redhat,centos。
2、硬件信息收件:IP,掩码,网关,DNS IP,显示器,键盘和鼠标模式
3、设备引导:开机进入BIOS找到BIOS features:选择boot sequence(启动顺序)或first boot device(第一台引导设备),选择CD-ROM为第一启动顺序。保存退出。
4、如果安装出现错误,可能:硬件不支持,光驱会挑盘,光盘盘片有问题。
5、分区时,根分区、boot、swap应“强制主分区”。
6、不要选择UTC(与夏令时有关),否则时区混乱。
查看内核和硬件、系统信息:
内核版本:#uname –a (细) 或 # uname –r (简) 或 # cat /proc/version :PROC是系统内核映像
查看redhat 的release版本:# more /etc/redhat –release 或lsb_release –a
硬盘参数:hdparm /dev/had
CPU温度cat /proc/acpi/thermal_zone/THRM/temperature
CPU参数 #cat /proc/cpuinfo
中断 #cat /proc/interrupts
设备IO端口 #cat /proc/ioports
内存信息(i.e. mem used, free, swap size) :#cat /proc/meminfo -
所有设备的所有分区 #df –Th 或 # fdisk –l 或 #cat /proc/partitions
PCI设备的信息 #cat /proc/pci
所有Swap分区的信息 #cat /proc/swaps
查看网卡信息:# lspci
LINUX启动模式(终端):在/etc/inittab中设置 , --别把模式设为0和6系统将6种定义为tty1-tty6环境
0-停机 1 – 单用户维护模式 2-多用户,但没有NFS。 3 -完全多用户模式 4-一般不用 5-X11模式 6 -重新启动。 |
常用快捷键:
·CTRL+ALT+ [FI-F6]:切换6种终端。系统将F1-F6定义为tty1-tty6的操作界面环境。
·CTRL+ALT+F7:从命令行终端返回X-window,或在命令行输入:startx即可。
·CTRL+C:中断命令执行。 ·CTRL+U:在提示符下,删除整行命令。
·CTRL+D:输入结束。如在写邮件时可用。等同于exit直接关掉SSH或退出终端。
·CTRL+ALT+退格键:重启XWINDOW ·CTRL+Z:暂停
·TAB:具有“命令补全”和“文件补全”功能。
命令补全:当你输入命令时,连接2下TAB键,如果系统命令中有前几位字母和你输入的一样并只有一个时,会直接补全命令,如果有多个,则显示出一个列表。
文件补全:同上,当输入命令操作对象文件或文件包时,连按2下TAB,会补全或显示列表。
获取系统帮助:MAN PAGE (info page略)(通常可以在命令后加 –help直接取得帮助说明,如ls --help)
1、了解命令运行权限:调用man command后第一行:
1---任何用户可操作的。2---系统核心可调用的函数与工具。 3---常用函数和函数库 4---设备文件的说明,如man null, man zero
5---设置文件或是某些文件的格式。 6---游戏 6---惯例与协议,如LINUX标准文件系统、网络协议、ASCII码等
8 --- 管理员才能用的管理命令。9---与内核有关的命令。
2、man page常用快捷键:(按q退出) man page放在/usr/share/man目录中
“空格”和[page down]、 [page up]:向下翻页、向上翻页;
[HOME]、[END]:到第一页、最后一页
/string 向下搜索 ?string 向上搜索string字串
n, N :当用/和?搜索时,用n可以继续查看下一个搜索结果(与/和?同方向),而N则反向搜索。
正确关机、重启:#shutdown详细参下文:
多用户模式时正确步骤:
1、#w或#who查看系统使用状态 ;2、用shutdown通知在线用户关机时间。3、用#sync把内存中未更新的数据写入硬盘,可多执行几次sync 确保存入。 4、用#init 0或#reboot等正确关机。
Shutdown主要参数:
#/sbin/shutdown [-t 秒] [-arkhncfF] [时间/now] [警告信息]
-t 秒 : 过几秒后关机
-h :系统服务停掉后,立即关机,如有时间项,则在指定分钟数后关机。
-n :不经过init程序,直接以shutdown关机。
-f :关机并启动后,强制略过fsck磁盘检查 -F则相反,重启后强制进行fsck检查
-c :取消已经在进行的shutdown命令内容。(或按ctrl+c取消)
-r :重启
-k :不真的关机,只发送警告信息。
e.g. # shutdown –h now 马上关机。Now=0 ; # shutdown –h 20:25 在今天的20:25关机,#shutdown –r +30 ‘系统要重启’
其它重启 # init 6 、# reboot 关机 #init 0 # halt 命令 和 #poweroff 略。
·启动过程中遇到问题最常是硬盘有坏轨或扇区错乱(数据损坏),解决办法:(假设硬盘没有坏掉情况下)
- 根目录没有损坏:在提示press root pass word or ctrl +D后输入ROOT密码进入单人模式,运行fsck /dev/坏的分区即可。
- 根目录坏了:
a、把硬盘拿下,放在另一台linux电脑上并且不要用mount载入,然后以root身份执行“#fsck /dev/坏的分区”
b、也可以下载LIVE CD(可光盘启动)做成光盘,这时用光盘启动,再mount和原来的根目录。通过fsck挽救。 - 有关忘记boot密码的进入办法,参P92
应知道的基础及基础命令(大小写有别、TAB键和空格也有区别):
·命令写法:命令太长可用\符号来转义[enter]分行,但\后面应立即回车,在第二行接着写命令。
·command [-option] parm1 parm2:参数多个用空格分开,不是用逗号之类。不论空几格SHELL均视为一格。
·当用su [-] username切换用户后,可以用# exit 换回。不必再su.,其它场合exit是注销LINUX用.
·[ root@mylinux ~] # 含义:[用户@主机名 当前所在目录] #或$提示符。#是root的提示符。
·# eject 弹出光驱 #eject -t 收回光驱
·修改语系:改 /etc/sysconfig/i18n 文件,如 LANG="en_US",xwindow会显示英文界面, LANG="zh_CN.GB18030",xwindow会显示中文界面。临时修改语系可用以下命令(注销后就没用了):
#LANG=en #LANGUAGE=en #LC_ALL=en #LC_CTYPE=en #LC_TIME=en
·显示日期和日历: #date [+%Y/%m/%d] #cal [2011]或#cal [month] [year]
·计算:#bc 然后可设置scale=X即小数位精度,退出用quit。
第6-7、9章:LINUX的文件、目录,以及文件压缩
学习目标:了解属性及特殊权限、文件和目录操作命令、学会分区、格式化、硬盘参数设置、设置虚拟内存分区
LINUX中的硬件设备号:
设备 | LINUX中设备号 | 设备 | LINUX中设备号 |
IDE硬盘 | /dev/hd[a-d] | 软驱 | /dev/fd[0-1] |
SCSI硬盘 | /dev/sd[a-p] | 打印机 | /dev/lp[0-2] |
U盘 | /dev/sd[a-p] (与SCSI硬盘一样) | 鼠标 | /dev/mouse |
CDROM | /dev/cdrom | 磁带机 | /dev/ht0 (IDE接口) 或 /dev/st0 (SCSI接口) |
LINUX查看支持的文件系统几种方式:module: [ 'mɔdju:l ] .[计算机] 模块、组件、单元
1、cat /etc/filesystems 2、/lib/modules/`uname –r`/kernel/fs 3、ls -l /sbin/mkfs* 或ls –l /sbin/fsck*
三种权限的具体含义(rwx): ---使用mount –o rw或ro设置的权限,比文件权限级别更高
权限(指定数) | 针对文件 | 针对目录 | |
r | 4:读权限 | 查看内容 | -- 列出目录内容 |
w | 2:写权限 | 修改 | -- 建立、删除(不论属于谁,只有粘着位t除外)、重命名、移动新文件或子目录 (即增删改移动能力均有) |
x | 1:执行限 | 执行文件 | -- 能否进入目录 |
常用文件类型:d 目录;- 文件(文本、二进制文件、数据文件) l 连接文件 b 块设备文件 c 设备文件中的串行端口设备,如键盘、鼠标。p 管道(FIFO:first- in- first-out先进先出,解决多个程序访问同一文件所造成错误)
·“连接”的含义:指占用的节点(i-node即I节点),新建的目录其下含有“.和..”两个目录,连接为2,再新增子目录,会依次增加连接数,但增加的文件不会增加连接数。
文件权限三剑客:chgrp , chown , chmod
·chgrp 更改所属组:#chgrp [-R] 组名 DIR/FILE(-R 递归子目录下所有文件、目录都更新成此组):把DIR或FILE给组名
·chown 更改所有者:#chown [选项] 用户[ . 组] file/dir :选项:-v 显示chown命令所做工作。-R同上,句点可用“:”代替
·chmod 更改权限:注意:shell 文件用VI编辑后,权限会改变,需要更改权限。
数字表示法:权限代表数:r- 4 w -2 x -1:# chmod [-R] nnn 文件或目录。 -R 递归
字母表示法:#chmod u=rwx,go=rx myfile; #chmod u=rwx,g=rx,o=r ; #chmod u+s myfile
chmod | u,g ,o a (即上面三组) | +(加入) -(除去) =(设置) | r , w ,x s(特殊权限:SUID,SGID) -:不具任何权限,数字为0 | 文件或目录 |
注:mkdir在建目录时也可以直接设置权限:#mkdir # 711 test2
LINUX文件的三个时间:
Modification time(mtime 修改时间) :文件内容数据更改时会更新:用ls读出的时间就是mtime。注意不是指文件属性
Status time(ctime 状态时间):更改权限与属性时,会更新此时间
Access time(atime 访问时间):当读取文件内容时,就会更新此时间,如用cat去读取。
·ls显示的目录时间,其下文件变动,就会造成目录时间更新 ,LS显示的时间可以用#ls –time={atime|ctime}改变
文件注意事项:
·命名时,不要用 / \ * ? < > ; & ! [ ] | ‘ “ ` ( ) { }等符号
·路径:. 或./ 表示当前目录, .. 或 ../表示上层目录
·单一文件或目录最大文件名为255个字符,包括路径完整文件名则最大4096个字符。
·关于FHS (Filesystem Hierarchy Standard )文件系统层次标准:规范了两层定义:1、根目录下各主要目录需要放什么样的文件,如/bin与/sbin放可执行文件。2、对/usr和/var两个目录定义。具体参下面架构
·LINUX文件架构:
目录 | 重要子目录 | 应放置内容 |
/ |
| 启动所需文件都要放在根,如/etc、bin、sbin、dev、lib这五个都应与根目录放一个分区 |
/boot | Grub | 系统启动引导文件。其下的vmlinuz就是LINUX核心 |
/dev | Null, tty[1-6] sd* hd* | 所有设备文件(块设备和字符设备),如硬盘,光驱等。此目录下文件多出2个属性:主设备号major device number,辅设备号minor device number |
/etc | X11,fstab, sysconfig | 系统主要的设置文件都放在这目录。如帐号密码,各种服务的起始文件,此目录基本都是ASCII文件。/etc/init.d所有服务的默认启动脚本都在这;/etc/xinetd.d 超级守护程序 |
/bin |
| 可执行的二进制文件。如ls, mv, rm ,mkdir等,同样作用目录有:/usr/bin ,/usr/local/bin |
/sbin |
| 放一些系统管理员才能用到的执行命令,如fdisk, mke2fs,fsck mkswap,mount等。一般用户只能查看而不能设置。同样作用目录有:/usr/sbin,/usr/local/sbin |
/lib | modules | 系统使用的函数库目录。同样作用目录有:/usr/lib ,/usr/local/lib |
/root |
| 系统管理员的家目录 |
/home |
| 用户家目录,~myid 表示myid的家目录 |
/lost+found |
| 系统出现异常时,会将一些遗失片段放在此目录下。该目录会自动出现在分区最顶层下 |
/mnt和/media |
| 软盘与光盘挂载点,但也可以随便找个地方载入。 |
/opt |
| 给主机额外安装的软件所放的目录。 |
/srv |
| 一些服务启动后所需访问的数据目录。如www服务器网页数据就可以放在/srv/www下 |
/tmp |
| 临时目录,需要定期清理。 |
/usr | Bin, sbin,lib ,include | 系统主要程序、图形界面、额外函数库、自行安装的软件、共享目录与文件,类似WINDOW的program files和WINNT结合。建议后来安装软件放/usr/loca/,MYSQL在/usr/share下 |
/var | Cache,lib,log,lock,run | 系统执行过程中经常变化的文件,如缓存cache、MYSQL数据文件默认/var/lib/mysql下 |
文件操作和管理(第七章)
复制、删除、移动(重命名)
·复制:“#cp [-adfilprsu] 源文件(或source1 source2 ….) 目的文件” :#cp –rf 常用
-a 相当于-pdr意思
-d 若源文件是链接属性(LINK FILE),则复制连接文件属性而非文件本身。
-p 与源文件属性一起复制,而非仅复制文件本身
-r 递归复制,用于目录复制。如果不加-r则无法复制目录。
-f 强制复制,不会询问
-i若目标文件存在,会问是否盖掉(不带参数的#cp默认就会询问)
-s 复制成符号链接文件(symbolick link),即“快捷方式”文件。
-l 建立硬链接文件,而非复制文件本身,硬链接在#ll显示时不会有->,
-u 若目标文件比源文件旧,则更新目标文件。通常用于备份。
·删除:#rm [-rfi] 文件或目录(可多个):
·移动和重命名:#mv [-fiv] 源(可多个source1 source2 …) 目标目录:重要文件应加-i选项询问用户。
目录的建立、删除:#mkdir , #rmdir(可不用)
·建立 #mkdir [-mp] 新目录名:
-m 直接设置目录权限:#mkdir –m 711 test2
-p 一次建立多个目录时,可递归建立:#mkdir –p /a/b/c/d
·删除:rmdir [-p] :#rmdir – p /a/b/c/d
文件内容的查看:
·直接查看全部内容# cat [-AenTv]:
-A相当于-vET结合: v 列出一些看不出的特殊字符,E 显示行尾$,T 用^I 显示TAB键 –n 显示行号
·反向显示:最后一行先显示: “#tac 文件”,当文件内容多时,这和cat没有什么区别。
·显示时添加行号:nl [-bnw] 文件:# nl –b a /etc/issue -b a:不论是否空行均显示行号 -b t 空行不列出行号
-n ln : 行号显示在最左方。 -n rn行号显示在最右方,且不加0 -n rz 加0显示行号在右方。
·向后翻页查看:#more /etc/aa 可用/string查找。q 离开 :f显示文件名及当前行,space向下翻一页。ENTER下翻一行。
·前后翻页查看:#less /etc/man.config 可用[pagedown] [pageup]翻页,也可用/str向下查 ?str向上查,n和N查看搜索结果
·看头尾几行:#head [–n num] file 不带-n num默认显示10行,相反:#tail [–n num] file,如# tail -4 /etc/man.config (或-n 4)
·非纯文本文件查看#od [-t TYPE] 文件:TYPE有以下几个参数:a 用默认字符显示 c 用ASCII码显示。d[size]用十进制
创建新文件与修改文件时间:
#touch [-acdmt] 文件:-a 改atime,-m改mtime –c仅改时间而不建立文件 –d 后面接日期,也可用--date=”日期或时间” –t后面可以接时间,格式为[YYMMDDHHMM]:#touch –d “2 days ago” file1 #touch –d “2012-12-1” #touch –d “2012-10-5 11:36:20”
查看文件的基本信息:#file 文件:获得文件类型、是否使用动太函数库,如:/root/.bashrc: ASCII text等
搜索命令或文件:which, whereis ,locale ,find
·寻找可执行文件:# which [–a] command :-a找出所有可找到的的命令,而非只显示一个。
·寻找特定文件所在目录:#whereis [-bmsu] 文件或目录:-b只找二进制文件,-s只找源文件
·给出命令简短说明:whatis [命令]:例:whatis ls
·模糊查找文件:#locate file:FILE不必写全名也能找到。
·硬盘搜索:# find [PATH] [选项] [action] :PATH指定搜索路径,如/则在根目录下搜索:find可按时间、用户、组及UID\GID、权限、名称、大小、新旧对比来搜索,参P137:#find /home –size +1000K; #find / -nouser查找无主文件,FIND命令可用通配符如#find / -name ‘*httpd*’;也可查找有特殊权限(SGID,SUID,SBIT)的文件#find / -perm +7000,
***管理员授权普通用户管理APACHE***: --启动、关闭APACHE –能修改APACHE配置 ---更新网页内容 ·普通用户在执行授权命令时,要加SUDO:#sudo useradd newusr ,可查看自己被授权哪些权限:#sudo –l #visudo; -- 进入配置选项(记住永远不要用VI来编辑):加一行: 然后退出,VI后面一定要跟文件名.. httpd.conf,否则变成VI编辑器授权了。 |
其它:
·查看所在路径:# pwd [-P] : -P显示真实路径,而非链接路径。
·切换目录:# cd [路径]:#cd – 回到刚才路径。 #cd ~david 到DAVID家目录
·获取路径的文件名与目录名#basename /a/b/c #dirname /a/b/c
·查看目录的列表:ls [-aAdfFhilRSt]: (默认按文件名排序)
-S 按文件大小排序
–t按时间排序。
-R 与子目录内容一起列出。
-n 列出UID,GID而非用户与用户组(帐号管理会用到)
-h 以GB,KB为单位列出文件大小
-i 列出inode位置,而非列出文件属性
-F 列出数据类型:*可执行;/ 目录 ; = 套接字 | 为FIFO文件
-A和-a 全部文件 ,-A不含. 和.. 两个目录。
--color={never|always|auto} 显示颜色。 --full-time 显示完整时间(年月日时分)。 --time={atime|ctime}输出atime或ctime
说明:添加命令搜索路径到$PATH中,#echo $PATH ,#PATH=”$PATH”:/root;
文件的默认权限(默认022):#umask [-S]:-S符号方式显示权限,如u=rwx,g=rx,o=rx,不加-S则显示0022; #umask 444更改默认权限掩码。
文件隐藏属性:
1、chattr(设置文件隐藏属性)# chattr [-R] [+-=] [ASacdistu] 文件或目录 : -R 递归
A 访问时间atime不能被更改。
i 让文件不能被删除、改名、设置连接、无法写入或新增数据。
S 将数据同步写入硬盘。类似sync
a 只能新增数据,不能删除。
c 文件自动压缩,在读取时自动解压,存储时压缩再保存(对大文件有用)。
2、lsattr :# lsattr [-aR] 文件或目录 :
-a 将隐藏文件的属性也显示出来。 -R 连同子目录的数据也一并列出来。
特殊权限:Set Uid(SUID)/Set Gid(SGID)/Sticky Bit(SBIT)
·当s权限在USER的x位时,简称SUID,SUID仅可用在二进制文件,不能用在批处理.sh文件和目录上。
·如果s权限位于用户组,那么就是SGID:
当SGID设置在二进制文件上,不论用户是谁,执行该程序时,它的有效用户组将会变成该程序用户组所有者。
当SGID设置在A目录上,则在A目录内所建立的文件或子目录的用户组,将是A目录的用户组
·粘着位SBIT:只对目录有效:在具有Sbit的A目录下,用户若在A目录的w及x权限,则当用户在A目录下所建的文件或目录时,只有文件拥有者与root才有权力删除。
·特殊权设置: SUID代表值 4 ; SGID代表值 2 ; SBIT代表值 1 如:#chmod 4755 filename
·-rwSrwSrwT 这是因为用户、组、其它人都没有x权限(如chmod 7666 file),所以特殊权限是空的。
文件压缩(第9章):*.Z和#compress略
压缩文件格式:*.bz2 是bzip2程序压缩的文件。*.gz为GZIP程序压缩。*.tar 用tar打包但没压缩。*.tar.gz 经gzip压缩
| 命令(每个命令均可压缩、解压) | 参数 | 案例 |
单 文 件 压 缩 | gzip (会删除原文件)— gunzip: ·压缩与解压缩:gzip [-cdt#r] 文件 ·#gzip [-d] file1 f2 f3… =#gunzip ·读出压缩文件 # zcat 文件名. gz
| -c 压缩数据输出到屏幕上(即不保存实际文件),可通过数据流重导向处理。 -t 检查压缩文件一致性,-d 解压缩 # 压缩等级:-1最快 -9最慢但压缩比最好,默认-6 。 -r 递归 | #gzip -9 –c man.config 仅显示压缩后的数据,不压缩保存也不删除原文件 #gzip -9 –c man.config>man.config.gz 最佳压缩比,并保留原文件。 #gzip man.config 压缩。 |
bzip2 - #bunzip2 - #bzcat file.bz2 bzip2 [-cdz#] 文件名(参数同gzip) | -z 强制压缩 -k 在压缩或解压后保留原始文件。 | #bzip2 –z file1 fiel2 # bzip2 -k file等于 # bzip2 -9 –c man.config>man.config.bz2 | |
多文件压缩 | tar [-cxtzjvfpPN] 文件或目录
gzip已被整合到tar中,也可以这样解压: 1、解压缩: #gzip –d test.tar.gz 2、解包: #tar –xvf test.tar | -c 建立压缩文件(create) -t 查看tar文件中的文件清单 -x 解压缩 (** -c/x/t 只有能一个) -z 用gzip压缩 -j 用bzip2压缩 -v 显示指令执行过程 -f 使用自定打包后的文件名,务必在f之后就立即接文件名,不要再加参数。 -p 使用原文件原来的属性 -P 用绝对路径来表示。 -N 比后面接的YYYY/MM/DD还要新的文件才会打包。 -u或--update 仅置换较备份文件内的文件更新的文件。 --exclude FILE 不要将FILE打包进去 --newer-mtime=”YYYY/MM/DD”只保存改过的文件 --owner=<用户名> 把加入备份文件的拥有者设成指定的用户 --remove-files文件压缩后将其删除 --totals 备份文件建立后列出文件大小 | #tar –cvf /tmp/etcbak.tar /etc –totals #tar –zcvf /tmp/etc.tar.gz /etc 以GZIP压缩 #tar –ztvf etc.tar.gz 查看包(不能去掉f) #tar –zxvf etc.tar.gz etc/passwd 把etc.tar.gz 中的passwd提取出来,如果不加etc/passwd,则全部解压缩 #tar –xvf etc.tar 将TAR包解开。 ·把a1,a2, a3三个文件打包: #tar –zcvf as.tar.gz a1 a2 a3; ·查看包里有哪些文件: #tar –tvf as.tar.gz 除david家目录以外,其它打包: #tar –exclude /home/david –zcvf myfile.tar.gz /home/* /etc 把/ETC打包后直接在/tmp中解压,不产生文件: #tar –cvf – etc | tar –xvf – 注:- | -分别代表标准输出,管道,标准输出。 备份2005-06-01后的新文件: #tar –N ‘2005/06/01’ –zvcf etc.tar.gz /etc |
#dd命令:
使用dd来备份: dd if=/path/file of=/path2/file [ bs=num count=number] 如:#dd if=/etc/passwd of=/tmp/passwd.bak
用DD备份硬盘的MBR(共512字节)#dd if=/dev/sda of=/tmp/mbr.back be=512 count=1
用DD备份整个分区:#dd if=/dev/hda1 of=/hda1otherpath/filename (filename必须不在hda1内,否则读不完),类拟GHOST
#cpio命令—数据流重导向方法来备份和还原:
备份: #cpio –covB > [file|device] 还原: #cpio –icduv < [file|device]
第8章 磁盘与文件系统管理
Ext2文件系统:
·硬盘容量=柱面*磁头(head)*扇区*512字节 (一个扇区大小约为512字节)
·分区的起始与结束柱面的数据放在MBR中(MASTER BOOT RECORDER ,主引导区。硬盘第0轨上)。MBR共512字节,仅提供最多4个分区的记忆。
·硬盘最小存储单位是扇区,而数据存储最小单位不是扇区(效率低),而是逻辑块(block),它是在分区进行格式化时指定的最小存储单位。当然,逻辑块是以扇区大小为基础的。
·块大小的规划时,要考虑1、读取效率,2、文件大小可能造成硬盘空间,如微博文件较小,那块要小一点有效率。
·每一个分区就是一个文件系统。而每个文件系统开始位置的那个块,就称为超级块superblock,用于存储文件系统大小、空的和填满的块、以及他们各自的总数等信息,当访问该分区时,均要先经过超级块。
·在EXT2文件系统中,文件分成2部分存储:属性、内容。分别存储在inode中和块中。inode是存储文件的所有者和组、rwx权限、类型、atime/ctime/mtime、大小、特殊权限SUID等标志、内容指针(指向所存储的块)等等。
·可用#dumpe2fs /dev/sda1查看inode大小(Group 0之前都是超级块内容)。一个inode大小为128字节。
·一般来说,每4KB分配一个inode,块与inode在格式化时就已经固定了。EXT2块允许大小为1024、2048、4096
·对于单一文件:若块大小为1024,则最大容量为16GB,若块大小4096,则最大容量为2TB。(MYSQL的MYISAM有关)
·对于整个分区:若块大小1024,则容量2TB,若块4096,则容量为32TB
·块越小,inode数量越多,则可利用的空间越多,但大文件写入效率较差,而较适合文件小但多的系统,如微博。
·分区越大,效率越低。
文件系统的简单操作:
·查看磁盘与目录容量:
1、df –[ahikHTm] [文件或目录名] :# df 显示分区与容量 #df –Th #df -i(显示节点)#df –h /etc显示ETC容量状况。
2、du [-ahskm] 文件或目录名:#du –sm /* #du –sh /* 列出根目录下每个目录所占用的容量
·连接文件ln (硬连接和符号连接):# ln [-sf] 源文件 目标文件。ln不加参数是硬连接,-s 符号连接。-f 直接盖掉旧连接文件。
硬连接只是在同一分区下的不同位置建立指向同一个文件的inode。硬连接不会增加硬盘空间和inode。但硬连接不能跨分区,也不能用于连接目录。符号连接则相当于WINDOWS的快捷方式。
分区——格式化——检验——载入
分区:---- 进入单用户模式
#fdisk –l 查看当前所有分区;#sfdisk –s 显示硬盘总大小 #sfdisk –T 查看各种文件的ID值,如swap是82.
#fdisk /dev/sda (注意没有加数字sda1,分区是针对整个硬盘) :
m帮助。d 删除一个分区。n新增一个分区 。p 列出当前分区。t 设置分区ID l 显示各种ID w保存 q 退出
格式化: #mke2fs [–bicLj] 设备名称 。 格式化为非ext2\ext3系统可用命令:#mkfs
-b 可设置每个块大小,-I 给一个inode多少容量 ,-c检查磁盘错误,-L后面可以加卷标 –j指定文件系统为EXT3
如给新分区hdb5格式化,为ext3,并加卷标logical :#mke2fs –j –L “logical” /dev/hdb5 ,
或指定块大小:#mke2fs –j –L “logincal” –b 2048 –i 4096 /dev/hdb5 (不指定b则默认4096)
检查和修复:#fsck [-AatCry] 设备名。
-t <文件系统> 指定要检查的文件系统,如ext2,ext3,vfat,msdos等。如-t ext3
-a 自动修复有问题的区,不必一直按Y,与之相反则是-r,需要询问用户是否修复。
-C在检查过程中,用长条图来显示。
#fsck –C –t ext3 /dev/hdb5
注意:通常是在系统有问题时使用FDISK,在使用它时,可能会造成部分文件系统损坏,因此务必在设备卸载时用FDISK。
坏道检查: #badblocks [-svw] 设备名 : -s 在屏幕上列出进度,-v显示详细信息 –w以写入方式测试,建议不用此选项。
#badblocks –sv /dev/hdb5
磁盘挂载:#mount(不接参数时,则显示所有已载入的分区)。当载入点有内容时,挂载后会暂时隐藏原先的内容。
#mount –a (按/etc/fstab内容将所有相关设备的磁盘都载入) 或 #mount [-tonL] 设备名 载入点
-t <文件系统> 指定文件类型,mke2fs指定了-j时,这里也应指定。-n 不更新/etc/mtab
-L 利用mke2fs指定的-L卷标来载入。
-o 后面接载入时一些额外参数:
ro, rw 此分区只读或可写 async ,sync 同步sync或异步async。 auto ,noauto 是否允许以mount –a自动载入。
exec , noexec是否可在此分区建立可执行二进制文件。 dev ,nodev 允许分区上建立设备文件? usrquota,grpquota磁盘配额。defaults 默认(rw,suid,dev,exec,auto,nouser,async),remount 重载入。iocharset=gb2312 , codecharset=gb2312字符集。
·载入光盘 #mount –t iso9660 /dev/cdrom /mnt/cdrom. ·将卷标为AA的分区载入# mount –t ext3 –L AA /mnt/hdb5
·mount –t ext3 –o iochaset=utf8 /dev/sdb2 /mnt/one ·#mount –bind /home /tmp/home 利用mount –bind功能,将目录/home载入到/tmp/home目录,但这种方式不是整个文件系统载入。
磁盘卸载 :#umount 设备号或载入点。
设置启动载入/etc/fstab:该文件6列分别为:文件系统(可以是卷标)、挂载点、文件系统类型、挂载参数、备份、检查;
当编辑好fstab后,为避免错误,应用mount –a命令测试,这很重要。当fstab有错时,进入单用户模式时,根只是只读状态,因此无法修改/etc/fstab,,此时要执行一次#mount –n –o remount,rw /,
** 其它命令 **
#e2label /dev/sda8查看卷标;#e2label /dev/sda8 ‘newlabel’ 更改卷标。
#mkbootdisk –device /dev/fd0 `uname –r` 制作启动软盘 #fdformat /dev/fd0H1440 软盘低级格式化(H1440是指1.44M软盘)。
修改硬盘参数:
·#tune2fs [-jlL] 设备:-j 把ext2转成ext3。 -l 类似dumpe2fs –h,把超级块读出来 -L类似e2label 功能,改卷标。
·#hdparm 显示与设定硬盘参数:---启动DMA,测试硬盘访问性能,其它不要乱用,易于造成硬盘崩溃
#hdparm –icdmXTt 设备名 : ——SCSI硬盘一般不用。
-i 将系统在开机时测试硬盘的值取出来。
-d 是否启用DMA模式:-d1 启动 –d0 取消。
-t 测试硬盘实际访问能力(较正确)-T 测试暂存区CACHE性能。 #hdparm –Tt /dev/had
-X 设置UDMA模式:UDMA模式值+64即为设置值,并且,硬盘与主机板芯片必须要同步,所以取最小那个,一般来说:
DMA33 :33 MHZ DMA mode 0~2 (X64~ X66) 【即0+64~2+64】
DMA66 :66 MHZ DMA mode 3~4 (X67~ X68) 【即3+64~4+64】
DMA100 :100 MHZ DMA mode 5 (X69) 【即5+64】
DMA133 :133 MHZ DMA mode 6 (X70) 【64+6】
参附文及下文了解详细后,再决定开启哪一种。
-c设置I/O传输模式。一般为c1.
-m 同步读取多个扇区的模式。这个值的最大值,可以用#hdparm –I /dev/had 输出的MAXMultSect来设置,如果不知道,设置16是合理的。
# hdparm –i /dev/sda获取硬盘最大同步访问扇区值与当前的UDMA模式。
…(其它信息略,也很重要)…... UDMA modes :udma0 udma1 udma2 udma3 * udma4 ---前有*号表示当前最大支持的值
#lspci –v ; 通过lspci获取PCI接口上的各个设备,从中找到IDE接口可接受的速度。
#hdparm –d1 –c1 –x68 /dev/had 从上面2个命令可知大约主板仅能支持UDMA66,也就是mode4 所以X=64+4=68,即-X68
请注意:-X 是很危险的参数设置,除非您非常了解硬盘结构,否则建议不要自行设置, 务必通过# hdparm –i /dev/sda查看
但是,上面的设置只是对当前的系统有效,当再次重启系统时,又得重新设置了。如果要使每次系统启动时都打开DMA,可以在/etc/rc.d/rc.local文件中添加上面的命令来实现: # echo "/sbin/hdparm -c1 -d1 -k1 /dev/hda" >> /etc/rc.d/rc.local
建立虚拟内存的两种方式:
- 文件方式:用文件方式创建:
·创建256M文件块 #dd if=/dev/zero of=/tmp/swapfile bs=1024 count=262144 (也可of=/var/swapfile,没有定式)
·将文件块格式化为虚拟内存文件格式:#mkswap /tmp/swapfile
·激活:#swapon /tmp/swapfile 务必不要输错
·查看是否正确 #swapon –s 可用#free显示内存状态。
·加入到/etc/fstab中:#vi /etc/fstab 增加:/tmp/swapfile swap swap defaults 0 0
- 分区方式:建立虚拟内存设备:
·用#fdisk /dev/hd[a-d] 建立一分区,然后按t设置分区ID=82
·用mkswap /dev/hd[a-d][1-16]将刚建立的分区格式化为SWAP分区。
·启动SWAP:#swapon /dev/hd[a-d][1-16]
·加入启动项,如:LABEL=SWAP-sda6 swap swap defaults 0 0
- 以上2种方式,如需关掉SWAP,均执行 #swapoff /tmp/swapfile
第10章:VI文字处理器操作
删除 | X系 | x 向后删一个字【=DEL】,X向前【=退格键】。nx , nX 向后、向前删N个字 |
d系 | dd删除光标所在行 d1G 从光标到第一行全删 d$ 从光标处删到行尾 ndd 从光标行开始,向下N行删除 dG 从光标到最后一行全删 d0 从光标处删到行首 | |
S 系 | s: 删除光标所在处字符并进入文本输入方式 S: 删除光标所在全行并进入文本输入方式 。按ESC结束。 | |
复制 | Y系 | yy 复制光标所在行 nyy, y1G , yG , y0, y$ 参D系 |
粘帖 | P,p | P 复制到上一行,p复制到下行处。 p和dd等删除命令结合就是剪切粘帖。和y,Y 结合就是复制粘帖。 |
撤消 | u, U | u: 取消上一步操作。可取消到文件打开时的内容(不是保存点上)和u相反的操作(恢复)是:ctrl+r U: 取消当前行所有的操作。 |
重复 | 句点 | . (小句点)重复上一个操作。 |
| CTRL + r 重复上一个操作。 |
·VI的编辑一个文件时,会在/tmp下有临时文件,后缀为swp,当断电时可用于恢复。如果用它恢复,用后必须删掉。
·可用#alias查看是否安装了VIM(如果用了VI后,画面右下角有行号,则说明当前就是VIM)。如果没有显示VIM,则需要用#vim FILE来启动。
VIM的块选择:
v 把光标经过的地方反选,V把光标经过的行反选。CTRL+v 块选择。 y 复制, d 删除,p 粘帖
VIM多文件、多窗口编辑:
·多文件单窗口:#vim a.txt b.txt :列出当前VIM打开的文件::files ,:n :N 切换到其它文件。
·多文件多窗口:(以下:split 可简写成 :sp ,vsplit可简写成vsp)
打开文件:#vim a.txt b.txt或#vim one-file,进入后输入:sp [otherfile] 如果没有输otherfile则多窗口打开同一文件.
:split 纵向分窗口,:vsplit 横向分窗口中。 CTRL+Wq 快速关闭当前子窗口。
文件切换:CTRL+ww ,CTRL+Wj(CTRL+W松手后再按j)下一个窗口,CTRL+Wk 上一窗口
·VIM环境参数设置:参P194
(1-10章笔记结束:待续)
附:LINUX软件安装3种方式:二进制安装(rpm,yum)、源码包安装、脚本安装方式。
一、RPM安装:以安装MYSQL为例:试验环境:centOS5.5,带有内置的MYSQL5.0.2
1、准备:
查看是否已安装MYSQL:#rpm -qa | grep mysql
如有在屏幕上将显示已安装的mysql包名如:mysql-5.0.22-2.1.0.1 卸载:强制删除:#rpm -e - -nodeps mysql-5….
(--nodeps表示强制删除),再次查找该包名,如果没有结果输出则表明已将该版本的mysql卸载了 ;
2、下载安装包:
下载是:wget http://..mysql....注:centOS选Linux Generic下的Linux - Generic 2.6 (x86, 32-bit,MySQL-5.5.12-1.linux2.6.i386.tar)
解压取server和client两份。
3、安装
1、安装服务器端:# rpm -ivh MySQL-server....rpm (省略处为版本字符)
2、显示成功后再安装客户端 # rpm -ivh MySQL -client....
**RPM 部分选项:
--replacepkgs 覆盖安装
--test测试安装而不真实安装
--replacefiles版本冲突时可解决略过错误信息进行安装
4、安装后:
1、查看3306端口:# netstat -hat和telnet localhost 3306
2、改密:# /usr/bin/mysqladmin -u root password 'new-password'
3、添加组:
# vi /etc/passwd 按G到最后一页,查看是否有mysql用户。则:q退出,
# vi /etc/group 查看是否有mysql组
如果没有组,则# groupadd mysql,如果没有mysql用户则# useradd -g mysql mysql
mysql组和mysql成员都存在,则gpasswd -a mysql mysql把用户加入到MYSQL中
4、启动、重启mysql服务:
service mysql restart
service mysql start
** 附:升级软件 # rpm -Uvh mysql-5....rpm
*** RPM -q[其它选项] 查询常用其它选项----只能查看通RPM安装的包
-a 查询所有已安装的软件包
-f 查询指定文件所属软件包 #rpm -qf 包 ,#rpm -qip 包
-p 查询软件包
-i 显示软件包信息
-l 显示软件包中的文件列表 #rpm -ql 包
-d 显示被标注为文档的文件列表 #rpm -qdp sudo-1.7...rpm
-c 显示被标注为配置文件的列表 # rpm -qc samba
*** RPM校验:#RPM -V sudo 无提示则表示正常。被更改则会提示。返回提示信息含义:
S文件大小 5文件MD5校验值。 L链接文件 T创建时间 D设备文件 U文件的用户 G用户组 M文件权限
*** RPM软件包提取:# rpm2cpio 假如删了重要配置文件inittab,可通过以下几步重提取
1、查看该文件是属于哪个软件包
# rpm -qf /etc/inittab
2、提取光盘中其所属软件包initscripts-8.45-2.e15.centos.i386.rpm到当前目录下的ETC目录/etc/inittab
# rpm2cpio /mnt/cdrom/CentOS/initscripts-8.45-2.e15.centos.i386.rpm | cpio -idv ./etc/inittab
3、将当前etc下的inittab复制到/etc/下:
# cp etc/inittab /etc/inittab
二、yum包管理--必须能连接互联网:优点:1、自动解决软件包依赖关系 2、方便的软件包升级
安装 yum install 软件包名 (不需要版本号等,如yum install mysql)
检测升级 yum check-update mysql
升级 yum update
软件包查询 yum list
软件包信息 yum info
卸载 yum remove
三、源代码包安装--可以自己修改代码,可定制。
安装proftpd示例(或用vsftp--更安全,proftpd--更安全):
1、下载proftpd,所有的源代码基本都是.tar.gz或.tar.bz2的格式
2、解压 # tar -xzvf proftd-1.3.3d.tar.gz
3、进解压文件夹会看到configure(可执行文件),是第一个要用的文件。
4、#./configure --prefix=/usr/local/proftpd (--prefix指定安装目录,方便卸载干净)
5、期间如果有提示缺少某程序,可以"# yum install 包名"来安装。
6、输入“# make”编绎:上面配置一步完成后,开始把源码编译成可执行文件。
7、安装“# make install ”。把上面的生成的文件复制到指定目录。
卸载:中止软件服务;直接把/usr/local/proftpd安装目录删除
1、# kill `pgrep proftpd` ; rm -rf /usr/local/proftpd
四、脚本安装:-和windows差不多
如webmin软件包--远程管理方式:命令行、图形、浏览器。webimin是浏览器方式最出名的软件。
1、解压 # tar -xzvf webmin-1.530.tar.gz (在webmin站首页tar包选项下载)
2、进入解压目录 # cd webmin-1.530
3、可查看帮助文档 # vi README
4、开始安装 # ./setup.sh,期间会问许多问题,如安装目录、perl语言、端口等:WEBMIN默认安装在/etc/webmin下。
脚本安装的程序卸载:找到程序文件夹中uninstall.sh一类的命令。
***附:debian安装软件方式APT **********
APT是debian,ubunto系列包,相当于redhat的yum包管理,APT包管理:
1、搜索软件包 apt-cache search 2、软件包信息 apt-cache show 3、安装apt-get install (reinstall -f) | 4、删除apt-get remove (autoremove、--purge同时删掉软件配置文件) 5、更新软件源 apt-get update 6、更新已安装包 apt-get upgrade |
附文:HDPARM命令:Linux操作系统下开启硬盘DMA的命令与操作说明==(hdparm)
Linux下的32位I/O和DMA默认是关闭的。如果用的是16位I/O的话,就无法充分发挥电脑的性能。如果要打开32位I/O和DMA,就需要以root身份进行设置。为了降低因出错而重启系统对文件系统的损害,最好以单用户模式进行。
首先,使用下面的命令检查硬盘驱动器的当前I/O情况:
[root@anima lwg]# /sbin/hdparm -t /dev/hda
/dev/hda:
Timing buffered disk reads: 8 MB in 3.31 seconds = 2.42 MB/sec
如果要显示当前I/O、DMA设置,可以分别使用下面的命令:
[root@anima lwg]# /sbin/hdparm -c /dev/hda (显示当前I/O设置)
/dev/hda:
IO_support = 0 (default 16-bit)
[root@anima lwg]# /sbin/hdparm -d /dev/hda (显示当前DMA设置)
/dev/hda:
using_dma = 0 (off)
通过上面的命令,已经知道现在32位I/O和DMA是关闭的,可以分别用下面的命令将其打开:
[root@anima lwg]# /sbin/hdparm -c1 /dev/hda (打开32位I/O)
/dev/hda:
setting 32-bit IO_support flag to 1
IO_support = 1 (32-bit)
[root@anima lwg]# /sbin/hdparm -d1 /dev/hda (打开DMA)
/dev/hda:
setting using_dma to 1 (on)
using_dma = 1 (on)
然后使用下面的命令使设置生效:
[root@anima lwg]# /sbin/hdparm -k1 /dev/hda
/dev/hda:
setting keep_settings to 1 (on)
keepsettings = 1 (on)
[root@anima lwg]#
好啦!现在再查看一下驱动器的I/O情况:
[root@anima lwg]# /sbin/hdparm -t /dev/hda
/dev/hda:
Timing buffered disk reads: 116 MB in 3.03 seconds = 38.34 MB/sec
[root@anima lwg]#
可以看到,现在系统的I/O性能提高了很多。
但是,上面的设置只是对当前的系统有效,当再次重启系统时,又得重新设置了。如果要使每次系统启动时都打开DMA,可以在/etc/rc.d/rc.local文件中添加上面的命令来实现:
[root@anima lwg]# echo "/sbin/hdparm –c 1 –d 1 –k 1 /dev/hda" >> /etc/rc.d/rc.local
[root@anima lwg]#
hdparm命令帮助:
语法:hdparm [-CfghiIqtTvyYZ][-a <快取分区>][-A <0或1>][-c <I/O模式>][-d <0或1>][-k <0或1>][-K <0或1>][-m <分区数>][-n <0或1>][-p <PIO模式>][-P <分区数>][-r <0或1>][-S <时间>][-u <0或1>][-W <0或1>][-X <传输模式>][设备]
补充说明:hdparm可检测,显示与设定IDE或SCSI硬盘的参数。
参 数:
-a<快取分区> 设定读取文件时,预先存入块区的分区数,若不加上<快取分区>选项,则显示目前的设定。
-A<0或1> 启动或关闭读取文件时的快取功能。
-c<I/O模式> 设定IDE32位I/O模式。
-C 检测IDE硬盘的电源管理模式。
-d<0或1> 设定磁盘的DMA模式。
-f 将内存缓冲区的数据写入硬盘,并清楚缓冲区。
-g 显示硬盘的磁轨,磁头,磁区等参数。
-h 显示帮助。
-i 显示硬盘的硬件规格信息,这些信息是在开机时由硬盘本身所提供。
-I 直接读取硬盘所提供的硬件规格信息。
-k<0或1> 重设硬盘时,保留-dmu参数的设定。
-K<0或1> 重设硬盘时,保留-APSWXZ参数的设定。
-m<磁区数> 设定硬盘多重分区存取的分区数。
-n<0或1> 忽略硬盘写入时所发生的错误。
-p<PIO模式> 设定硬盘的PIO模式。
-P<磁区数> 设定硬盘内部快取的分区数。
-q 在执行后续的参数时,不在屏幕上显示任何信息。
-r<0或1> 设定硬盘的读写模式。
-S<时间> 设定硬盘进入省电模式前的等待时间。
-t 评估硬盘的读取效率。
-T 评估硬盘快取的读取效率。
-u<0或1> 在硬盘存取时,允许其他中断要求同时执行。
-v 显示硬盘的相关设定。
-W<0或1> 设定硬盘的写入快取。
-X<传输模式> 设定硬盘的传输模式。
-y 使IDE硬盘进入省电模式。
-Y 使IDE硬盘进入睡眠模式。
-Z 关闭某些Seagate硬盘的自动省电功能。
关于硬盘DMA:
硬盘的DMA模式大家应该都知道吧,硬盘的PATA模式有DMA33、DMA66、DMA100和DMA133,较新的有SATA-150、SATA-300。一般来说现在大多数人用的还是PATA模式的硬盘,硬盘使用DMA模式相比以前的PIO模式传输的速度要快2~8倍。DMA模式的启用对系统的性能起到了实质性的作用。
DMA传输模式:“Ultra DMA Mode *(*为数字,DMA33为2, DMA66为4,DMA100为5、DMA133为6)”。
.显示硬盘的相关设置
[root@cnscn ~]# hdparm /dev/sda
/dev/sda:
IO_support = 0 (default 16-bit)
readonly = 0 (off)
readahead = 256 (on)
geometry = 19929[柱面数]/255[磁头数]/63[扇区数], sectors = 320173056[总扇区数], start = 0[起始扇区数]
.显示硬盘的柱面、磁头、扇区数
[root@cnscn ~]# hdparm -g /dev/sda
/dev/sda:
geometry = 19929[柱面数]/255[磁头数]/63[扇区数], sectors = 320173056[总扇区数], start = 0[起始扇区数]
.评估硬盘的读取效率
[root@cnscn ~]# hdparm -t /dev/sda
/dev/sda:
Timing buffered disk reads: 166 MB in 3.03 seconds = 54.85 MB/sec
[root@cnscn ~]# hdparm -t /dev/sda
/dev/sda:
Timing buffered disk reads: 160 MB in 3.01 seconds = 53.11 MB/sec
[root@cnscn ~]# hdparm -t /dev/sda
/dev/sda:
Timing buffered disk reads: 166 MB in 3.00 seconds = 55.31 MB/sec
.评估硬盘快取的读取效率
[root@cnscn ~]# hdparm -T /dev/sda
/dev/sda:
Timing cached reads: 3784 MB in 2.00 seconds = 1894.60 MB/sec
[root@cnscn ~]# hdparm -T /dev/sda
/dev/sda:
Timing cached reads: 3816 MB in 2.00 seconds = 1909.06 MB/sec
[root@cnscn ~]# hdparm -T /dev/sda
/dev/sda:
Timing cached reads: 3728 MB in 2.00 seconds = 1866.29 MB/sec
.检测IDE硬盘的电源管理模式
[root@cnscn ~]# hdparm -C /dev/sda
/dev/sda:
drive state is: standby [省电模式]
.显示IDE硬盘的内定硬件规格
[root@cnscn ~]# hdparm -i /dev/sda
.直接检测硬盘的硬件规格
[root@cnscn ~]# hdparm -I /dev/sda
/dev/sda:
ATA device, with non-removable media
Model Number: Maxtor 6B160M0
Serial Number: B404PTJH
Firmware Revision: BANC1BM0
Standards:
Supported: 7 6 5 4
Likely used: 7
Configuration:
Logical max current
cylinders 16383 16383
heads 16 16
sectors/track 63 63
--
CHS current addressable sectors: 16514064
LBA user addressable sectors: 268435455
LBA48 user addressable sectors: 320173056
device size with M = 1024*1024: 156334 MBytes
device size with M = 1000*1000: 163928 MBytes (163 GB)
Capabilities:
LBA, IORDY(can be disabled)
Queue depth: 32
Standby timer values: spec'd by Standard, no device specific minimum
R/W multiple sector transfer: Max = 16 Current = 16
Advanced power management level: unknown setting (0x0000)
Recommended acoustic management value: 192, current value: 254
DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6
Cycle time: min=120ns recommended=120ns
PIO: pio0 pio1 pio2 pio3 pio4
Cycle time: no flow control=120ns IORDY flow control=120ns
Commands/features:
Enabled Supported:
* NOP cmd
* READ BUFFER cmd
* WRITE BUFFER cmd
* Host Protected Area feature set
* Look-ahead
* Write cache
* Power Management feature set
Security Mode feature set
* SMART feature set
* FLUSH CACHE EXT command
* Mandatory FLUSH CACHE command
* Device Configuration Overlay feature set
* 48-bit Address feature set
* Automatic Acoustic Management feature set
SET MAX security extension
Advanced Power Management feature set
* DOWNLOAD MICROCODE cmd
* General Purpose Logging feature set
* SMART self-test
* SMART error logging
Security:
Master password revision code = 65534
supported
not enabled
not locked
not frozen
not expired: security count
not supported: enhanced erase
Checksum: correct
.检测并设置IDE硬盘的32位I/O模式
检测
[root@cnscn ~]# hdparm -c /dev/sda
/dev/sda:
IO_support = 0 (default 16-bit) [默认16位I/O]
设置
[root@cnscn ~]# hdparm -c 1 /dev/sda
.检测并设置IDE硬盘的DMA模式
[root@cnscn ~]# hdparm -d /dev/sda
/dev/sda:
...
[root@cnscn ~]# hdparm -d 1 /dev/sda
.检测读取文件时,预先存入快取的扇区数
[root@cnscn ~]# hdparm -a /dev/sda
/dev/sda:
readahead = 256 (on)
.查询并设置硬盘多重扇区存取的扇区数,以增进硬盘的存取效率
[root@cnscn ~]# hdparm -m /dev/sda
[root@cnscn ~]# hdparm -m 参数值为整数值如8 /dev/sda
.将缓冲的数据写入硬盘,并清除缓冲区的数据
[root@cnscn ~]# hdparm -f /dev/sda
-f Sync and flush the buffer cache for the device on exit. This
operation is also performed as part of the -t and -T timings
更多推荐
Linux工作笔记01
发布评论