Linux内核标志

X  主版本号

yy 次版本号      次版本号偶数代表是稳定版本如:2.6.26 奇数代表是开放版本如:2.5.26

zz 修订版本号


硬盘描述

Ide接口硬盘:hd

SCSI接口硬盘:sd

例如:IDE硬盘为hda表示系统第一块硬盘,sdb表示系统第二块硬盘。


分区描述

一个硬盘只有四个主分区,因此主分区和扩展分区序号是1-4,而逻辑分区号有5开始排。

例如:hda1 表示系统第一块硬盘第一个主分区。1-4

     sdb5 表示系统第二块硬盘第一个逻辑分区。5-n


ext3 表示第3代扩展文件系统。


swap 表示交换文件系统。 大小一般是物理内存的1.5-2倍。




/   表示系统根目录。


/boot 存放启动系统文件,包含内核,启动菜单配置文件,一般划分独立/boot分区。


/bin  存放系统最基本的用户命令,普通用户都有权限执行。  


/dev  存放系统的硬盘,键盘鼠标光驱和各种设备文件。


/etc  存放系统及各种程序的配置文件,配置文件较多的程序会在etc下建立独立的子目录。


/home 存放所有普通系统用户的默认工作文件夹。    (可划分独立分区)


/root 改目录是系统管理员root的宿主目录,默认情况下不在/home目录下,而在根目录。


/sbin 存放系统中最基本的管理命令,一般管理员用户才有权限执行。


/usr  存放其他的用户应用程序,通常划分很多子目录,用于存放不同类型的应用程序。


/var  存放系统中经常需要变化的一些文件,如系统日志文件,用户邮箱目录。  (可划分独立分区)


/tmp  存放系统运行过程中使用的临时文件。


#  表示系统管理员root登录。


$  表示普通用户登录。




查看内核版本

uname -r


查看Cpu信息

cat /proc/cpuinfo


查看内存信息

cat /proc/meminfo


查看主机名

hostname


查看Ip地址

ifconfig eth0


关机

shutdown -h now     init 0 poweroff


重启

shutdown -r now  init 6 reboot


延迟关机

shutdown -r +15 'the system will be rebooted !!'


获得命令帮助

使用help命令          使用--help选项    使用man手册页

help pwd              ls --help          man ls


管道符

| 用于前面命令输出的结果作为后面命令的操作对象。


例如:man ls | col -b > ls.txt 表示查看ls 手册,过滤文本中的一些特殊控制字符,输出保存到ls.txt文件中


重定向输出用大于号

〉 前面命令成功执行后将结果输出保存到〉后面指定的文件中。


查看当前工作目录

pwd


切换工作目录

cd /  切换到根目录


绝对路径:这种方式以根目录 /  作为起点。/root/

相对路径:这种方式一般以当前工作目录作为起点, ..表示上一级目录


列表显示目录内容

ls  -l长格式显示文件目录 -a显示所有子目录和文件信息 .表示隐藏目录文件  -A和a一样只是不显示隐藏文件  -d显示目录本身的属性


-h以K M单位显示需要和-l结合使用  -R以递归的方式显示指定目录和子目录,--color以颜色区分不同的文件,蓝色表示目录,白色表示一

搬文件,绿色表示可执行文件, ×××表示设备文件,红色表示压缩文件,青浅色表示链接文件。



统计目录及文件的空间占用情况

du  -a统计磁盘空间占用时包括所有目录和文件  -h以人性化方式显示统计结果  -s只统计每个参数所占空间大小,不是统计每个子目录文

件大小。 du -sh /var/log/ 统计当前目录所占空间大小。 du -ha /boot/统计当前目录中所有文件,子目录各自占有空间大小。



创建新的目录

mkdir

-p 创建多个连续目录


创建空文件

touch


创建链接

ln -s 创建软链接  ln -s /etc/passwd  到/root/下  ln创建一个硬链接 ln /etc/passwd 到 /root/下。



复制文件或目录

cp  -f强制复制, -i提醒复制, -p复制时保持源文件的权限, -r复制目录时表示复制所有子目录和文件。


删除文件或目录

rm  -f直接删除, -i提醒删除,-r删除目录时表示所以子文件或目录。


移动文件和目录或重命名

mv  


查找文件并显示所在的位置

