zoukankan      html  css  js  c++  java
  • Linux基础

    Linux基础

    1.描述Linux运行级别0-6的各自含义

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

    2.描述Linux系统从开机到登陆界面的启动过程

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

    3.描述Linux下软链接和硬链接的区别

    在Linux系统中,链接分为两种,一种是硬链接(Hard link),另一种称为符号链接或软链接(Symbolic Link)。 
    1.默认不带参数的情况下,ln创建的是硬链接,带‐s参数的ln命令创建的是软链接。 
    2.硬链接文件与源文件的inode节点号相同,而软链接文件的inode节点号,与源文件不同, 
    3.ln命令不能对目录创建硬链接,但可以创建软链接。对目录的软链接会经常使用到。 
    4.删除软链接文件,对源文件和硬链接文件无任何影响。 
    5.删除文件的硬链接文件,对源文件及软链接文件无任何影响。 
    6.删除链接文件的源文件,对硬链接文件无影响,会导致其软链接失效(红底白字闪烁状)。 
    7.同时删除源文件及其硬链接文件,整个文件才会被真正的删除。 
    8.很多硬件设备的快照功能,使用的就是类似硬链接的原理。 
    9.软链接可以跨文件系统,硬链接不可以跨文件系统。 
    

    4.如果一台办公室内主机无法上网(打不开网站),请给出你的排查步骤?

    1.首先确定物理链路是否联通正常。 
    2.查看本机IP,路由,DNS的设置情况是否达标。 
    3.telnet检查服务器的WEB有没有开启以及防火墙是否阻拦。 
    4.ping一下网关,进行最基础的检查,通了,表示能够到达服务器。 
    5.测试到网关或路由器的通常情况,先测网关,然后再测路由器一级一级的测试。 
    6.测试ping公网ip的通常情况(记住几个外部IP), 
    7.测试DNS的通畅。ping出对应IP。 
    8.通过以上检查后,还在网管的路由器上进行检查。 
    

    5.网站打开慢,请给出排查方法,如是数据库慢导致,如何排查并解决,请分析并举例?

    1、可以使用top free 等命令分析系统性能等方面的问题 
    2、如是因为数据库的原因造成的,就需要查看慢查询日志去查找并分析问题所在 
    

    6.如何选择Linux操作系统版本?

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

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

    分区的根本原则是简单、易用、方便批量管理。根据服务器角色定位建议如下: 
    
    1.单机服务器:如8G内存,300G硬盘 
    分区:/boot 100‐200M,swap 16G,内存大小8G*2,/ 80G,/var 20G(也可不分),/data 180G(存放web及db数据)
    优点:数据盘和系统盘分开,有利于出问题时维护。 
    RAID方案:视数据及性能要求,一般可采用raid5折中。 
    
    2.负载均衡器(如LVS等) 
    分区:/boot 100‐200M,swap 内存的1‐2倍,/ , 
    优点:简单方便,只做转发数据量很少。 
    RAID方案:数据量小,重要性高,可采用RAID1 
    
    3.负载均衡下的RS server 
    分区:/boot 100‐200M,swap 内存的1‐2倍,/ 
    优点:简单方便,因为有多机,对数据要求低。 
    RAID方案:数据量大,重要性不高,有性能要求,数据要求低,可采用RAID0 
    
    4.数据库服务器mysql及oracle如16/32G内存 
    分区:/boot 100‐200M,swap 16G,内存的1倍,/ 100G,/data 剩余(存放db数据) 
    优点:数据盘和系统盘分开,有利于出问题时维护,及保持数据完整。 
    RAID方案:视数据及性能要求主库可采取raid10/raid5,从库可采用raid0提高性能(读写分离的情况下。) 
    
    5.存储服务器 
    分区:/boot 100‐200M,swap 内存的1‐2倍,/ 100G,/data(存放数据) 
    优点:此服务器不要分区太多。只做备份,性能要求低。容量要大。 
    RAID方案:可采取sata盘,raid5 
    
    6.共享存储服务器(如NFS) 
    分区:/boot 100‐200M,swap 内存的1‐2倍,/ 100G,/data(存放数据) 
    优点:此服务器不要分区太多。NFS共享比存储多的要求就是性能要求。 
    RAID方案:视性能及访问要求可以raid5,raid10,甚至raid0(要有高可用或双写方案) 
    
    7.监控服务器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.某系统管理员需每天做一定的重复工作,请按照下列要求,编制一个解决方案:

    (1)在下午4:50删除/abc目录下的全部子目录和全部文件; 
    (2)从早8:00~下午6:00每小时读取/xyz目录下x1文件中每行第一个域的全部数据加入到/backup目录下的bak01.txt文件内; 
    (3)每逢星期一下午5:50将/data目录下的所有目录和文件归档并压缩为文件:backup.tar.gz; 
    (1) crontab ‐e 50 16 * * * rm ‐rf /abc/ 
    (2) * 8‐18/1 * * * awk '{print $1 > "/backup/bak01.txt"}' /xyz/x1 
    (3) 50 17 * * 1 tar ‐czf backup.tar.gz /data 
    

    12.请在3232118分的时候,重启服务器

    crontab ‐e 18 21 23 3 * init 6 
    

    13.如何查看Linux的默认网关?

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

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

    find / ‐xdev ‐printf '%h
    ' | 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.统计出apacheaccess.log中访问量最多的5ip

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

    22.请用多种方式在linux系统中设置环境变量,并指出各种方式的区别。

    1、控制台中设置,不赞成这种方式,因为他只对当前的shell 起作用,换一个shell设置就无效了: 
    PATH="PATH":/NEW_PATH (关闭shell Path会还原为原来的path) 
    
    2、修改 /etc/profile 文件,如果你的计算机仅仅作为开发使用时推存使用这种方法,因为所有用户的shell都有权使用这个环境变量,可能会给系统带来安全性问题。这里是针对所有的用户的,所有的shell 在/etc/profile的最下面添 加:
    export PATH="$PATH:/NEW_PATH" 
    
    3、修改bashrc文件,这种方法更为安全,它可以把使用这些环境变量的权限控制到用户级别,这里是针对某一特定的用户,如果你需要给某个用户权限使用这些环境变量,你只需要修改其个人用户主目录下的 .bashrc文件就可以了。 在下面添加: 
    Export PATH="$PATH:/NEW_PATH"
    
  • 相关阅读:
    Mybatis主配置文件常见使用讲解
    Mybatis导入原生配置文件
    分页查询时,使用cookie保存上次的查询条件。jQuery实现方法以及中间遇到的坑
    jQuery实现checkbox即点即改,批量计数,以及中间遇到的坑
    ()IT 职场经验)一位10年Java工作经验的架构师的经验分享,感觉很受用。
    SpringMVC的Controller
    Spring MVC执行原理和基于Java的配置过程
    集成学习综述笔记
    generalization error
    Failed to install 'unknown package' from GitHub: schannel: failed to receive handshake, SSL/TLS connection failed
  • 原文地址:https://www.cnblogs.com/lishisan/p/11218480.html
Copyright © 2011-2022 走看看