鸟哥的linux私房菜基础版的读书笔记

--------------------------------第一部分:入门------------------------------
LINUX最优秀的地方莫过于她的多用户、多任务环境。

5.3 命令行模式执行命令
5.3.1 ALL START FROM HERE
ls
5.3.2 基础命令操作
1. 显示日期 date
2. 显示日历 cal
3. 计算器 bc(acale)
5.3.3 重要的热键[Tab],[Ctrl]-c,[Ctrl]-d
5.3.4 查看错误信息
5.4 在线帮助 man page/info page
man -f (= whatis)
man -k (= apropos)
/usr/share/doc
5.5 正确的关机方法
who
netstat -a
ps -aux
5.5.1 数据同步写入磁盘 sync
5.5.2 常用关机命令 shutdown/init 0
5.5.3 重启和关机 reboot/halt/poweroff
5.6 启动过程的故障排除
5.6.1 扇区错乱 fsck /dev/sda号
5.6.2 忘记root密码
--------LILO--------
lilo菜单[Ctrl]-x
boot:linux -s(linux为未修改的启动名称,如修改过,须填写完整)
passwd
--------Grub--------
grub菜单[任意键]
"e"编辑核心文件+"singer"
[ENTER]
"b"引导进入singer模式
--------------------
光盘/U盘启动,mount,修改配置文件

------------------------第二部分:linux文件、目录、与磁盘格式---------------------------
第六章 linux的文件属性域目录配置
6.1 用户与用户组
owner/group/others
6.2 linux文件的权限
6.2.1 linux文件属性
6.2.2 更改文件权限
1. 更改文件用户组 chgrp [-R]
2. 更改文件拥有者 chown [-R]
3. 更改文件属性 chmod [-R][ugoa|=+-|rwx]
6.2.3 目录属性的意义
r——ls
w——增删移改
x——进入目录
6.2.4 linux文件类型和扩展名
6.3 linux目录配置
6.3 linux目录配置标准——FHS文件系统层次标准(P126)
6.4 linux支持的文件系统——/lib/modules/`uname -r`/kernel/fs
VFS虚拟文件系统交换

第七章 linux文件和目录管理
7.1 目录与路径
7.1.1 相对路径与绝对路径
相对路径——方便
绝对路径——文件的正确性(编程,执行程序)
7.1.2 目录相关操作
1. 切换目录 cd [./../-/~/~account]
2. 显示工作目录 pwd [-p]
3. 建立新目录 mkdir [-mp]
4. 删除空目录 rmdir [-p]
7.1.3 执行文件路径的变量:$PATH
7.2 管理文件和目录
1. 查看文件和目录:ls
2. 复制/删除/移动
cp [-adprfilus]
rm [-fir]
mv [-fiu]
3. 获取路径的文件名与目录名 basename/dirname
7.3 查看文件内容
cat/tac/nl/more/less/head/tail/od
7.4 文件域目录的默认权限域隐藏权限
7.4.1 文件默认权限
umask
7.4.2 文件隐藏属性
lsattr [-aR]
chattr [+-=][-ASacdijsu]
7.4.3 文件特殊权限:4-SUID/2-SGID/1-SBit
set UID——仅用于二进制文件,让一般用户在执行程序时,暂时具有该程序owner的权限
set GID——仅用于二进制文件,让一般用户在执行程序时,暂时具有该程序group的权限
Sticky Bit——仅对目录有效
chmod
7.4.4 文件类型:file
7.5 搜索文件
1. 寻找执行文件 which

[-a]
2. 寻找特定文件 whereis [-bmsu]
3. locate——updatedb
4. find [PATH] [option] [action]
时间相关 -atime n
-ctime n
-mtime n
-newer file
用户或组相关 -uid n
-gid n
-user name
-group name
-nouser
-nogroup
文件权限及名称相关 -name filename
-size [+-]SIZE(ck)
-type TYPE(fbcdlsp)
-perm mode(属性等于mode)
-perm -mode(属性大于等于mode)
-perm +mode(属性少于mode)
附加操作 -exec command

