linux作业

发布 2022-07-17 12:15:28 阅读 9233

1. 写出以下文件的用途。

1)/etc/passwd (提示:通过man 5 passwd查看此文件描述说明)

2)/etc/shadow (提示:通过man 5 shadow查看此文件描述说明)

3)/etc/group (提示:通过man 5 group查看此文件描述说明)

4)/etc/gshadow (提示:通过man 5 gshadow查看此文件描述说明)

答:(1)/etc/passwd文件中每个用户都有一个对应的记录行,它记录了这个用户的一些基本属性。

(2)etc/shadow是只有系统管理员才有权利进行查看和修改的文件,文件中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生。它的文件格式与/etc/passwd类似,由若干个字段组成,字段之间用“:”隔开。

(3)/etc/group文件与/etc/passwd和/etc/shadow文件都是有关于系统管理员对用户和用户组管理时相关的文件,用户组的所有信息都存放在/etc/group文件中。

(4)/etc/gshadow文件中保存有系统中所有组的名称,以及每个组中的成员列表。文件中的每一行表示一个组,由4个冒号分隔的字段组成。

2. 解释linux中的以下术语:终端、伪终端、虚拟终端,并列举实例说明。

答:终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。

伪终端与前面说的终端在表现形式上,最大的不同,就是它总是成对出现,而不是单一的一个。它分为“伪终端主设备(/dev/ptymn)”和“伪终端从设备”。

在linux的特殊设备文件目录/dev下,用ttyn文件表示多个虚拟终端,一般我们称之为控制台终端设备特殊文件。默认情况下,linux系统最多支持六个虚拟字符终端,即tty1-tty6,而tty0则是当前所使用终端的一个别名。如果安装的是图形显示的linux操作系统,可以通过 ctrl+alt+[f1—f7]来实现图形和字符终端以及各个字符终端之间的切换。

可以通过"tty"命令来查看当前所使用的虚拟终端对应于哪个设备文件。

3. 简述管道线(|)的工作机制。

答:在管道线中,每个命令执行时都有一个独立的进程,前一个命令的输出是下一个命令的输入。

4. 简述linux shell中环境变量的用途。列举实例说明。

答:linux 是一个多用户多任务的操作系统,通过设置不同的环境变量,可以在 linux 中为不同的用户设置不同的运行环境。

1、显示环境变量home $ echo $home /home/terry

2、设置一个新的环境变量welcome

$ export welcome="hello!"

$ echo $welcome

3、 使用env命令显示所有的环境变量

env hostname=

pvm_rsh=/usr/bin/rsh

shell=/bin/bash

term=xterm

histsize=1000

5. 写出如下命令的功能。

1)写出下列命令操作实现的具体功能。

find /usr/bin -name gcc

find /etc –name ‘passwd’

grep -n -e ‘root|jsj|^user*’ etc/passwd

sudo apt-get install gfortran

tar -xzf -c /tmp

ls /home | tee users | wc –l

ls –l /home | grep ^d | wc –l

ls -l --time-style=long-iso --sort=time /usr/include

答:① 在 /usr/bin 目录下查找以gcc命名的文件。

在 /etc目录下查找以passwd命名的文件。

在 /etc/passwd目录下查找带字符串‘root|jsj|^user*’的文件。

使用超级超级用户身份**安装gfortran编译器。

建立一个压缩文件目录 /tmp,并将文件打包后用gzip压缩到该目录下。

显示目录 /home下的文件 tee users 的行数。

在目录 /home 下的所有文件中查找开始行有字符d的文件并显示行数。

显示目录 /usr/include下所有文件同时以时间格式long-iso显示修改时间。

2)根据要求写出相应的shell命令。

在目录/usr/include下搜索文件是否存在。

在/usr/include目录下的所有文件中中查找包含bufsiz的行,并显示所在行号。

答:① find /usr/include -name

② find /usr/include -exec grep -nh “bufsiz”

6. shell脚本编写。

1)编写一个shell脚本,把它第二个位置参数及以后各个参数指定的文件复制到第一个位置参数。

#!/bin/bash

path=".

for x in $@

dopath=$x

breakdone

echo "copying...

shiftfor x in $@

docp $x $path

doneecho "done”

2)打印给定目录下的某些文件,由第一个参数指出文件所在目录,其余参数是要打印的文件名。

#!/bin/bash

dir=$1

shiftfor f in $@do

cat $dir/$f