which  例如:which ls


查找文件或目录  

find  [查找范围] [查找条件表达式]    按名称查找:-name  按文件大小查找 -size  按文件属主查找-user  按文件类型查找-type普通

文件f,目录d,块设备文件b,字符文件c。



显示并连接文件的内容

cat

cat /etc/passwd

分页查看文件内容

more和less

more /etc/passwd   ls -lh /etc/*.conf | more


less /etc/passwd



查看文件开头或末尾的部分内容

head和tail  head -4 /etc/passwd   tail -4 /etc/passwd 显示后四行

tail -f /var/log/messages 跟踪文件尾部动态更新。


统计文件内容中的单词数量

wc  -c 统计文件内容中的字节数,-l统计文件内容的行数,-w统计文件内容中的单词个数。


检索,过滤文件内容

grep -i查找时忽略大小写,-v反转查找,即输出与查找条件不相符的行。

grep ”root“ /etc/passwd 查找root关键字, grep -v "root" /etc/passwd 忽略root字符。



使用压缩和解压缩

gzip和gunzip  压缩gzip 或-9   解压缩 -d


bzip2和bunzip2 压缩gzip 或-9   解压缩 -d


使用tar归档和释放工具

-c 创建.tar格式的包文件,-C大写解包时指定释放的目标文件夹,-f表示使用归档文件,-j调用bzip2程序进行压缩或解压缩,-p打包时


保留文件及目录的权限,-P打包时文件及目录的绝对路径,-t列表查看包内的文件,-v输出详细信息,-x解开.tar格式的文件包,


-z调用gzip程序进行压缩或解压。




使用vi文本编辑器

命令模式:删除,复制,粘贴。  dd删除   yy复制  p粘贴   gg跳到第一行 G调到最后一行  6G调到6行

输入模式:可以对文本文件进行修改添加。

末行模式:vi编辑环境,保持文件,退出编辑器。:set nu显示行号,:w /root/file另存为 :q!不保存退出 :wq :x保存退出

打开新文件或读入其他文件内容

:e ~/etc/passwd

在当前文件中读入其他文件内容

:r /etc/passwd

替换文件内容

:% sub /benet/accp/g 将Benet替换成ACCP


RPM包管理工具

rpm -q 查看已知名称的软件包是否已经安装。

   -qa显示当前系统中以rpm方式安装的所有软件。

   -qi查看指定软件的详细信息。

   -ql显示指定的软件包在当前系统中安装的所有目录,文件列表。

   -qf查看指定的文件或目录是由哪个软件包所安装的。

   -qd显示软件包安装的安装文档文件。

   -qc显示软件包安装的配置文件。


查询rpm未安装包的文件信息

rpm -qpi 显示安装包的详细信息。

   -qpl查看该安装包准备要安装的所有目标目录,文件列表。


安装,升级,卸载,rpm软件包。

rpm -i 在当前系统安装

   -e 卸载当前软件

   -U 检查升级安装

   -F 更新没安装就放弃安装

   -h 在安装时以#表示安装进度

   -v 显示安装时的详细信息。

 在软件包后面加 --force 强制安装     rpm -ivh linuxqq.rpm --force --nodeps

  在软件后面加--nodeps 在安装升级卸载,不检查依赖关系


使用源码编译安装

1 tar 解包释放到指定目录                                    tar zfx qq.tar.gz -C /指定目录

2 ./configuer --prefix=/指定路径 配置安装                   ./configuer --prefix=/配置安装路径

3 make 进行编译                                                      make编译

4 make install 安装    或者make && make install编译安装一起进行。    make install 安装

patch -p1 〈 / .diff 打补丁patch是专用于应用.diff格式补丁文件的命令程序。



管理用户组账号

用户账号文件分别是/etc/passwd 和 /etc/shadow 前者用于保存用户名称,宿主目录,登录shell等基本信息,后者用于保存用户的密码,

账号有效期等信息。

useradd 添加用户

-u 指定用户的UID号,

-d 指定用户的宿主目录位置,默认在/home

-e 指定用户的账号失效时间,可有这样的yyyy-mm-dd日期格式

-g 指定用户的基本组名(或用Gid号)

-G 指定用户的附加组名(或用Gid号)

-M 不建立宿主目录,

-s 指定用户的登录shell

例如:useradd -d /ai -g benet -G root ai 创建一个ai用户基本组是Benet附加组是root宿主目录是/ai


为用户设置密码

passwd -l ai 锁定用户ai

passwd -S ai 查看锁定的账号状态

passwd -u ai 解锁账号

passwd -d ai 空密码登录



修改用户账号属性

usermod

-u 修改用户uid号

-d 修改用户宿主目录

-e 修改指定用户的账号失效时间,可有这样的yyyy-mm-dd日期格式

-g 修改指定用户的基本组名(或用Gid号)

-G 修改指定用户的附加组名(或用Gid号)

-M 不为用户建立并初始化宿主目录

-s 不指定用户登录shell

-l 更改用户账号的登录名

-L 锁定用户账号

-U 解锁用户账号


删除用户账号

userdel

-r 同时删除宿主目录 userdel -r ai



组账号的管理

组账号文件 /etc/group/和/etc/gshadow 前者用于保存组账号名称gid号,组成员等基本信息,后者保持组账号的加密字串等信息。

grep “^root” /etc/group 查root组包含哪些用户

grep “root” /etc/group 查哪些组包含root用户


创建,添加,修改组账号

groupadd ai 创建一个组

-g 可以指定gid号


添加组员,删除组员

gpasswd -a ai root 添加ai到root组

gpasswd -d ai root 在root组删除ai用户

gpasswd -M 可以指定所以组成员


删除组

groupdel ai 删除ai组



查询账号信息

groups 查询用户账号所属的组

groups ai 查看ai用户组账号信息



查询用户账号的身份标识

id root 可以看到root的UID和 Gid等信息


查看用户帐号的登录属性

finger root 看到详细信息6.4不支持此命令


查询当前主机的用户登录情况

w


查看目录和文件的属性

ls -l 长格式列出文件目录属性

如:- --- --- ---              

如:drwxrwx--- 2 root tech 4096 06-22 14:47 .目录, 属主有读取,写入,执行权限,属组有读取,写入,执行权限,其他用户没有权

限。 root是属主用户,tech是属组成员。


第一格表示文件类型(d目录),(b块设备),(c字符设备),(-普通文件),(l链接文件),

第2-4格表示属主用户权限user rwx

第5-7格表示属组成员权限group rwx

第8-10格表示其他任何用户other rwx


权限字符

r:表示可读,w:表示可写,x:可执行文件 ./ 可以用421八进制表示


设置目录和文件的权限

chmod

-R 表示递归方式对目录下的子目录文件设置一样的权限。

chmod [ugoa] [+-=][rwx] 文件或目录

ugoa:表示权限用户类型,u:表示文件属主,g:表示文件属组,o:表示其他任何用户,a:表示所以用户

+-= :表示权限的动作,+:表示增加相应权限,-:表示减少权限,=:表示仅设置对应权限。


如:chomd u+x,o-r mk 表示对mk文件增加属主用户的执行权限,减去其它用户的读取权限。

可以用八进制数字表示:chmod 1-0 mk


设置目录和文件的归属

chown 属主:属组 文件或目录

同时设置属主用户和属组成员用分号隔离  ”:“设置属组加“:"组名

如:chown accp:root /cssl 设置用户accp,属组root组,文件cssl.

-R :表示递归方式对目录下的子目录文件设置属主用户和属组。



管理磁盘及分区


检测并确认新硬盘

fdisk -l


规划硬盘中的分区

fdisk /dev/sdb

p 指令列出硬盘中得分区情况

n 指令新建分区

里面有选项 e 表示扩展分区 ,p 1-4 表示一个硬盘可以分4个主分区,

d 指令删除分区 选择需要删除的分区序号。

t 指令变更分区的类型

w 指令保存退出

q 指令不保存退出


格式化分区

mkfs

mkfs -t 文件系统类型  分区设备   如:mkfs -t ext3 /dev/sdb1

mkfs -t vfat -F 32 /dev/sdb6 格式化fat32 16文件系统类型,或mkfs.vfat -F 32 /dev/sdb6


格式化交换分区就像Windows里面的虚拟内存

mkswap  /dev/sdb5

cat /proc/meminfo | grep "SwapTotal:" 查看总交换空间的大小

swapon /dev/sdb5   启动交换分区/dev/sdb5

swapoff /dev/sdb5  停止交换分区/dev/sdb5


挂载,卸载文件系统


mount [-t 文件系统类型]  存储设备  挂载点

如:mount /dev/sdb1 /media/  挂载sdb1到media目录下,挂载点一定要空目录。

挂载光盘

mount /dev/cdrom  /media/cdrom

iso9660表示光盘文件系统类型

在实际工作可能会在互联网下载ISO文件需要加 -0 loop

如:mount -o loop benet-10-dvd-i386.iso  /media/mnt 表示将这个ISO挂载到/media/mnt目录下


卸载文件系统

umount /media/Benet 通过挂载点目录对应的分区


umount /dev/cdrom   通过设备文件卸载光盘


设置文件系统的自动挂载

在/etc/fstab文件里用vi编辑器修改

vi /etc/fstab 进入以这样的格式写


/dev/sdb1需要挂载的分区   /media/挂载点   ext3文件系统类型  默认default 0备份  0表示启动时不进行检查 ,1优先检查,2其次检查


查看磁盘使用情况

df -hT 可以查看当前系统中挂载的各文件系统的磁盘使用情况。



LVM磁盘文件系统管理

pv物理卷,pvscan扫描,pvcreate创建,pvdisplay显示,pvremove移除。

vg卷组  ,vgscan    ,vgcreate    ,vgdisplay    ,vgremove    ,vgextend扩展,vgreduce减少。

lv逻辑卷,lvscan    , lvcreate    , lvdisplay    , lvremove    , lvextend      lvreduce    。

pvcreate /dev/sdb1  /dev/sdc1 创建物理卷

vgcreate cssl_ftp /dev/sdb1 /dev/sdc1 创建一个卷组名为cssl_ftp

vgextend cssl_ftp /dev/sdd1 增加卷组容量

lvcreate -L 25G -n lvftp /dev/cssl_ftp 创建一个25G逻辑卷,卷名lvftp

lvextend -L +10G /dev/cssl_ftp/lvftp 增加10G容量到lvftp逻辑卷

resize2fs /dev/cssl_ftp/lvftp 增加后重新识别文件大小,刷新一样。

mkfs -t ext3 /dev/cssl_ftp/lvftp  格式化逻辑卷类型ext3.

mount /dev/cssl_ftp/lvftp  /ftp   挂载到根目录下的ftp。

lvremove /dev/cssl_ftp/lvftp  删除逻辑卷。

vgremove cssl_ftp             删除卷组。

pvremove /dev/sdb1 /dev/sdc1 /dev/sdd1 删除物理卷。


设置磁盘配额

rpm -q quota 查看配额管理程序。


mount -o remount,usrquota,grpquota /dev/css_ftp/lvftp /ftp 重新挂载增加用户和组的配额功能支持。


vi /etc/fstab  在文本文件下修改文件实现自动挂载支持配额功能

/dev/cssl_ftp/lvftp /ftp ext3 defaults,usrqouta,grpquota  0  0


检测磁盘配额并生成配额文件

quotacheck -augvc

-a 扫描所以分区,-u和-g检测用户和组的配额信息,-v显示细节信息,-c创建新的配额文件。


此操作有可能出现权限不够,不能创建配额文件,被阻。

getenforce 查看是否阻止,阻止出现Enforcing,开启Permissive

setenforce 0 开启 setenforce 1 关闭



编辑用户和组账号的配额设置

edquota -u benet -u是用户 blocks当前使用容量单位kb ,inodes当前未经数量,soft软限制,hard硬限制。

edquota -g cssl -g是组 blocks当前使用容量单位kb ,inodes当前未经数量,soft软限制,hard硬限制。

edquota -t 修改宽限时间。


启动文件系统的磁盘配额功能

quotaon -ugv /ftp 启动ftp文件系统用户组的磁盘配额功能。

quotaoff -ugv /ftp 关闭ftp文件系统用户组的磁盘配额功能。


查看用户或分区的配额使用情况

quota -u Benet 用户

quota -g cssl 组


repquota /ftp 查看ftp文件系统的配额使用情况。



引导过程和服务控制

系统启动过程:开机自检,Mbr引导,grub菜单,加载内核,init进程初始化。

系统初始化进程及文件

每个进程的身份标记号称:Pid,init的PID总是1


inittab配置文件

/etc/inittab

id标记:runlevels运行级别0-6:action动作类型:process程序或脚本


rc.sysinit脚本文件

/etc/rc.d/rc.sysinit

此脚本程序主要完成设置网络,主机名,加载文件系统,时钟,检测文件系统一系列初始化工作。


rc脚本文件

grep “rc.d/rc”/etc/inittab

查看,Rc脚本通过使用不同的级别参数,分别加载及终止不同系统服务,进入到相应的系统级别。


/etc/rc.d/rcX.d/目录链接文件有规律:文件以K表示终止服务或S开头开启服务,中间是序号,后面系统服务脚本名链接文件原始文件

在/etc/rc.d/init.d目录中。

ls -l /etc/rc.d/*/* | gerp netwok

