面试题01


1. 主流Linux发行版本区别-CentOS-麒麟-Ubuntu

2. 远程连接Linux系统需要知道:ip 用户名 密码 端口号 协议

3. 常见目录及含义

4. 软硬连接区别

含义:软连接是快捷方式,存放的是源文件;在同一个磁盘分区中,inode号码相同的文件互为硬链接

特点:软连接对文件目录都可以创建;硬链接一般对文件创建,无法对目录创建;硬链接可以防止一些误删除,无法防止误修改

如何创建:软连接:ln -s;硬链接:ln

咋没的:删除源文件,软连接变红无法使用;删除硬链接,软连接和源文件无影响;删除硬链接和源文件,文件无法访问

5. 添加虚拟用户mysql useradd -s /sbin/nologin -M mysql

6. 文件与目录的rwx权限

7. Linux 软件安装方式 yum/apt rpm/dpkg 二进制 编译安装

8. 单引号,双引号,反引号,不加引号区别

单引号 所见即所得,单引号里面的内容会原封不动输出。shell(bash)不会解析与运行

双引号 与单引号类似,特殊符号会被解析$,“,不会解析{}(通配符匹配文件名)

不加引号 与双引号类似,解析{}

反引号 优先执行,先运行里面的命令

9. 如何检查系统有僵尸进程,如果有怎么处理

top -bn1| grep z 查看僵尸进程父进程 ,父进程pid为1,则需要重启;

不是1,则结束父进程pstree -p kill 父进程

10. 系统负载高如何排查

uptime/w/top 负载达到cpu核心总数60-70%

top cpu us/sy wa ps aux

/iotop -o

11. 磁盘空间不足与排查方法

监控/巡检软件发现——”no space left on device“

——远程连接/堡垒机 df -h——

du -sh——lsof|grep delete

——df -i——find / -type f -size +1M

12. Linux运行级别

0 关机poweroff 1 单用户/救援模式secure,没有网络
6 重启 reboot 5 图形界面,x11,桌面模式,graphical(图形化的),vnc连接或本地连接
234 多用户模式/命令行模式/文本模式/multi-user(多用户)

13. 启动流程

开机自检 查看硬件是否与有问题
加载引导程序 选择启动方式u盘 硬盘 网络
GRUB菜单 选择内核 救援模式
加载内核 boot/目录 加载内核相关镜像
启动第一个进程systemd
读取运行级别
系统初始化 主机名 网络 自动挂载
启动并行服务 启动各种开机自启动
加载login显示登录页面

14. raid 0 1 5 10 特点与区别

最少几块硬盘 冗余 容量 性能

最少几块硬盘冗余(安全)容量性能应用举例
raid 01/2最低所有读写最快不要安全只要速度数据库从库存储从库web服务器
raid 1只能2100%所有硬盘的一半读取ok写入慢只要安全对速度没要求系统盘监控服务器
raid 53损坏一块损失一块硬盘容量写入不好读取ok对于速度安全要求都不高普通数据库存储访问量不高
raid 104损坏一半所有硬盘一半读写很快对于安全速度都要求高并发或高访问量数据库主库存储


15. shell 脚本中 $1 $0 $# $*$@ $? 的含义(脚本中函数中)
位置参数脚本中函数中
$n脚本中第n个参数函数中第n个参数
$#脚本的参数个数函数的参数个数
$0脚本的名字脚本的名字
$*/$@脚本所有的参数函数所有的参数
$?脚本返回值函数返回值

16. shell 脚本中 exit return break continue含义

exit 退出 return 函数返回值 break 循环中立即退出 continue 循环中跳过,继续

17. 远程连接故障排查流程并写出对应检查命令

检查道路是否通畅 两点之间是否相通 当前位置,目标 延迟 ping IP或域名

检查是否打劫 检查防火墙 selinux 暂时不拦截 22 端口

检查服务是否可以访问 启动 检查端口是否可以访问 telnet ip/域名 端口

18. 递归修改/app/code/blog/目录所有者为 www

chown -R www.www /app/code/blog/

19. 排除/etc/ssh/sshd_config 文件中含有空行或带有#的行

egrep -v ‘^$|#’ \ sed -r ‘/^$|#/d’ \ awk ‘!/^$|#/’ \ sed -rn ‘/^$|#/!p’

