1.系统管理1
* 版本查询:http://distrowatch.com/
* Red Hat系列:
官方版:Red Hat Enterprise Linux 5/6/7 http://www.redhat.com/
先行测试版:Fedora Core 20 http://fedoraproject.org/
民间版(现已被红帽收编):CentOS 5/6
* 不同界面、控制台切换
图形界面 --> 字符终端:Ctrl+Alt+Fn
字符终端 --> 字符终端:Alt+Fn
字符终端 --> 图形界面:Alt+F1
* 常见配置文件及命令
/etc/sysconfig/network-scripts/ifcfg-eth0 //网卡
/etc/resolv.conf //DNS配置文件
/etc/sysconfig/network //主机名默认网关
/etc/hosts //本地主机名映射文件
/etc/sysconfig/network-scripts/route-eth1 //静态路由设置
/etc/udev/rules.d/70-persistent-net.rules //udev规则文件
/etc/sysconfig/selinux
/etc/sysctl.conf
/etc/fstab //开机自动挂载文件
/etc/default/useradd //新用户的默认设置
/etc/login.defs //新用户的默认设置
/etc/sysconfig/i18n //系统默认语言配置
alias cq="shutdown -r+15" //临时别名设置
du -sh //[目录或文件大小]
df -h //查看磁盘文件大小
wc -l //统计行数
tune2fs -l /dev/sda1 | grep acl //查看一个分区是否支持ACL权限
fdisk -l //查看当前磁盘分区
service //起服务
/etc/init.d/服务名 //起服务
chkconfig --list 服务名 //查看自起状态
chkconfig [--level 2345] 服务名 on|off //随机自起设置
netstat -anptu //查看网络连接状况
arp -an //查看 arp缓存表
top //查看进程
ps aux //查看进程
useradd
-u:设置 UID 标记号
-d:指定宿主目录,缺省为 /home/用户名
-g:指定所属的基本组
-G:指定所属的附加组
-e:指定账号失效时间
-M:不为用户建立并初始化宿主目录
-s:指定用户的登录Shell
passwd
-d:清空用户的密码,使之无需密码即可登录
-l:锁定用户账号 【在shadow中的对应密码串前加两个叹号 !! 】
-S:查看用户账号的状态(是否被锁定)
-u:解锁用户账号 【解除锁定时添加的两个叹号 !】
--stdin:从标准输入(比如管道)取密码
usermod
-l:更改用户的登录名
-L:锁定用户账户 【在shadow中的对应密码串前加一个叹号 ! 】
-U:解锁用户账户 【解除锁定时添加的一个叹号 !】
-u、-d、-e、-g、-G、-s:与useradd命令相同
chage
-l:列出密码有效期信息
-E:指定账号过期时间,YYYY-MM-DD
-I:指定当密码失效后多少天锁定账号
-m:指定密码的最小天数
-M:指定密码的最大天数
userdel 用户名 //只删用户账号(不宿主目录邮箱文件等数据)
userdel -r 用户名 //删除用户账号及数据
gpasswd
-A:定义组管理员列表
-a:添加组成员,每次只能加一个
-d: 删除组成员,每次只能删一个
-M:定义组成员用户列表,可设置多个
grep -i(忽略大小写) -v(反转查找) -c(输出匹配结果数量)
^...:表示以 ... 开头
...$:表示以 ... 结尾
^$:表示空行
tar
-c:创建 .tar 格式的归档文件
-x:解开.tar格式的归档文件
-C:解包时指定释放的目标文件夹
-f:表示使用归档文件
-z:调用 gzip 执行压缩或解压缩
-j:调用 bzip2 执行压缩或解压缩
-J:调用 xz 执行压缩或unxz解压缩
-v:输出详细信息
-t:列表查看包内的文件
which 专门用于查找外部命令,程序文件所在位置
eg: # which scp
/usr/bin/scp
# rpm -qf /usr/bin/scp
openssh-clients-5.3p1-111.el6.x86_64
find [路径] [条件] (默认不指定路径,就是当前路径)
[路径] [条件] -exec 命令 {} \ ; 代表find额外命令开始到结束({} 替代每一个查找结果)
-name 名字
-a (多个条件同时满足)
-o (多个条件满足一条即可)
-size 大小(单位c表示byte,k表示1024bytes)
eg: find /boot -type l -size +2048k -exec ls -l{} \;
find /var -mtime+4 //+4代表大于等于5天前的文件名,-4代表小于等于4天内的文件名,4则是代表4~5那一天的文件名
* 用户的初始化配置文件
配置文件来源:新建用户时,根据 /etc/skel 模板目录复制
主要的初始配置文件:
~/.bashrc:每次进入新的Bash环境时执行,多用来设置别名
~/.bash_profile:每次登录时执行,多用来设置环境变量
~/.bash_logout:每次退出登录时执行
* 全局设置(对所有用户有效):
/etc/bashrc、/etc/profile
* 快速编辑命令行
辅助操作:Tab键自动补齐、反斜杠 \ 强制换行
快捷键:
Ctrl + u:清空至行首
Ctrl + k:清空至行尾
Ctrl + w:删除前一个单词
Ctrl + l:清空整个屏幕
Ctrl + c:废弃当前编辑的命令行
* Shell环境中的通配符:任意字符 * , 单个字符 ? , 连续多个字符(任何一个)[a-z] , 不连续的多个字符串(全部) {a,min,xy}
* vim : PgUp和PgDn翻页、Home键(或^)、End键(或$)、到第一行(1G或gg)、到最后一行(G)
复制1行(yy)、复制3行(3yy) 、 粘贴到当前行之后(小写p)、粘贴到当前行之后(大写P)
删除单个字符(x或Delete键)、删除到行首(d^)、删除到行尾(d$)、删除1行(dd)、删除3行(3dd)
搜索(/word)切换结果(n、N)、撤销最近一次操作(小写u)、撤销当前行所有修改(大写U)、恢复前一次撤销(Ctrl + r,即重做)
保存(:w)、退出(:q)、另存为(:w /路径/文件)、读入其他文件(:r /路径/文件)
替换当前行第一个old ( :s/old/new )、替换当前行所有old ( :s/old/new/g )、替换第4~9行所有old ( :4,9 s/old/new/g )、 替换文件内所有old (:% s/old/new/g )
显示/不显示行号(:set nu、:set nonu)、启用/关闭语法高亮(:syntax on、:syntax off)
开启/关闭查询结果高亮显示(:set hlsearch、set nohlsearch)、启用/关闭自动缩进(:set ai、:set noai)
vim编辑器相关文件:
~/.vimrc, 保存用户的vim编辑器设置
~/.viminfo, 记录用户的历史操作
.filename.swp,编辑过程中的缓存文件
* rpm软件包管理
软件资源站:http://rpmfind.net/、http://www.centos.org/
rpm -qa(列出已安装的所有RPM软件)、 rpm -q 软件名...(查询软件是否安装)、
rpm -qi 软件名...(查询软件的描述信息)、rpm -ql 软件名...(查询软件的完整安装清单)
rpm -qf 文件或目录的绝对路径...(查询某个文件或目录属于哪个RPM软件)
rpm -qpi /路径/软件名-版本.. .. .(查询软件包的描述信息)
rpm -qpl /路径/软件名-版本.. .. .(查询软件的完整安装清单)
rpm -ivh /路径/软件名-版本.. .. . (全新安装RPM软件包)
rpm -Uvh /路径/软件名-版本.. .. . (升级若原本未装,则全新安装)
rpm -Fvh /路径/软件名-版本.. .. . (若原本未装,则放弃安装)
** 安装/升级软件包时,可通过 --force 强制覆盖或降级
** 安装或卸载软件时,可通过 --nodeps 忽略依赖关系
** 安装或卸载软件时,可一次提供相互依赖的所有关联包,rpm会自动决定处理顺序
* yum 配置文件实例
[root@svr5 ~]# vim /etc/yum.repos.d/server.repo
[rhel6-server]
name=Red HatEnterprise Linux 6.5 Server
baseurl=file:///myiso
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
使用yum命令管理软件包:yum list(列出所有软件)、 yum list installed(仅列出已安装的软件)
yum list available(仅列出可用的软件)、 yum clean all(清理yum缓存数据)
yum search 关键词(按关键词搜索可用的软件)、yum provides文件路径(查找能提供指定文件的可用软件)
安装图形环境: yum -y groupinstall "Desktop""Fonts" "X Window System"
安装开发环境: yum -y groupinstall "DevelopmentTools"
* 源码包编译安装
环境:安装’开发工具‘包组或者yum -y install gcc gcc-c++ make
步骤: 1)解包 tar 【释放源代码至指定目录】
2)配置 【指定安装目录/功能模块等选项】
./configure --prefix=安装目录
** 查看配置帮助 ./configure --help | less
** 此步骤成功后会生成 Makefile 文件
3)编译 make 【生成可执行的二进制程序文件】
4)安装 make install 【将编译好的文件复制到预先配置的安装目录】
** 编译+安装可合写成 make && make install
* yum包清单生成
# yum -y installcreaterepo
# createrepo 清单路径
# vim/etc/yum.repo/*.repo
# yum repolist
2.系统管理2
* ACL访问控制
设置ACL策略:
setfacl -m u:用户名:权限 文件或目录...
setfacl -m g:组名:权限 文件或目录...
设置可继承的ACL策略:
setfacl -d -m u:用户名:权限 目录...
setfacl -d -m g:组名:权限 目录...
清除所有ACL策略:
setfacl -b 文件或目录..
清除指定用户的ACL策略:
setfacl -x u:用户名 文件或目录...
setfacl -x g:组名文件或目录...
* 磁盘分区及格式化
概念: 每个扇区(sector),512字节
每个磁道(track)划分为63个扇区
逻辑磁头(盘面)数设为255个
-- > 一个柱面(cylinder)的大小 = 255 x 63 x 512 字节 = 8MB
-- > 硬盘或分区的容量 = 柱面大小 x 柱面数
两种硬盘分区方案:
MSDOS —— Master Boot Record —— 第1个扇区(512)、最多4个主分区、最大磁盘2.2TB
GPT —— GUID Partition Table 最大支持18EB磁盘
分区工具: fdisk 【只支持MSDOS分区布局】
parted 【支持MSDOS、GPT分区布局】
parted /dev/sdb print //查看分区表
mkpart 【primary|logical|extended】 【ext4|vfat】开始 结束 //新增分区
partx -a /dev/sda //刷新所有分区
mkfs-t 文件类型 /dev/xdyz //格式化分区
swap交换分区
mkswap /dev/xdyz 把/dev/xdyz格式化成swap类型分区
swapon /dev/xdyz 启用/dev/xdyz到swap分区中
swapoff /dev/xdyz 停用/dev/xdyz
swapon -s 查看交换分区
free -m 查看swap分区与内存的使用情况
利用文件创建SWAP分区
# dd if=/dev/zeroof=/tmp/swap.db bs=1M count=2048
# ls -lh /tmp/swap.db
# mkswap /tmp/swap.db
# swapon /tmp/swap.db
# swapon -s
* 文件系统管理
# e2label /dev/sdb1"disk2part1" 设置卷标
# e2label /dev/sdb1 查看卷标
# e2label /dev/sdb1"" 删除卷标
# blkid 查看块设备属性(UUID)
# fuser -vm 挂载点 查看挂载点谁在使用
# fuser -km 挂载点 终止挂载点的使用
开机自动挂载文件(/etc/fstab)
设备文件|卷标名|UUID 挂载点 类型 挂载参数 备份标记 检测顺序
/dev/sdb5 swap swap defaults 0 0
autofs触发挂载
/etc/auto.master autofs主配置文件
/etc/auto.xxx 挂载配置文件
* LVM逻辑卷管理
工具总览 管理物理卷:pvscan、pvcreate、pvdisplay、pvremove
管理卷组:vgscan、vgcreate、vgdisplay、vgremove、vgextend、vgreduce
管理逻辑卷:lvscan、lvcreate、lvdisplay、lvremove、lvextend、lvreduce
图形化管理工具: system-config-lvm
基本使用过程
1)建立物理卷
fdisk 分区 ... 【类型 8e】
partprobe 磁盘设备 【更新分区表】
pvcreate 设备名
2)整合为卷组
vgcreate 卷组名 物理卷...
或者
vgcreate -s pe大小 卷组名 物理卷...
3)划分逻辑卷
lvcreate -L 大小 -n 逻辑卷名 卷组名
lvcreate -l PE个数 -n 逻辑卷名 卷组名
逻辑卷的扩容
如果卷组空间不足,需要先扩展卷组:
vgextend 现有卷组名 要添加的物理卷...
扩展现有的逻辑卷:
vextend -L +大小 /dev/卷组名/逻辑卷名
或者
lvextend -l +PE个数 /dev/卷组名/逻辑卷名
识别调整后的逻辑卷容量
resize2fs /dev/卷组名/逻辑卷名
df -hT 挂载点
* 计划任务管理
crontab -e [ -u username] 编辑
-l 查看
-r 删除
格式:
分 时 日 月 周 命令
* 表示该范围内的任意时间
, 表示间隔的多个不连续时间点
- 表示一个连续的时间范围
/ 指定间隔的时间频率
at任务控制 /etc/at.allow、/etc/at.deny
* Linux引导过程
加电自检-->MBR扇区-->GRUB配置(/boot/grub/grub.conf)
-->root (hd0,0)
kernel (/boot/vmlinuz-....) --> /sbin/init (PID恒为1)
initrd (/boot/initrd-....img)
--> /etc/inittab:
/etc/rc.d/rc.sysinit
/etc/rc.d/rc 级别 (initdefault默认级别)(0、1、3、5、6)
--> /etc/rcX.d/快捷方式 (S75服务名、K24服务名)
--> /etc/rc.d/init.d/服务脚本
-->S99local --> /etc/rc.local (自定开机任务)
mingetty tty1-tty6 -->
--> login --> 验证用户配置(passwd、shadow)
--> /bin/bash --> 用户正常执行命令
** 如果进入运行级别5,则继续 --> GNOME桌面环境 --> 登录窗口
* 主要的启动配置文件
/etc/inittab:配置init程序的引导过程
/etc/rc.d/rc.sysinit:由init调用执行,设置网络/时钟、加载文件系统等一系列工作
/etc/rc.d/rc:由init调用执行,根据运行级别参数,加载/终止相应服务
/etc/rc.d/rc.local:由rc脚本调用执行,存放用户自定义的开机后自动执行的命令
/etc/rc.d/init.d/*:各系统服务的可执行脚本程序
* 进程管理
查看所有进程的静态快照:ps aux、ps -elf // 常见的STAT状态指示:R 运行中、S 休眠状态、Z 僵死状态
查看进程的动态排名:top、top -d5
查看进程树:pstree、pstree PID、pstree 用户名
常用命令选项
-a:显示完整的命令行
-u:列出各进程所属的用户名
-p:列出对应的PID号
查看后台任务列表:jobs 、jobs -l
将后台任务恢复到前台运行:fg、fg 任务编号
按PID杀死进程:kill PID、kill -9 PID
按进程名杀死进程:killall 进程名
* 网络
测试域名解析
格式:host 目标主机 [DNS服务器]
nslookup 目标主机 [DNS服务器]
** 必须有可用的DNS服务器,否则将无法解析
** 若无法解析域名,就不能以域名的方式访问目标站点
** 若测试时未指定DNS服务器地址,则使用 /etc/resolv.conf中设置的地址
跟踪路由过程
格式:tracert 目标地址
traceroute 目标地址
mtr 目标地址 【集成ping和tracert优势】
路由
route add default gw IP地址
route del default gw IP地址
route add -net 目标网段 gw IP地址
route del -net 目标网段
* 系统日志管理
内核及系统日志(由系统服务rsyslog统一进行管理)
/var/log/messages 内核及公共消息日志
/var/log/cron 计划任务日志
/var/log/dmesg 系统引导日志
/var/log/maillog 邮件系统日志
/var/log/secure 记录与访问限制相关日志
用户日志(记录系统用户登录及退出系统的相关信息)
/var/log/lastlog 最近的用户登录事件
/var/log/wtmp 用户登录、注销及系统开关机
/var/log/btmp 失败的用户登陆事件
/var/run/utmp 当前登录的每个用户详
程序日志(由各种应用程序独立管理的日志文件,记录格式不统一)
w 查看当前登陆的用户
who 比w更加简洁
last 最近系统登陆情况
lastb 最近系统登陆失败的情况
rsyslog管理日志(/etc/rsyslog.conf)
服务类别.日志级别 日志消息发送位置 //格式
logrotate日志轮转(/etc/logrotate.conf)
weekly 轮转频率,默认每周
rotate 4 保留4个轮转备份
create 执行轮转后创建新文件
#compress 是否压缩日志
include/etc/logrotate.d 包含此目录下的配置
/var/log/wtmp { 启用轮转的日志文件
monthly 每月轮转一次
missingok 丢失不提示
notifempty 如果为空则不轮转
minsize 1M 日志达到1MB才开始轮转
create 0664 root utmp 建新文件并设权限
rotate 1 只保留一个备份
}