Linux基础测试题

基础测试

1. 笔试部分

(1) 超级用户(管理员用户)提示符是 #,普通用户提示符是 $

(2) 如何快速返回上一次所在的目录?cd –

(3) GNU、GPL是什么?

1. GPL中文名为通用公共许可,保证任何人有共享和修改自由软件的自由,
任何人有权取得、修改和重新发布自由软件源代码的权利,但都必须同时给出具体更改的源代码。

2. GNU  is  not unix 这个项目的目标是建立一套完全自由的和可移植的类 UNIX 操作系统。

(4)linux关机重启的命令有哪些 ?

1. 关机 : shutdown -h now   |  init 0  | poweroff
2. 重启 : shutdown -r now  | init 6 | reboot

(5)linux系统中包含了域名与IP地址的映射关系的文件是哪个? /etc/hosts

(6)在Linux系统中,用来存放系统需要的配置文件目录是? /etc

(7)请问执行完以下命令,当前目录全路径是 /application/nginx/html/blog/

[root@iZ23eyxc0p2Z conf]# pwd
/application/nginx/conf
[root@iZ23eyxc0p2Z conf]# cd …/html/blog/
[root@iZ23eyxc0p2Z blog]#

(8)什么是绝对路径,什么是相对路径?

一切从根开始的路径为绝对路径
一切不是以根开始的路径为相对路径

(9)请用一条命令完成创建目录/oldboy/test/,即创建/oldboy目录及/oldboy/test/目录mkdir -p /oldboy/test/

(10)使用rpm命令查看是否安装tree命令rpm -q tree

(11)安装httpd这个服务yum install httpd -y

(12)查看httpd这个软件包里面的内容。

rpm -ql httpd

(13)查看httpd这个软件包里面的内容。

rpm -ql  http

(14)删除系统中sl这个命令

rpm -e sl
yum remove sl

(15)将你的光驱设备挂在到/data目录上mount /dev/cdrom /data

(16)查看当前目录(只一层目录)下txt结尾及log结尾的文件ls *txt *log
(17)查找/etc/目录下,所有.conf后缀的文件,并将其属性信息显示出来。

find /etc/ -type f -name "*.conf" | xargs ls -ali

(18)把/data 目录复制到 /tmp 目录下并改名为data_20180120 (20180120为当天时间)

cp -r /data /tmp/data_$(date +%F)

(19)当用户使用rm命令删除文件或目录时候只提示 “rm command is not allowed to use”

alias rm='echo rm command is not allowed to use'
/etc/profile

(20)Linux系统有几个运行级别,都有什么,是什么意思?

Init 0   关机
Init 1   单用户模式  救援模式
Init 2   多用户模式无NFS
Init 3   完全多用户模式
Init 4   保留
Init 5   图形化
Init 6   重启

(21)简述buffer和cache

Buffer  写缓冲    数据→内存→磁盘
Cache   读缓存    读取 ←内存← 磁盘

(22)设定开机时自动挂载文件系统的文件是 /etc/fstab

(23)tar zcfP yum.tar.gz /var/cache/yum 解压:

tar xfP yum.tar.gz

(24)把mysql-5.6.34.tar.gz 压缩包直接解压到/application目录下

tar xf mysql-5.6.34.tar.gz -C /application

(25)如何查看是否开启22 端口,及查看sshd 进程是否存在?

telnet ip 22  
netstat –lntup|grep 22

(26)将/data 目录下所有7 天以前,以log结尾并且大于1M 的文件移动到/tmp 目录下(三种方法)

find /data -type f -mtime +7 -name "*log" -size +1M |xargs -i mv {} /tmp
find /data -type f -mtime +7 -name "*log" -size +1M |xargs mv -t /tmp
find /data -type f -mtime +7 -name "*log" -size +1M  -exec mv {} /tmp \;

mv  `find /data -type f -mtime +7 -name "*log" -size +1M`  /tmp

(26) 开机流程

第一步:开启开机按钮,计算机加载BIOS自检。
第二步:读取MBR信息。MBR全称为Master Boot Record(MBR里面存放了系统   预启动信息、分区表信息及分区标志等。)
第三步:加载Grub菜单(Boot Loader,引导加载程序)。(为最终调用操作   系统内核做好准备)
第四步:加载kernel内核以及驱动程序。
第五步:启动init进程,读取inittab文件。(init进程对应进程号永远是1      相当于是所有Linux进程的祖先。)
        第六步:init进程执行rc.sysinit初始化系统。
        第七步:init进程加载内核相关模块。
        第八步:init进程执行对应运行级别下的脚本。
        第九步:加载/etc/rc.local(开机自启动)
        第十步:启动mingetty,进入登录前的状态。

