1
.虚拟机安装linux(centos 32bit)
1.1
虚拟机安装前置工作的准备,如内存。硬盘。CPU分配。镜像下载等
1.2
安装方式(图形界面或者命令行 推荐图形界面即直接回车)
1.3
安装过程默认,如默认语言、键盘式等
1.4
安装分区
1.4
.
1
在选定磁盘上删除所有分区
1.4
.
2
在选定驱动器上删除linux分区
1.4
.
3
在选定驱动器上使用空闲空间
1.4
.
4
自定义分区
1.4
.
4.1
linux磁盘表示
1.4
.
4.1
.
1
IDE磁盘 hd(磁盘前缀) hda(磁盘
1
)hdb(磁盘
2
) hda1(磁盘
1
的
1
分区) hdb1(磁盘
2
的
1
分区)
1.4
.
4.1
.
2
SATA磁盘 sd(磁盘前缀) sda(磁盘
1
)sdb(磁盘
2
) sda1(磁盘
1
的
1
分区) sdc6(磁盘
3
的
6
分区)
1.4
.
4.2
linux分区表示
1.4
.
4.2
.
1
挂载点 即所有分区的根
1.4
.
4.2
.
2
文件系统类型 即分区存储格式
1.4
.
4.2
.
3
分区大小
1.4
.
4.2
.
4
交换分区(swap 即windows下的虚拟内存)
1.5
网络配置(IP、网关、子网掩码、主机名、DNS等)
1.6
时区、用户密码设置
1.7
默认软件包安装
1.8
安装完毕后重新启动系统即可
1.9
系统初始化设置(防火墙、创建用户、SELinux等)
1.10
如果是一机多系统的話,先装windows再装linux。因为装windows会重写引导文件
2
.熟悉系统图形界面
2.1
文件夹标签打开方式显示(编辑,首选项里面设置)
2.2
隐藏文件查看(首选项里面设置 以.开头的文件或者文件夹均为隐藏文件/文件夹)
2.3
常用工具栏使用
2.4
支持
7
个终端(前
6
个均为命令 后
1
个为图形 快捷键为ctrl+alt+ f1~f7)
3
.命令
3.1
命令格式
3.1
.
1
命令 -选项.... 参数
3.2
常用命令
3.2
.
1
ls命令 显示当前目录文件信息
ls -l 显示目录的完整信息 =》ll
ls -i 显示目录所有的文件,包括隐藏文件
ls -s 显示文件大小
ls --help 显示关于ls的选项帮助信息
ls -lis 等同于 ls -l -i -s
3.2
.
2
pwd命令 显示当前目录名
3.2
.
3
clear命令(ctrl+l) 清屏
3.2
.
4
date命令 显示当前时间日期
3.2
.
5
cal命令 显示日历
cal
12
2012
查看
2012
年
12
月的日历 注意年月次序
cal
2012
查看
2012
年所有月份日历
3.2
.
6
bc命令 计算器
scale=
4
(小数点后
4
位,默认情况下不保留小数点后的数字)
1
/
3
3.2
.
7
history命令 执行过的命令集合(
1000
个有重复)
history
!
22
(执行第
22
条命令)
3.3
命令大小写区分
4
.热键和快捷键
4.1
Tab热键————自动补齐命令
如果唯一则自动补齐,如果不唯一需要按两次则加载所有可能性
4.2
上下热键————执行历史命令切换
4.3
ctrl+i/home————命令行光标快速切换到本行开头
4.4
ctrl+e/end————命令行光标快速切换到本行结束
4.5
ctrl+u————从当前光标处往前删除
4.6
ctrl+k————从当前光标处往后删除
4.7
ctrl+c————中止输入命令执行
4.8
ctrl+shift+t—————多开终端
4.9
ctrl+d————关闭终端
5
.帮助信息
5.1
whatis 命令————查看该命令作用
whatis ls
5.2
ls --help ————该命令常用的选项有哪些
5.3
man命令————查看该命令具体详细信息
man ls
man -k clock ————查看含有clock关键字的所有命令
man host.allow————查看该文件配置说明
输入 /+关键字 可将关键字高亮显示
使用m/n可向上下查找(或向上向下键)
退出按q
5.4
info命令————用法跟man差不多。man可取代
6
.编译器
6.1
nano
6.2
gedit
6.3
vi
7
.一些使用小技巧
7.1
数据同步问题
sync命令————同步内存数据到硬盘
7.2
开关机命令
7.2
.
1
shutdown命令
7.2
.
2
reboot命令
7.2
.
3
poweroff命令
7.2
.
4
halt命令
7.3
运行级别
7.3
.
1
级别(
7
种)
0
:关机模式
1
:单用户模式
2
:多用户模式(无NFS)
3
:多用户模式(有NFS)
4
:系统保留
5
:图形化界面
6
:系统正常关闭并重启
7.3
.
2
init命令————切换运行级别
init
3
切换到
3
级别
init
0
切换到
0
级别 即关机
init
6
切换到
6
级别 即重启
7.4
忘记root密码
1
.开机时按e键进去可选进入项
2
.进去编译模式
3
.敲
1
按回车,按b进去编译
4
.编译完成后输入passwd更改密码
5
.然后重启即可使用新密码登陆
8
.文件权限和目录配置
8.1
文件权限
8.1
.
1
权限说明
drwxr-xr-x.
2
root root
4096
Oct
23
23
:
53
Desktop
drwxr-xr-x:文件/文件夹权限
第一位:
d为文件夹
-为文件
b为设备(块) U盘、硬盘等
c为设备(字符)键盘、鼠标等
l为软连接(快捷方式)
其他位:
r读
w写
x运行
前三位为所有者权限(u)
中间三位为所有组权限(g)
后三位为其他人权限(o)
.:是否为隐藏文件
root:文件/文件夹所有者
root:文件/文件夹所有组
4096
:文件/文件大小
Oct
23
23
:
53
: 创建时间/修改时间
Desktop: 文件/文件夹名
8.1
.
2
默认权限
1
.umask命令————文件默认权限
2
.chattr/lsattr命令————文件隐藏属性
3
.SUID/SGID/SBIT命令————文件特殊权限
4
.file命令————文件类型
8.2
更改文件/文件夹权限
8.2
.
1
chmod命令————修改文件/文件夹读写运行权限
第一种方式:chmod u+x,g+r,o+r xyz(不会改变子文件权限)
第二种方式(推荐):chmod
766
xyz(不会改变子文件权限)
r:
4
w:
2
x:
1
7
:rwx
6
:rw
5
:rx
3
:wx
chmod -R
766
xyz(会改变子文件权限)
8.2
.
2
chown命令————可以修改所有者和所有组权限
chown hadoop xyz/
将xyz的所有者更改为hadoop用户
chown -R hadoop:root xyz/
将xyz下的所有文件所有者更改为hadoop用户,所有组更改为root
8.2
.
3
chgrp命令————只能更改所有组
chgrp root xyz/
将xyz的所有组更改为root
8.3
文件目录结构
bin————可运行程序
boot————系统启动文件,内核初始化
dev————设备文件
etc————配置文件
home————用户的家目录
lib————链接库文件
lost+found————默认的
media————挂载点,自动
misc————默认的
mnt————挂载点,手工
net————网络文件
opt————使用源码安装包时安装目录
proc————内核参数,不占用磁盘大小
root————root用户的家目录
sbin————类似bin,系统管理员的命令
selinux————selinux文件目录
srv————
sys————系统配置文件
tmp————临时文件
usr————安装软件默认路径
var————日志文件、缓存文件、数据文件
8.4
绝对路径和相对路径
当前目录 .
上一级目录 ..
8.5
基本查看命令
1
.uname命令————返回系统类型名
uname -a 查看系统所有信息
2
.lsb_release命令
9
.文件和目录的管理
9.1
目录和文件相关操作
1
.cd命令————切换目录
cd:change directory
~:一个变量,代表当前用户家目录
cd - 上次所在目录(注意不是上一级目录)
2
.mkdir————增加目录
mkdir xx yy zz 创建三个目录分别为xx yy zz
mkdir -p xx/yy(如果父文件夹不存在创建父文件夹)
3
.rmdir————删除目录(不能删除非空目录)
rmdir xx yy zz
rmdir -p xx/yy(如果父文件夹中只有一个文件,会删除掉父文件夹)
4
.rm————删除文件
rm -rf xx(删除xx中的所有文件)
5
.cp————复制文件
1
.cp xx/yy xx1/yy1
如果yy是文件,且yy1是文件夹时,则将yy拷贝到yy1下
如果yy是文件,且yy1是文件或者不存在时,则将yy拷贝到xx1中并重命名为yy1
2
.cp -rf xx/yy xx1/yy1
yy是文件夹 即将yy所有文件拷贝到xx1下的yy1中(没复制权限属性信息)
3
.cp -rfp xx/yy xx1/yy1
yy是文件夹 即将yy所有文件拷贝到xx1下的yy1中(复制权限属性信息)
6
.mv————移动文件(与cp用法一致)
7
.查看文件内容
1
.cat————顺序显示,只能看到最后一屏的内容 适合查看小文件
cat -n xx 有行号
2
.tac————倒序显示
3
.nl————相当于 cat -n
4
.head————查看文件前几行
head -
5
xx 前五行(默认头
10
行)
5
.tail————查看文件后几行
tail -
5
xx 后五行(默认尾
10
行)
6
.more————分屏查看内容
more xx (回车一行一行 空格一屏幕一屏幕 只能往后看, 不能往前看)
7
.less————分屏查看内容
less xx(往前往后都可)
8
.od————查看二进制文件
8
.touch————创建文件
touch xx
9
.whereis/locate/find————查找文件
whereis xx
locate xx(不及时,在数据库来找,如果需要及时的話,要更新数据库 updatedb)
find 目录 -属性 属性值(不指明目录在当前目录查找)
属性:权限、大小、时间等
9.2
路径变量$PATH
1
.变量赋值
$PATH=
".:/usr/local/hadoop/bin:/usr/local/jdk/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"
2
.输出打印变量值
echo $PATH
1
.Linux磁盘和文件系统
VFS————虚拟文件系统
df命令————查看已挂载的分区
df 分区名
du命令————查看文件夹大小
du 文件夹名
ln命令————符号链接
fdisk命令————分区命令
fdisk 硬盘名
partprobe命令————更新分区表
partprobe 硬盘名
mkfs命令————格式化分区(新建分区只有格式化后才能使用)
mkfs -t 文件系统类型(ext3、ext4) 分区名
mkfs.文件系统类型(ext3、ext4) 分区名(等同于上面的)
fsck/badblocks命令————磁盘检验
badblocks -sv 分区名
mount命令————挂载设备(临时,关机重启后无效)
mount 外部设备 目录 将外部设备挂载在目录里
umount命令————卸载设备
umount 挂载点
umount 外部设备
fstab文件————挂载文件(重启关机均有效)
配置信息格式: 设备名 挂载点 格式类型 默认权限 备份标识 检验标识
2
.文件的压缩和打包
2.1
常用的压缩命令
Compress命令
gzip/zcat命令
gzip 文件名(会直接将原文件压缩成.gz后缀的文件,源文件没有了)
gzip -c 文件名 > 文件名.gz(会直接将原文件压缩成.gz后缀的文件,源文件还存在)
gzip -d 文件名(会直接将源文件解压,源文件没有了)
zcat 文件名(查看压缩文件内容,纯文本)
bzip2/bzcat命令(使用方式同上 注意后缀为bz2)
2.2
常用的打包命令
tar命令(无压缩功能)
tar cvf 文件名.tar 文件名(打包文件,保留源文件)
tar cvf 文件名.tar 文件名 --remove-files(打包文件,不保留源文件)
tar tvf 文件(不解包下查看文件内容)
tar xvf 文件(解包下查看文件内容)
2.3
常用备份命令
————完全备份 (
0
)
————差异备份 (级别从高往低)
————增量备份 (级别从低往高)
dump命令————备份
dump 级别(
0
~
9
) 备份文件名 需备份文件
2.4
常用还原命令
restore命令————恢复
3
.vim程序编辑器
vim是vi的增强版
1
.插入模式:
1
.i 当前光标后一字符
2
.I 本行开头
3
.a 当前光标后后一字符
4
.A 本行行尾
5
.o 本行后空一行
6
.O 本行前空一行
7
.insert 当前光标
2
.命令模式:
1
.esc
2
.yy————复制行
3
.p————粘贴行
4
.dd————删除当前行
5
.x————删除当前字符
6
.r————替换当前字符
3
.末行模式:
1
.冒号:(保存w、退出q、替换s、定位(直接输入数字跳转到该数字行))
2
.斜杠/ (查找)
3
.next 切换下个文件
4
.first 第一个文件
5
.last 最后一个文件
4
.特殊符号:
1
.^ 表示行开头
2
.$ 表示尾部
3
.% 表示所有行
4
.认识和学习bash
1
.查看系统支持的shell
cat /etc/shells(Linux 默认使用bash)
2
.which命令————查看命令所在目录
which 命令名(如果找不到目录且该命令可用,则表示该命令为bash内置命令)
3
.type命令————查看命令所属信息
type 命令名
4
.变量
1
.变量赋值:变量名=值
2
.变量使用:$变量名(前面一定要有美元符号)
3
.变量取消:unset 变量名
4
.本地变量(只在当前会话有效)
定义 变量名=变量值
5
.环境变量(所有会话有效)
定义 export 变量名=变量值
6
.位置变量(指定位置的变量)
$
0
(第一个变量)
$
1
(第二个变量)
$#(总共几个变量)
$*(变量分别是...)
7
.变量查看
set命令(查看所有变量 即本地和环境变量)
env/export/export -p 命令(显示环境变量)
8
.read命令————将键盘输入的值赋值给变量(以回车为结束标识)
read 变量名
9
.数组
定义 xx=(aa bb cc)
输出 echo ${xx[*]} 全部输出
echo ${xx[
0
]} 输出第一个元素
echo ${#xx[*]} 输出数组元素个数
echo ${!xx[*]} 输出所有元素下标
10
.declare命令————定义变量
declare -x aa=
1
(是环境变量)
declare +x aa=
1
(不是环境变量)
declare -r aa (aa值不能更改,即常量)
11
.通配符
1
.[] 匹配一个字符
2
.- 表示范围 a-z即 a到z
3
.? 表示任意一个字符
4
.!或者^ 表示非 [^
0
-
9
]即非数字
5
.* 表示任意一个或多个字符
5
.输出重定向
1
.>命令————将控制台的输出输出到文件(若文件不存在,则创建该文件,如果存在,则覆盖)
cal > 文件名 (只能重定向正确的结果)
cal
2
> 文件名 (只能重定向不正确的结果)
2
.>>命令————将控制台的输出输出到文件(若文件不存在,则创建该文件,如果存在,则追加)
cal >> 文件名 (只能重定向正确的结果)
cal
2
>> 文件名 (只能重定向不正确的结果)
3
.&>命令————将控制台的输出输出到文件(无论正确或者错误均可重定向,覆盖文件)
6
.命令特殊符号
1
.: 命令
1
:命令
2
(即执行完命令
1
后执行命令
2
,无论命令
1
是否正确)
2
.&& 命令
1
&&命令
2
(如果命令
1
不正确,不会执行命令
2
)
3
.|| 命令
1
||命令
2
(如果命令
1
正确,不会执行命令
2
)
7
.管道
命令
1
的结果通过管道传给命令
2
做参数 如 命令
1
| 命令
2
1
.选取命令
cut————分隔文件内容,适用于有规律的文件 如:cut -d: -f1 文件名(即按:来选取第
1
部分的文件内容)
grep————选取文件内容,适用于无规律但知道关键字的文件 如:ifconfig eth1 | grep
"Mask"
(即按Mask关键字将所在行过来展现出来)
2
.排序命令
sort————将结果排序输出 如: grep -ivn
"abc"
文件名 | sort -r (将结果反向输出)
wc————字数统计 如:wc 文件名(返回行号、单词数、字符数(空格和换行符均算))
uniq————结果统计 如:uniq 文件名 -c(返回结果和结果次数)
3
.双向重定向命令
tee————将结果输出到文件 如: ifconfig eth1 | tee 文件名 |grep
"Mask"
4
.字符转换命令
tr————转换字符 如: tr
'a-z'
'A-Z'
< 文件名
col————转换字符(将tab转换成空格) 如: col -x 文件名
join————匹配合并文件(匹配文件
1
和文件
2
关键字再合并,以分隔符标识关键字) 如:join -t
':'
文件
1
文件
2
paste————粘贴合并文件(直接粘贴合并) 如:paste 文件
1
文件
2
expand————(功能与col一致) 如: expand 文件名
5
.切割命令
split————把大文件切割成若干个小文件 如: split -b 10k 大文件 小文件(小文件大小为10k)
6
.参数代换
xargs————对于不支持管道的命令提供参数支持 如:find -name
"xxx*"
|xargs ls -h
5
.shellscript脚本
1
.开头格式
#!/bin/bash
2
.注释行使用 #
3
.执行脚本
1
.source 脚本文件名
2
.bash 脚本文件名
3
. ./脚本文件名
4
.返回值
1
.执行成功返回
0
2
.执行错误返回非
0
5
.判断分支
1
.
if
...;then...elif...;then...
else
....fi
2
.
case
...esac
3
.function
6
.循环分支
1
.
while
/until ...
do
... done
2
.
for
...
do
...done
1
.Linux帐号和ACL权限管理
1
.帐号和用户组
1.1
用户标识符————UID(root为
0
系统用户为
1
~
499
普通用户为
500
~
65535
)
1.2
用户组标识符————GID()
1.3
用户帐号信息文件————/etc/passwd
hadoop:x:
500
:
500
:hadoop:/home/hadoop:/bin/bash
hadoop为用户名 x为密码加密符
500
为UID
500
为GID hadoop为注释信息 /home/hadoop为用户家目录
/bin/bash为shell信息
1.4
用户密码信息文件————/etc/shadow
hadoop:$
1
$0HZuNsCv$URJuS1MRpjafAVcmYO0bI1:
15957
:
0
:
99999
:
7
:::
hadoop为用户名
$
1
$0HZuNsCv$URJuS1MRpjafAVcmYO0bI1为加密后的密码信息
15957
为密码有效日期时间
0
为密码最小使用天数
99999
为密码最大使用天数
7
为最大天数到期后警告天数
2
.帐号管理
2.1
useradd命令————添加用户
useradd -p
"用户名"
用户名 (创建一个密码跟用户名一样的用户)
2.2
usermod命令————修改用户信息(含密码)
usermod -s /bin/bash 用户名(修改用户的shell信息)
2.3
userdel命令————删除用户
userdel -r 用户名(-r 会删除用户相关缓存和家目录)
2.4
passwd命令————修改用户信息(仅限密码)
passwd 用户名
2.5
chage命令————修改帐号信息(不含密码)
chage -d
2015
-
10
-
1
tom (修改tom最近设置密码时间为
2015
-
10
-
1
)
2.6
su命令————用户身份切换
su - 用户名
2.7
sudo命令————特权用户切换
sudo 用户名
3
.组管理
3.1
groupadd命令————添加组
如:groupadd 组名
3.2
groupdel命令————删除组
如:groupdel 组名
3.3
groupmod命令————修改组
如:groupmod -n 新组名 旧组名
3.4
groups命令————查看用户所属组(一个用户可存在于一个或多个组)
如: groups root
3.5
gpasswd命令————操作用户组
如: gpasswd -a tom test(即把tom用户添加到test组中)
gpasswd -d tom test(即把tom用户从test组中删除)
3.6
newgrp命令————临时将一个组转换成用户的主组
如: newgrp test(即将当前登陆用户的主组修改为test)
4
.ACL————访问控制列表
4.1
setfacl命令————设置权限
setfacl -m u:hadoop:rw- xx文件(为hadoop用户对xx文件设置rw权限,会覆盖原来权限)
setfacl -m g:test:rw- xx文件(为test组对xx文件设置rw权限,会覆盖原来权限)
setfacl -x u:hadoop xx.sh(取消hadoop用户对xx文件的权限)
4.2
getfacl命令————获取权限
getfacl xx文件(获取xx文件的权限明细信息)
5
.用户shell命令
5.1
查询用户
who命令————查看当前登陆用户
last命令————查看历史登陆信息
lastlog命令————查看所有用户的登陆信息
5.2
用户对谈
write命令————发送消息给用户化
write 用户
2
(即表示当前用户发送信息给用户
2
,输入消息以ctrl+d为结束符)
mesg命令————信息收发状态
mesg y(开启当前用户收信息)
mesg n(关闭当前用户收信息,如果消息是root发送的即使关闭也能收到)
wall命令————广播(所有人都能收到)
wall 广播内容
2
.磁盘配额和高级文件系统管理
2.1
磁盘配额
1
.quotacheck命令————设置磁盘配额功能(默认不开启,注意:分区需在挂载时设置是否以配额方式挂载才能设置该功能)
quotacheck -cug /dev/sda3(即对sda3这个分区设置关于用户和用户组的磁盘配额功能 其中u表示用户 g表示用户组)
2
.quotaon命令————启动磁盘配额服务
3
.quotaoff命令————关闭磁盘配额服务
4
.edquota命令————配置磁盘配额功能信息
edquota -u 用户
1
(配置用户
1
磁盘配额信息)
其中配额信息如下:
1
.文件系统
2
.文件大小(该用户已有文件)
3
.软配额(软限制,满足即通知)(已有文件大小,单位是Kb,
0
为无限)
4
.硬配额(硬限制,满足即不能再创建文件)(已有文件大小,单位是Kb,
0
为无限)
5
.文件个数(总文件个数)
6
.软配额(软限制,满足即通知)(文件个数,
0
为无限)
7
.硬配额(硬限制,满足即不能再创建文件)(文件个数,
0
为无限)
5
.quota命令————查看配额设置信息
quota -u 用户
1
(查看用户
1
的配额设置信息)
2.2
高级文件系统管理
1
.RAID——阵列
RAID0————长度相加(无备份,至少两块)
RAID1————镜像备份(有备份,至少两块)
RAID5————校验和(有备份,至少三块)
2
.LVM——逻辑虚拟卷 动态扩展或缩小分区空间
3
.计划任务
3.1
仅执行一次任务
atq命令————查看计划任务
at命令————设置计划任务(仅一次)
at
10302015
(MMDDYYYY) 回车
任务
1
任务
2
任务
3
(ctrl+d为结束符)
atrm命令————删除计划任务
atrm 任务序号
/etc/at.deny 文件出现的用户没权限运行at命令
/etc/at.allow 文件出现的用户有权限运行at命令(优先级allow > deny)
3.2
循环执行任务
crontab命令————设置计划任务(循环周期性执行)
crontab -l (查看当前用户计划任务)
crontab -l -u 用户
1
(查看用户
1
计划任务)
crontab -e 回车
编辑任务(跟vim编辑器使用一致,一个任务可多条命令)
任务格式:分 时 天 月 周 命令内容(*为每一)
0
19
* * * date(每天
19
时执行date命令)
0
19
* *
1
-
5
date(每周
1
-
5
每天
19
时执行date命令)
crontab -r (删除计划任务)
/etc/crontab.deny 文件出现的用户没权限运行crontab命令
/etc/crontab.allow 文件出现的用户有权限运行crontab命令(优先级allow > deny)
run-parts命令————运行某个目录里面的所有脚本
run-parts 目录名(注意需有可运行权限)
3.3
可唤醒执行任务————本来应该按计划执行的因为关机而没有执行到的任务,开机后重新执行
/etc/anacrontab 可唤醒执行任务配置文件
4
.程序管理和SELinux
4.1
工作管理
jobs命令————查看后台运行工作
ps aux命令————查看所有运行进程
bg命令————设置后台运行程序
bg 序号(设置后台已停止运行的进程继续后台运行)
fg命令————设置前台运行程序
fg 序号(设置后台进程前台运行)
&命令————后台运行标识(关闭控制台不运行)
firefox &(将firefox这个进程后台启动运行)
nohup命令————后台运行(关闭控制台也运行)
nohup 命令
1
kill命令————杀死进程
kill -
9
%
1
(杀死后台标识为
1
的进程)
kill -
9
1
(杀死进程标识为
1
的进程,注意跟前者区分)
4.2
进程管理
ps命令————当前shell的所有进程
pidof命令————查看某个进程pid(即进程标识号)
pidof ping
killall命令————根据进程名杀死进程
killall -
9
进程名
renice命令————更改已经正在运行的进程优先级
renice 优先级数 进程pid
其中优先级数取值范围是:-
20
~
19
越大执行优先级越低 默认值为
0
nice命令————更改还未运行的进程优先级
nice -n -
19
cat(cat命令以-
19
优先级来运行)
free命令————查看内存资源使用信息
uptime命令————查看系统资源负荷信息
vmstat命令————查看系统IO信息
vmstat
3
6
(即
3
秒钟执行一次vmstat,总共执行
6
次)
4.3
SELinux————可以理解为进程设置权限
1
.运行模式
强制模式————不满足条件时警告并阻止运行
允许模式————不满足条件时警告但可运行
关闭模式————不启用selinux
getenforce命令————获取当前模式状态
setenforce命令————设置模式
setenforce
1
(强制模式)
setenforce
0
(允许模式)
/etc/selinux/config 默认设置文件(重启系统后也生效)
2
.启动、关闭、查看
3
.网络服务运行
4
.所需的服务
5
.策略和规则
5
.系统服务和daemon
1
.daemon和service
service 对外提供的服务
daemon 一直在系统中运行的进程
分类:独立服务和非独立服务(
super
daemon)
服务于端口一一对应 即服务使用端口来表示 /etc/services 可查看相关服务端口对应关系
2
.配置和启动daemon
独立服务启动文件: /etc/init.d/下的所有服务
独立服务启动方式(以下两种方式均可):
1
.service 服务名 restart
2
./etc/init.d/服务名 restart
非独立服务启动文件:/etc/xinet.d/下的所有服务
非独立服务启动步骤:
1
.设置配置文件 /etc/xinetd.conf
2
.重启xinetd服务 service xinetd restart(由此可见xinetd是独立服务)
3
.查看系统服务
netstat命令————查看正在运行服务
netstat -nutlp(查看当前正在监听的服务)
chkconfig命令————查看系统启动服务
chkconfig --list
setup命令
ntsysv命令
6
.日志文件
6.1
事件级别
1
.emerg 恐慌状态
2
.alert 紧急状态
3
.crit 临界状态
4
.err 其他错误状态
5
.warning 警告消息
6
.notice 通知事项
7
.info 信息消息
8
.debug 调试
(由上往下,级别越低)
6.2
日志配置文件
/etc/syslog.conf
6.3
日志格式
时间 地点 人物 事件
6.4
日志保护的两种方式
1
.使用chattr命令设置日志文件只能增加不能减少的权限
2
.配置中央日志服务器(即将该主机的日志文件通过网络传输给中央日志服务器)
6.5
日志备份————logrotate
1
.配置文件 /etc/logrotate.conf
2
.执行logrotate -f /etc/logrotate.conf
6.6
日志分析————logwatch
7
.启动引导和内核模块
7.1
Linux启动流程
1
.BIOS自检
2
.MBR激活,找到分区表,找到boot分区
3
.加载文件系统配置文件(即加载文件系统为ext3/ext4)
4
.加载系统配置文件
5
.加载内核到内存并初始化 (即加载系统驱动和系统模块)
6
.运行系统第一个程序/sbin/init
7
.init读取运行 /etc/inittab 配置文件
8
.启动配置文件中的相关服务
9
.加载 /etc/rc.d/rc.local 设置管理员设置的系统启动项
10
.加载其他一些配置文件
7.2
内核模块
模块文件 /lib/modules/下
lsmod命令————查看系统加载模块
modinfo命令————查看某个模块的信息
modinfo 模块名
7.3
BootLoad引导器
grub文件 /boot/grub
两个stage1和*stage1_5 其中*stage1_5是文件系统类型信息
stage2存储系统内核配置信息
1
.系统设置工具(网络和打印机)和硬件检测
1.1
setup工具
1.1
.
1
用户身份验证设置
1.1
.
2
网络配置
1.1
.
3
防火墙设置
1.1
.
4
键盘形式设置
1.1
.
5
时区设置
1.1
.
6
系统服务设置
1.1
.
7
X界面设置
1.2
设置打印机
lpr命令————添加打印请求
lpq命令————查看打印请求
lprm命令————删除打印请求
1.3
硬件数据收集和Im_sensors
1.3
.
1
硬件数据收集
lspci命令————查看pci硬件信息
lspci | grep -i net (查看网卡信息)
lsusb命令————查看usb硬件信息
iostat命令————监控硬件信息
iostat -c
1
3
(每
1
秒钟监控cpu使用信息,总共
3
次)
hal-device-manage命令————查看硬件信息(相当windows的设备管理器)
1.3
.
2
Im_sensors————查看硬件温度信息
1
.安装————pkgs.org下载相关包
2
.配置和启动相关模块
3
.运行sensors命令
2
.软件包安装
2.1
源码包安装————可以指定安装路径,但很麻烦
安装gcc(编译源码包需要用到)
解压源码包(一般后缀为.tar.gz) tar zvxf 文件名
进入解压目录,运行configure文件生成makefile文件 ./configure --prefix=需要安装到的文件夹名(默认安装到/usr/local)
编译 make
安装 make install
2.2
rpm包安装————不可以指定安装路径且有可能存在包依赖,但很简便
rpm命令————安装或卸载软件
rpm -ivh 文件包名(i为安装,v为显示进度,h为校验签名)
rmp -qa(q为查询,a为全部包)
rmp -ql 包名 (查看安装文件路径)
rmp -qc 包名 (查看配置文件路径)
rmp -e 软件名 (卸载软件)
rmp -Uvh 包名 (更新软件包,先卸载旧包再安装新包)
1
.连接到Internet
1.1
配置网络信息
dmesg命令————查看网卡信息
dmesg | grep -i net
ifconfig命令————查看IP、网关等相关信息
ifconfig(可查看活跃的网卡)
ifconfig -a (查看所有的网卡)
1.2
配置文件
/etc/sysconfig/network -- 全局网络配置即更改后所有网卡都生效
/etc/sysconfig/network-scripts/ifcfg-eth0 --针对eth0网卡的配置信息
1.3
重启网络
修改完配置或者参数后需重启网络才能生效
service network restart
1.4
网络常用命令
ip命令————网络参数综合命令
ip link show eth0 (显示网卡eth0的硬件地址信息)
ip addr show eth0 (显示网卡eth0的ip信息)
route命令————修改路由
route -n
route add
default
gw
192.168
.
1.1
(给所有网卡添加网关)
route add
default
gw
192.168
.
1.1
dev eth0(给eth0添加网关)
route del
default
gw
192.168
.
1.1
(删除网关)
ping命令————查看两台主机沟通
ping Ip地址
traceroute命令————分析节点之间的信息
traceroute Ip地址
1.5
网络排错
1
.硬件问题
网线
设备
2
.软件问题
IP参数
路由设置
服务和防火墙
3
.步骤
网卡工作确认
连接设备检测
IP参数确认
路由表规则确认
主机名和DNS错误
服务和路由设备出问题
Internet供应商问题
1.6
动静态配置路由映射
1
.静态——————配置路由表
2
.动态——————安装相关包,配置充当路由的服务器
1.7
ARP代理配置
2
.防火墙
2.1
Iptables工具
2.1
.
1
数据包进入流程规则
第一条规则匹配成功后,后面的规则不再匹配,如此后推到最后
2.1
.
2
表格和链
filter表————过滤表
Input链——————进来
Output链————出去
Forward链————内部访问
nat表————地址转换表
POSTROUTING链————内部IP转公网IP(源地址转换)
PREROUTING链——————公网IP转内部IP(目的地址转换)
2.1
.
3
语法
iptable -t filter -A{I,D} INPUT{OUTPUT,FORWARD} {
1
} -p tcp{udp,icmp}
{!} -s
192.168
.
1.1
/
24
--sport m:n --dport x:y -j ACCEPT{DROP,REJECT}
-t:(不指定默认为filter表)
-A{I,D}:添加 A/修改 I/删除 D
INPUT{OUTPUT,FORWARD}:规则链对应项
{
1
}:(-此条只有当选择删除或者修改时才需要写,
1
为规则号)
tcp{udp,icmp} :协议对应项
{!}:不允许
-s
192.168
.
1.1
/
24
:源地址
--sport m:n ---源地址对应从m到n的端口
--dport x:y ---目标地址对应从x到y的端口
ACCEPT{DROP,REJECT}:满足规则后所做的操作 允许/丢弃/拒绝
service iptables save(修改后一定要保存)
3
.架构DHCP服务器
3.1
架构流程
1
.打开端口(
67
-
68
)
iptables -I INPUT
1
-p tcp --dport
67
-j ACCEPT
iptables -I INPUT
1
-p udp --dport
67
-j ACCEPT
iptables -I INPUT
1
-p tcp --dport
68
-j ACCEPT
iptables -I INPUT
1
-p udp --dport
68
-j ACCEPT
service iptables save(保存)
2
.安装dhcp软件
yum install dhcp -y(-y 为所有选项y/n时默认选择y)
3
.配置参数文件
cd /etc/dhcp
vim dhcp.conf(默认为空,可参考模板,路径详见文件)
修改里面的相关参数(具体含义可度娘)
4
.重启服务
service dhcpd restart
5
.工作原理
1
.客户端启动发送discover给域中的所有机子
2
.域中的dhcp服务器收到信息后回复一个offer
3
.客户机收到第一个offer向域中的所有服务器发送停止发送广播信号,并发送request给选定服务器
4
.服务器收到request后发送ack给客户机确认IP
4
.NFS服务器(相当windows下的文件共享)
4.2
架构流程
1
.工作原理
RPC—————远程过程调用
由服务器调用RPC分配端口,客户端在访问时调用rpc查询端口,再连接这些端口
2
.安装NFS
yum install nfs-utils -y
3
.参数设置
vim /etc/sysconfig/nfs
4
.打开端口
iptables -I INPUT
1
-p tcp --dport
111
-j ACCEPT
iptables -I INPUT
1
-p udp --dport
111
-j ACCEPT
iptables -I INPUT
1
-p tcp --dport
2049
-j ACCEPT
iptables -I INPUT
1
-p udp --dport
2049
-j ACCEPT
iptables -I INPUT
1
-p tcp --dport
4000
:
4002
-j ACCEPT
iptables -I INPUT
1
-p udp --dport
4000
:
4002
-j ACCEPT
(其中
111
为rpc端口
2049
为nfs端口
4000
~
4002
为配置文件中所设端口)
5
.设置访问目录
vim /etc/exports
共享目录 范围(属性
1
,属性
2
,......)
如:/xx
192.168
.
1.0
/
24
(rw,sync)
exportfs -arv(修改完配置文件后,执行这条语句无需重启服务)
6
.挂载共享目录并设置相关权限
mount
192.168
.
77.80
:/xx /mnt
chmod
777
/xx
7
.重启服务
1
.SAMBA服务器————(linux和windows的文件共享)
1.1
安装
yum install samba -yum
1.2
配置文件
/etc/samba/smb.conf(具体参数可度娘)
1.3
具体服务
nmbd————提供旧系统服务(可启动也可以不启动)
smbd————主进程(必须启动)
1.4
打开端口
udp:
137
~
138
tcp:
139
、
45
1.5
更改共享文件夹的上下文
chcon -t samba_share /xx/
1.6
更改布尔值
setenforce
0
(关闭)
//访问不了的話关闭它
setenforce
1
(开启)
1.6
重启服务
service smb restart
1.7
异常排查
1
.配置文件是否开启写权限
2
.文件夹是否开启写权限
3
.更改上下文或者X-linux的布尔值
1.8
创建samba的用户和密码(必须是系统中存在的用户)
samba用户名是系统的用户
samba密码(可以跟系统密码不一致)
添加:
smbpasswd -a 用户名
禁用:
smbpasswd -d 用户名
启用:
smbpasswd -e 用户名
1.9
清理连接缓存
net use * /del(windows cmd命令下执行)
2
.WEB服务器————LAMP(L linux A apache M mysql P php)
2.1
Apache服务器安装
1
.服务安装
yum install httpd\* -y
2
.配置文件
配置文件目录 /etc/httpd/
具体配置项可度娘
3
.打开端口
iptables -I INPUT
1
-p tcp --dport
80
-j ACCEPT
iptables -I INPUT
1
-p udp --dport
80
-j ACCEPT
service iptables save
4
.重启服务
service httpd restart
3
.FTP服务器
3.1
工作模式————相对服务器而言
主动模式:服务器使用
20
端口主动连接客户端
被动模式:客户端使用服务器端的
21
端口连接
3.2
安装
yum install vsftpd -y
3.3
配置文件
配置文件夹 /etc/vsftpd
vim /etc/vsftpd/vsftpd.conf
3.4
打开端口
iptables -I INPUT
1
-p tcp --dport
20
:
21
-j ACCEPT
iptables -I INPUT
1
-p udp --dport
20
:
21
-j ACCEPT
service iptables save
3.5
重启服务
service vsftpd restart