面试常见问题-linux

April 12th 2019 | 日常

linux基础* 

  • 如何实现每天 0 点钟重新启动服务器
    crontab -e分 时 日 月 周00 00 * * * /sbin/init 6 * #!/bin/bash chown root /path/to * //shell遍历目录的脚本#!bin/bash tree chmod 777 tree.sh
  • Linux查看日志
       Linux日志文件一般在/var/log目录下,通过查看日志,我们可以看到Linux系统内核和许多程序会产生各种错误信息、警告信息和提示信息,这些信息对于管理员了解系统的运营状态是非常有用的,这些信息都被保存在相应的日志文件中。syslog是一个历史悠久的日志系统,几乎所有的UNIX和Linux操作系统都是采用syslog进行系统日志的管理和配置。在默认的syslog配置下,日志文件通常都保存在“/var/log”目录下。默认配置的syslog日志如下:
    我们可以通过下面几个命令分别进行查看:
    1、cat命令:
         功能:1)显示整个文件。
              2)把文件串连接后传到基本输出,如将几个文件合并为一个文件或输出到屏幕。
    2、more命令:
         以百分比的形式查看日志。  
    3、less命令:
         跟more功能差不多,只不过less支持前后翻阅文件。
    4、head命令:
         功能:从文本文件的头部开始查看,head 命令用于查看一个文本文件的开头部分。
    5、tail命令:
         功能:tail 命令用于显示文本文件的末尾几行。
  • linux杀死一个进程命令是什么
        首先,我们得知道要杀死的进程的进程ID,可以通过ps -ef | grep 进程名称 查到当前运行的进程ID,然后通过kill命令杀死进程 ,如 kill  -9  3329 表示强制杀死进程,当然还有不同的等级,取决于中间的数字。
  • Linux基本命令
    目录结构
    arch 显示机器的处理器架构(1) 
    uname -m 显示机器的处理器架构(2) 
    uname -r 显示正在使用的内核版本 
    dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) 
    hdparm -i /dev/hda 罗列一个磁盘的架构特性 
    hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 
    cat /porc/cpuinfo 显示CPU info的信息 
    cat /porc/interrupts 显示中断 
    cat /porc/meminfo 校验内存使用 
    cat /porc/swaps 显示哪些swap被使用 
    cat /porc/verion 显示内核的版本 
    cat /porc/net/dev 显示网络适配器及统计 
    cat /porc/mounts 显示已加载的文件系统 
    date 显示系统日期 
    cal 2007 显示2007年的日历表 
    date 041217002007.00 设置日期和时间 -月日时分年.秒 
    clock -w 将时间修改保存到 BIOS 
    文件搜索 
    find / -name file1 从 '/'开始进入根文件系统搜索文件和目录 
    locate \*.ps 寻找以 '.ps'结尾的文件 -先运行'updatedb'命令 
    whereis halt 显示一个二进制文件、源码或man的位置 
    which halt 显示一个二进制文件或可执行文件的完整路径 
     
    挂载一个文件系统 
    mount /dev/hda2 /mnt/hda2 挂载一个叫做hda2的盘- 确定目录'/ mnt/hda2' 已经存在 
    umount /dev/hda2 卸载一个叫做hda2的盘- 先从挂载点'/ mnt/hda2' 退出 
    追加命令
    1,linux里把文件/etc/aaa中的内容追加到/usr/bbb中的内容的后面
      sudo cat /etc/aaa >>/usr/bbb
    2,更改/etc/index.html的文件所有者为apache,文件群组为apache
      sudo chmod apache:apache  /etc/index.html
    3,更改/etc/index.html的所有者权限为读取、写入、执行。群组权限为读取。其他权限为读取
      sudo chmod 744 /etc/index.html
    4,删除/etc下名为hello的文件
      sudo rm /etc/index.html
    当然,如果你是以orot用户执行以上操作,可以去掉前边的sudo!
     
    df -hl 查看磁盘剩余空间
    df -h 查看每个根路径的分区大小
    du -sh [目录名] 返回该目录的大小
    du -sm [文件夹] 返回该文件夹总M数
    关机 (系统的关机、重启以及登出) 
    shutdown -h now 关闭系统(1) 
    init 0 关闭系统(2) 
    telinit 0 关闭系统(3) 
    shutdown -h hour:minutes & 按预定时间关闭系统 
    shutdown -c 取消按预定时间关闭系统 
    shutdown -r now 重启(1) 
    reboot 重启(2) 
    logout 注销
    文件和目录 
    pwd 显示工作路径 
    ls 查看目录中的文件 
    ls -F 查看目录中的文件 
    ls -l 显示文件和目录的详细资料 
    ls -a 显示隐藏文件 
    ls *[0-9]* 显示包含数字的文件名和目录名 
    tree 显示文件和目录由根目录开始的树形结构(1) 
    lstree 显示文件和目录由根目录开始的树形结构(2) 
    mkdir dir1 创建一个叫做 'dir1'的目录' 
    磁盘空间 
    df -h 显示已经挂载的分区列表 
    ls -lSr |more 以尺寸大小排列文件和目录 
    du -sh dir1 估算目录 'dir1'已经使用的磁盘空间' 
    下载、解压
    1)对于.tar结尾的文件 
      tar -xf all.tar 
    2)对于.gz结尾的文件 
      gzip -d all.gz 
      gunzip all.gz 
    # zip all.zip *.jpg 
      这条命令是将所有.jpg的文件压缩成一个zip包 
    # unzip all.zip 
      这条命令是将all.zip中的所有文件解压出来
    下载命令
    wget + 空格 +要下载文件的url路径
    =====================================
    Shell 脚本:
    必须以  #!/bin/sh  开头
    简单例子:判断这个目录下有没有文件(File)
    #!/bin/bash
    Num=`ls -al /opt |grep "^-"|wc -l `
    if [ $Num != 0 ]
     then echo "/opt has $Num files"
    else
     echo "/opt has none file"
    fi
    ls -al /opt |grep "^-"|wc -l  这个命令能够统计文件个数 为0就是没有文件 非零就是有文件
     
  •  Linux 下建立压缩包,解压缩包的命令 
    Tar -cvf demo.tar demo Tar -xcf demo.tar  
    Gzip demo  guzip demo.gz  gzip -d demo.gz
    Bzip2 -k demo. Bunzip demo.bz2
    Zip -r demo unzip demo.zip
  • Linux 下建立压缩包,解压缩包的命令。
    1、压缩:gzip 、tar -cvfz、zip、bzip2
    2、解压:gunzip、tar -zxvf、unzip、bunzip2
  • 一个字节占多少bit ? 一个IPv4地址占几个字节? 一个IPv6地址呢?
    一个字节占8bit,一个IPV4占用4字节,一个IPV6占用16字节。
  • ADSL宽带连接, 理想情况下, 最大下载速度是多少KB/s  ?
    256KB/s
  • windows平台, Apache Http Server启动失败, 排错思路是什么?
    检查apache使用的80端口是否被占用,如果被占用,先停止占用80端口的服务,然后启动apache服务器
  • 怎么找到数据库的配置文件路径?
    在数据库安装目录下,my.ini
    linux: rpm  -qc mysql
  • 简述Linux下安装PHP的过程?
    安装软件之前先安装编译工具gcc、gcc-c++
    拷贝源码包,解包解压缩
    Cd /lamp/php进入php目录
    ./configure –prefix=/usr/local/php –with-config-file-path=/usr/local/php/etc指定安装目录和配置文件目录
    Make 编译
    Make install安装
  • 简述Linux下安装Mysql的过程?
    Groupadd mysql 添加一个用户组mysql
    Useradd -g mysql mysql 添加一个mysql用户指定分组为mysql
    Cd /lamp/mysql 进入mysql目录
    ./configure –prefix=/usr/local/mysql/ –with-extra-charsets=all
    Make
    Make all
  • 简述Linux下安装apache的过程?
    答:
    Cd /lamp/httpd 进去apache软件目录
    ./configure –prefix=/usr/local/apache2/ –sysconfdir=/etc/httpd/ –with-included-apr
    Make
    Make all
  • 请写出5个常用的unix操作命令。
    1、Ls -l
    2、tar -zxvf
    3、Touch
    4、Cat
    5、Mkdir
    6、rm
  • 请写出以下5个UNIX系统配置文件/服务的作用。
    /etc/passwd /etc/hosts /etc/fstab crontab sshd
    1、/etc/passwd :用户信息文件,其中包含用户名、用户是否有密码、用户ID及用户所属组
    2、/etc/hosts:主机名数据库,包IP地址、主机名或域名、别名等信息,在此文件中添加记录可绕过DNS
    3、/etc/fstab  保存了系统所有分区信息的配置文件。
    4、Crontab 计划任务命令
    5、Sshd 远程连接管理命令
  • Linux的目录进行遍历,编写shell脚本
    #!/bin/bash
    tree