文章目录
  1. 1. 上部
  2. 2. 下部
  3. 3. 面试题
  4. 4. mkinitrd -f -v /boot/initrd-$(uname -r).img $(uname -r)
  5. 5. dracut -f
  6. 6. dracut -f initramfs-2.x.xx-xx.el6.x86_64.img 2.x.xx-xx.el6.x86_64
  7. 7. diff -Naur old_file new_file > diff_file
  8. 8. patch < diff_file
  9. 9. rpm -qf /etc/fstab
  10. 10. find /usr -size +10M
  11. 11. find /home -mtime +120
  12. 12. find /var ! -atime -90
  13. 13. find / -name core -exec rm {} \;

上部

  1. 如何更改linux主机名?
    编辑配置文件 /etc/sysconfig/network
    更改HOSTSNAME,保存退出后重启生效;

    1
    2
    3
    [root@yonglinux ~]# cat /etc/sysconfig/network
    NETWORKING=yes
    HOSTNAME=yonglinux.com
  2. 登录linux,我们除了使用密码验证,还可以使用哪种方式?简述配置过程。
    使用密钥加密登录,客户端生成公钥和私钥,客户端保存私钥,公钥复制到远程linux主机,登录时使用密钥加密登录;

    在linux主机执行下面的操作:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    mkdir /root/.ssh
    chmod 700 /root/.ssh
    vi /root/.ssh/authorized_keys 粘贴复制的公钥,保存退出;
    chmod 600 /root/.ssh/authorized_keys
    vi /etc/selinux/config 编辑selinux防火墙配置
    更改 SELINUX=disabled 永久关闭selinux
    iptables -F 清空防火墙规则;
    /etc/init.d/iptables save 保存防火墙设置;
    客户端使用密钥登录;
  3. 如何给grub加密码(明文、密文),密文加密又分成哪几种?
    明文加密 vi /etc/grub.conf
    hiddenmenu下增加一行
    password=123456
    保存退出,重启系统进入菜单选择,按p输入密码才可以编辑;
    密文加密分md5加密和sha加密
    md5加密命令为:grub-md5-crypt
    输入密码,生成一串加密后的密码,复制密码
    vi /etc/grub.conf
    password --md5 粘贴密码
    保存退出,重启系统进入菜单,按p输入密码;
    sha加密命令:grub-crypt --sha-256
    输入密码,生成一串密码,复制密码
    编辑/etc/grub.conf
    password --encrypted 粘贴密码,
    保存退出,重启进入系统,按p输入密码;

  4. 如何用yum安装/删除一个软件包?如何查看某个软件包是否已经安装
    安装:yum install -y tree
    删除:yum remove -y tree
    查看:rpm -qa | grep “包名” 或 rpm -q 包名
  5. 如何查看系统版本?(3个方法)

    1
    2
    3
    cat /etc/CentOS-release
    cat /etc/issue
    rpm -qa | grep release
  6. find 找出 当前目录下的 目录和普通文件? 找出当前目录下10天没有改变,大小大于4K的普通文件或目录

    1
    2
    3
    find ./ -type d  -o -type f
    find ./ -type d -o -type f -size +4k ! -mtime -10
    -
  7. 在当前目录下创建一个名字为1的目录 的命令? 创建级联目录 ./2/3/的命令? 一条命令创建级联目录 ./1/2/3和./1/2/4?

    1
    2
    3
    mkdir ./1
    mkdir -p ./2/3
    mkdir -p ./1/2/{3,4}
  8. cp一个目录中的文件需要什么权限,mv呢?touch呢?rm呢?
    cp需要有目录的x权限,mv需要wx权限,touch需要wx权限,rm需要有wx权限;

  9. 用cat如何向文件里重定向字符串
    第一种方法:

    1
    2
    3
    4
    5
    [user1@localhost tmp]$ cat >>1.txt
    000000000000
    111111111111
    222222222222
    最后按ctrl + d

    第二种方法:

    1
    2
    3
    4
    cat >>1.txt<
    > 000000000000
    > qqqqqqqqqqqqq
    >EOF(这个结束)
  10. 建立一个公共目录/opt/public,要求每个用户都可以创建文件和目录,但只能自己本人和root可以删除;

    1
    2
    mkdir /opt/public
    chmod 1777 /opt/public