查看用于控制netwoek服务的链接文件和控制脚本文件,


rc.local脚本文件

是一个额外的启动文件位于/etc/rc.d/rc.local由脚本最后加载。


服务控制及优化启动过程

各种系统服务的控制脚本默认在/etc/rc.d/init.d目录下。

两种控***务工具

service和/etc/rc.d/init.d 服务名称 控制类型有:star启动,stop停止,restart重启,reload重载,status查看状态。


切换运行级别

runlevel查看 init 3 init 5 0-6级别


优化开机自动加载的服务

两种工具ntsysv或chkconfig

ntsysv工具[*]启动[]关闭

chkconfig --list 查看所有服务的默认启动状态 0-6级别


chkconfig --list network 查看network默认服务状态

chkconfig --level 345 network off 关闭运行级别3 4 5

chkconfig --level 325 network on 开启运行级别3 2 5



进程和计划任务管理

ps查看静态的进程统计信息

a 显示所有进程,u用户为主格式输出,x显示当前用户所有进程

-e显示系统内的所有进程,-l使用长格式显示,-f使用完整的格式显示进程

ps aux  或 ps -elf


top  查看进程动态信息

top命令界面可以按p根据Cpu占用进行排列,M内存,N启动时间,h在线帮助,q退出,如果要终止某进程按k出现"PID" to kill回车杀


