03-[面试题答案] 文件编辑和查找
第1章 vi/vim快捷键题目参考:
vi/vim题目链接-单击我
第2章 基础题目
答出来并给大家讲解
2.1在Linux系统中,用来存放系统所需要的配置文件和子目录的目录是(/etc)
/etc/init.d centos 5.x 6.x 存放系统管理脚本
centos 7.x 主要有 network
2.2 在使用手工的方式配置网络时,可通过修改/etc/hostname文件来改变主机名,若要配置计算机的域名解析客户端,需配置 (/etc/hosts)文件。
题目主要的目的:域名(主机名)与ip的对应关系:/etc/hosts
修改DNS:
网卡配置文件中的DNS
/etc/resolv.conf
2.3 Linux内核引导时,从文件(/etc/fstab)中读取要加载的文件系统。
/etc/fstab 开机自动挂载
2.4 用(>>或1>>)符号将输出重定向内容附加在原文的后面
>> 或 >> 标准输出追加重定向
2.5 在超级用户下显示Linux系统正在运行的全部进程,应使用的命令及参数是(ps -ef)或(ps aux).
ps -ef 进程信息 pid 进程名字
ps aux 进程的CPU和内存的使用率
2.6 用户的bash环境变量配置文件是什么?(/etc/profile)
国法(全局生效) | 家规(只对当前用户生效) |
---|---|
/etc/profile 环境变量+别名 | ~/.bash_profile |
/etc/bashrc 别名 | ~/.bashrc |
/etc/profile.d/ 脚本 .sh | 用户登录的时候,会默认执行的脚本 |
2.7Linux 网卡配置文件位置
[root@oldboy64-yl ~]# /etc/sysconfig/network-scripts/ifcfg-eth0 或 ens33
2.8 对于 RedHat 发行版,网卡配置文件的完整路径是?
/etc/sysconfig/network scripts/ifcfg-eth0 或 ens33
2.9 Linux 网卡配置文件路径是什么?要使服务器上外网,必须满足的条件有哪些?需要配置什么?
/etc/sysconfig/network scripts/ifcfg-eth0 或 ens33
2.9.1 要使服务器上外网,必须满足的条件有哪些?
1.网卡+网线
2.配置IP地址,子网掩码,网关,DNS
网卡主要内容:
DEVICE =eth0
NAME=eth0
ONBOOT=yes
BOOTPROTO=static #dhcp 自动获取
IPADDR =10.0.0.200
NETMASK=255.255.255.0 #PREFIX=24
GATEWAY=10.0.0. 254
DNS 1=223.5.5.5
DNS2=223.6.6.6
2.10 创建目录 /data/ 并在该目录下创建文件 oldboy.txt, 然后在文件 oldboy.tx t 里写入内容 inet addr:10.0.0.8 Bcast:10.0.0.255 Mask:255.255.255.0( 不包含引号 。( 多种方法至少 2 种 建议 3 种)
方法一 echo
[root@oldboy64-yl ~]# mkdir /data/oldboy/ -p
[root@oldboy64-yl ~]# echo 'inet addr:10.0.0.8 Bcast:10.0.0.255 Mask:255.255.255.0' > /data/oldboy/oldboy.txt
[root@oldboy64-yl ~]#
方法二 cat
[root@oldboy64-yl ~]# mkdir /data/oldboy/ -p
[root@oldboy64-yl ~]# cat > /data/oldboy/oldboy.txt <<EFO
> inet addr:10.0.0.8 Bcast:10.0.0.255 Mask:255.255.255.0
> EFO
方法三
[root@oldboy64-yl ~]# mkdir -p /data/oldboy/ && echo 'inet addr:10.0.0.8 Bcast:10.0.0.255 Mask:255.255.255.0' > /data/oldboy/oldboy.txt
2.11 如何查看文件内容,命令有哪些?查看文件第 1 行到第 3 行,查看文件最后一行
2.11.1 如何查看文件内容,命令有哪些?
cat head tail less more grep sed awk
2.11.2 查看文件第 1 行到第 3 行
[root@oldboy64-yl ~]# seq 10 |sed -n '1,3p'
1
2
3
[root@oldboy64-yl ~]# seq 10 |awk 'NR<=3'
1
2
3
[root@oldboy64-yl ~]# seq 10 |awk 'NR>=3 && NR<=5'
3
4
5
[root@oldboy64-yl ~]# seq 10 |awk 'NR==1,NR==3'
1
2
3
[root@oldboy64-yl ~]# seq 10 |head -3
1
2
3
[root@oldboy64-yl ~]#
2.11.3 查看文件最后一行
[root@oldboy64-yl ~]# seq 10 |tail -1
10
[root@oldboy64-yl ~]# seq 10 |sed -n '$p' #$在sed 中此时此刻表示最后一行的意思
10
[root@oldboy64-yl ~]# seq 10 |sed '$!d'
10
[root@oldboy64-yl ~]# seq 10 |awk 'END{print $0}' #END{} 里面的内容awk 会在 处理文件最后一行 之后在运行$0 这一行的内容 一整行 的内容
10
[root@oldboy64-yl ~]#
扩展:
[root@oldboy64-yl ~]# seq 10 |awk '/^1/,/9/'
1
2
3
4
5
6
7
8
9
10
[root@oldboy64-yl ~]# seq 10 |sed -n '/^1/,/9/p'
1
2
3
4
5
6
7
8
9
10
[root@oldboy64-yl ~]#
2.12 Linux 登录成功 失败是否有日志记录?在哪些文件中?
有rsyslog(系统日志服务) syslog(centos 5.x)
/var/log/secure
2.13 简述以下配置文件的功能: :/etc/fstab /etc/inittab /etc/resolv.conf
文件名 | 含义 |
---|---|
/etc/fstab | 开机自动挂载 |
/etc/inittab | centos 6.x 5.x 设置运行级别 |
/etc/resolv.conf | DNS配置文件 |
CentOS7中运行级别:
[root@oldboy64-yl ~]# systemctl get-default
multi-user.target
[root@oldboy64-yl ~]# systemctl set-default multi-user.target [root@oldboy64-yl ~]# ll /etc/systemd/system/default.target
lrwxrwxrwx 1 root root 41 Jul 17 23:56 /etc/systemd/system/default.target -> /usr/lib/systemd/system/multi-user.target
[root@oldboy64-yl ~]#
2.14 在当前目录 /home/zheng 下新 建一个目录 back ,将当前目录改为 back ,在 back 下新建 2 个长度为 0 的文件 test1 、 test2 ,然后把 test2 移到其父目录中并改名为 file12
[root@oldboy64-yl ~]# mkdir /home/zheng/back -p
[root@oldboy64-yl ~]# cd /home/zheng/back/
[root@oldboy64-yl /home/zheng/back]# touch test{1..2}
[root@oldboy64-yl /home/zheng/back]# ls
test1 test2
[root@oldboy64-yl /home/zheng/back]# mv test2 ../file12
[root@oldboy64-yl /home/zheng/back]# tree /home/zheng/
/home/zheng/
├── back
│ └── test1
└── file12
1 directory, 2 files
[root@oldboy64-yl /home/zheng/back]#
2.15 Linux 系统的运行级别有哪几种,作为服务器使用选择哪一种运行级别
7种
0:关机 1:单用户 2:没有网络的多用户 3:完全多用户 4:保留 5:图形 6:重启
centos6 | centos7 |
---|---|
0 关机 | poweroff.target |
1 单用户模式 | rescue.target |
2 没有NFS的多用户模式 | multi-user.target |
3 完全多用户模式 命令行模式 文本模式 | multi-user.target |
4 待开发,未使用 | multi-user.target |
5 图形化用户界面 | graphical.target |
6 重启 | reboot.target |
服务器使用运行级别3(完全多用户)
2.16 Linux 设置服务开机启动文件
方法1:/etc/rc.local
centos6.x | centos7.x |
---|---|
直接用 | 使用之前加上执行权限 chmod +x /etc/rc.d/rc.local |
方法2:systemctl(c7) chkconfig(c6)
【企业面试题】让1 个服务开机自启动 有什么方法
https://www.jianshu.com/p/fc26d73fe050
2.17 如何查看系统的负荷及内存使用状况?
2.17.1 负载
w
uptime
top
cat /proc/loadavg
htop
2.17.2 内存
free
ps aux
top
cat /proc/meminfo
2.18 如何知道操作系统的位数?( 32 位或 64 位)
方法1
[root@oldboy64-yl ~]# uname -m
x86_64
[root@oldboy64-yl ~]#
方法2 /lib64
2.19 选择
2.20 init 6 什么意思 A
reboot
shutdown
power off
logout #ctrl + d
2.21 启动 init 进程前,不需要经过步骤 C D
LIL O 加载内核
检测内存
加载文件系统
启动网络支持
2.22 Linux所有服务器的启动脚本都存放在(A B)目录中
/etc/rc.d/init.d
/etc/init.d
/etc/rc.d/rc
/etc/rc.d
2.23 全面查看硬件信息的命令全面查看硬件信息的命令D
cpuinfo
meminfo
cat /etc/fatab
dmidecode
2.24 以下哪些命令可以查看当前系统的启动时间(ABD)
w
top
ps
uptime
2.25 Linux启动的第一个进程init启动的第一个脚本程序是(B)
/etc/rc.d/init.d
/etc/rc.d/rc.sysinit
/etc/rc.d/rc5.d
/etc/rc.d/rc3.d
2.26 把当前目录(包含子目录)下所有后缀为 “. 的文件后缀改为 “. shell”,请写出执行语句
[root@oldboy64-yl ~]# rename sh shell *
2.26.1 rename 基础用法
[root@oldboy64-yl /oldboy]# cd /oldboy/
[root@oldboy64-yl /oldboy]# ll
-rwxr-xr-x 1 root root 13 Jul 28 09:40 lidao.sh
[root@oldboy64-yl /oldboy]# rename .sh .shell *
[root@oldboy64-yl /oldboy]# ll
-rwxr-xr-x 1 root root 13 Jul 28 09:40 lidao.shell
-rwxr-xr-x 1 root root 13 Jul 28 09:40 lidao.sh
rename | .sh | .shell | *.sh |
---|---|---|---|
rename | 目标 | 替换为什么 | 你要修改哪些文件 |
2.26.2 完成 这个题目
方法1:
[root@oldboy64-yl /oldboy]# find . -type f -name "*.sh" |xargs rename .sh .shell
方法2:
[root@oldboy64-yl /oldboy]# find . -type f -name '*.sh' -exec rename .sh .shell {} \;
方法3:
[root@oldboy64-yl /oldboy]# rename .shell .sh `find . -type f -name "*.shell"`
方法4 :命令 拼接
[root@oldboy64-yl /oldboy]# ls *.shell|sed -r 's#(.*)\..*#mv \1.shell \1.sh#g'
mv oldboy.shell oldboy.sh
[root@oldboy64-yl /oldboy]# echo pwd
pwd
[root@oldboy64-yl /oldboy]# echo pwd|bash
/oldboy
[root@oldboy64-yl /oldboy]# ls *.shell|sed -r 's#(.*)\..*#mv \1.shell \1.sh#g'|bash
命令拼接及思路参考
【面试题】批量添加用户并设置
8 位随机密码
https://www.jianshu.com/p/8886a81c194a
2.27 修改机器名为 exam ip 更改为 192.168.1.227
注意:(给出步骤就行不要真的改了)
centos7 | hostnamectl set-hostname exam 或 /etc/hostname |
---|---|
centos 6 | hostname exam 或 /etc/sysconfig/network |
vim /etc/sysconfig/network-scripts/ifcfg-eth0 修改IPADDR
2.28 下面哪个命令可以看出 linux 的 cpu 核数 A C D
cat /proc/cpuinfo
sar
top
dmidecode
lscpu
top
按 1
cpu0 cpu1 cpu2 cpu3
一共 4 个 核心
dmidecode -t processor 也可以查询 cpu 核心总数 比较麻烦
第3章 进阶
答出来并给大家讲解
3.1 Linux中常用的引导加载程序是(lilo)和(grub)
3.2 将前一个命令的标准输出做为后一个命令的标准输入,称之为( 管道)
3.3 如何查看目录 a 所占容量
du -sh a
[root@oldboy64-yl ~]# du -sh /oldboy/
76K /oldboy/
3.4 如下,在 Linux 此目录下一个乱码文件夹,需要删除,简述删除步骤命令(注意该乱码文件名为横杠符号开头)
方法1:
rm -f ' 特殊 名字的文件'
rm -f --'特殊 名字的文件'
--之后 rm 认为 后面没有参数
[root@web02 oldboy]# ll
total 0
drwxr xr x 2 root root 101 Apr 28 11:12 alex
rw r r 1 root root 0 Apr 28 11:27 -f
rw r r 1 root root 0 Apr 28 11:0 2 oldboy01.sh
rw r r 1 root root 0 Apr 28 11:02 oldboy02.sh
rw r r 1 root root 0 Apr 28 11:02 oldboy03.sh
rw r r 1 root root 0 Apr 28 11:02 oldboy04.sh
rw r r 1 root root 0 Apr 28 11:02 oldboy05.sh
[root@web02 oldboy]# rm -f -- -f
[root@web02 oldboy]# ll
total 0
drwxr xr x 2 root root 101 Apr 28 11:12 alex
rw r r 1 root root 0 Apr 28 11:02 oldboy01.sh
rw r r 1 root root 0 Apr 28 11:02 oldboy02.sh
rw r r 1 root root 0 Apr 28 11:02 old boy03.sh
rw r r 1 root root 0 Apr 28 11:02 oldboy04.sh
rw r r 1 root root 0 Apr 28 11:02 oldboy05.sh
方法2:
找出文件的inode 根据inode号码删除
find -inum + rm
3.5 init 进程对应的配置文件名为( /etc/inittab),该进程是 Linux 系统的第一个进程,其进程号 pid 始终是 1
第4章 究极挑战题目
答出来并给大家讲解
4.1 安装 centos 操作系统后出现 grub>,如何用命令引导
Linux启动无法找到引导 把引导程序安装到 U 盘上了
grub>
grub>
grub>
4.2 MBR 是什么?有什么作用?在 linux 系统中如何备份?
主引导记录
它负责磁盘操作系统对磁盘进行读写是分区合法性的判别、分区引导信息的定位。
[root@oldboy64-yl ~]# dd if=/dev/sda of=/backup/sda.mbr bs=512 count=1