(27) linux 下面ping www.baidu.com 出现unknown host 错误如何排查?

3.主机无法访问外网 
   a 检查配置地址是否正确
   b 检查是否能访问网关          ping 网关
   c 检查是否可以访问外网IP地址  223.5.5.5  114.114.114.114
     ping通:无法打开页面,DNS有问题
     ping不通:路由配置问题 
     

(28) 三种方法取IP地址

hostname -I | awk '{print $1}'

ifconfig  eth0 | awk 'NR==2{print $2}'

ifconfig eth0 | grep 'inet '|awk '{print $2}'

ifconfig eth0|sed -rn 's#^.*inet (.*)  net.*$#\1#gp'

ifconfig eth0|sed -n '2p'|sed 's#^.*inet ##g'|sed 's#  net.*$##g'

awk  -F "=" '$1~/IPADDR/{print $2}' /etc/sysconfig/network-scripts/ifcfg-eth0

(29)把nginx.conf.default文件中的空行和带#的行去掉,其余内容放入nginx.conf文件

egrep -v "^$|#" nginx.conf.default > nginx.conf

(30)添加一个用户mysql,禁止登陆并且不创建家目录

useradd mysql -M -s /sbin/nologin

或者 ``useradd -r mysql -s /sbin/nologin (-r 创建的用户uid<1000)

(31)让系统中某个服务开机自动运行有哪些方法?systemctl enable httpd

(32)把 mysql安装目录/application/mysql-5.6.34及其下面的内容授权给mysql用户和mysql组chown -R mysql.mysql /application/mysql-5.6.34

(33)写一个定时任务,每天晚上12点将/var/log/nginx目录下7天以前大于1G的日志文件移动到/data/201705xx(以前一天日期命名的)目录中

#第一步: 编写脚本文件
vim /server/scripts/backup.sh
#!/bin/bash
Dir=$(date +%Y%m%d -d -1day)

mkdir -p /data/$Dir
find /var/log/nginx -type f -size +1k -mtime +7|xargs mv -i {} /data/$Dir
#第二步: 编写定时任务0 0 * * * /bin/sh  /server/scripts/backup.sh  &>/dev/null

(34)根据access.log日志文件对用户IP地址进行去重处理并显示重复数量

awk '{print $1}' access.log |sort |uniq -c

(35)删除每行开头的所有空白字符

sed --ir ‘s#^\s+##g’ filename 

(36)不打开文件把文件的第10到20行注释

sed -i '10,20s/^/#/g' filename 

(37)系统新添加一块3TB磁盘,要正常使用它需要做哪些操作,写出详细步骤

gdisk
gdisk -l                  #查看磁盘分区
gdisk /dev/sdx          #分区
      n 添加分区(p主分区 e扩展分区 l逻辑分区)  p打印分区 d删除分区 w保存退出 q不保存退出 
mkfs.xfs /dev/sdx       #格式化分区
mount /dev/sdx /mnt     #挂载分区 
df -h                   #查看挂载分区信息

(38)创建linux分区时,一定要创建哪两个分区? / /boot或swap

(39)查看当前系统每个IP的连接数

netstat -ant |grep -v "::" |awk -F "[ :]+" '{print $6}' |sort |uniq -c

(40)如何查看主机的路由表规则信息route -n

(41)找出系统中大于50k 且小于100k 的文件,把文件中的oldboy删除

sed -i 's#oldboy##g'  | find / -type f -size +50k -size -100k

(42)局域网的网络地址192.168.1.0/24, 局域网络连接其他网络的网关地址是192.168.1.1 主机192.168.1.20访问172.16.1.0/24网络时,其路由设置为

route add -net 223.5.5.0/24 gw 10.0.0.254 dev  eth0
ip route add 172.16.1.0/24 via 192.168.1.1 dev eth0

(43)不显示test.txt文件中的空行或以#开头的行(3种方法)

egrep -v "^$|^#" test.txt
sed -r '/^$|^#/d' test.txt
awk '!/^$|^#/' test.txt

sed -n '/^$|^#/!p' test.txt

(44)调试系统服务时,希望能实时查看系统日志/var/log/messages的更新如何做?tail -f /var/log/messages

