1、用自己的语言简述计算机的组成
计算机由硬件系统和软件系统组成,硬件系统遵循美籍匈牙利科学家冯.诺伊曼体系由运算器、控制器、存储器(分为主存储器和辅助存储器,主存储器为内部存储器速度块但断电后数据会丢失例如:内存,辅助存储器为外部存储器速度慢但是断电后仍然可保存数据例如:硬盘)、输入及输出等设备组成,软件系统由系统软件和应用软件组成,例如:操作系统、学习软件、编程软件、表格软件、视频软件等应用软件。
2、简单说明硬件、操作系统、应用软件与用户之间的关系
用户通过应用软件进行各种指令操作,应用软件通过系统调用接口向操作系统内核申请硬件资源执行用户操作指令,操作系统内核通过硬件驱动等硬件接口,控制分配用户操作指令所需要的硬件资源。
3、简述Linux哲学思想
1.)一切皆文件
2.)小型,单一用途的程序
3.)连接多个程序,共同完成复杂的任务
4.)避免令人困惑的用户界面
5.)配置数据保存在文件中
4、Linux系统中命令分为哪几种类型,请阐述其执行顺序
别名alias 内部命令 外部命令
alias >内部命令> 外部命令
5、用自己的语言尝试阐述什么叫重定向,并举例说明
重定向就是把具有默认设备的数据流传输到非默认设备的其他地方如:文件中,临时连接等,其中I/o设备文件:标准输入 标准输出错误输出 就是这样默认设备的文件,通过ll /proc/$BASHPID/fd可以看到默认设备对应的文件描述为 0,1,2。Linux为其三种I/O设备提供了重定义方法:
1.)标准输入重定向 使用0<或< 实现
2.)标准输出重定向 使用 1>或>实现
3.)错误输出重定向 使用2> 实现
4.)管道符及将前一个程序的标准输出结果当作后一个程序的输入进行处理 使用 | 实现
5.)标准输出和错误输出同时进行重定向 > command 2>&1 或者 &> 或 2> command1>&2 实现
6.)将前一个程序的标准输出和错误输出结果当作后一个程序的输入进行处理 使用 2>&1| 或者 |& 实现
例:标准输入重定向把 ruan.log 中所有小写字母转换成大写并输出到屏幕
[17:52:04 root@ruanruan data]#cat ruan.log
bash: ewewewe: command not found...
[17:52:10 root@ruanruan data]#tr 'a-z' 'A-Z' < ruan.log
BASH: EWEWEWE: COMMAND NOT FOUND...
[17:52:20 root@ruanruan data]#
例:标准输出重定向 通过1>或> 使标准输出信息不在默认终端显示,传输到ruan.log文件显示
[21:07:54 root@cengtos7\ [ data]#
[21:07:54 root@cengtos7\ [ data]#cat ruan.log
[21:08:01 root@cengtos7\ [ data]#seq -s+ 100 > ruan.log
[21:08:40 root@cengtos7\ [ data]#cat ruan.log
1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+21+22+23+24+25+26+27+28+29+30+31+32+33+34+35+36+37+38+39+40+41+42+43+44+45+46+47+48+49+50+51+52+53+54+55+56+57+58+59+60+61+62+63+64+65+66+67+68+69+70+71+72+73+74+75+76+77+78+79+80+81+82+83+84+85+86+87+88+89+90+91+92+93+94+95+96+97+98+99+100
[21:08:48 root@cengtos7\ [ data]#
例:通过管道符 | 实现标准输出重定向到临时连接 并把临时连接当作输入进行标准输入重定向
[17:54:21 root@ruanruan data]#echo "obase=2;10" |bc
1010
例: 通过<< 实现多行重定向 把标准和错误输出重定向到xiao.log 中
[17:57:49 root@ruanruan data]#ls -l
total 4
-rw-r--r--. 1 root root 5 Mar 22 17:54 ruan.log
-rw-r--r--. 1 root root 0 Mar 22 17:56 xiao.log
[17:58:03 root@ruanruan data]#cat xiao.log
[17:58:10 root@ruanruan data]#cat &>xiao.log <<!
> my name is `hostname`
> `showwiwwi`
> !
[17:59:15 root@ruanruan data]#cat xiao.log
bash: showwiwwi: command not found...
my name is ruanruan
[17:59:23 root@ruanruan data]#
例:通过tee 命令 即输入到屏幕也通过管道符进行输入重定向
[18:05:43 root@ruanruan data]#cat >ll.log <<!
> 12121
> !
[18:05:59 root@ruanruan data]#cat ll.log
12121
[18:06:03 root@ruanruan data]#tee |& tee -a ll.log <<!
> `nideyede`
> `lsb_release -i`
> !
bash: nideyede: command not found...
Distributor ID: CentOS
[18:11:00 root@ruanruan data]#cat ll.log
12121
Distributor ID: CentOS
[18:11:06 root@ruanruan data]#
场景题
1.领导老李在服务器上cat查看一个文件aa.txt,提示No such file or directory,让小王来帮忙看看是什么情况,小王一顿操作发现aa.txt是个链接文件,在备份服务器找到其原文件,不一会儿,小王就解决了老李查看aa.txt的问题,。请说明小王是如何解决的。
方法一
1.)通过描述判断文件为软连接文件,因源文件丢失导致无法访问
2.)确认aa.txt路径,通过readlink /xxxx/aa.txt确认源文件路径及文件名称
3.)在源文件路径下还原源文件信息
安装文件上传包yum -y install lrzsz
rz导入
sz导出
4.)mv -u或者mv -f /xx/xx.bak /xx/xxx.txt 移动并修改文件名称到指定路径
方法二
1.)通过描述判断文件为软连接文件,因源文件丢失导致无法访问
2.)确认aa.txt路径
3.)rm -f aa.txt 删除链接文件
4.)ln -s /xx/xxx.bak(备份文件) /xx/aa.txt重新建立软连接
2.用mail命令给自己的qq邮箱发送一份周末慰问信,截图给出结果
1.)安装邮件系统
Centos安装 yum -y install postfix;systemctl enable --now postfix
2.)配置邮箱文件
nano /etc/mail.rc
3.)添加自己邮箱配置
set from=1097744154@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=1097744154@qq.com
set smtp-auth-password=自己的码
3.) 发送邮件
[18:22:03 ruan@ruanruan data]$echo `date +%F-%T` `whoami` hello ruan 周末愉快 | mail -s happy 1097744154@qq.com
3、【选做】老李让小王安装一个收集日志的软件nxlog,需求是不允许root来运行nxlog这个程序,且被收集access.log其他用户无读取权限,三天后access.log会被nginx服务更新,即重新生成,文件名不变。为了正常收集,小王应该如何做?
(提示,该服务器已经安装了nxlog软件与nginx服务,即有nxlog、nginx同名的用户与用户组)
1.) usermod -s /bin/false -g nxlog nxlog
2.)chmod u=rw-,g=-wx,o=--- access.log 或者chmod 640 access.log
chown -R nginx:nginx access.log