Linux工作笔记01

编程知识 更新时间:2023-04-16 16:51:52

《鸟哥的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 略。

·启动过程中遇到问题最常是硬盘有坏轨或扇区错乱(数据损坏),解决办法:(假设硬盘没有坏掉情况下)

  1. 根目录没有损坏:在提示press root pass word or ctrl +D后输入ROOT密码进入单人模式,运行fsck /dev/坏的分区即可。
  2. 根目录坏了:
    a、把硬盘拿下,放在另一台linux电脑上并且不要用mount载入,然后以root身份执行“#fsck /dev/坏的分区”
    b、也可以下载LIVE CD(可光盘启动)做成光盘,这时用光盘启动,再mount和原来的根目录。通过fsck挽救。
  3. 有关忘记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
local,share,src

系统主要程序、图形界面、额外函数库、自行安装的软件、共享目录与文件,类似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
·管理APACHE:

#visudo;    -- 进入配置选项(记住永远不要用VI来编辑):加一行:
zhangsan Mylinux=/apache/bin/apachect1,/bin/vi /apache/conf/httpd.conf  --要授权给组,则把zhangsan换成“%组名”.

然后退出,VI后面一定要跟文件名.. httpd.conf,否则变成VI编辑器授权了。
#chown zhangsan /apache/htdocs ; 授于修改网页权限。(root可#tail  5 /var/log/secure查看被授权者执行了哪些命令)

其它:

·查看所在路径:# 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 从光标处删到行首
:X,Yd”删除从X行到Y行删除  = ncj ,如:10cj 连续向下删除10行。

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的话,就无法充分发挥电脑的性能。如果要打开32I/ODMA,就需要以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/ODMA设置,可以分别使用下面的命令: 

[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)

通过上面的命令,已经知道现在32I/ODMA是关闭的,可以分别用下面的命令将其打开: 

[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模式有DMA33DMA66DMA100DMA133,较新的有SATA-150、SATA-300。一般来说现在大多数人用的还是PATA模式的硬盘,硬盘使用DMA模式相比以前的PIO模式传输的速度要快2~8倍。DMA模式的启用对系统的性能起到了实质性的作用。 

DMA传输模式:“Ultra DMA Mode **为数字,DMA332 DMA664DMA1005DMA1336)”。

.显示硬盘的相关设置
[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

本文发布于:2023-04-13 09:06:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/99673dbcb924a2b9823b5239e8fdd5f8.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:笔记   工作   Linux

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 72673文章数
  • 14阅读数
  • 0评论数