第八章:linux磁盘与文件系统管理
8.1 EXT2/EXT3
8.2 文件系统的简单操作
8.2.1 磁盘域目录的容量
1. df [-akmhHTi]
2. du [-ahskm]
8.2.2 连接文件:ln [-sf]
8.3 硬盘的分区、格式化、检验与载入
8.3.1 分区:fdisk [-l] [device]
8.3.2 格式化
1. mke2fs [-bicLj] device
2. mkbootdisk(制作启动软盘)
3. fdformat(软盘低格)
8.3.3 磁盘检验:
1. fsck [-AaryCf] device (All/auto/yes/force)
2. badblocks [-saw] device
3. sync
8.3.4 磁盘载入与卸载
1. mount [-antoL] device mountpoint
-o ro/rw/async/sync/auto/noauto/dev/nodev/suid/nosuid/exec/noexec/user/nouser/defaults/remount
2. umount device/mountpoint
8.3.5 修改磁盘参数
1. mknod device [bcp] [major] [minor]
存储/输入/FIFO
2. e2label device labelname
dumpe2fs [-h] device
3. tune2fs [-jlL] device
4. hdparm [-icdmXTt] device
lspci
8.4 设置启动载入
1. mount -t ext2 /dev/fd0 /media/floppy
2. mount -t vfat /dev/hda1 /media/winfat
3. mount -t vfat -o iocharset=cp950 /dev/sda0 /mnt/chinese
4. /etc/fstab(ro/rw/async/sync/auto/noauto/suid/nosuid/exec/noexec/user/nouser/qsrquota/grpquota/default)
5. /etc/mtab与/proc/mounts
6. 备份命令 dump (/etc/fstab)
7. 检测分区 fsck (/etc/fstab)
8. /etc/fstab中数据有误,可进入singer模式,但/是ro状态,无法修改/etc/fstab。
解决:mount -n -o remount,rw /
-n 不更新/etc/mtab
8.5 建立虚拟内存
free 查看内存信息
8.5.1 建立swap设备——加一个硬盘,划出swap文件系统
1. fdisk /dev/sd[a--d][1-16] 先在新硬盘上,新建一个分区
2. mkswap /dev/sd[a--d][1-16] 将新建的分区,格式化为swap文件格式
3. swapon /dev/sd[a--d][1-16] 启动刚建立的swap
8.5.2 建立swap文件
1. dd if=/dev/zero of=/tmp/swap bs=4k count=16382 建立一个名为/tmp/swap的文件(4k*16382~64M)
2. mkswap /tmp/swap 将刚建立的文件格式化为虚拟内存文件格式 *需特别小心
3. swapon /tmp/swap 启动刚建立的swap
关闭虚拟内存——swapoff