下部

  1. 如何查看当前用户的家目录是什么?

    1
    echo $HOME
  2. 如果设置 umask 为 001 , 那么用户默认创建的目录和文件的权限是什么样子的?
    创建的目录为766,文件为666

  3. 出于安全考虑,如何实现让别人ping不通你的在线的服务器。

    1
    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
  4. 怎样防止他人在服务器前通过按下 ctrl+alt+del 强行重启系统(提示,仔细看/etc/inittab)

    1
    2
    vi /etc/init/control-alt-delete.conf
    exec /sbin/shutdown -r now "Control-Alt-Delete pressed" 这一项#号注释掉,保存退出;
  5. 当在对服务器进行大负荷操作的时候,你不希望现在有普通用户登录上来,你该怎么做?不能剪网线。
    touch /etc/nologin
    创建一个nologin文件,此文件为特殊文件,创建之后所有普通用户不能登录;系统维护结束后删除此文件,用户可以恢复登录;只限于shell登录用户,本身shell为/sbin/nologin 的用户本身就无法登录shell,不受影响;

  6. 你新建了一批用户,出于安全考虑,要求这些用户在第一次登录的时候 就必须要更改密码,怎么实现?
    修改/etc/shadow 第三列,新建用户的值更改为0.
  7. 如何把一个目录下的所有文件(不含目录)权限改为644?

    1
    find ./ -type f | xargs chmod 644
  8. 请实现下面这个需求:只允许使用普通账户登陆,而普通账户登录后,可以不输入密码就能sudo切换到root账户,root是不允许远程登录的。

    1
    2
    3
    4
    5
    vi /etc/sudoers
    添加一行user ALL=(root) NOPASSWD: /bin/su
    vi /etc/ssh/sshd_config
    PermitRootLogin 设置为no,禁止root远程登录;
    service sshd restart 重启sshd服务生效;
  9. 如何使文件只能写不能删除? 如何使文件不能被删除、重命名、设定链接接、写入、新增数据?
    chattr +a 只能写不能删除
    chattr +i 不能删除,重命名,写入新增数据;

  10. 用ls 查看目录或者文件时,第二列的数值表示什么意思?如果一个目录的这列的值为3,那么这个3是如何得到的?
    第二列数值表示有几个文件使用相同的inode;
    如果一个目录的这列为3,我们可以通过使用 ls -al dir/ |grep '^d'|wc -l 这条命令得到;
    来源