(45)写出至少10个vim快捷键及含义

gg   将光标移动到文件第一行
G    将光标移动到文件最后一行
dd   删除光标所在的行
yy   复制光标所在的当前行
p    粘贴当前光标下一行
x    删除后一个字符
r    替换光标后一个字符
u    撤销此次编辑
:wq  保存退出(或:x危险少用)
:q!  强制退出
:/name\c  模糊查找 n下翻
:%s###g 替换
i    进入编辑模式
ctrl + v  块模式 批量注释
shift + v 行模式

(46)写出至少5个Linux快捷键及含义

Ctrl + l 清屏
ctrl + d 退登录
ctrl + a     #光标移动至行首
ctrl + e     #光标移动行尾
ctrl + w     #删除光标前的单词
ctrl + 光标  #按单词间移动

47)请给出如下格式的date命令 年月日_小时_周几
date +%Y%m%d_%H_%w

(48)用户信息文件etc/passwd由 ‘:’ 为分割符, 分为7个字段,其中每个字段分别代表的含义是

第1列 第2列 第3列 第4列 第5列 第6列 第7列
root :x :0 :0 :root :/root :/bin/bash
用户名 :账号密码 :用户UID :用户GID :用户说明 用户说明注释信息 :用户家目录信息:shell命令解释器

(49)调换/etc/passwd第一列和最后一列内容(不用修改文件内容)
awk -F ":" '{print $NF,$2,$3,$4,$5,$6,$10,OFS=":"}' /etc/passwd #OFS 输出域分隔符

(50)只查询/etc/passwd 文件中的第 5 到15行(请用三种方法实现)

sed -n '5,15p' /etc/passwd
awk 'NR==5,NR==15' /etc/passwd
head -15 /etc/passwd|tail -11

(51)查询/etc/passwd文件内容包含root关键字的行(要求三种方法)

grep ‘root‘ /etc/passwd
sed -n '/root/p' /etc/passwd
awk '/root/' /etc/passwd

(52)编辑/etc/passwd文件,把所有的字符串/sbin/nologin替换成/bin/bash(请使用sed命令)
sed 's#/sbin/nologin#/bin/bash#g' /etc/passwd

(53)打印配置文件/etc/passwd内容的行号及内容,该如何做?(两种方法)
cat -n /etc/passwd
grep -n . /etc/passwd

(54)添加一个UID是888的虚拟用户mysql写出命令
useradd -u 888 -r mysql
useradd -u 888 -s /sbin/nologin -M mysql

(55)给文件oldboy.txt设置权限为600chmod 600 oldboy.txt

(56)命令ls –l显示文件详细属性包含了什么具体信息

-rw-r--r-- 1 root root 50 Nov 12 12:40 1.txt

文件类型 权限 硬链接数 用户 组 文件大小 修改时间

给oldboy用户授权以root用户执行ls,touch,vim三个命令,给出授权的语句
visudo
oldboy ALL=(ALL) /usr/bin/ls,/usr/bin/touch,/usr/bin/vim

(57)Linux服务器无法上网了,写出常见原因(至少3条)

物理链路不通
服务器路由表配置错误
network服务没启动
防火墙没关

(58)oldboy用户无法在/etc/目录创建或删除文件,什么原因?
oldboy``用户对``/etc/``目录没有写权限

(59)批量添加stu01…stu10 10个用户并设置密码为123456
echo stu{01..10}|xargs -n1|sed -r 's#.*#useradd & \&\& echo 123456 |passwd --stdin &#g'|bash

(60)阐述软硬链接的区别?
如何创建
默认不带参数情况下``,ln``命令创建的是硬链接,加参数``-s``的``ln``命令创建的是软连接

软链接,硬链接的区别:
1.1 具有相同Inode节点号的多个文件互为硬链接文件,本质上是相同文件的不同文件名。只有删除了源文件及与源文件对应的所有硬链接文件,文件实体才会被删除。
1.2  而软链接文件则相当于Windows下面的快捷方式(Inode节点号与源文件不同)



2)答特点,具体又可分为以下几点来说明。
    a)不能对目录创建硬链接,但可以创建软链接,对目录的软链接会经常用到。
    b)软链接可以跨文件系统,硬链接不可以跨文件系统。
    c)删除软链接文件,对源文件及硬链接文件无任何影响。
    d)删除文件的硬链接文件,对源文件及软链接文件无任何影响。
    e)删除链接文件的源文件,对硬链接文件无影响,会导致其软链接失效(红底白字闪烁状)。
    f)同时删除源文件及其硬链接文件,整个文件才会被“真正”的删除

