20140910V1
20141010V2
一、 Linux基础入门和架构了解
1)Linux操作系统
1B=8bit 1KB=1024B 1MB=1024KB 1GB=1024MB
操作系统(OS)用于管理与驱动硬件; 内核kernal
shell调度内核
1971~1973 Bell实验室的KenThompson利用汇编语言写成unix前身,后由DennisRitchie以C程序语言进行改写,称为UNIX
1977 BillJoy释出BSD(BerkeleySoftwareDistribution),这些称为UNIXlike
1984 AndrewTannenbaum制作出Minix操作系统,同年RichardStallman提倡GNU项目,并规范出GPL授权模式
1991,芬兰人LinuxTorvalds开发出Linux系统,GNU软件开发团队
Linux distributions是"Linux Kernel + Free Software + Documentations(Tools) + 可完全安装的程序"
2)Linux根文件系统
/boot /dev /dev /etc /home /root /lib /media /mnt /opt /proc /sys /tmp /vrp
3)shell概念
什么是shell: 用户使用 shell――>内核――>硬件
认识bash: BourneSHell(sh)、sun里默认的CSHell,商业上常用的KSHell,还有TCSH
Bourne Again Shell(bash)这个shell是BourneShell的增强版本
操作系统有多少可以使用shell,可以检查/etc/shells这个文件
type [-tpa] name
-t : file 外部命令 alias 别名所设置的命令 builtin 表示bash内置功能命令
二、 Linux命令使用和管理
1)基本命令深入讲解
首先命令登入的样式:[用户名@主机名 ~]$ ,其中~是变量,当前所在目录,而$则是用户账户提示符,#为root账户提示符。
命令执行格式: command [-options] parameter1 parameter2……
基础命令: date 显示日期,修改日期
cal 显示日历
bc 简单好用的计算器
重要的热键: [Tab],[Ctrl]+c,[Ctrl]+d
查询功能说明:man,info,--help
超简单文本编辑器:nano
正确关机方法: 1. 查看系统使用状态 who, netstat -a, ps -aux
2. 将数据同步写入硬盘 sync
3. 惯用关机命令 shutdown
重启、关机 reboot halt poweroff
切换执行等级:init
2)用户权限及权限管理详解
linux文件属性
文件权限 连接数 文件所属用户组 文件大小 文件最后被修改时间 文件名
系统语言配置文件位置: /etc/sysconfig/i18n
目录文件权限意义:rxw 4 2 1
chmod chown chgrp eg:chmod (u g o a) (+ - =) (rwx) 文件or目录
Linux的账号与用户组:uid gid
用户组类别: 管理组 普通用户组
私有组 基本组 附加组
用户与用户组
存放账号路径 /etc/passwd 存放密码路径/etc/shadow
useradd userdel
passwd usermod
acl
su
sudo
查询用户: w who last lastlog
用户对谈: write mesg wall
3)常用文件管理命令
文件种类与扩展名:文件种类 普通文件(-)( 纯文本文件 二进制文件 数据格式文件)
目录(d)
连接文件(l)
设备与设备文件(b)( c )
套接字(s)
管道(p)
Linux文件扩展名 Linux扩展名没有真正意义,只是用于帮助了解,
Ext2/3文件系统时,单一文件名长度为255个字符,包含完整路径名的文件名为4096字符
Linux目录配置标准:FHS(Filesystem Hierarchy Standard)
相对路径 从根目录开始的路径
绝对路径
pwd显示路径 cd切换路径 ls列出文件
mkdir创建目录 rmdir删除目录
umask
chattr lsattr
SUID SGID SBIT
file查看文件属性
文件查找 where whereis
locate
find [PATH] [option] [action] 1. 与时间有关的参数:-atime -ctime -mtime
2. 与用户或用户组有关的参数:-uid -gid -user -group -nouser -nogroup
3. 与文件权限及名称有关的参数:-name -size -type -perm
4. 其他可进行的操作:-exec -print
rm删除文件 mv移动文件 cp复制文件 touch创建文件
文本处理命令: cat more less head tail
文本编辑器: vi vim
VIM按键说明: 第一部分 一般模式
h光标左移一个字符,j光标下移一个字符,k光标上移一个字符,l光标右移一个字符
[crtl]+f 相当于page down [crtl]+b 相当于page down
[crtl]+d屏幕向下移动半页 [crtl]+u 屏幕向上移动半页
n<space>
0或功能键home移动到这一行最前面 $或功能键end移动到这一行最后面
H光标移动到屏幕上方第一个字符 M光标移动到屏幕中央行第一个字符 L光标移动到屏幕下方第一个字符
G移动到这个文件最后一行 nG移动到这个文件第n行 gg移动到第一行 N[enter]光标向下移动n行
/word向下寻找word字符串 ?word向上寻找word字符串 n继续向下查找 N继续向上查找
:n1,n2s/word1/word2/g 在n1行到n2行中间查找word1字符串替换为word2
:1,$s/word1/word2/g 从第一行到最后一行中查找word1字符串并替换为word2
:1,$s/word1/word2/gc 从第一行到最后一行中查找word1字符串并替换为word2。替换前提示用户确认。
x 向后删除一个字符 X向前删除一个字符 nx连续向后删除n个字符
dd删除光标所在那一行 ndd删除光标所在向下n行 d1G删除光标所在到第一行所有数据
dG删除光标到最后一行数据 d$删除从光标所在到该行行尾所有数据 d0删除从光标所在到该行最前面所有数据
yy复制光标所在的那一行 nyy复制光标所在向下n行 y1G复制光标所在行到第n行数据
yG复制光标到最后一行数据 y$复制从光标所在到该行行尾所有数据 y0复制从光标所在到该行最前面所有数据
p将已复制数据贴在下一行 P将已经复制数据贴在上一行
j将光标所在行与下一行数据结合成一行 c重复删除多个数据,例如[10cj]
u撤销上一次操作 [ctrl]+r重做上一次操作 .重复前一个操作
第二部分 编辑模式
i,I 进入插入模式,从光标所在开始插入
a,A 进入插入模式,从光标所在下一个字符开始插入
o,O 进入插入模式,从光标所在的下一行开始插入
r,R 进入替换模式,只会替换光标所在的那一个字符
第三部分 命令行模式
:w 保存 ZZ 没有改动,不保存离开;改动了,保存离开
:w! 强制保存 :w [filename] 将编辑的文件保存成另一个文件
:q 离开 :r [filename] 将编辑的数据读入另一文件
:q! 强制离开 :n1,n2 w [filename] 将n1到n2数据保存成filename
:wq 保存后离开 :! Command 暂时离开vi到命令行执行command的显示结果
:set nu 设置行号
:set nonu 取消行号
vim被编辑时,会生成一个swp文件,如果有人已经在编辑,或不正常关闭,会有提示告警。
vim块选择工具(visual block)
v字符选择,光标经过地方反白 V行选择,光标经过的行反白 [ctrl]+v块选择,可以用长方形方式选择数据
y将反白地方复制起来 d将反白地方删除
多文本编辑 :n编辑下一个文件 :N上一个文件 :files列出目前这个vim打开所有文件
多窗口功能 :sp [filename]打开一个新窗口 [ctrl]+w+(jkq)
vim环境设置与记录: ~/.vimrc , ~/.viminfo记录vim操作记录
3) bashshell深入了解
bash shell的功能:
1. [Tab]按一次为命令补全,按两次显示所有命令
2. alias
3. histoy,记录存放在/.bash_history中
命令历史使用技巧 !n !-n !! ![string] ;ctrl+r搜索历史命令
4. 作业控制、前台、后台控制(job control,foreground,background)
5. 程序脚本(shell script)
6. 通配符(wildcard)
shell的环境变量:
echo unset
变量的设置规则:1. 变量与变量内容以一个“=”连接,如 myname=Vbird
2. 等号两边不能直接接空格符
3. 变量名称不能以数字开头
4. 变量内容若有空格字符,可以使用双引号(能保有特殊字符原有特性)or单引号将变量内容结合起来
5. 可用转义字符 \
6. 在一串命令中需要其他命令提供信息使用“`` ,$”,如version=$(uname -r),再echo $version
7. 为了增加变量内容可以这样:PATH="$PATH":/home/bin
8. 若该变量要在其他子进程执行,则需export PATH
9. 通常大写字符为系统默认变量,自定义的变量使用小写字符
10.取消变量方法为:unset 变量名称
用evn查看环境变量与常见环境变量说明:
HOME 代表用户主文件夹
SHELL 目前环境使用的默认shell
MISTSIZE 命令历史缓冲区大小
MAIL 收信时系统会去读取的邮件信箱文件
PATH 命令搜索路径
LANG 系统语言环境
RANDOM 随机数的变量
也用set查看环境变量
$本身也是变量,是目前shell的线程代号(PID),?也是变量,是上一个执行命令所回传的值
export 自定义变量转成环境变量: export 变量名称
影响显示结果的语系变量 locale ;cat /etc/sysconfig/i18n
变量键盘读取、数组与声明:read array declare
与文件系统系统及程序的限制关系ulimit: ulimit -a 显示所有限制
变量内容删除、替代及替换: eg: echo "this dirctory is $(pwd)" ; touch file-$(date +%F-%H%M%S).txt
终端机的环境设置:stty,set
组合按键 ^c终止目前命令 ^d ^m ^s ^q ^u ^z暂停目前命令
通配符与特殊符号: 通配符 * ? [] [-] [^]
特殊符号 # \ | ; ~ $ & ! /
> >> < <<
'' "" ``
()中间为子shell的起始与结束 {}中间为命令块的组合
数据流重定向: > < >> <<
命令执行判断依据: ; 不考虑命令相关性,直接执行
&& 前面命令正确执行接下来命令
|| 前面命令执行错误接着执行第二条
管道命令(pipe): |
选取命令 grep [-acinv] [--color=auto] '查找字符串' filename
cut '分隔字符' filename 一般用法:cut -d '分隔字符' -f fields
排序命令: sort
重复数据显示一遍:uniq
文字统计: wc
双向重定向: tee
字符转换命令 : tr,col,join,paste,expand
切割命令:split [-bl] file prefix eg:split -b 300k /etc/tmermcap termcap
参数代换:xargs
关于减号-的用途
4)grep及正则表达式
1. 正则表达式就是处理字符串的方法
2. 特殊符号意义:[:alnum:] [:alpha:] [:blank:] [:cntrl:] [:digit:] [:graph:]
[:lower:] [:print:] [:punct:] [:upper:] [:space:] [:xdigit:]
3. 基础正则表达式字符
^word word$ \ * [list] [n1-n2] [^list] \{n,m\}
4. sed工具
5. 扩展正则表达式
6. 文件的格式化与相关处理:printf awk
7. 文件比较工具
8. 文件打印准备
5)运维自动化shell
脚本格式: shell script
#!/bin/bash
#explain
path
progam
条件判断: if...then
case...esac
fuction
循环判断: while do done,until do done
for...do...done
for...do...done
三、 Linux磁盘及文件系统管理
Linux最传统的文件系统使用的是Ext2(现在应该都是Ext3)
1) 硬盘的组成与分区: 扇区 柱面
第一个扇区最重要,里面有硬盘主引导记录(MBR),及分区表(partition table)
/dev/sd[a-p][1-15]: 为SCSI,SATA,USB,BLASH
/dev/hd[a-d][1-63]: 为IDE
* 主分区与扩展分区最多可以有4个(硬盘的限制)
* 扩展分区最多只能有一个(操作系统限制)
* 逻辑分区是由扩展分区持续分出来的分区
* 能够被格式化后作为数据访问的分区为主要分区和逻辑分区,扩展分区无法格式化
* 逻辑分区数量依操作系统而不同。Linux系统中,IDE硬盘最多59个逻辑分区(5号~63号),SATA硬盘则是11个逻辑分区(5号~15号)
2)Ext2系统(Linux second extended file system,Ext2fs)
indoe: 文件权限与文件属性
block: 实际数据则放置到data block,另还有一个超级superblock记录整个文件系统的整体信息
dumper2fs [-bh] 设备文件名
ext2文件系统示意图
启动扇区
Boot sector Block group1 Block group2 Block group3 Block groupn...
inodetable(inode表格),superblock(超级块)
ext2/ext3 文件的访问与日志文件系统的功能
3)文件系统的简单操作
df du
连接文件ln: ln -s 源文件 目标文件
4)新增一块硬盘: 磁盘分区、格式化、检验与挂载
fdisk,mkfs mke2fs,fsck badblocks, mount
fdisk -l 设备名称
fdisk 设备名 ==>接着出现如下行
command(m for help): 【输入m】 (d删除一个分区 n新增一个分区 p在屏幕上显示分区表 q离开 w保存)
partprobe (强制让内核重新找一次分区表)
mkfs -t ext3 设备名
fsck
mkdir
mount
5) 设置开机挂载/etc/fstab 及/etc/mtab ;特殊设备loop
6) 内存交换空间swap
7) Linux常见压缩命令: compress; gzip zcat; bzip2 bzcat; tar
compress压缩文件 *.z; gzip压缩文件 *.gz; bzip2压缩文件 *.bz2;
tar打包文件 *.tar; 经过gzip压缩后打包文件 *.tar.gz; 经过bzip2压缩后打包文件 *.tar.bz2
8) 完整备份工具: dump restore
9) 光盘写入工具: mkisofs cdrecord
10)其他常见的压缩与备份工具: dd cpio
四、 企业级yum软件管理
rpm
yum 本地yum平台搭建
联网yum搭建
五、 Linux使用管理和进程管理
1)Quota
2)raid
3)lvm:
4)crontab: 分 时 日 月 周
5)进程管理:ps
ps -l显示的数据 F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
ps aux显示的数据 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
top
pstree
kill
6)系统资源查看:free uname uptime netstat dmesg vmstat
7)/proc
8)SELinux
9)系统服务 daemons
stand_alone
super daemon
daemon的工作形态类型:signal-control interval-control
daemon的启动脚本及配置文件位置: /etc/init.d/* 启动脚本放置处
/etc/sysconfig/* 各服务的初始化环境配置文件
/etc/xinted.conf,/etc/xinetd.d/* super daemon配置文件
/etc/* 各服务各自的配置文件
/var/lib/* 各服务产生的数据库
/var/run* 各服务的程序的PID记录处
standalone的启动方式:
superdaemon的启动方式:
解析super daemon的配置文件: 默认配置文件 xinetd.conf
=
+=
-=
/etc/hosts.allow,/etc/hosts.deny管理
TCP Wrappers特殊功能
chkconfig:管理系统服务默认开机启动与否
chkconfig --list [服务名称]
chkconfig [--level [0123456]] [服务名称] [on|off]
10)日志与分析
常见的日志文件: /var/log/cron
/var/log/dmesg
/var/log/lastlog
/var/log/maillog或/var/log/mail/*
/var/log/messages
/var/log/secure
/var/log/wtmp,/var/log/faillog
/var/log/httpd/*,/var/log/news/*,/var/log/samba/*
日志服务所需相关服务daemon与进程: syslogd 主要登录系统与网络等服务的信息
klogd 主要登录内核产生的各项信息
logrotate 主要进行日志文件的轮替功能
syslogd:记录日志文件的服务
syslogd的配置文件 /etc/syslog.conf
服务名称[.=!]信息等级 信息记录的文件名或设备或主机
logrotate
logwatch
11)每周系统备份的脚本
六、 Linux系统管理员
1) 启动流程、管理模块与loader
Linux系统启动过程:1 加载BIOS的硬件信息与进行自我测试,并依据设置取得第一个可启动的设备
2 读取并执行第一个启动设备内MBR的boot Loader(即是grub,spfdisk等程序)
3 依据boot loader的设置加载kernel,kernel会开始检测硬件与加载驱动程序
4 在硬件驱动成功后,Kernel会主动调用init进程,而init会取得run-level信息
5 init执行/etc/rc.d/rc.sysinit文件来准备软件执行的操作环境
6 init执行run-level的各个服务启动(script方式)
7 init执行/etc/rc.d/rc.local文件
8 init执行终端机模拟程序mingetty来启动login进程,最后就等待用户登录
七、 Linux精简系统和内核管理裁剪
kernel
grub