什么是绝对路径,什么是相对路径?
绝对路径:以/(根)开始的为绝对路径
相对路径:以当前目录开始的为绝对路径
常见通佩符的含义?
*:匹配任意字数的任意字符
?:任意的单个字符
[n-m]:匹配从n到m内的单个字符
{n,m}:匹配n或m
linux中 | 的作用?
将前面命令的结果,交给后面的命令去处理,当作后面命令的参数。
简述find命令的格式及用法?
find 范围 条件
常见的查找条件:-type 按照文件类型 ; -name 按照名字 ; -size 按照大小 ; -mtime 按照修改时间
vim编辑器的工作模式及切换?
三种工作模式:输入模式、命令行模式、末行模式。
yum简介:
什么是yum:一种基于c/s结构的软件更新机制,所有软件包集中由一个仓库提供,这个仓库能够分析并自动解决软件包之间的依赖关系。
支持的软件源:本地文件、http、ftp
每部分的作用:[ ] :自定义源的名称,有唯一性、
name :描述
baseurl:yum服务端的url地址
enabled :是否启用此频道
gpgcheck:验证代安装的RPM包
源码包编译的过程介绍?
先tar解包、cd到包的目录下、./configure 配置,默认保存到/usr/bin/目录下,make编译、make install 安装。
linux目录结构的介绍?
/boot :存放linux的内核,引导配置等文件;
/bin :存放最基本的命令,普通用户有权限执行;
/dev :存放设备文件;
/etc :各种配置文件,配置目录
/home :存放普通用户的家目录;
/root :系统超级管理员root的家目录;
/sbin :存放最基本的管理命令,只有管理员才有权限执行
/usr :存放额外安装的程序,源码编译文件,文档等用户资料;
/var :存放日志文件,邮箱目录,进程运行数据等变化文档;
/tmp :存放系统过程中的临时文件。
简述autofs的服务?
作用:触发挂载,它是一个看守进程。如果监测到用户正在试图访问一个没有挂载的文件系统,会自动检测该文件系统,如果存在则会自动挂载;另外他如果检测到某个已经挂在的文件系统在一段时间没有使用,会自动将其卸载,用户一旦运行了autofs后,就不需要手动完成文件系统的挂在和卸载。
autofs的配置文件: /etc/auto.master /etc/auto.misc
简述LVM的含义及特点?
LVM的含义:用来整合磁盘空间和文件系统的一些逻辑机制,将多个逻辑分区或磁盘整合成一个更大的空间,再从这个更大空间去分出不同的逻辑分区,去创建不同的文件系统。
lvm的优势:分区大小可以根据需要去扩大缩减,因此生产系统上的文件系统可以在线改变大小,不会导致系统中断;物理空间有lvm统一组织为卷组,可以方便的加入和移走分区,扩大减小卷组的容量,充分的利用磁盘的空间。文件系统建立在lvm逻辑卷上,可以跨越磁盘,跨越分区,方便实用。
/boot是否可以建在lvm上?为什么?
不可以,因为/boot下存放着引导程序,而linux启动不支持从逻辑卷上读取引导程序。
简述RAID的含义及特点?
RAID:廉价冗余磁盘阵列,通过硬件软技术将多个多个较小低速的磁盘整合成一个大磁盘使用一种存储技术,不仅可以存储数据,还提供了冗余,具有速度快,安全性高的优势。
RAID0:条带模式,用2块及两块以上的磁盘,将数据分散的写入不同的磁盘,并行写入,速率快,提高写的速率。
RAID1:镜像模式,最少2块磁盘,数据分别写入不同的磁盘,每份磁盘数据一样,又容错的功能,提高了读的效率。
RAID5:分布式奇偶校验的独立磁盘模式,结合了RAID0和RAID1的好处,同时避免了他们的缺点,至少由3块以上的磁盘组成。
RHEL6有哪几种运行级别?
默认7种,以init开头
0代表关机、1代表单用户模式、2代表字符界面的多用户模式(不支持网络)、3代表字符界面的完整用户模式、4代表为分配使用、5代表图形的多用户模式、6代表重启
描述RHEL6的引导过程?
加载bios,检查硬件,读取执行开机设备内的第一个MBR,运行grub引导内核,内核启动/sbin/init程序,init系统的初始化,确认默认的运行级别,触发runlevel时间,运行/etc/rc.d/rc,最后执行/etc/rc.d/rc.local,加载终端或x-window接口。
SSH协议简介?
openssh使用的是TCP协议,默认端口是22,主配置文件是/etc/ssh/ssh_config
ssh和telnet的区别?
ssh会把传输过程中的数据加密,支持压缩以提高传输速率;而telnet在Internet上以明文传送口令和数据,安全级别低,容易受到攻击。
linux常见的系统日志文件都有哪些?有什么用途?
/var/log/messages 内核及公共信息日志;
/var/log/cron 周期性计划任务日志
/var/log/dmesg 系统的引导日志
/var/log/miallog 邮件系统的日志
/var/log/secure 记录访问限制相关的日志
常见的linux开机设置文件?
/etc/rc.local(定义开机自动配置任务的文件) 、 /etc/fstab(开机自动挂载文件) 、 /etc/initab(定义开机进入的级别文件)
FTP协议简介?
ftp在传输层使用的是tcp协议,端口21,主目录/var/ftp/
suid,sgid,sticky bit 的作用?
suid:以属主的身份运行程序
sgid:在目录中创建的文件继承父目录的属组
sticky bit:用户只能修改,删除自己的文件。
解释下什么是GPL,GNU,自由软件?
GPL(通用公共许可证):一种授权,任何人有权取得,修改,发布自由软件的权利。
GNU(革奴计划):目标是创建一套完全自由,开放的操作系统
自由软件:是一种不受限制的自由使用,复制,研究,修改和分发的软件。主要许可证有GPL和BSD。
如何选择linux操作系统的版本?
一般来讲,桌面用户首选Ubuntu,服务器首选rhel和centos ,两者首选centos
1.安全性较高的选debian和FreeBSD
2.需要使用数据库高级应用和电子邮件网络,选择SUSE
3.想要新技术新功能的选Fedora,它是Redhat和centos的测试版和预发布版
4.现在绝大部分会选择centos,它侧重服务器领域,没有版权限制。
linux系统的开机启动项?
crond:执行周期计划任务的
iptables:过滤防火墙,有外网时建议开启
network:网卡服务
ssh:用于远程连接的
rsyslog:这是操作系统提供的一种机制,系统的守护进程会使用rsyslog把各种信息收集记录到日志文件中,Centos6之前叫syslog。
sysstat:一个软件包,包含监测系统性能及效率的一组工具,它是提高系统运行效率,安全运行服务的助手。
请描述linux系统优化的12个步骤?
1.登陆系统,不使用root,通过sudo授权,使用普通用户登录;
2.禁止SSH远程,更改默认的远程连接SSH服务,以及禁止root远程登陆
3.时间同步,服务器定时自动更新时间
4.配置yum更新源,从国内下载更新rpm包。
5.关闭selinux及iptables(iptables工作场景如果有wan IP,一般要打开,高并发除外)
6.定时自动清理/var/spool/clientmquene/目录垃圾文件,防止节点被占满,
7.精简开机启动项
8.调整文件描述符数量,进程及文件的打开都会消耗文件描述符
9.linux内核参数优化,/etc/sysctl.conf,执行sysctl -p 重新加载
10.调整字符集,防止乱码的出现
11.锁定关系系统文件(chattr +i /etc/passwd ; /etc/shadow ; /etc/group ; /etc/gshadow ; /etc/inittab处理完这些内容后,在把chattr改名,就更安全了)
12.清空/etc/issue去除系统登陆版本前的屏幕显示
描述linux下软连接和硬连接的区别?
linux中连接分为两种:硬连接和软连接(也叫符号连接)
ln不加参数创建的硬连接,加上-s 代表的是软连接;
硬连接与源文件的i节点相同,软连接的i节点与源文件不同;
ln不可对目录创硬连接,可以对目录创建软连接;
删除软连接,对源文件和硬连接都没有影响;删除硬连接,对软连接和源文件都没有影响;删除源文件,软连接失效,硬连接没有影响;
同时删除源文件和硬连接才会完全删除;
很多硬件设备的快照功能,就是类似硬连接的原理;
软连接可以跨文件系统,硬连接不可以。
生产场景如何合理的规划分区?
分区的根本原则是简单,易用,方便批量管理;
单机服务器:如8G内存,300G硬盘
分区: /boot 100-200M,swap 16G,内存大小8G*2,/ 80G,/var 20G(也可不分),/data 180G(存放web及db数据)
优点:数据盘和系统盘分开,有利于出问题时维护。
RAID方案:视数据及性能要求,一般可采用raid5折中。
②负载均衡器(如LVS等)
分区:/boot 100-200M,swap 内存的1-2倍,/ ,
优点:简单方便,只做转发数据量很少。
RAID方案:数据量小,重要性高,可采用RAID1
③负载均衡下的RS server
分区: /boot 100-200M,swap 内存的1-2倍,/
优点:简单方便,因为有多机,对数据要求低。
RAID方案:数据量大,重要性不高,有性能要求,数据要求低,可采用RAID0
④数据库服务器mysql及oracle如16/32G内存
分区:/boot 100-200M,swap 16G,内存的1倍,/ 100G,/data 剩余(存放db数据)
优点:数据盘和系统盘分开,有利于出问题时维护,及保持数据完整。
RAID方案:视数据及性能要求主库可采取raid10/raid5,从库可采用raid0提高性能(读写分离的情况下。)
⑤存储服务器
分区:/boot 100-200M,swap 内存的1-2倍,/ 100G,/data(存放数据)
优点:此服务器不要分区太多。只做备份,性能要求低。容量要大。
RAID方案:可采取sata盘,raid5
⑥共享存储服务器(如NFS)
分区:/boot 100-200M,swap 内存的1-2倍,/ 100G,/data(存放数据)
优点:此服务器不要分区太多。NFS共享比存储多的要求就是性能要求。
RAID方案:视性能及访问要求可以raid5,raid10,甚至raid0(要有高可用或双写方案)
⑦监控服务器cacti,nagios
分区:/boot 100-200M,swap 内存的1-2倍,/
优点:重要性一般,数据要求也一般。
RAID方案:单盘或双盘raid1即可。三盘就RAID5,看容量要求加盘即可。
描述linux下文件删除的原理?
linux是通过link的数量来控制文件删除的,只有当一个文件不存在link的时候才会被删除。删除一个文件,就是让这个文件没有进程占用,同时link的数量为0.
请简单说出管理用户和组的相关命令及用途?
组的管理命令:
groupadd #添加用户组、groupdel #删除用户组、groupmod #修改用户组 、 groups #显示当前用户所属的用户组,
grpck #检查用户组及密码文件的完整性(/etc/group及/etc/gshadow文件)、
grpconv #通过/etc/group和/etc/gshadow文件内容来同步或创建/etc/gshadow,如果/etc/gshadow文件不存在则创建。
grpunconv #通过/etc/group和/etc/gshadow文件内容来同步或创建/etc/group,删除/etc/gshadow
用户的管理命令:
useradd #创建用户、userdel #删除用户、usermod #修改用户,修改用户的用户名和家目录、passwd #修改用户的密码
pwcov #同步用户从/etc/passwd到/etc/shadow、
pwck#检验用户的配置文件/etc/passwd和/etc/shadow是否和法或完整
id #查看用户的id 、 su #切换用户
简述基础正则表达式grep高级参数的使用?
-v #取反 、 -e #支持扩展的正则表达式 、 -i #忽略大小写 、 -o #输出匹配的内容(是一块不是一行)、
--color=auto #匹配的内容显示颜色、 -n #输出的内容在行首显示行号、^ word :是以word开头
word$ :是以word结尾、^$ :匹配的是空行,不是空格、. :代表任意一个字符、\ :转义字符、
*:代表0个或多个前面的字符,不代表所有、.* :表示匹配所有的字符
[a-z]:表示a-z内的 任意一个字符、[^abc]:这里面的^表示非的意思,表示不包含a,不包含b,不包含c
基础正则表达式sed的高级参数的应用?
-n #不打印输出、-e #允许多项编辑、-p#打印输出、-d#删除
查看当前有哪些用户在线的命令?
who :显示目前已登陆用户信息
w:显示目前系统登陆用户
last:显示目前和过去登入系统的用户信息
whoami:打印与当前生效的用户ID关联的用户名
finger:用户信息查找程序
id:显示当前用户和指定用户的信息和组的信息
描述crontab的作用和用法,以及书写定时任务时的注意点?
设置crontab我们可以让linux系统在特定的时间执行特定的命令,生产环境下可以用来日志分析和生产备份,
crontab [-u user ] {-l 显示文件内容;-e 编辑crontab文件;-i 删除定时文件前确认提示}
格式:*(分) *(时) *(日) *(月) *(周) 命令或脚本
*代表任何时间都执行;
,逗号代表隔开;
-减号代表时间段,表示在这个时间段执行任务;
/n #代表每隔n段时间执行一次;
定时任务结尾时加 >/dev/null 2>&1 #错误和正确输出都定向到/dev/null
> 覆盖重定向 >> 追加重定向 2> 错误输出覆盖重定向 2>> 错误输出追加重定向
< 输入覆盖重定向 << 输入追击重定向
2>&1 就是把标准错误重定向到标准输出 (1> 2>)
简述修改/etc/sudoers配置文件的注意事项?
1.别名的名称可以包含大写字母、数字、下划线,如果是字母,必须大写。别名就是把有相同属性命令的集合;
2.一个别名可以有多个成员,成员之间用(,)逗号隔开,成员必须有效实际存在
3.用户组前面必须加%,成员必须是文件或目录的绝对路径
4.指定切换的用户要用()括起来,如果省略则默认root,ALL代表所有
5.命令的路径要用绝对路径
6.如果不需要密码就运行的命令应该加NOPASSWD
7.禁止某个命令执行在其前面加!
如何实现linux系统集权分治的权限分级精细管理?
1.收集以及制定用户和权限的匹配信息,原则是给最小权限,但又能完成所承担的职责;
2.各个用户组设置对应权限,用什么就给什么,精细到每一条命令上,根据分组情况;
3.创建规划权限分组的用户,添加相关用户组,注意修改/etc/sudoers
4.增加sudo的权限开放,详细设置所开放权限的内容,并选择是否需要密码的相关执行权限开放
5.不建议使用all权限,后面排除,建议使用白名单;
6.测试相关权限是否设置好;
7.编写操作说明及注意事项;
8.调试完毕,邮件通知所有人设置的权限生效,并附带操作说明及注意事项。
描述服务器账户日志审计的5种解决方案?
1.通过变量syslog对全部日志进行审计(信息量太大)
2.sudo配合syslog服务,进行sudo操作日志进行审计(信息量小)
3.在bash解释器嵌入一个监视器,让所有用户使用修改过的bash程序,作为解释器
4.乔治的堡垒机(商业产品)
如果办公室的一台主机无法上网(打不开网站),请给出你的排查步骤?
1.确保物理链路是否正常; 2 .查看本机IP,网关,DNS是否正确;
3.telent检查服务器的WEB是否开启和防火墙是否阻拦
4.ping一下网关,进行最基础的检查,通了,表示能到达服务器
5.测试网关和路由器的通常情况,先测网关,再测路由器,一级一级的测;
6.测试平公网ip的情况; 7.测试DNS的通畅,ping出对应的IP
8.完成以上的检查后,再在网管处进行检查。
描述以下路径的内容是做什么的?
/var/log/message 系统日志文件
/var/log/secure 系统安全日志文件(记录登陆信息文件)
/var/spool/clientmqueue 例行性任务回执邮件存放文件
/proc/interrupts 当前系统中止报告文件
/etc/fstab 开机自动挂在文件
/etc/profile 环境变量存放的文件