done3)编写一个shell脚本,显示当天日期,查找给定用户是否在系统中工作。如果在系统中,就发一个问候给他。

date '+y%m%d’

ifwho|grep "^1"

thenwrite $1< hello

fi查阅参考资料,整理linux操作系统启动后,完成系统环境配置的一组配置文件执行次序并辅以文字说明各个配置文件所负责的具体配置工作。

一、linux的启动流程

1. 从bios到kernel

bios自检->mbr(grub)->kernel->kernel自解压->内核初始化->内核启动

2. 内核启动:创建1#进程并执行,由它创建若干内核线程(kernel thread),然后装入并执行程序/sbin/init(变成一个用户进程)。

此后,init根据/etc/inittab配置文件来执行相应的脚本进行系统初始化,如设置键盘、字体,装载模块,设置网络等。

对于redhat来说,执行的顺序为:

etc/ # 由init执行的第一脚本

etc/ $runlevel # init执行指定运行级别($runlevel为缺省的运行模式)的各脚本;

etc/ #运行模式时会运行的脚本

sbin/mingetty(或getty) # 等待用户登录

etc/inittab中指定了系统的运行级别(runlevel),init根据运行级别启动相关的服务(一些后台进程),实现不同的功能。

runlevel值为:0-6

0:halt, 1:单用户,2:多用户,3:多用户并启动nfs服务

4:保留,5:运行xdm(x window)以图形界面方式登录

6:reboot

3./etc/inittab文件

etc/inittab的文件内容如下:

# 设定系统开机预设的runlevel:

id:3:initdefault:

# 开始进行runlevel的服务启动前,使用来侦测与初始化系统环境的设定文件:

si::sysinit:/etc/

# 7 个不同 run level 的,需要启动的服务的 scripts 放置路径:

l0:0:wait:/etc/ 0

l1:1:wait:/etc/ 1

l2:2:wait:/etc/ 2

l3:3:wait:/etc/ 3

l4:4:wait:/etc/ 4

l5:5:wait:/etc/ 5

l6:6:wait:/etc/ 6

# 是否允许按下 [ctrl]+[alt]+[del] 就重新开机的设定项目:

ca::ctrlaltdel:/sbin/shutdown -t3 -r now

# 本机端终端机启动的个数:

1:2345:respawn:/sbin/mingetty tty1

2:2345:respawn:/sbin/mingetty tty2

3:2345:respawn:/sbin/mingetty tty3

4:2345:respawn:/sbin/mingetty tty4

5:2345:respawn:/sbin/mingetty tty5

6:2345:respawn:/sbin/mingetty tty6

# 在 x window (runlevel 5) 环境下的启动 script 设定项目:

x:5:once:/etc/x11/prefdm -nodaemon

这个文件的语法是这样的:

标识符:级别:init 的动作行为:指令项目

1. 标识符:

最多四个字符,代表 init 的主要工作项目,只是一个简单的代表说明。

2. 级别:

该项目在哪些 run level 底下进行的意思。如果是 35 则代表 runlevel 3 与 5 都会执行。

3. init 的动作行为:

主要可以进行的动作项目意义有:

initdefault :代表预设的 run level 设定值;

sysinit :代表系统初始化的动作项目;

ctrlaltdel :代表 [ctrl]+[alt]+[del] 三个按键是否可以重新开机的设定;

wait :代表后面接的指令项目必须要执行完毕才能继续后面的动作;

Linux课程习题Linux作业

作业1 linux系统基础知识 1 1.基础知识部分 必做 1.简述linux内核版本和发布版本的区别,并 举例说明 写出查看当前安装linux的发布版本信息和内核版本信息的具体命令 附上截图 答 linux的发布版本是由内核版本发展而来的。内核就是一个核心,其他软件都基于这个核心,不能直接使用。发...

LINUX作业

作业11.写出下面命令每个部分含义,字符c表示命令 command o表示选项。option oa表示选项的参数 option argument ca表示命令的参数 command argument 如 c ooa o oa ca lpr pspr n 3 linux命令行的语法结构 command...

linux作业

题目1 新加一块磁盘并把它分成5个区,请将结果截图。题目2 查出系统cpu的信息,请截图。题目3 把系统日期和时间修改为2003年2月3日 20时30分,请截图。题目4 新建一个用户user1,新建用户组newg,把用户加入到用户组中,写出所使用的命令 题目5 执行命令chmod 531 后,此文件...