首页 > 代码库 > 第一次作业
第一次作业
1、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。
1)linux的发行版介绍
slackware:Slackware Linux是由Patrick Volkerding开发的GNU/Linux发行版,一直坚持KISS原则。
suse:在欧洲比较流行的linux发行版本
sles:suse企业版
opensuse:suse桌面免费发行版本
debian:服务器版,消耗资源少,稳定。
ubuntu
mint
redhat:成立于1992年
rhel:redhat enterprise linux,用于企业商用,为了保证服务器稳定,每18个月发行一个新版本
centos:开源版本,和RHEL几乎一样,兼容rhel的格式,已被redhat收购。
fedora:linux免费桌面版,得到redhat官方支持,用于测试新软件,每6个月发行一个新版本
Archlinux
Gentoo
LFS:Linux From scratch
Androld:kernel+busybox+java虚拟机,主要用于移动终端
2)不同发行版之间的联系
都是在开源的linux内核代码进行再次开发而形成不同的发行版,而且必须支持GNU中包含的自由软件协定,GNU包含的自由软件协定包含GPLv2、GPLv3、LGPL。各发行版其中SLES是suse的企业版本,opensuse是suse的免费桌面版,ubuntu和mint都是基于dibian的桌面版,RHEL为redhat面向企业商用的服务器版,fedora属于redhat的桌面版本,由redhat赞助fedora社群免费维护,centos主要面向企业服务器,由开源社区提供免费技术支持,后来被redhat收购,目前仍然免费。
3)各发行版之间的区别
包管理系统不同,SLES、Fedora、openSUSE、centos、RHEL采用rpm包管理系统,包文件以rpm为扩展名;Ubuntu系列,Debian系列采用DPKG包管理系统。
2、说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述。
1)linux系统命令的使用格式
COMMAND [OPTIONS...] [ARGUMENTS...]
OPTIONS:用于启用或关闭命令的某个功能,支持长选项(例如--long、--human--readable)和短选项(例如-a、-l),多个短选项还可以合并(例如-a -l可以合并为-al)
argument:命令的作用对象,向命令提供的数据。
2)ifconfig命令说明
命令介绍:ifconfig命令主要用于显示与配置网络接口;
参数:
-a:显示所有接口状态
示例:
-s:通过短格式显示当前所有网络接口的状态
示例:
-v:显示更详细的信息,包含一些错误条件。
示例:
up:启动指定的网络接口; down:关闭指定的网络接口
ifconfig ens33up; ifconfig ens33 down
arp:开启关闭指定网卡的arp协议
ifconfiginterface -arp:关闭arp协议,此时使用ssh无法连接linux主机
ifconfiginterface arp:开启arp协议,此时ssh连接linux主机正常
promisc:开启关闭指定网卡的混杂模式,混杂模式主要用于网络诊断
ifconfiginterface -promisc:关闭指定网卡的混杂模式
ifconfiginterface promisc:开启指定网卡的混杂模式
allmulti:开启关闭指定网卡的组播模式
ifconfiginterface -multicast:关闭指定网卡组播
ifconfiginterface multicast:开启指定网卡组播
mtu n:设置指定网卡的最大传输速率
ifconfig ens33 mtu 1000
3)回显命令:echo
-n: 禁止自动添加换行符号;
-e: 允许使用转义符;
\n: 换行
\t: 制表符
echo "$VAR_NAME": 变量会替换,双引号表弱引用
echo ‘$VAR_NAME‘: 变量不会替换,强引用
4)tty命令说明
用途:查看当前的终端设备
5)startx
用途:用于在服务器或终端商启动X会话
6)export命令说明
用途:用于为变量赋值,单独使用时可打印当前系统所有环境变量。
7)pwd命令说明
用途:用于显示当前目录
8)history命令说明
用途:用来管理命令的历史记录,当前命令记录保存在内存中,当登出系统时会追加到用户家目录的隐藏文件 .bash_history中。
环境变量:
HISTSIZE:记录的命令行数
HISTFILE:命令历史文件
HISTFILESIZE:命令历史文件最大记录命令数
命令参数:
-a:追加本地登录新执行的命令历史列表到命令历史文件中,例:history -a
-d offset:通过命令编号删除命令历史中指定命令,例:history -d 30
-c:清空命令历史,例:history -c
调用历史中的命令:
!#:调用命令历史中第#号命令,例:!30
!string:调用命令历史中最近一个以string开头的命令,例:!h
!!:重复运行上一条命令,例如:!!
调用前一条命令的参数
!$:调用上一条命令的参数
9/)shutdown命令说明
用途:用于操作系统退出、注销、关机、重启等操作,还可以指定关机时间。
命令格式:shutdown [option]... TIME[MASSAGE]
参数解析:
-r:立即重启,例:shutdown -r
-h:立即关机,例:shutdown -h
-c:取消关机操作,例:shutdown -c
TIME使用解析:
now:立刻执行,例:shutdown now
+m:相对于现在多少分钟后关机,例:shutdown +m
hh:mm:绝对时间,具体关机时间,例:shutdown 15:00
10)poweroff命令说明
用途:关机。
参数:
-f:不调用shutdown,强制关机
-p:关机且切断电源
reboot命令说明
用途:重启命令
参数:
-f:强制重启,例:reboot –f
11)hwclock命令说明
用途:显示和设置硬件、系统时钟同步
格式:hwclock [-ARGUMENT]
参数:
-s:将系统时钟同步为硬件时钟
-w:将硬件时钟同部为系统时钟
date命令说明
用途:显示和设置时间
格式:
显示:date [OPTION]... [+FORMAT]
参数:
%D:按照年/月/日的方式显示时间
%F:按照年-月-日的方式显示时间
%T:按照时-分-秒的方式显示时间
设置:date [MMDDhhmm[[CC]YY][.ss]]
参数:
MM: 月分
DD:几号
hh: 小时
mm: 分钟
YY: 两位年份
CCYY: 四位年份
.ss: 秒钟
3、如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分的。
1)linux帮助信息获取方法
内部命令查看帮助的方法
help COMMAND
外部命令查看帮助的方法
COMMAND --help;COMMAND –h
使用手册(manual);man COMMAND
]# man ls
LS(1) User Commands LS(1)
NAME
ls - list directory contents
SYNOPSIS
ls [OPTION]... [FILE]...
DESCRIPTION.......
信息页info COMMAND
]# clear
]# info tree
File:*manpages*, Node: tree, Up: (dir)
程序自身的帮助文档:README,INSTALL,Changelog
发行版的官方文档
2)man的章节划分
man1:用户命令
man2: 系统调用
man3: C库调用
man4: 设备文件及特殊文件
man5: 配置文件格式
man6: 游戏
man7: 杂项
man8: 管理类的命令
man手册存放在/usr/share/man中,有些命令不止在一个章节,具体存在的章节可以通过whatis进行查看。
4、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
1)Linux上的文件管理命令主要有:cp、mv、rm
cp常用选型:
-i:交互式,当文件存在时提示是否覆盖
-r, -R: 递归复制目录及内部的所有内容;
-a: 归档,相当于-dR --preserv=all:复制时保留源文件和目录的所有属性
-d:--no-dereference --preserv=links:复制时保留源文件的链接
--preserv[=ATTR_LIST]
mode: 权限
ownership: 属主属组
timestamp: 时间戳
links:链接
xattr:扩展属性
context:连接上下文
all:以上所有属性
-p: --preserv=mode,ownership,timestamp:保留文件权限、属主属组、时间戳属性
-v: --verbose:显示过程
-f: --force:强制覆盖。
2)移动命令mv
命令使用格式:
mv [OPTION]... [-T] SOURCEDEST
mv [OPTION]... SOURCE...DIRECTORY
mv [OPTION]... -t DIRECTORYSOURCE...
常用选项:
-i: 交互式,当文件存在时提示是否覆盖
-f: 强制覆盖
3)删除命令rm
命令使用格式:
rm [OPTION]... FILE...
常用选项:
-i: 交互式
-f: 强制删除
-r: 递归删除目录及内部的所有内容;
5、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
1)命令执行状态返回值
说明:bash使用一个特殊的环境变量$?保存最近一条命令的执行状态结果,如果执行成功则$?返回值为0,如果执行失败$?则返回值1-255其中的任何一个数字。
示例:
2)命令行展开
说明:bash可以已bash可以解释的符号来代替命令中的某些参数
~:表示当前用的家目录
{}:可承载一个以逗号分隔的列表,并将其展开为多个路径
示例:
]# mkdir -v{a,b}_{c,d}
mkdir: createddirectory ‘a_c’
mkdir: createddirectory ‘a_d’
mkdir: createddirectory ‘b_c’
mkdir: createddirectory ‘b_d’
6、请使用命令行展开功能来完成以下练习:
1)、创建/tmp目录下的:a_c, a_d, b_c, b_d
]# mkdir -v/tmp/{a,b}_{c,d}
mkdir: createddirectory ‘/tmp/a_c’
mkdir: createddirectory ‘/tmp/a_d’
mkdir: createddirectory ‘/tmp/b_c’
mkdir: createddirectory ‘/tmp/b_d’
2)、创建/tmp/mylinux目录下的:
mylinux/
├── bin
├── boot
│ └── grub
├── dev
├── etc
│ ├── rc.d
│ │ └── init.d
│ └── sysconfig
│ └── network-scripts
├── lib
│ └── modules
├── lib64
├── proc
├── sbin
├── sys
├── tmp
├── usr
│ └── local
│ ├── bin
│ └── sbin
└── var
├── lock
├── log
└── run
mkdir -vp/tmp/mylinux/{bin,/boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var,lock,log,run}
7、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
1)文件的元数据信息
atime:access time 文件访问时间
mtime:modify time 文件修改时间
ctime: change time 元数据atime、mtime改变时间,这个数值是不能自行修改
2)元数据查看命令stat
3)文件时间戳修改方式
touch FILENAME:同时修改atime、mtime、ctime三个时间戳
8、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
ls -d/var/l*[0-9]*[[:lower]]
9、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
ls -d/etc/[0-9]*[^0-9]
10、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
ls -d/etc/[^[:alpha]][:alpha]*
11、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-09-20-09-32-22。
touch/etc/tfile-data +"%Y-%m-%d-%H-%M-%S"
12、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
cp -avr /etc/*.d/tmp/mytest2
13、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。
cp -avr/etc/[lmn]*.conf /tmp/mytest3
第一次作业