61)

inode 索引节点 包含了文件的所有属性和磁盘的索引位置指针

block: block是真正存储数据的地方。block是文件系统中的最小存储单位,扇区是磁盘中的最小存储单位。

1.block是用来存储实际数据用的,例如:照片、视频等普通文件数据。

2.inode就是用来存储这些数据属性信息的,inode包含的属性信息还包含指向文件实体的指针

但是,inode唯独不包含文件名

(62)阐述普通用户如何获取root用户的能力(至少3种方法)

  1. 利用su -命令切换用户获取root用户权限
  2. 利用sudo方式获取root命令权限
  3. 直接修改文件权限信息,获取root能力
  4. 利用suid获取root用户能力

(63)重新向:

&> 标准输出与错误输出合并重定向

&>> 追加 标准输出与错误输出合并重定向

< << 标准输入重定向 追加

> >> 标准输出重定向 追加

2> 2>> 标准错误输出重定向 追加

(64)tcp协议定义

tcp传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议,

TCP在适应支持多网络应用的分层协议层次结构。

连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务

(65)网络协议概念

网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。

端口:端口便是计算机与外部通信的途径

IP地址:是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。

进程的定义

运行的程序。触发任何一个事件时,系统都会将他定义成为一个进程,并且给予这个进程一个 ID ,称为 PID,同时依据启发这个进程的用户与相关属性关系,给予这个 PID 一组有效的权限设定。

(66)七层网络模型:

image

四层网络模型:

image

对比:

啊.png

(67)三次握手

image.png

客户端向服务端发送建立的请求的信息
SYW=1 seq=10000

服务端确认收到并回复信息
SYN=1 seq=20000
ACK=1 ack=10001

客户端收到回复服务端信息
ACK=1 ack=20001
双方建立连接成功

四次挥手

image.png

客户端想和服务端断开连接发送请求信息
FIN=1,seq=25368

服务端回复客户端请求并发送回复信息
ACK=1 ack=25369

服务端向客户端发送可以断开的请求信息
FIN=1 seq=10568

客户端回复请求可以断开
ACK=1 ack=10659
四次挥手结束,成功断开

2. 重点错误纠正

date命令:

%H : 小时(00-23)
%M : 分钟(00-59)  
%S : 秒(00-60)
%T : 直接显示时间 (24 小时制)
==========================================================
%Y : 完整年份 (0000-9999)
%m : 月份 (01-12)
%d : 日 (01-31)
%F :直接显示完整年月日
==========================================================

特殊符号:

符号 作用
* 匹配任意(0个或多个)字符,包括空字符串常用
只匹配任意一个字符,有且只有一个,几乎不用
[abcd] 匹配其中任意一个字符
[a-z] 匹配其中任意一个字符 [1-9]
[!abcd] 匹配其中的单个字符 取反 正则: [^abcd]
~ 用户家目录
. 代表当前目录
单引号('') 所见即所得,被''的内容不会发生变化
双引号("") 会解析变量或命令,在输出,和不加引号相同"" 表示一个整体
反引号(``) 引用命令,可以解析命令,相当于$()
> 标准输出
2> 标准错误输出
; 表示一个命令的结束
# 注释
$ 1.字符串前加$ ,代表字符串变量内容 2. 普通用户提示符
\ 逃脱符
{} 1.生成序列2.变量中表示分割作用
^ 以..开头的行
$ 以..结尾的行
. 任意一个字符
* 前一个字符出现0次或0次以上
.* 表示所有字符 贪婪性
[abc] 表示一个整体,匹配a或b或c
[^abc] 表示一个整体,匹配除了a,除了b,除了c,除了abc 都匹配
^.* 任意开头
.*$ 任意结尾

image.png

image.png

ERE 121 说明
| 或者
+ 前一个字符连续出现(重复)1次或1次以上, +一般与[]搭配
() 表示一个整体,sed一般用于后向引用
[: /]+ 匹配括号内的 :或 / 一次到多次
{n,m} 前一个字符连续出现至少n次最多m次{n} 前一个字符连续出现n次{n,} 前一个字符连续出现至少n次{,m} 前一个字符连续出现最多m次

image

posted @ 2021-03-06 14:39  上善若水~小辉  阅读(1427)  评论(0编辑  收藏  举报