1、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。
答:
Linux的发行版有数百种之多,其中最主流的三大发行版是:Slackware、Debian、RedHat。
Linux的发行版分为两类,一类是商业公司维护发行的版本,如下面介绍的Slackware和RedHat。一类是社区组织维护的发行版,以Debian为代表。
Slackware
suse
OpenSUSE
Debian
Ubuntu
Mint
RedHat
rhel(ReadHat Enterprise Linux 企业版)
由于在企业中用,所以稳定性很高。发行时间每18个月一个新版本,所用的软件都是fedora上测试过的,所以很稳定。
CentOS(社区版)
CentOS是Community Enterprise Operating System的缩写。是RHEL源代码再编译的产品,因此和RHEL一样,比其他发行版,其稳定性更好。企业中用得最多的系统。
Fedora(个人版)
redhat个人版到9.0之后就不出了,2003年前后送给了fedora社区,同时也用于测试新的软件,所以发行周期很快一般为6个月更新一次
Linux发行版众多,但是实际上只有一个内核,发行版只是给这个内核加上一些应用程序而组成的系统。而这些应用大部分都是来源于GNU社区,代码基本都一样,因此,各发行版之间差别不大。
不同的发行版细节上有一些差别,按软件包管理系统的不同,分以Redhat的rmp包管理系统和Ubuntu的基于DPKG包管理系统。使用前者的发行版包括SUSE、Fedora、openSUSE、centos、RHEL等,包文件以rpm为扩展名;使用后者的包括Ubuntu系列,Debian系列等,包文件以deb为扩展名。
2、说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述。
ifconfig #显露所有网络接口的配置信息
# ifconfig
eth0 Linkencap:Ethernet HWaddr00:0C:29:03:89:42
inet addr:192.168.1.110 Bcast:255.255.255.255 Mask:255.255.255.0
inet6 addr:fe80::20c:29ff:fe03:8942/64 Scope:Link
UP BROADCASTRUNNING MULTICAST MTU:1500 Metric:1
RX packets:51480errors:0 dropped:0 overruns:0 frame:0
TX packets:28318errors:0 dropped:0 overruns:0 carrier:0
collisions:0txqueuelen:1000
RXbytes:76330886 (72.7 MiB) TXbytes:1929995 (1.8 MiB)
#ifconig eth0 192.168.1.111 #为网络接口eth0设置IP地址,使用标准子网掩码
echo #打印变量或字符串
#echo $PATH #打印环境变量的值
/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin
tty #显示终端机连接标准输入设备的文件名称
# tty
/dev/pts/0
startx #启动X windows(启动X init)
startx[选项]
startx #启动X-window
export #将变量输出为环境变量
export [选项][参数]
export [-fnp][变量名称]=[变量设置值] 例:export-p 列出当前的环境变量值
pwd查看用户当前所处目录的完整路径格式:pwd [选项] 例:pwd/root
history 查看历史命令格式:history 【选项】 例:history
shutdown #关闭计算机
shutdown[选项][参数]
shutdown [-cfFhknr][-t 秒数][时间][警告信息] 例:shutdown –h now
poweroff #关闭计算机并切断电源
poweroff [-nwdfih] 例:poweroff –h 安全的关闭计算机
reboot #重新启动计算机
reboot [-nwdfi] 例:reboot -i #重新启动Linux操作系统
hwclock #查询与设置硬件时钟
hwclock[--show][--set][--hctosys][systohc][--getepoch][--setepoch][--date]
例:hwclock –systohc #同步硬件时钟为系统时钟
date #显示或设定系统的日期与时间
date[-d][-f][-r][-s][-u][--help][--version] 例:date –s “2016-12-10 18:00:00”
3、如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分的。
获取命令的帮助:
内部命令:
help COMMAND
外部命令:
1.命令自带简要格式的使用帮助
~]# COMMAND –help
2.使用手册
位置: /usr/share/man
[root@localhost~]# ls /usr/share/man
bg en hu man0p man2x man4x man7 man9x pt sl
cs es id man1 man3 man5 man7x mann pt_BR sv
da fi it man1p man3p man5x man8 nl ro tr
de fr ja man1x man3x man6 man8x overrides ru zh_CN
el hr ko man2 man4 man6x man9 pl sk zh_TW
~]# manCOMMAND
man 帮助文档结构:
SECTION: NAME:功能性说明
SYNOPSIS:语法格式
DESCRIPTION:描述
OPTIONS:选项
EXAMPLES:示例
AUTHOR:作者
BUGS:报告陈谷BUG的方式
SEE ALSO:参考
…等等
SYNOPSIS:语法格式
[] : 可选内容
<>:必须
a|b|c : 多选一
… :同类内容可以出现多个.
使用手册:压缩格式的文件,有章节之分
1.用户命令
2.系统调用
3.C库调用
4.设备文件和特殊文件
5.文件格式(配置文件格式)
6.游戏使用帮助
7.杂项
8.管理工具和守护进程
~]# manCHAPTER COMMAND 查找指定章节下手册
并非每个COMMAND在所有章节下都有手册
查看:
~]# whatis COMMAND
[root@localhost~]# whatis passwd
sslpasswd (1ssl) – compute password hashes
passwd (1) – update user's authenticationtokens
注意:其执行过程是查询数据库进行的.
手动更新数据库:
~]# make whatis
man命令打开手册的操作方法:
翻屏:
空格行:向文件尾翻一屏
b:向文件首部翻一屏
Ctrl+D:向文件尾翻半屏
Ctrl+u:向文件首翻半屏
回车:向文件尾翻一行
k:向文件首部翻一行
G:跳转到最后一行
#G:跳转到指定行
1G:跳转至文件首部
查找:
/keyword:从首部向尾部查找,不区分大小写
?keyword:从尾部向首部查找
n:与查找命令方向相同
N:与查找命令方向相反
退出:
q:退出
man命令的选项:
-M /PATH/TO/SOMEDIR 到指定目录下查找命令手册并打开
3.info COMMAND
获取命令的在线文档
4.应用自带的帮助文档
/usr/share/doc/APP-VERSION
5.主流发行版的官方文档
如:
6.程序的官方文档
7.搜索引擎
google
4、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
1)、查看文件命令:
(1)ls命令:
list,列出目录下的内容
语法:
ls [OPTION]…[FILE]…
常用选项:
-a: 显示所有文件,包括隐藏文件;
-A:显示除.和..之外的所有文件;
-l: –long, 长格式列表,即显示文件的详细属性信息;
-h, –human-readable:对文件大小单位换算;换算后结果可能会非精确值;
-d:查看目录自身而非其内部的文件列表;
-r: reverse, 逆序显示;
-R:recursive,递归显示;
(2)cat命令:
是一个文本文件查看和连接工具。cat 后面直接接文件名,查看一个文件的内容
语法:
cat [OPTION]…[FILE]…
常用选项:
-n:给显示的文本行编号;
-E: 显示行结束符$;
-b: 对非空输出行编号;
-s:不输出多行空行;
(3)file命令:
查看文件类型;
语法:
*file [FILE]…
常用选项:
-c:详细显示指令执行过程,便于排错或分析程序执行的情形;
-L:查看对应软链接对应文件的文件类型;
-z:尝试去解读压缩文件的内容;
(4)echo命令:
回显,echo的功能是在显示器上显示一段文字,一般起到一个提示的作用;
语法:
echo[SHORT-OPTION]… [STRING]…
常用选项:
-n: 不进行换行;
-e:让转义符生效;n:换行t:制表符
注意:
TRING可以使用引号,单引号和双引号均可用;a,单引号:强引用,变量引用不执行替换;b,双引号:弱引用,变量引用会被替换;
变量引用的正规符号: ${name}
(5)which命令:
命令用于查找文件
语法:
which [文件…]
常用选项:
-n<文件名长度>:指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名;
-p<文件名长度>:与-n参数相同,但此处的<文件名长度>包括了文件的路径;
(6)whereis命令:
whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。 和find相比,whereis查找的速度非常快,这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中,当使用whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,通 过遍历硬盘来查找,效率自然会很高。
语法:
whereis [-bfmsu][-B<目录>…][-M <目录>…][-S <目录>…][文件…]
常用选项:
-b:只查找二进制文件;
-B<目录>:只在设置的目录下查找二进制文件;
-f:不显示文件名前的路径名称;
-m:只查找说明文件;
-M<目录> 只在设置的目录下查找说明文件;
-s:只查找原始代码文件;
-S<目录>:只在设置的目录下查找原始代码文件;
-u:查找不包含指定类型的文件;
(7)more命令:
more命令的功能是分屏查看;特点:翻屏至文件尾部后自动退出;
语法:
more FILE
常用选项:
-#: 一次显示#行;
+#:从#行开始显示;
-c:从顶部清屏,然后显示;
-s:把连续的多个空行显示为一行;
常用的操作命令:
Enter:向下n行,需要定义。默认为1行
Ctrl+F:向下滚动一屏
空格键:向下滚动一屏
Ctrl+B:返回上一屏
=:输出当前行的行号
:f:输出文件名和当前行的行号
V : 调用vi编辑器
!命令:调用Shell,并执行命令
q:退出more
(8)less命令:
less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。
语法:
less [参数] 文件
选项:
-e:当文件显示结束后,自动离开;
-i:忽略搜索时忽略大小写;
-N:显示每行的行号;
-o<文件名>:将less输出的文件保存至指定的文件;
-s:显示连续的空行为一行;
/字符串:向下搜索“字符串”功能;
?字符串:向上搜索“字符串”功能;
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b:向后翻一页
d:向后翻半页
h:显示帮助界面
Q:退出less 命令
u:向前滚动半页
y:向前滚动一行
[pagedown]:向下翻动一页
[pageup]:向上翻动一页
(9)head命令:
查看文件的前n行
语法:
head [options] FILE
常用选项:
-c <#>:显示#个字节数;
-n <#>:显示#行;
tail命令:
查看文件的后N行;
语法:
tail[必要参数][选择参数][文件]
常用选项:
-f:循环读取;
-q:不显示处理信息;
-v:显示详细的处理信息;
-c<数目>:显示的字节数;
-n<行数>:显示行数;
(10)stat命令:
stat – display fileor file system status,显示文件或文件的状态信息;
语法:
stat FILE…
常用选项:
时间戳:
access time(访问时间):Access: 2016-12-10 09:13:28.150756410 -0800
modify time(修改时间):Modify: 2016-12-10 08:17:30.275999846 -0800
change time(状态改变时间) Change: 2016-12-10 08:17:40.913999842 -0800
(11)touch命令:
touch – change filetimestamps,可以用来创建文件;
语法:
touch [OPTION]…FILE…
常用选项:
-c: 指定的文件路径不存在时不予创建;
-a: 仅修改access time;
-m:仅修改modify time;
-t:使用指定的日期时间,而非现在的时间;[[CC]YY]MMDDhhmm[.ss];
2)管理文件命令:
(1)cp命令:
copy,复制命令;
语法:
cp [OPTION]… [-T]SOURCE DEST
cp [OPTION]…SOURCE… DIRECTORY
cp [OPTION]… -tDIRECTORY SOURCE…
常用选项:
-i:交互式复制,即覆盖之前提醒用户确认;
-f:强制覆盖目标文件;此时不会提示你是否覆盖了,直接强制覆盖;
-r, -R:递归复制目录;
-d:复制符号链接文件本身,而非其指向的源文件;
-a:-dR –preserve=all, archive,用于实现归档;
(2)mv命令:
move,移动命令;
语法:
mv [OPTION]… [-T]SOURCE DEST
mv [OPTION]…SOURCE… DIRECTORY
mv [OPTION]… -tDIRECTORY SOURCE..
常用选项:
-i:交互式;
-f:force,强制移动;
-u:若目标文件已经存在,且 source 比较新,才会更新(update);
-t:即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后;
(3)rm命令:
remove,删除;
语法:
rm [OPTION]… FILE…
常用选项:
-i:interactive,交互式删除;
-f:force,强制删除;
-r: recursive,将参数中列出的全部目录和子目录均递归地删除;
5、 bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
1)bash的工作特性之命令执行状态返回值;
在Linux 下,任意一个命令执行结束之后,bash都会返回0-255之间的数值以表示命令执行成功与否;其返回值保存于bash的特殊变量$?中;
其中0表示:执行成功;1-255表示执行错误;
例如:
[root@localhost ~]#ls
anaconda-ks.cfg Desktop Documents Downloads install.log install.log.syslog Music Pictures Public Templates Videos
[root@localhost ~]#echo $?
0
[root@localhost ~]#lss -s
-bash: lss: commandnot found
[root@localhost ~]#echo $?
127
[root@localhost ~]#
2)bash的工作特性之命令行展开:
bash中命令行展开主要有两种:
(1)~:自动展开为用户的家目录,或指定的用户的家目录;
(2){}:可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径;
例如:/tmp/{a,b} 相当于 /tmp/a /tmp/b;
6、请使用命令行展开功能来完成以下练习:
(1)、创建/tmp目录下的:a_c, a_d, b_c, b_d
touch /tmp/{a,d}_{b,c}
或
mkdir –p /tmp/{a,d}_{b,c}
(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 -pv/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、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
stat 命令
stat – display file or filesystem status
显示文件或文件系统的状态
stat FILE…
文件:两类数据
元数据:metadata:access(最后访问),modify(最后修改),change(最后改变)
数据: data
时间戳:
Access: 2016-12-10 09:13:34.584756409 -0800
Modify: 2016-12-1100:24:17.968715453 -0800
Change: 2016-12-1100:24:17.968715453 -0800
使用stat 查看文件元数据
touch 命令
touch – change file timestamps
修改文件时间戳
touch [OPTION]… FILE…
-c: 指定的文件路径不存在时不予创建;
-a: 仅修改access time;
-m:仅修改modify time;
-t STAMP
[[CC]YY]MMDDhhmm[.ss]
touch命令给文件指定时间戳
[root@localhost tmp]# touch -m -t12111700.00 file
[root@localhost tmp]# stat file
File: `file'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 802h/2050d Inode: 20488 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-12-1108:33:39.605000172 -0800
Modify: 2016-12-1117:00:00.000000000 -0800
Change: 2016-12-1117:46:40.708195098 -0800
直接touch FILE… 修改文件Access,Modify,Change 时间
8、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
#ls -d l*[0-9]*[[:lower::]]
9、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
#ls –d /etc/[0-9]*[^0-9]
10、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
#ls /etc/[^[:alpha:]][[:alpha:]]*
11、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-09-20-09-32-22。
#touch /tmp/tfile-"$(date +%F-%H-%M-%S)"
12、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
#cp –a /etc/*.d /tmp/mytest2
13、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中
#cp–a /etc/[lmn]*.conf /tmp/mytest3