pgrep 查询进程信息

如:pgrep -l "log" 查看进程里有log的进程和PID

如:pgrep -l -U benet -t tty1 查看用户在tty1上运行的进程及PID


pstree  查看进程树

如:pstree -aup 查看对应的PID,和用户,列出完整信息

如:patree -ap benet 列出由Benet打开的进程及子进程树


控制进程

如制作一个镜像文件时间太长可放在后台cp /dev/cdrom mycd.iso & &表示后台进程


改变进程的运行方式

如下载东西要很久按CTRL+Z挂起当前进程调入后台停止执行,

使用bg可以恢复后台停止的任务,fg可以把后台任务恢复到前台运行。

jobs -l 查看后台的进程

kill杀死进程killall杀死多进程pkill -9 -U "benet" 杀手用户进程

如:kill 3455, kill -9  3455 强制杀死,killall -9 vim 强杀死名为vim的进程。


计划任务

at一次性任务设置atd服务要开启

如:at 12:00 2013-7-7  at〉pgrep -U root | wc -l > /tmp/ps.root 统计root用户运行的进程数量输出保存在/tmp/pa.root下

如:at 23:00 at> shutdown -h now 晚上23点关机 按CTRL+d提交

atq查询计划任务,执行过的不会显示。

atrm 2 删除2条计划任务,执行过的无法删除


