一、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。
目前市面上三大主流Linux发行版
1、slackware:
suse:基于slaveware的二次发行版,目前在欧洲很盛行
opensuse:再基于suse的三次发行版
2、debian:它是三者之中唯一一个不是由商业组织开发和维护的,最接近原始版本的
ubuntu:基于debian的二次发行版
mint:再基于ubuntu的三次发行版
3、redhat:从redhat7.0版本开始分为个人桌面版和企业版,而从redhat9.0之后个人 桌
面版放慢了维护的进度,并最后捐给了fedora组织来维护和更新
rhel(redhat Enterprise Linux):相比于fedora的更新速度慢很多,大约每18
个月才发行一个新版本,并且它的应用程序和硬件是经过fedora版本稳定测
试过可吸纳以及使用的
CentOS:以完全兼容rhel的格式重新编译其源码而发布的免费版本
fedora:用于测试市面上新程序和新硬件,大约每6个月发行一个新版本
联系:(1)所有的发行版都使用Linux内核;
(2)所有的Linux发行版都需要遵守GPL协定,即提供源码;
(3)所有的发行版都有自己的版本号,版本格式基本一样;
主版本号.次版本号.发行号或修正号
区别:(1)只有debian是社区组织在维护;
(2)发行版的本质区别,在于集成不同版本的内核、库和程序
(3)不同发行版采用了不同的包管理器
二、说明Linux系统上命令的使用格式,并配合相应示例来阐述
1、ifconfig命令
功能:用于查看网络接口的信息
格式: ifconfig [-a][-s][-v] [interface]
ifconfig [-v] interface[aftype] options | address ...
参数:-a:显示所有接口网络配置的信息
-s:显示摘要信息
up:激活某个接口状态
down:关闭接口的活动状态
[-]arp:开启或关闭接口的支持arp协议的功能
address:为接口设置IPv4地址
add/del:添加或删除接口的IPv6地址的配置
brocast:为接口设置广播地址
netmask:配置接口的子网掩码
mtu:设置接口的最大传输单元
示例:(1)启动或关闭接口
# ifconfig ens33 up
# ifconfig ens33 down
(2)配置IP地址
# ifconfig ens33 192.168.10.15network 255.255.255.0
(3)查看接口的配置信息
# ifconfig ens33
# ifconfig -a
2、echo命令
功能:显示文本字符
格式: echo [SHORT-OPTION]... [STRING]...
echo LONG-OPTION
参数:-n:输出结果不换行
-e:打开反斜杠转义;若字符串中出现以下字符,则作特别处理
\a:发出警告声;
\b:删除前一个字符;
\c:最后不加上换行符号;
\f:换页;
\n:换行;
\t:插入tab;
-E:关闭反斜杠转义
示例:输出字符
# echo -n how are you 不换行输出
# echo how are you 换行输出
# echo “VAR_NAME” 弱引用,变量替换显示
# echo ‘VAR_NAME’ 强引用,变量不会替换
3、tty命令
功能:输出连接到标准输入的终端文件名
格式:tty [OPTION]...
参数:-s:什么也不打印,只返回退出状态码
状态码:0表示标准输入是一个终端
1表示标准输入不是一个终端
2表示给定的参数是不正确的参数
3表示发生了写错误
--version:查看版本信息
示例:# tty 输出当前终端的文件描述符
# echo "mytest" >/dev/tty1 在特定终端上显示该字符
4、startx命令
功能:用于启动x window
格式:startx [OPTION]
示例:# startx 在工作站上或X终端上启动X窗口
5、export命令
功能:设置或显示环境变量
格式:export [-fnp] [变量名称]=[变量设置值]
参数:-f:表示[变量名称]为函数名称
-n:删除指定的变量,以不被输出到指定的执行环境中
-p:列出所有shell赋予程序的环境变量
示例:# export -p 输出shell中所有的环境变量
# exportPATH="$PAATH:/opt/app"
添加/opt/app目录到环境变量PATH中
6、pwd命令
功能:输出当前用户的工作目录
格式: pwd [OPTION]
示例:# pwd 一般情况下不带任何参数
7、history命令
功能:输出操作指令历史列表
用法:history [-c] [-d offset]
History [-awr] [filename]
参数:-c:清空历史指令列表
-a:手动追加当前会话缓冲区的命令历史添加到历史缓冲区中
-w:将当前历史命令缓冲区命令写入历史命令文件中
-r:将历史命令文件中的命令读入当前
示例:# history -d 5 删除历史指令缓冲区中第5条指令
# history -c 清空历史指令缓冲区列表
# history 5 显示历史中最近的5条指令
# history -a 追加当前操作指令到历史指令缓冲区中
8、shutdown命令
功能:关闭或重启系统
用法:shutdown [OPTION]... TIME [MESSAGE]
参数:-r:重启
-h:关机
-c:取消
Time:now 立刻
+m 表示从命令提交后m分钟执行
hh:mm 指明具体时间
示例:# shutdown -r now 立刻重启
# shutdown -h +5 5分钟后关机
# shutdown -c 取消关机或重启
9、poweroff命令
功能:关闭系统并切断电源
用法:poweroff [OPTION...]
参数:-i:关闭系统之前关闭所有的网络接口
-f:强制关闭系统
示例:# poweroff
# poweroff -i
# poweroff -f
10、reboot命令
功能:重启系统
用法:reboot [OPTION...]
参数:-i:关闭网络设置之后再重启系统
-n:保存数据后再重启系统
-f:强制重启,不调用shutdown指令的功能
示例:# reboot
# reboot -n
# reboot -f
11、hwclock命令
功能:显示或设置当前硬件时钟
用法:hwclock [function] [option...]
参数:-r --show:显示当前硬件时钟和日期
-s --hctosys:将系统时钟调整为与硬件时钟一致
-w --systohc:将硬件时钟调整为与系统时钟一致
示例:# hwclock 查看当前硬件时间
# hwclock -s
# hwclock -w
12、date命令
功能:显示或设置当前系统时间
用法:date [OPTION]... [+FORMAT]
date [-u|--utc|--universal][MMDDhhmm[[CC]YY][.ss]]
参数:-s --set=STRING:设置STRING指定的时间
-u,--utc,--universal:输出或设置UTC时间
FORMAT:表示输出时间的格式
常用格式:%D 输出格式 月/日/年
%F 输出格式 年-月-日
%T 显示当前时间格式 时:分:秒
示例:# date +%D
# date +%F
# date 121022202016.00 以月日时分年.秒的格式来设置系统时间
三、如何在Linux系统上获取帮助信息,请详细列出,并描述man文档的章节
(1)对于内建命令和外部命令获取帮助信息的方式各不相同
内建命令:# help COMMAND
外部命令:① # COMMAND --help 或 # COMMAND -h
② 通常每个命令都有一个简要的使用手册(manual)
# man COMMAND
③ 获取命令的作用、工作方式、特征码等信息的信息页
# info COMMAND
④ 获取程序自身的帮助文档
一些源码安装程序会自带README、INSTALL、Changelog等帮助信息
⑤ 获取程序官方文档
打开官方站点获取Documentation的文档
⑥ 获取发行版的官方文档
可获得较权威的系统使用手册,部分涉及命令使用帮助
⑦ 活用网络搜索工具google
(2)man手册页的存放目录在/usr/share/man下,按不同数字划分手册类别,如下:
man1:所有用户都有权限使用的普通命令;
man2:开发程序员常用的系统调用命令;
man3:标准库调用;
man4:设备文件及特殊文件;
man5:说明应用程序的配置文件的格式;
man6:与游戏相关;
man7:不好归类的杂项;
man8:系统管理类的命令;
四、Linux上的文件管理类命令都有哪些,其常用的使用方法及相关示例
复制、移动、删除命令统称为文件管理类命令
(1)复制命令:cp
格式:cp[OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
参数:-i:交互式,提醒用户是否覆盖复制;
-r,-R:目录递归复制;
-a:归档复制,即保留原文件的属性不变,相当于-dR-preserv=all
-d:保留链接文件;
-v:显示复制过程;
-f:强制覆盖,不予提示;
使用方法及示例:
① 复制单个文件:如果目标文件不存在,则新建与原文件同名的文件,并将原
文件的内容填充到目标文件中;如果目标文件存在,则将原文件中的内容覆盖到目标
文件中,使用-i选项可开启交互式提醒
例: # cp yum.log yum2.log 在当前目录下复制原文件生成新的文件
# cp /tmp/yum.log /var 在/var目录下生成一个同名同内容的文件
# cp /tmp/yum.log /var/111 将原文件的内容覆盖到111文件中
② 复制多个文件:只有拷贝目标是目录的情况下,命令才能正常执行,其他情形都
会报错;此处它会把多个文件在目标目录下都新建一个同名的文件,并把各自的文件
的数据流填充到同名的文件中
例: # cp-r /tmp/mageedu/ /var 复制目录必须用递归
(2)移动命令:mv
格式:mv[OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRCTORYSOURCE...
参数:-i:交互式,提醒用户是否覆盖已有文件;
-f:强制覆盖,不予提示;
使用方法及示例:
① 重命名文件:
例:#mv /tmp/yum.log yum2.log 在当前目录下修改文件名yum.log为yum2.log
② 移动文件
例:#mv /tmp/mageedu/* /var/ 移动/tmp/mageedu/中的所有文件到/var下
(3)删除命令:rm
格式:rm[OPTION]... FILE...
参数:-i:交互式,提醒用户是否需要删除文件;
-f:强制覆盖,不予提示;
-r:递归;
使用方法及示例:
# rm -i /tmp/yum.log 系统给予提示是否确认要删除文件
# rm -rf /var/mageedu/ 强制删除/var下的mageedu目录,不予提示
五、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及示
例演示
(1)命令的执行结果只分两种:成功或失败;
命令的执行状态结果被保存在变量”$?”中,不同的执行状态用不同的数字表示,通过查看该变量值可获知最近一条命令的执行状态结果
成功:返回状态值为0
失败:根据错误信息的不同返回值在1-255之间
示例:# ls /var
# echo “$?” 此处返回值为0,表示命令成功执行
# lss /var
# echo “$?” 此处返回值为2,表示命令执行失败
(2)命令行展开分为~展开和{}展开两种
① ~展开:展开指定用户的主目录
例:# cd ~ 进入当前用户的主目录
# cd ~USERNAME 进入指定用户的主目录
② {}展开:可承载一个以逗号分隔的列表,并将其展开为多个路径;
例:#/tmp/{a,b} = /tmp/a,/tmp/b
# /tmp/{tom,jerry}/hi =/tmp/tom/hi,/tmp/jerry/hi
六、用命令行完成创建目录练习
(1) # mkdir /tmp/{a,b}_{c,d}
(2) # mkdir -p
/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}
七、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息
(1)文件的元数据信息用于描述文件的附加信息,包括文件类型、文件权限、文件的修改时间和读取时间等
例:# ls -l /tmp/yum.log
-rw-r--r-- 1 root root 663 Dec 1315:31 yum.log
各部分含义如下:
● 从左边开始第一个 -,表示文件类型,此处说明yum.log这个文件为普通文件;如果是目录,则应为d;此外还有其他一些不同的文件类型
● 随后的九个字符,为 rw-------,它用于表示文件的权限;这九个字符可分成三组:rw-,---,---,分别对应拥有者(owner),拥有组(owner group)和所有其他人(other);第一组表示,如果当前登录用户是该文件的拥有者,则该用户对文件就有读写权限,但并不拥有执行权限(-,如果拥有执行,则为x);第二组表示,如果当前登录用户的属组是该文件拥有组的一员,那么就有对这个文件读的权限;第三组表示,如果当前用户既不是拥有者,也不是拥有组中的一员,那么也只能对这个文件有读的权限
● 1表示该文件被硬链接的次数
● 左边第一个root表示root用户是该文件的拥有者(owner),文件的拥有者有权更改文件权限(如rwxrw-rw-),而第二个root表示文件的拥有组是root组;注意,Linux的超级用户root,能拥有文件的所有权限
● 663表示文件的大小,单位为字节
● Dec 13 15:31 表示文件的最后一次修改的时间
(2)文件的时间戳信息包含三种时间:
● Access time:简称atime,访问时间:即最近读取一次文件的时间;
如:more、cat命令等
● Modify time:简称mtime,修改时间:即文件最后一次文件被修改的时间;如:vim、
nano命令等
● Change time:简称ctime,状态改变时间:文件的属性信息改变的时间
示例: # touch -a yum.log 修改文件atime,文件的属性改变故ctime也会改变
# touch -m yum.log 同样地修改文件mtime,ctime也会改变
# cat yum.log 读取文件只会改变文件的atime,类似的命令如more等
# vim yum.log 修改文件内容则全部更新文件的时间戳信息,如nano等
八、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(包含其他字符)的文件或目录
# ls/var/l*[0-9]*[[:lower:]]
九、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录
# ls/etc/[0-9]*[^0-9]
十、显示/etc目录下,以非字母开头,后面跟了一个字母以及其他任意长度任意字符的文件或目录
# ls/etc/[^a-z][a-z]*
十一、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件
#touch /tmp/tfile-"$(date +%F-%H-%M-%S)"
十二、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中
# cp-r /etc/*.d /tmp/mytest2/
十三、复制/etc目录下所有以l或m或n开头,以.com结尾的文件至/tmp/mytest3目录中
# cp/etc/{l,m,n}*.conf /tmp/mytest3/