面试题

  1. 如何查看当前的Linux服务器的运行级别?
    答: ‘who -r’ 和 ‘runlevel’ 命令可以用来查看当前的Linux服务器的运行级别。
  2. 如何查看Linux的默认网关?
    答: 用 “route -n” 和 “netstat -nr” 命令,我们可以查看默认网关。除了默认的网关信息,这两个命令还可以显示当前的路由表。
  3. 如何在Linux上重建初始化内存盘镜像文件?
    答: 在CentOS 5.X / RHEL 5.X中,可以用mkinitrd命令来创建初始化内存盘文件,举例如下:

    mkinitrd -f -v /boot/initrd-$(uname -r).img $(uname -r)

    如果你想要给特定的内核版本创建初始化内存盘,你就用所需的内核名替换掉 ‘uname -r’ 。
    在CentOS 6.X / RHEL 6.X中,则用dracut命令来创建初始化内存盘文件,举例如下:

    dracut -f

    以上命令能给当前的系统版本创建初始化内存盘,给特定的内核版本重建初始化内存盘文件则使用以下命令:

    dracut -f initramfs-2.x.xx-xx.el6.x86_64.img 2.x.xx-xx.el6.x86_64

  4. cpio命令是什么?
    答: cpio就是复制入和复制出的意思。cpio可以向一个归档文件(或单个文件)复制文件、列表,还可以从中提取文件。
  5. patch命令是什么?如何使用?
    答: 顾名思义,patch命令就是用来将修改(或补丁)写进文本文件里。patch命令通常是接收diff的输出并把文件的旧版本转换为新版本。举个例子,Linux内核源代码由百万行代码文件构成,所以无论何时,任何代码贡献者贡献出代码,只需发送改动的部分而不是整个源代码,然后接收者用patch命令将改动写进原始的源代码里。
    创建一个diff文件给patch使用,

    diff -Naur old_file new_file > diff_file

    旧文件和新文件要么都是单个的文件要么都是包含文件的目录,-r参数支持目录树递归。
    一旦diff文件创建好,我们就能在旧的文件上打上补丁,把它变成新文件:

    patch < diff_file

  6. aspell有什么用 ?
    答: 顾名思义,aspell就是Linux操作系统上的一款交互式拼写检查器。aspell命令继任了更早的一个名为ispell的程序,并且作为一款免费替代品 ,最重要的是它非常好用。当aspell程序主要被其它一些需要拼写检查能力的程序所使用的时候,在命令行中作为一个独立运行的工具的它也能十分有效。
  7. 如何从命令行查看域SPF记录?
    答: 我们可以用dig命令来查看域SPF记录。举例如下
    linuxtechi@localhost:~$ dig -t TXT google.com
  8. 如何识别Linux系统中指定文件(/etc/fstab)的关联包?
    答:

    rpm -qf /etc/fstab

    以上命令能列出提供“/etc/fstab”这个文件的包。
  9. 哪条命令用来查看bond0的状态?
    答:
    cat /proc/net/bonding/bond0
  10. Linux系统中的/proc文件系统有什么用?
    答: /proc文件系统是一个基于内存的文件系统,其维护着关于当前正在运行的内核状态信息,其中包括CPU、内存、分区划分、I/O地址、直接内存访问通道和正在运行的进程。这个文件系统所代表的并不是各种实际存储信息的文件,它们指向的是内存里的信息。/proc文件系统是由系统自动维护的。
  11. 如何在/usr目录下找出大小超过10MB的文件?
    答:

    find /usr -size +10M

  12. 如何在/home目录下找出120天之前被修改过的文件?
    答:

    find /home -mtime +120

  13. 如何在/var目录下找出90天之内未被访问过的文件?
    答:

    find /var ! -atime -90

  14. 在整个目录树下查找文件“core”,如发现则无需提示直接删除它们。
    答:

    find / -name core -exec rm {} \;

  15. strings命令有什么作用?
    答: strings命令用来提取和显示非文本文件中的文本字符串。(LCTT 译注:当用来分析你系统上莫名其妙出现的二进制程序时,可以从中找到可疑的文件访问,对于追查入侵有用处)
  16. tee 过滤器有什么作用 ?
    答: tee 过滤器用来向多个目标发送输出内容。如果用于管道的话,它可以将输出复制一份到一个文件,并复制另外一份到屏幕上(或一些其它程序)。
    linuxtechi@localhost:~$ ll /etc | nl | tee /tmp/ll.out
    在以上例子中,从ll输出可以捕获到 /tmp/ll.out 文件中,并且同样在屏幕上显示了出来。
  17. export PS1 = ”$LOGNAME@hostname:\$PWD: 这条命令是在做什么?
    答: 这条export命令会更改登录提示符来显示用户名、本机名和当前工作目录。
  18. ll | awk ‘{print $3,”owns”,$9}’ 这条命令是在做什么?
    答: 这条ll命令会显示这些文件的文件名和它们的拥有者。
  19. :Linux中的at命令有什么用?
    答: at命令用来安排一个程序在未来的做一次一次性执行。所有提交的任务都被放在 /var/spool/at 目录下并且到了执行时间的时候通过atd守护进程来执行。
  20. linux中lspci命令的作用是什么?
    答: lspci命令用来显示你的系统上PCI总线和附加设备的信息。指定-v,-vv或-vvv来获取越来越详细的输出,加上-r参数的话,命令的输出则会更具有易读性。

来源

文章目录
  1. 1. 上部
  2. 2. 下部
  3. 3. 面试题
  4. 4. mkinitrd -f -v /boot/initrd-$(uname -r).img $(uname -r)
  5. 5. dracut -f
  6. 6. dracut -f initramfs-2.x.xx-xx.el6.x86_64.img 2.x.xx-xx.el6.x86_64
  7. 7. diff -Naur old_file new_file > diff_file
  8. 8. patch < diff_file
  9. 9. rpm -qf /etc/fstab
  10. 10. find /usr -size +10M
  11. 11. find /home -mtime +120
  12. 12. find /var ! -atime -90
  13. 13. find / -name core -exec rm {} \;