周期性任务设置cron服务要开启

crontab

/etc/crontab 系统任务配置文件


-e 编辑计划任务列表,-u 指定管理用户的计划任务,-l列表显示计划任务,-r删除计划任务列表。

每一行任务配置记录都包含六个数据段,分钟,小时,日期,月份,星期,执行命令

”*“表示取值范围中的任意时间,”-“减号表示一个连续的时间范围 1-4 1 2 3 4,“,”逗号表示间隔不连续时间如3,5,7

“/”表示指定间隔时间如:日期段中*/3表示每隔3天

crontab -e

50 7 * * * service sshd start 7点50开启sshd服务

50 22 * * * service sshd stop 22点50关闭sshd服务

0 0 */5 * * rm -fr /var/ftp/pub/* 每隔5天清空一次ftp公共目录

30 7 * * 6 service httpd restart 每周六7点30重启httpd服务

30 17 * * 1,3,5  tar jcf httpd.tar.bz2 /etc/httpd 每周135备份/etc/httpd目录

crontab -e -u benet编辑用户 ,crontab -l ,crontab -l -u benet查看用户计划任务,crontab -r 删除任务计划。



分析和排查系统故障

内核及系统日志,用户日志,程序日志

ls /var/log 查看默认的日志目录文件

/var/log/messages 记录内核消息各种应用程序的公共日志,

/var/log/lastlog  记录用户登录事件                        用命令看:lastlog

/var/log/wtmp     记录每个用户,注销及系统启动和停机事件。          last

/var/log/btmp     记录失败的,错误的登录尝试及验证事件。            lastb

/var/log/cron计划任务,/demesg引导过程,/maillog邮件事件,/rpmpkgs系统安装的各rpm包信息,/secure用户认证安全事件。

grep -v "^$" /etc/syslog.conf 过滤空行,看内核系统日志。


排除系统启动故障

备份MBR扇区数据

mkdir /backup

mount /dev/sdb1 /backup

dd if=/dev/sda of=/backup/sda.mbr.bak bs=512 count=1

模拟MBR扇区故障

dd if=/dev/zero of=/dev/sda bs=512 count=1 重启出现operating system not found消息

擦入光盘进入急救模式Linux rescue

看提示操作配置网卡选№ 尝试挂载到/mnt/sysp_w_picpath目录

进入sh-3.2#fdisk -l /dev/sda 查看因MBR损害,已经无法看到分区表

sh-3.2#mkdir /tmpdir

sh-3.2#mount /dev/sdb1 /tmpdir  挂载有备份文件的分区

sh-3.2#dd if=/tmpdir/sda.mbr.bak of=/dev/sda 恢复备份数据重启


GRUB引导故障

/boot/grub/grub.conf文件丢失破坏

需要编写具体看相同版本

grub〉root (hd0,0)

grub〉kerenl /vmlinuz-2.6.18-194.e15 ro root=/dev/VolGroup00/LogVol00 rhgb quiet

grub〉initrd /initrd-2.6.18-194.e15.img

grub〉boot

也可以擦光盘进入急救模式重写

sh-3.2#chroot /mnt/sysp_w_picpath

sh-3.2#vi /boot/grub/grub.conf 进入编写

sh-3.2#exit退出重启

sh-3.2#有可能MBR也出现损坏

sh-3.2#chroot /mnt/sysp_w_picpath

sh-3.2#grub-install /dev/sda 重新grub引导程序安装到第一块硬盘的MBR扇区。

sh-3.2#exit 重启


/etc/inittab文件丢失

进入急救模式

sh-3.2#chroot /mnt/sysp_w_picpath

sh-3.2#rpm -qf /etc/inittab

sh-3.2#mount /dev/hdc /media/cdrom 挂载

sh-3.2#rpm -ivh --replacepkgs /media/cdrom/server/initscripts-8.45.30-2.e15.i386.rpm --replacepkgs覆盖安装

sh-3.2#exit 重启


遗忘root用户密码

急救模式

sh-3.2#chroot /mnt/sysp_w_picpath

sh-3.2#passwd root


重启在grub菜单选择版本按e

定位到kernel按e 在行尾加single或s 或1 进入单用户模式

回车确认按b进入,在单用户可以执行passwd root 重新设置密码。


修复文件系统

模拟破坏文件系统

dd if=/dev/zero of=dev/sdb1 bs=512 count=4

mount /dev/sdb1 /mnt/ 挂载出错you must specify the filesystem type

修复命令fsck -y -t ext3 /dev/sdb1


模拟i节点耗尽故障

mkdir /data

mount /dev/sdb7 /data

df -i /data

新建一个测试程序

vi killinode.sh 进入编辑

#!/bin/bash

i=1

while [$i -le 8021]

do

touch /data/file$i

let i++

done

:wq

#sh killinode.sh &

#df -i /data

#touch /data/cssl 无法创建

#df -hT /data

修复i节点问题

找到占用i节点文件删除即可

rm -rf /data/file/*


检测硬盘坏道

badblocks -sv /dev/sdb