A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

【Linux基础篇】

1.描述Linux运行级别0-6的各自含义
0:关机模式
1:单用户模式<==破解root密码
2:无网络支持的多用户模式
3:有网络支持的多用户模式(文本模式,工作中最常用的模式)
4:保留,未使用
5:有网络支持的X‐windows支持多用户模式(桌面)
6:重新引导系统,即重启

2.描述Linux系统从开机到登陆界面的启动过程
  • 开机BIOS自检,加载硬盘。
  • 读取MBR,MBR引导。
  • grub引导菜单(Boot Loader)。
  • 加载内核kernel。
  • 启动init进程,依据inittab文件设定运行级别
  • init进程,执行rc.sysinit文件。
  • 启动内核模块,执行不同级别的脚本程序。
  • 执行/etc/rc.d/rc.local
  • 启动mingetty,进入系统登陆界面。


3.描述Linux下软链接和硬链接的区别
在Linux系统中,链接分为两种,一种是硬链接(Hard link),另一种称为符号链接或软链接(Symbolic Link)。

  • 默认不带参数的情况下,ln创建的是硬链接,带‐s参数的ln命令创建的是软链接。
  • 硬链接文件与源文件的inode节点号相同,而软链接文件的inode节点号,与源文件不同,
  • ln命令不能对目录创建硬链接,但可以创建软链接。对目录的软链接会经常使用到。
  • 删除软链接文件,对源文件和硬链接文件无任何影响。
  • 删除文件的硬链接文件,对源文件及软链接文件无任何影响。
  • 删除链接文件的源文件,对硬链接文件无影响,会导致其软链接失效(红底白字闪烁状)。
  • 同时删除源文件及其硬链接文件,整个文件才会被真正的删除。
  • 很多硬件设备的快照功能,使用的就是类似硬链接的原理。
  • 软链接可以跨文件系统,硬链接不可以跨文件系统。


4.如果一台办公室内主机无法上网(打不开网站),请给出你的排查步骤?
  • 首先确定物理链路是否联通正常。
  • 查看本机IP,路由,DNS的设置情况是否达标。
  • telnet检查服务器的WEB有没有开启以及防火墙是否阻拦。
  • ping一下网关,进行最基础的检查,通了,表示能够到达服务器。
  • 测试到网关或路由器的通常情况,先测网关,然后再测路由器一级一级的测试。
  • 测试ping公网ip的通常情况(记住几个外部IP),
  • 测试DNS的通畅。ping出对应IP。
  • 通过以上检查后,还在网管的路由器上进行检查。


5.网站打开慢,请给出排查方法,如是数据库慢导致,如何排查并解决,请分析并举例?
  • 可以使用top free 等命令分析系统性能等方面的问题
  • 如是因为数据库的原因造成的,就需要查看慢查询日志去查找并分析问题所在


6.如何选择Linux操作系统版本?
  
一般来讲,桌面用户首选Ubuntu;服务器首选RHEL或CentOS,两者中首选CentOS。
根据具体要求:
  • 安全性要求较高,则选择Debian或者FreeBSD。
  • 需要使用数据库高级服务和电子邮件网络应用的用户可以选择SUSE。
  • 想要新技术新功能功能可以选择Feddora,Feddora是RHEL和CentOS的一个测试版和预发布版本。
  • 根据现有状况,绝大多数互联网公司选择CentOS。现在比较常用的是6系列,现在市场占有大概一半左右。另外的原因是CentOS更侧重服   务器领域,并且无版权约束。


7.生产场景如何对linux系统进行合理规划分区?

分区的根本原则是简单、易用、方便批量管理。根据服务器角色定位建议如下:
  • 单机服务器:如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,看容量要求加盘即可。


8.如何查看当前的Linux服务器的运行级别?

‘who ‐r’ 和 ‘runlevel’命令可以用来查看当前的Linux服务器的运行级别。

9.请简述如何查看Linux的系统版本

uname ‐a

10.查看Linux运行多少时间

uptime

11.某系统管理员需每天做一定的重复工作,请按照下列要求,编制一个解决方案:

  • 在下午4:50删除/abc目录下的全部子目录和全部文件;
  • 从早8:00~下午6:00每小时读取/xyz目录下x1文件中每行第一个域的全部数据加入到/backup目录下的bak01.txt文件内;
  • 每逢星期一下午5:50将/data目录下的所有目录和文件归档并压缩为文件:backup.tar.gz;


crontab ‐e   50 16 * * * rm ‐rf /abc/

* 8‐18/1 * * *  awk '{print $1 > "/backup/bak01.txt"}' /xyz/x1

50 17 * * 1 tar ‐czf backup.tar.gz /data
12.请在3月23号21点18分的时候,重启服务器

crontab ‐e 18 21 23 3 * init 6
13.如何查看Linux的默认网关?

用 “route ‐n” 和 “netstat ‐nr” 命令,我们可以查看默认网关。
除了默认的网关信息,这两个命令还可以显示当前的路由表。

14.如何查看一个文件夹inode节点数有多少?

find / ‐xdev ‐printf '%h\n' | sort | uniq ‐c | sort ‐k 1 ‐n
15.写一个脚本查找最后创建时间是3天前,后缀是*.log的文件并删除

find / ‐name “*.log” ‐ctime +3 ‐exec rm ‐f {} \;
16.如果某文件夹下文件太多无法ls该如何解决?

ls ‐f
17.如何用tcpdump嗅探80端口的访问看看谁最高?

tcpdump ‐i eth0 ‐tnn dst port 80 ‐c 1000 | awk ‐F”.” ‘{print $1″.”$2″.”$3″.”$4″.”}’ | sort |uniq ‐c | sort ‐nr | head‐5
18.如何查看/var/log目录下的文件数?

ls /var/log/ ‐1R | grep “‐” | wc ‐l
19.如何查看Linux系统每个ip的连接数?

netstat ‐n | awk ‘/^tcp/ {print $5}’ | awk ‐F: ‘{print $1}’ | sort | uniq ‐c | sort ‐rn

20.shell下生成32位随机密码

cat /dev/urandom | head ‐1 | md5sum | head ‐c 32 >> /pass

21.统计出apache的access.log中访问量最多的5个ip

cat access.log | awk ‘{print $1}’ | sort | uniq ‐c | sort ‐n ‐r | head ‐5

22.请用多种方式在linux系统中设置环境变量,并指出各种方式的区别。
  • 控制台中设置,不赞成这种方式,因为他只对当前的shell 起作用,换一个shell设置就无效了:
    PATH="PATH":/NEW_PATH (关闭shell Path会还原为原来的path)
  • 修改 /etc/profile 文件,如果你的计算机仅仅作为开发使用时推存使用这种方法,因为所有用户的shell都有权使用这个环境变量,可能会给系统带来安全性问题。这里是针对所有的用户的,所有的shell 在/etc/profile的最下面添加: export PATH="$PATH:/NEW_PATH"
  • 修改bashrc文件,这种方法更为安全,它可以把使用这些环境变量的权限控制到用户级别,这里是针对某一特定的用户,如果你需要给某个用户权限使用这些环境变量,你只需要修改其个人用户主目录下的 .bashrc文件就可以了。 在下面添加: Export PATH="$PATH:/NEW_PATH"


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马