一、10 个选择题(每个题2 分,共20 分)

1、查看当前系统时间的命令是什么?

A.date
B.time
C.now
D.pwd

A

2、回到用户家目录的命令是什么?

A.cd -
B.cd ~
C.cd /root
D.cd /home

B

3、查看Linux 系统中命令是内建命令还是外部命令的命令是什么?

A.file
B.type
C.who
D.whereis

B

4、linux 终端中如何快速跳至行尾?

A.Ctrl+a
B.Ctrl+e
C.Ctrl+w
D.Ctrl+z

B

5、命令历史中,使用上一条命令的快捷键是?

A.!999
B.!!
C.history
D.!1000

B

6、linux 修改文件或者目录权限的命令是?

A.groupadd
B.useradd
C.chmod
D.chown

C

7、wc 命令统计文件单词数的选项是?

A.-L
B.-w
C.-l
D.-c

B

8.此文件的权限应该是-rw-r--r--

A.655
B.644
C.622
D.642

B

9、下面不属于linux 内核的作用是?

A.管理进程
B.管理内存
C.网络管理
D.管理用户

D

10、存放用户账号的文件是?

A.shadow
B.group
C.passwd
D.shadow

C

二、五个简单题(每个题7 分,共35 分)

1. Linux 目录结构:

/bin:所有用户可用的基本命令程序文件;
/sbin:供系统管理使用的工具程序;
/boot:引导加载器必须用到的各静态文件:kernel, initramfs(initrd), grub等;
/dev:存储特殊文件或设备文件;
    设备有两种类型:字符设备(线性设备)、块设备(随机设备);
/etc:系统程序的配置文件,只能为静态;
/home:普通用户的家目录的集中存放位置;
/root:管理员的家目录;可选;
/lib:为系统启动或根文件系统上的应用程序(/bin, /sbin等)提供共享库,以及为内核提供内核模块
    libc.so.*:动态链接的C库;
    ld*:运行时链接器/加载器
    modules:用于存储内核模块的目录;
/lib64:64位系统特有的存放64位共享库的路径;
/media:便携式设备的挂载点,cdrom,floppy等;
/mnt:其他文件系统的临时挂载点;
/opt:附加应用程序的安装位置;可选路径;
/srv:当前主机为服务提供的数据;
/tmp:为那些会产生临时文件的程序提供的用于存储临时文件的目录;可供所有用户执行写入操作;有特殊权限;
/usr:usr Hierarchy,全局共享的只读数据层级结构;
/var:var Hierarchy,存储经常发生变化的数据层级结构;
/proc:虚拟文件系统,用于为内核及进程存储其相关信息;它们多为内核参数,例如net.ipv4.ip_forward,虚拟为/net/ipv4/forward,存储于/proc/sys/
/sys:sysfs虚拟文件系统提供了一种比proc更为理想的访问内核数据的途径;其主要作用在于为管理Linux设备提供一种统一模型的接口;

2、请写出Linux 的哲学思想

1. 一切皆文件(硬件设备亦如此);
2. 由众多目的单一的小程序组成,一个程序只做一件事,并且要好;
3. 组合小程序完成复杂任务;
4. 尽可能避免跟用户交互;
5. 使用文本文件保存配置信息;
6. 提供机制,而非策略。

3、操作系统的功用有哪些?

目标:方便性,有效性,可扩充性,开放性。
作用:
    1.OS作为用户与计算机硬件系统之间的接口。
    2.OS作为计算机系统资源的管理者。
    3.OS实现了对计算机资源的抽象。
操作系统的主要功能
    1.处理机管理功能。
    2.存储器管理功能。
    3.设备管理功能。
    4.文件管理功能。
    5.操作系统与用户之间的接口。

4、请写出至少三种常见的linux 发行版

Debian是三大发行版中唯一以社区形式运作,不以商业公司形式运作。是一个致力于创建自由操作系统的合作组织。而且debian开发者所创建的操作系统中绝大部分基础工具来自于GNU工程。
Fedore是一款基于linux的操作系统,也是一组维持计算机正常运行的软件集合。由红帽公司赞助。
Suse是基于Slackware二次开发的一款Linux,主要用于商业桌面、服务器。

5、linux 日常账号管理需要注意哪些方面?

1. root账号不要开启远程登录,或者只允许root用户使用key的方式登录
2. 日常最好使用普通用户登录
3. 密码不要是弱密码,最好8位以上带字母大小写和数字,最好还带符号

三、三个实战题(每题15 分,共45 分)

1、写一个脚本,生产10 个随机数,并从小到大排序?

#!/bin/bash
declare -a NUMS

for i in `seq 0 9`;do
    NUMS[$i]=$[RANDOM%1000]
done

echo 原始顺序:${NUMS[*]}
for i in `seq 1 9`;do
    for j in `seq $i 9`;do
        MIN=${NUMS[$i-1]}
        if [[ $MIN -gt ${NUMS[$j]} ]];then
            NUMS[$i-1]=${NUMS[$j]}
            NUMS[$j]=$MIN
        fi
    done
done

echo 从小到大排序:${NUMS[*]}

2、使用脚本创建system1-50 个用户,并指定家目录为/data/system[1-50]

#!/bin/bash
for i in `seq 50`;do
    if id user$i &> /dev/null;then
        echo 用户user$i已存在。
    else
        useradd -d /data/user$i user$i 
        echo 用户user$i创建成功。
    fi
done

3、简述su 命令的作用,并说明su root 和su - root 的区别

su - root 是切换到root账号使用,使用的是root用户的环境变量;
su root 则是取得root的特权,以root的身份执行程序,但保留原来用户环境。