第九章:文件的压缩与打包
1. compress [-dcr] 文件或目录——*.Z
compress -c man.config > man.config.back.Z (-c 将压缩过程的数据输出到屏幕(标准输出))
2. gzip [-cdt#] 文件——*.gz (t检验压缩文件的一致性,#压缩等级1-9)
zcat 读取压缩文件内容
3. bzip2 [-cdz#] 文件——*.bz2 (z压缩参数)
bzcat
4. tar [-cxtzjvfpN] 文件与目录——*.tar

(z=gzip,j=bzip2,f后立接要使用的文件名,p=-same-permissions)
tar -cvf - /etc | tar -xvf - ("-"标准输入输出)
5. dd——因为可以读取设备内容,可以将整个设备备份成一个文件。可以完成类似ghost的功能。
dd if="input_file" of="output_file" bs="block_size" count="number"
6. cpio


--------------------------------------------第三部分:SHELL和SHELL脚本---------------------------------
第十章:VI
1.一般模式-------------------------------------------
h,j,k,l 上下左右一个字符
[Ctrl]+f 屏幕向下翻页[Page Up]
[Ctrl]+b 屏幕向上翻页[Page Down]
0 光标移动到本行最前字符处
$ 最后
H,M,L 光标移动到本页(本屏)顶,中,底
G 光标移动到此文件最后一行
gg 第一行
n 光标向下移动n行
------------------------------------------------------
/word 从光标位置开始,向下搜字符串“word”
?word 向上
n 继续向下重复上一个搜索动作
N 向上重复
:n1,n2s/word1/word2/g 在n1与n2行之间,搜word1,并替换为word2
:1,$s/word1/word2/g 在1到最后
:1,$s/word1/word2/gc 在1到最后 ,并提示确认。
---------------------------------------------------------
x,X,nx 向后,向前删除一个(n个)字符
dd,ndd 删除整行,向下删n行
yy,nyy 复制光标所在行,向下复制n行
p,P 粘贴在光标下,上一行
u 复原上一个操作
[Ctrl]+r 重做
. (小数点)重复上一个动作
2. 编辑模式-----------------------------------------------
iaor
IAOR
3. 命令行模式---------------------------------------------
:w [filename] 另存为filename
:r [filename] 光标读入filename到光标所在行后
:!command 暂离VI,执行command
:set nu
:set nonu
4. DOS换行符(^M$)与LINUX换行符($)
dos2unix [-kn] file [newfile] [-k]保留mtime [-n]保留原文件
unix2dos [-kn] file [newfile]

第十一章:Bash Shell
1. /etc/shells与/etc/passwd
2. [Tab]/alias/通配符/export
3. 内置命令 type [-tpa] name
4. 执行命令 command [-options] parameter1 parameter2 ...
5. 变量功能 echo,unset
varname123=parameter
Kernel=/lib/modules/`uname -r`/kernel
PATH=${PATH}:/home/psd/bin
name=PSD\'s\ name
"变量",'字符',`命令`
6. env——列当前SHELL环境下,所有环境变量及内容
7. set——列环境变量,自定义及所有变量
8. PS1——提示符的设置 PS1='[\u@\(H)h_\W(w)_\d_\t(T,A)_\v #\#]\$'
9. OSTYPE,HOSTTYPE,MACHTYPE——uname -orm
10. locale -a和/etc/sysconfig/i18n
11. read [-pt] variable
declare [-aixr] varible/typeset
12. ulimit [-HSacdflptu] [配额]
13. history [n-carw] historyfiles
14. 相对路径与绝对路径
15. 登录消息显示数据:/etc/issue、/etc/https://www.360docs.net/doc/9011695620.html,和/etc/motd
16. 环境设置文件
a.系统设置值:/etc/sysconfig/i18n——语系变量
/etc/profile——profile变量
/etc/bashrc——bash相关
/etc/profile.d

/*.sh——shell相关
/etc/inpputrc
/etc/man.config——man路径设置
b.个人设置值:~/.bash_profile,~/.bash_login,~/.profile——通常三选一即可,有搜索顺序,登录是读一次
~/.bashrc——每次执行shell脚本都会重读
~/.bash_history
~/.bash_logout——logout后,bash会执行此文件中的内容
c.利用source varfile或. varfile可以立即更新重新设置的变量文件,使之生效。
d.终端的环境设置:stty(setting tty) [-a]/set
17. 数据重定向 find /home -name /dev/null 1> list 2>&1
cat > catfile <18. 命令执行的判断根据:;、&&、||
19. 管道命令(pipe)
a. cut -d '分隔符' -f fields ——echo $PATH | cut -d ':' -f 5
-c 以字符为单位取范围 ——export | cut -c 12-20
b. grep [-acinv] '搜索字符串' filename
c. sort [-fbMnrutk] [file or stdin]
uniq [ic] 去重复
wc [-lwm] 统计(行,词,字符)
d. 双向重定向:tee [-a] file (-a append累加)
e. 字符转换命令
tr [-ds] 'set1'——删除set1字符串,替换
col [-x] 将[tab]转换对等空格键
join [-ti12] file1 file2
——join -t ':' /etc/passwd /etc/shadow链接/etc/passwd和/etc/shadow相关数据(root)
——join -t ':' -1 4 /etc/passwd -2 3 /etc/shadow
paste [-d] file1 file2
expand [-t] file 将[tab]转换成8个或[-t n]n个空格
split [-bl] file PREFIX——按-b size或按-l line,将file拆分成以PREFIX为前导名的小文件
cat PREFIX* >> file——将拆分的小文件组成一个原文件
xargs [-0epn] command——参数代换
-(减号)——stdin,stdout

第十二章:正则表达式
1. 基础正则表达
[123],[^A-Z],[a-z]
^[^1Aa]——(^在[]内为反选,外为定位行首)
\.$——定位行尾小数点,但小数点为特殊字符,需转移\.
(.)——任意一个字符——'g..d'
(*)——至少0个重复字符——'goo*d'
{n,m}——限定n到m个连续重复字符——'go\{2\}gle'——{}特殊,需转义
2. 扩展正则表达
+ 一个或多个
? 0个或一个
| 或,egrep -nv '^$|^#' reguler_express.txt
() 组合 'g(la|oo)d'
3. 格式化显示:printf '[\a,\b,\f,\n,\r,\t,\v,%ns,%ni,%n.nf]' content
4. sed工具和awk工具
5. diff [-bBi] fromf tof (ASCII纯文本文件以行为单位的比较) diff -Naur oldf newf > patchfile.patch
6. patch -pN < patch_file (待续)
7. cmp [-s] file1 file2 (两个文件包括二进制文件,以位为单位的比较)
8. 文件打印准备:pr /etc/man.config

第十三章:Shell脚本
1. SHELL脚本编写规范
#!/bin/bash
# Program:
# This program is used to show "Hello World !" in screen.
# History:
# 2011/04/14 lih First release
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
export PATH
echo -e "Hello World ! \a \n"
exit 0
#!shell申明
# 内容与功能
# 历史记录
# 创建日期 作者与联系 版本

信息
# 版权申明
设置脚本运行所需环境变量(PATH...)
告知执行结果 exit 0/echo $?
2. test测试
3. []判断
4. if条件判断
if [条件判断表达式];then
当条件判断表达式成立时,可以执行的命令。
elif [条件判断表达式]; then
当条件判断表达式不成立时,可以执行的命令。
fi
5. case判断
case $变量名 in
"第一变量内容")
程序段
;;
"第二变量内容")
程序段
;;
*)
不包含第一个变量内容与第二个变量内容的其他程序执行段
exit 1
;;
esac
6. 函数功能 function——Shell脚本中,函数的设置一定要在程序的最前面。
function fname() {
程序段
}
7. 循环
while [ condition ] 成立则执行 until [ condition ] 成立则终止(until:在...之前)
do do
程序段 程序段
done done
或for ((初始值;限制值;执行步长)) 或for var in con1 con2 con3 ... 非数字方面循环运行
do do
程序段 程序段
done done
8. Shell脚本的追踪与调试
sh [-nvx] scripts.sh

--------------------------------------第四部分:linux用户管理------------------------------

第十四章:linux帐号与身份管理
1. UID,GID,initial group,effective group
/etc/passwd,/etc/shadow,/etc/group,/etc/gshadow
groups
newgrp(额外以另一个login让用户登录到另一Shell中,并将有效用户组改为newgrp后接用户组,默认为初始用户组,exit退出)
2. 帐号管理
finger [-s] username
useradd [-u UID] username ——参考/etc/default/useradd
[-g initial_group]
[-G other_group]
[-Mm 强制不建立/建立家文件]
[-c 说明栏]
[-d 指定home目录,不采用默认] ——参考/etc/skel/*
[-r 建立一个系统帐号,UID有限制]——参考/etc/login.defs
[-s shell]
passwd [-lu lock/unlock] username ——参考/etc/login.defs,/etc/shadow,/etc/pam.d/passwd
[-nxw 最短最长警告天数] username——参考/etc/shadow——456
[S 显示相关信息] username
usermod [-cdegGlsuLU] username
userdel [-r] username
chsh [ls],chfn [-foph],id [username]
3. 用户组管理
groupadd [-g gid] [-r 系统用户组]
groupmod [-g gid] [-n group_name]
groupdel [groupname] ——必须先确认/etc/passwd内的帐号没有任何人使用该用户组作为初始用户组。
gpasswd [ 无参数][-M Member][-r rm_passwd][-R !] groupname
[-A Admin][-a add][-d del] username groupname
4. 切换用户身份:su与sudo最大的不同是,提示输入密码是,su使用切换目标用户密码,sudo使用当前用户密码。——安全!
su [-] ——切换至root,但"su -"使用root的环境设置相当于"su -l root","su"为切换为root,但使用原用户环境设置
[-l 使用username的环境设置] [username]
[-c command]
[-m 使用当前环境设置] [username]
sudo [-u [username|#uid|-]] command

——参考/etc/sudoers
建议以visudo编辑——用户帐号 登录的主机 = (可变换的身份) 可执行的命令——推荐使用别名User_alias,Cmnd_alias
user hostname = (user) command
%group hostname = (user) command
%psd linux = (ALL) NOPASSWD: ALL
psd ALL = ALL——未加身份申明,默认是仅能进行root身份的切换。
psd ALL = /bin/su(然后执行"sudo su -",sudo与su联合使用,将psd切换为root身份)
5. 特殊Shell——/sbin/nologin与/etc/nologin与/etc/nologin.txt
6. PAM模块
/lib/security/* (模块)与/etc/pam.d/* (配置)——登录身份验证,辅助应用程序验证
pam_securetty模块与/etc/securetty——预防不安全的登录环境,主要针对root
7. linux系统的用户对话与邮件
查询:w/who/last/lastlog
对话:talk/write/mesg/wall
邮件:mail
8. 手动增加用户
a. 建立所需用户组 (vi /etc/group)
b. 同步/etc/group与/etc/gshadow (grpconv)
c. 建立帐号属性 (vi /etc/passwd)
d. 同步/etc/passws与/etc/shadow (pwconv)
e. 设置该帐号密码(passwd accountname)
f. 建立用户家目录(cp -a /etc/skel /home/accountname)
g. 更改用户家目录属性(chown -R accountname.group /home/accountname)
检测工具:pwck ——检测/etc/passwd,home目录,对比/etc/passwd与/etc/shadow
pwconv/pwunconv ——将/etc/passwd中的帐号与密码移动/etc/shadow,后者则相反,会删除/etc/shadow。
chpasswd ——读入未加密密码,并加密后写入/etc/shadow【常用于批量建立用户username:passwd】
建议:不要建立很怪异的特殊帐号,如纯数字帐号。
9. 手动删除帐号:【推荐:userdel,passwd -l|u】
a. 先find / -user account,找出所有的account相关文件,删除
b. 删除/etc/passwd与/etc/shadow相关数据
c. 删除/etc/group与/etc/gshadow相关数据
d. 删除/home目录下account相关目录
e. 删除/var/spool/mail及/var/spool/cron中account相关文件。

第十五章:磁盘配额quota
1. /etc/fstab ——设置参数usrquota,grpquota——>umount /mount_point;mount -a——>/etc/mtab
2. quota [-uvsl] [username]
[-gvsl] [groupname]
3. quotacheck [-avugM][/mount_point] ——【Quotafile】:https://www.360docs.net/doc/9011695620.html,er/aquota.group
4. edquota [-u username] [-g groupname] [-t 宽限时间] [-p user_demo -u username 复制范本]
5. quotaon [-avug] [-vug][/mount_point]——启动aquota.group与https://www.360docs.net/doc/9011695620.html,er,故需先完成quotacheck的工作。
6. quotaoff [-a 根据/etc/mtab] [-ug][/mount_point]
7. repquota [-av] [-ugv]

第十六章:例行性命令:at/cron
***************常见例行任务******************
*登录文件的数据轮换(log rotate)
*rpm数据库的建立
*locate数据库的建立——/var/lib/slocate/slocate.db
*程序分析
*登录文件检查
*指纹数据库的比较——通常指tripwire套件
*********************************************
1. 一次性的at(atd)
/etc/init.d/atd re

start
设置开机启动: chkconfig --level 35 atd on
## /var/spool/at ##工作记录文件
## /etc/at.allow > /etc/at/deny ##限制文件
## at [-m mail] TIME
now
HH:MM
HH:MM YYYY-MM-DD
HH:MM[am|pm][Month][Date]
HH:MM[am|pm]+number [minutes|hours|days|weeks]
## atq
## atrm [jobnumber]

2. 循环的cron(crond)
## /etc/crontab和/var/spool/cron/"account_name" ##工作记录文件
## /var/log/cron## ##日志文件
## /etc/cron.allow > /etc/cron/deny ##限制文件

## 用户任务编辑推荐使用crontab -e编辑,不推荐使用 vi##
crontab [-u username] [-ler]
******* 5个时间参数 实际操作命令 *******
分时日月周 command
* , - /n
## 系统任务编辑 /etc/crontab,命令执行放置有 直接命令型和目录规划型两种。##
*注意* *资源分配不均的问题
*取消不需要的输出项目 >/edv/null
*安全检查 /var/log/cron

第十七章:程序与资源管理

17.1 进程
1. 程序/(父|子)进程/系统服务|网络服务(常驻内存)
UID,GID——>程序——>(父)进程PID——>程序——>(子)进程PID
检查程序之间的关联性——pstree
2. Linux的多用户、多任务环境
*多人环境
*多任务行为
*多重登录环境([Alt]+[F1]...[F7])
*特殊的程序管理行为(ps -aux;kill)
*bash环境下的作业管理(job control)(PID,command &)
*多用户、多任务的系统资源分配问题
17.2 作业管理:/etc/security/limits.conf、&、[ctrl]-z、jobs [-lrs]、fg %jobnumber、bg、kill [-l,signal][-1,2,9,15]
17.3 进程管理:
******进程的观察
1. ps [[-]Aauxljf]
defunct
2. top [-d sec]|top [-bnp]______(?PMNTkr)
3. pstree [-Aup]
******进程的删除
1. kill [-SIGHUP|SIGINT|SIGKILL|SIGTERM] [PID|%jobnumber]
2. killall [-iIe][commandname]
******系统资源观察
1. free [-t] [-b|k|m|g]
2. uname [-asrmpi]
3. uptime
4. netstat -[atunlp]
5. dmesg | more (开机显示信息)
6. sar [-ru][秒数][次数]——默认不安装,sar -u|r 1 3——统计当前主机CPU|主存状态,每秒一次,一共3次。
17.4 进程的执行顺序
1. PRI(new) = PRI(old) + nice
2. nice [-n] command——进程优先级:nice[-20——19]
3. renice [number] PID
17.5 特殊文件与进程
1. SUID/SGID/SBIT —— find / -perm +6000 可查找系统中所有SUID/SGID文件
2. /proc/* ——内存转储
17.6 进程相关命令
1. fuser [-ki] [-signal] file/dir ——由文件或设备找出使用它的进程
2. lsof [-Uau] [+d] ——查看某进程打开或使用的文件或设备
3. pidof [-sx] program_name

-----------------------------------------第四部分:Linux系统管理员-----------------------------------------

第十八章:启动关机的流程与加载程序

18.1 启动流程
1. 加载BIOS的硬件信息,开始加电自检(POST)初始化,获取第一个启动设备的代号。
2. 读取第一个启动设备的MBR的引导加载程序Boot Loa

der(即lilo,grub,spfdisk等)的启动信息。
3. 加载操作系统核心文件/boot/vmlinuz[-version],核心开始解压缩到主存储器,并且尝试驱动(driver)读自BIOS的所有硬件设备。
4. 核心执行/sbin/init程序并获取运行信息(/etc/inittab)(runlevel)。
5.*init执行/etc/rc.d/rc.sysinit系统初始化流程文件( 默认设置文件/etc/sysconfig)。
6. 启动核心的外挂模块/etc/sysconfig/modules/*.modules(/etc/modprobe.conf)。
7. 根据init的runlevel执行系统启动服务,即/etc/rc.d/rc[0-6].d里的文件(连接到/etc/rc.d/init.d和/etc/init.d目录)。
8. 执行用户自定义引导启动程序(/etc/rc.d/rc.local)
9. 根据/etc/inittab设置加载终端tty或X-Window界面
10.执行/bin/login程序,等待用户登录。
11.登录后开始以Shell控制主机。
18.2 核心与核心模块
核心:/boot/vmlinuz[-version]
核心模块:/lib/modules/`uname -r`/kernel
核心源码:/usr/src/linux
核心版本:/proc/version
核心功能:/proc/sys/kernel
1. 模块依赖性文件:/lib/modules/`uname -r`/modules.dep
depmod [-Ane] ——此命令可以建立或跟新modules.dep文件
2. 观察核心模块:lsmod、modinfo [adln][module_name|file_name]
3. 加载与删除:insmod [/full/path/module_name][parameters]
rmmod [-fw] module_name
modrobe [-lcfr] module_name
4. 核心模块的额外参数设置:/etc/modprobe.conf
18.3 引导加载程序:Grub(安装在MBR或超级块)
测试安装grub——grub-install [--root-directory=DIR] INSTALL_DEVICE
grub设置文件——/boot/grub/menu.lst
进入grub shell安装——grub
另:启动前的额外功能修改(默认启动菜单任意键——'e'——grub shell)
18.4 引导加载程序:LILO

18.5 解决启动过程的问题
1. 忘记root密码
2. 设置错误无法启动——runlevel 1 fsck /dev/hd[a-d][1-16]
3. 利用chroot(change root directory)切换到另一个硬盘


第十九章:源码与Tarball【跨平台】套件管理程序

1. 开放源码、编译器(gcc)、函数库(/usr/include、/lib、/usr/lib)、可执行文件(二进制)
2. make、autoconfig(configure或config)
[makefile]
target : targetfile1 targetfile2
gcc -o target targetfile1 targetfile2 【为本行第一个字符】
3. Tarball套件(源码文件;检测程序文件config;INSTALL或README)——*.tar.gz或*.tgz
执行方式:a. ./configure(建立Makefile)
b. make clean (清除已有的*.o目标文件)
c. make (编译成可执行文件)
d. make install
e. 配置man page到/etc/man.config
建议:在/usr/local/src中解压源码,套件安装到/usr/local下,最好每个套件单独安装。
可以使用patch -p 数字 < patch_file来更新源码,然后重新编译,安装。
4. 函数库管理
a. 静态函数库(lib*.a)/动态函数库(lib*.so)
b. /usr/lib,/lib,/lib/modules(核心的函数库)
c. ldconfig

[-f conf] [-C cache] [-p]与/etc/ld.so.conf【将动态函数库加载到高速缓存】
d. ldd [-vdr] [filename] 【查询二进制文件相关的动态函数库】
5. 检验软件正确性:md5sum [-bct] filename ——可用验证密码文件是否安全
[--status|--warn] --check filename

第二十章:RPM、SRPM与yum、apt、urpmi套件管理程序

1. RPM(xxxxx.rpm)
/etc
/usr/bin
/usr/lib
/usr/share/doc
/usr/share/man
/var/lib/rpm
2. rpm -[ivh|Uvh|Fvh|q[ailcdRf]] pkgname|filename [--nodeps|nomd5|noscripts|replacefiles|replacepkgs|force|test]
rpm -[Vapf] pkgname|filename ——RPM验证与数字签名——SM5DLUGT c fileaname
rpm -e|--rebuilddb pkgname——卸载或重建数据库——卸载过程一定要从上而下
3. SRPM(xxxxx.scr.rpm)
/usr/src/redhat/SPEC——放置配置文件
/usr/src/redhat/SOURCE
/usr/src/redhat/BUILD
/usr/src/redhat/RPMS
4. rpmbuild [--rebuild编译打包|--recompile编译打包并安装]
5. 自制套件

第二十一章:系统服务守护程序

1. 服务端口信息:/etc/services
系统守护程序位置:/etc/init.d/* ——独立
/etc/xinetd.d/*与/etc/xinetd.conf ——超级
启动方式:service [service name] {start|stop|restart|...}
2. man /etc/xinetd.conf——/etc/xinetd.d/*的设置
3. TCP_Wrappers安全机制
/usr/sbin/tcpd(/etc/hosts.allow与/etc/hosts.deny)
::
4. 系统打开的服务——netstat [-atulpn]
5. 设置开机运行 ——(启动守护程序/etc/rc.d/rc[0-6].d/*,本地设置/etc/rc.d/rc.local)
chkconfig [--list|--add|--del] [server_name]
chkconfig --level [0123456] [server_name] [on|off]
ntsysv [--level ] (redhat)

第二十二章:认识与分析登录文件——系统故障,网络服务问题,记录登录信息

* /var/log/secure ——登录系统访问数据文件
* /var/log/wtmp ——登录者——last
* /var/log/messages ——系统错误或重要信息
* /var/log/boot.log ——开机或服务启动关闭时的显示信息
* /var/log/maillog或/var/log/mail/* ——邮件访问或往来的用户记录
* /var/log/cron ——crontab例行性服务内容
* /var/log/[httpd,news,mysqld.log,samba,procmail.log,...]——网络服务记录

1. 登录文件的记录:syslogd (/etc/syslog.conf,port:514)
格式: server.level logfile
* .=* 绝对路径(/var/log)
auth,authpriv.!info 打印机或其他(/dev/lp0)
cron.notice 用户名称
lpr.warn(warning) 远程主机(@https://www.360docs.net/doc/9011695620.html,需远程主机支持)
mail.err(error) (*)(当前在线的所有人)
news.crit(critical)
syslog.alert
user,uucp,local0~local7.energ(panic)
2. 登录文件的安全性设置:lsattr,chattr的设置a属性
3. 登陆文件主机:man syslogd
4. 登陆文件的轮替:logrotate(/etc/logrotate.conf,/etc/logrotate.d)
logrotate -vf /etc/logrotate.con

f(默认/etc/cron.daily/logrotate)
5. 分析登录文件
last [-nf]、lastlog、dmesg
6. 登录文件分析工具
logwatch

第二十三章:Linux备份策略

1. 备份什么数据(系统+服务)
系统必须 网络服务 不需要
/etc /etc /dev
/home /usr/local /proc
/boot ... /mnt
/root /tmp
/var/spool/mail
/usr/local和/opt
2. 选什么备份设备(速度,容量,可靠性)
3. 备份方式(完全Full与部分Implement)
4. 备份频率
5. 备份工具(tar、cpio、dump、dd、)

第二十四章:X Window简单设置

第二十五章:Linux硬件检测与维护

1. 收集硬件信息:hdparm(观察硬盘信息)
lspci [-vvn] (观察整个系统PCI接口的各设备,/usr/share/hwdata/pci.ids)
dmesg(观察核心运行过程中所显示的各项消息记录)
iostat [-c|-d] [-k] [-t] [间隔秒数] [检测次数] (检查整个CPU与接口设备的输入/输出状态)
2. 驱动USB设备 (lsmod,modinfo)
3. 使用lm_sensors取得温度电压等信息
4. setup功能
/etc/sysconfig/authconfig
/etc/sysconfig/iptables
/etc/sysconfig/keyboard
/etc/sysconfig/mouse
/etc/sysconfig/network和/etc/sysconfig/network-scripts
/etc/cups/*
ntsysv
/etc/sysconfig/clock
/etc/X11/xorg.conf
5. 利用CUPS架构打印机
6. 特殊的文件系统:LVM
PV(Physical Volume 物理卷)
VG(Volume Group 卷组)
PE(Physical Extend 物理宽展)
LV(Logical Volume 逻辑卷)
a. 用fdisk (/dev/hdb) 修改设备(/dev/hdb1,/dev/hdb2)的ID为8e
建立PV b. partprobe 让核心立刻读取最新分区表,而不去重启
pvscan 搜索当前系统任何具有PV的磁盘
pvcreate (/dev/hdb1) 将物理分区建成PV【pvremove作用相反,去除分区的PV属性】
pvcreate (/dev/hdb2)
pvsdisplay 显示当前系统的PV状态
建立VG c. vgcreate [-s 16M] VGname PVname1 PVname2 建立VG
vgscan 搜索系统上的VG存在
vgdisplay 显示当前系统上的VG状态
vgextend 在VG内增加额外的PV
vgreduce PVname 在VG内删除PV
vgchange 设置VG是否启动(active)
vgremove 删除一个VG
建立LV d. lvcreate -L [sizeMG] -n [LVname] VGname 建立LV
lvscan 查询系统上的LV
lvdisplay 显示系统上的LV状态
lvrextend 在LV里增加容量
lvreduce 在LV里减少容量
lvresize 对LV进行容量大小的调节
lvremove 删除一个LV
分区格式化并载入e. mke2fs -j /dev/VGname/LVname
mkdir /mnt/lvm
mount -t ext3 /dev/VGname/LVname /mnt/lvm
df
fdisk -l /dev/hdb
加大原有LVM磁盘 f. umount /mnt/lvm
fdisk 修改设备(/dev/hdb3)的ID为8e
partprobe
pvcreate 新建一个PV
vgextend VGname (/dev/hdb3) 在VG内增加新建的PV
vgdisplay
pvscan
lvextend -L +10G /dev/VGname/LVname 在LV里增加刚才VG所增加的容量
lvdisplay

resize2fs [-f] [device] [size] 更新超级块信息,以增加LV的容量
mount -t ext3 /dev/VGname/LVname /mnt/lvm
df /mnt/lvm
7. iSCSI架构的磁盘阵列
RAID:
| Linear Mode(线性模式)[2+]
| RAID-0(交错模式,stripe)[2+]
| RAID-1(镜像模式,mirro)[2]
| RAID0+1 [4+]
| RAID5[3+,(N-1)S]
NAS:(Network Attach Storage网络连接存储)——TCP/IP网络上的数据存储主机
SAN:(Storage Area Networkd 存储区域网络)——光纤信道数据存储设备
iSCSI:(iSCSI存储设备+提供iSCSI联机的主机端) ——TCP/IP_GB以太网上的存储

第二十六章:Linux核心编译与管理

核心文件:/boot/vmlinuz
模块文件:/lib/modules/`uname -r`/






















相关文档
最新文档