20. 找出系统中以.log结尾,修改时间7天之前,大小大于10M 并删除

find / -type f -name‘*.log’ -mtime +7 -size +10M |xargs rm-f

rm -f `find / -type f -name ‘*.log’ -mtime +7 -size +10M`

find / -type f -name ‘*.log’ -mtime +7 -size +10M -exec rm -f {} \;

21. root 密码忘记如何解决?

重启Linux 在GRUB菜单选择第1个然后按e编辑(edit). root用户名,Kylin123123

找出Linux16的行修改 ro rw ,在这一行的最后添加 init=/bin/bash

修改完成,按ctrl+x进入救援模式

进入系统通过root用户,然后通过passwd命令给root设置新的密码.

22. 你怀疑你的系统正在被暴力破解你要分析哪个文件?

/var/log/secure /var/log/auth.log

23. 分析文件统计每个ip 破解你主机的次数

grep -i ‘failed passwd’ /var/log/secure |awk ‘{print $(NF-3)}’ |sort |uniq -c |sort -rnk2 |head

24. 一个备份命令要很久,怕命令行断开命令结束,如何做?

后台运行 nohup xxx &

25. ip.txt存放了很多ip地址,一行1个,现在要对这个文件中每个ip 进行ping检查 ping2次并输出结果(成功或失败),写出脚本

#!/bin/bash
ip=/oldboy/ip.txt
while read line
do 
  ping -c2 $line >/dev/null 2>&1
  if [ $? -eq 0 ];then
    echo "$line is ok"
  else
    echo "$line is failed"
  fi
done<$ip
#!/bin/bash
ips=`cat  /oldboy/ip.txt`
for ip in $ips
do
  ping -c2 $ip >/dev/null 2>&1
  if [ $? -eq 0 ];then
    echo "$ip is ok"
  else 
    echo "$ip is failed"
  fi
done

26. check_web.sh 是用来检测指定网站是否可以访问的脚本

#!/bin/bash
url=$1
[ -z "$url" ] &&{
  echo "wangzhiweikong"
  exit 1
}
curl -s -L $url >/dev/null 2>&1
if [ $? -eq 0 ];then
  echo "$url 访问成功"
else
  echo "$url 访问失败"
fi

27. 批量添加10个用户oldboy01..10 并设置10位随机密码,要求用户名和密码保存到/root/pass.txt中,写出脚本

#!/bin/bash
if ! which mkpasswd >/dev/null 2>&1;then
  echo "mkpasswd not found"
  exit 1
fi
for name in oldboy{01..10}
do
  pass=`mkpasswd -l 10`
  useradd $name
  echo $pass |passwd --stdin $name
  echo "$name $pass">>/root/pass.txt
done
#!/bin/bash
#desc:需要判断系统 ubt系统mkpasswd.pl ubt系统没有passwd --stind 需要用chpasswd实现
#检查系统
os_life=/etc/os-release
if [ -f $os-life ];then
. $os_life
else
  echo $os_file not found
  exit 1
fi
#检查命令
case "$ID" in
  centos|kylin)
                if ! which mkpasswd >/dev/null 2>&1;then
                echo "mkpasswd not found"
                exit 2
                fi
                ;;
  ubuntu|debian)
                if ! which mkpasswd.pl >/dev/null 2>&1;then
                echo "mkpasswd.pl not found"
                exit 2
                fi
                ;;
              *) 
                echo "os not support $ID"
                exit
esac
#useradd
redhat_useradd() {
for name in oldboy{01..10}
do
  local pass=`mkpass-l 10`
  useradd $name
  echo "$passwd --stdin $name"
  echo "$name $pass" >>/root/pass.txt
done
return $?
}

debian_useradd() {
for name in oldboy{01..10}
do
  local pass=`mkpass.pl -l 10`
  useradd -s /bin/bash -m $name
  echo "${name}:${pass}" >>/root/pass.txt
done
cat /root/pass.txt|chpasswd
return $?
}
#useradd
case "$ID" in
  centos|kylin)
                redhat_useradd
                ;;
  ubuntu|debian)
                debian_useradd
                ;;
            *)
              echo "os not support $ID"
              exit
esac 
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