1、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别

发行版本有: Red Hat Linux 、 SuSE 、 centos 、 Gentoo 、 Debian 、 Ubuntu 、Fedora Core 等。

CentOS ( Community ENTerprise Operating System )是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux          依照开放源代码规定释出的源代码所编译而成。

Debian, 或者称 Debian 系列,包括 Debian 和 Ubuntu 等。 Debian 是社区类 Linux 的典范,是迄今为止最遵循 GNU 规范 Linux 系统。

Ubuntu 严格来说不能算一个独立的发行版本, Ubuntu 是基于 Debian 的 unstable 版本加强而来,可以这么说 Ubuntu 就是一个拥有 Debian 所有的优点,以及自己所加强的优点的近乎完美的 Linux 桌面系统。

Gentoo, 伟大的 Gentoo 是 Linux 世界最年轻的发行版本,正因为年轻,所以能吸取在她之前的所有发行版本的优点,这也是 Gentoo 被称为最完美的 Linux 发行版本的原因之一。

2、说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述。

命令介绍

ifconfig

描述:ifconfig (ifconfig – configure a network interface) 配置网络接口

使用格式

ifconfig [interface]

ifconfig interface [aftype] options | address 

   (1)不带[OPTION]情况

[root@stady7 ~]# ifconfig eno16777736: flags=4163
  mtu 1500         inet 10.1.1.10  netmask 255.255.255.0  broadcast 10.1.1.255         inet6 fe80::20c:29ff:fe0b:e32a  prefixlen 64  scopeid 0x20
        ether 00:0c:29:0b:e3:2a  txqueuelen 1000  (Ethernet)         RX packets 494  bytes 377407 (368.5 KiB)         RX errors 0  dropped 0  overruns 0  frame 0         TX packets 351  bytes 38990 (38.0 KiB)         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0 lo: flags=73
  mtu 65536         inet 127.0.0.1  netmask 255.0.0.0         inet6 ::1  prefixlen 128  scopeid 0x10
        loop  txqueuelen 0  (Local Loopback)         RX packets 0  bytes 0 (0.0 B)         RX errors 0  dropped 0  overruns 0  frame 0         TX packets 0  bytes 0 (0.0 B)         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

(2)[OPTION]情况

interface 网卡接口的名称

[root@stady7 ~]# ifconfig eno16777736 eno16777736: flags=4163
 mtu 1500        inet 10.1.1.10  netmask 255.255.255.0  broadcast 10.1.1.255        inet6 fe80::20c:29ff:fe0b:e32a  prefixlen 64  scopeid 0x20
       ether 00:0c:29:0b:e3:2a  txqueuelen 1000  (Ethernet)        RX packets 509  bytes 381703 (372.7 KiB)        RX errors 0  dropped 0  overruns 0  frame 0        TX packets 356  bytes 40480 (39.5 KiB)        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

up 跟在被指定接口后面表示启用该接口,如果一个地址被分配给该接口则它是默认指定开启状态。

down 指定网络口被禁用。

-arp 启用或禁用网络接口上使用ARP协议

echo

描述:显示一行文字

使用格式

echo [SHORT-OPTION]… [STRING]…

(1)不带[OPTION]情况

直接显示一行文字结果,例:

[root@stady7 ~]# echo "stady123" stady123

(2)带[OPTION]情况

-n 显示文件后不换行

[root@stady7 ~]# echo -n "stady123" stady123[root@stady7 ~]#

-e 使用反斜杠转义

\\ 反斜杠 转义使之成为一个字符 

[root@stady7 ~]# echo -e "stady \\ 456" stady \ 456

\n 换一行

[root@stady7 ~]# echo -e "stady\n789" stady 789

其它转义用法使用man echo查询

-E 禁用反斜杠转义(默认)

tty

描述:显示控制终端的文件名称

使用格式

tty [OPTION]…

(1)不带[OPTION]情况

显示当前终端文件名

[root@stady7 ~]# tty /dev/pts/0

(2)带[OPTION]情况

-s, –silent, –quiet 不显示任何信息,只返回一个退出状态

[root@stady7 ~]# tty -s [root@stady7 ~]# echo $? 0

startx

描述:用来启动X Windwos 桌面命令

可用Ctrl+ALT+F1~F7来切换

export

描述:设置和显示环境变量

使用格式 :

export 变量名="值"

[root@stady7 ~]# export name="stady" [root@stady7 ~]# echo $namestady

pwd

描述:显示当前目录

[root@stady7 ~]# pwd /root

history

描述:管理命令历史

登录shell时,会读取命令历史文件中记录下的命令:~/.bash_history

登录进shell后新执行的命令只会记录在缓存中;这些命令会在用户退出时“追加”至命令历史文件中;

使用格式

不带参数

  [root@stady7 ~]# history    27  ifconfig    28  ifconfig eno16777736    29  echo "stady123"    30  echo -n "stady123"    31  echo -e "stady \\ 456"    32  echo -e "stady \\ 789"    33  echo -e "stady\789"    34  echo -e "hello\nworld"    35  echo -e "stady\edu"    36  echo -e "stady\eduedu"    37  echo -e "stady\n789"    38  tty    39  tty -s    40  echo $?

带参数

-a:追加本次会话新执行的命令历史列表至历史文件中;

     [root@stady7 ~]# history    46  echo $namestady    47  echo $stady    48  pwd    49  history    50  history -a    51  history

-d:删除历史中指定的命令;

  [root@stady7 ~]# history -d 36 42    [root@stady7 ~]# history    26  yum install net-tools.x86_64 -y    27  ifconfig    28  ifconfig eno16777736    29  echo "stady123"    30  echo -n "stady123"    31  echo -e "stady \\ 456"    32  echo -e "stady \\ 789"    33  echo -e "stady\789"    34  echo -e "hello\nworld"    35  echo -e "stady\edu"    36  echo -e "stady\n789"    37  tty    38  tty -s    39  echo $?    40  export UserName="root"    41  export $UserNameroot    42  export UserName="li"    43  echo $UserNameli    44  export name="stady"    45  echo $namestady    46  echo $stady    47  pwd    48  history    49  history -a    50  history    51  history -d 36 42    52  history

-c:清空命令历史

[root@stady7 ~]# history -c [root@stady7 ~]# history     1  history [root@stady7 ~]#

poweroff、reboot

描述:关机命令和重启

使用格式

poweroff [OPTIONS…]

reboot [OPTIONS]

shutdown

描述:参数中包含了关机、重启

使用格式

shutdown [OPTIONS…] [TIME] [WALL…]

参数 

-r 重启 

-p 关机(默认) 

-h 关机 

-c 取消关机命令

hwclock

描述:显示硬件时钟

使用格式

hwclock [function] [option…]

参数      

-s  –hctosys 把系统时间设成跟硬件一样

-w  –systohc 把硬件时钟设成跟系统一样

date

描述:显示或设置系统时间

使用格式

date [OPTION]… [+FORMAT]

FORMAT:格式符号

%D

[root@stady7 ~]# date +%D 12/10/16

%F

[root@stady7 ~]# date +%F 2016-12-10

%T

[root@stady7 ~]# date +%T 15:38:13

3、如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分的。

  命令可分内部命令和外部命令

内部命令帮助可用:# help COMMAND

外部命令帮助可用:

(1) #COMMAND –help

#COMMAND -h

(2)使用手册(manual)

#man COMMAND

(3)信息页

#info COMMAND

(4)程序自身的帮助文档

README

INSTALL

Changelog

(5)程序官方文档

官方站点:Documentation

(6)发行版的官方文档

(7)Google

man章节详分如下:

手册页路径: /usr/share/man

man1 … man8

man1:用户命令

man2:系统调用

man3:C库调用

man4:设备文件及特殊文件

man5:配置文件格式

man6:游戏

man7:杂项

man8:管理类的命令

4、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。

 cp, mv, rm

1.复制命令: cp

cp [Option] ...[-T] src() DEST(目的)   

(如果目标不存在,则新建DEST, 并将src中的内容填充至DEST中。

 如果目标存在:如果DEST是文件,将src内容覆盖至DEST中。此时建议为cp命令使用-i选项。

 如果DEST是目录,在DEST下新建与原文件同名的文件,并将src中内容填充至DEST中)

实例:cp /etc/fstab /tmp/out.tmp   (out.tmp为文件)

cp /etc/fstab/tmp/out (out为目录) 

cp [Option] ... src(原文件)...(可多个文件) DIRECTORY(新目录)(表示复制到哪个目录中)

 src 为多个文件,Directory必须存在,且为目录,其它情形均为错。

cp src DEST src是目录:

此时使用选项: -r (recursive 递归)

如果dest不存在则创建指定目录,复制src目录中所有目录至DEST

如果dest存在:

如果dest是文件,则报错

如果dest是目录,则复制到此目录中

常用选项:

-i: 交互式

-r: 递归复制目录及其内部所有内容

-a: 归档相当于 -dR --preserv=all (即保留源文件或目录的属性,包括所有者、所属组、权限与时间)

-d: --no-dereference --preserv=links (如果原文件是链接,则保留原链接格式)

--preserv=[Attr_list](保留属性)

mode:权限

ownership:属主属组

timestamp:时间戳

links: 链接

xattr:特殊属性

context: 上下文

all:所有

-p =--preserve=mode, ownership, timestamp

-v 显示详细信息

-t 复制时可把目标放在前面

-f --force 强制复制 (危险)

如:cp /etc/apache2 /tmp/apache2 (/etc/apache2,/tmp/apache2 为目录,)

 cp -P /var/tmp/a.txt  ./temp/ (保留属性)

 2.移动文件命令: mv

mv [Option]...[_T]SOURCE DEST 把源文件移动至目标文件,即改名

mv {Option]...SOURCE... DIRECTORY 把源文件移动至目标文件目录中

mv [Option]... -tDIRECTORY SOURCE DIRECTORY 作为移动目标

option:

-i 交互式有提示操作

-f 强制

如:mv test.log test1.txt (改名为test.txt)

  mv test1.txttemp/  (移动至temp目录)

3.删除命令:rm

rm [OPTION]...FILE...

常用选项:

-i: 交互式

-f:强制删除

-r: 递归

rm -f a.log (强行删除文件)

rm -r tmp/ (删除tmp目录及其子目录和文件)

5、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。

 1)bash特性:

    (1)命令别名

      获取当前用户可用的别名的定义

[root@stady7 ~]# alias alias cp='cp -i' alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' alias grep='grep --color=auto' alias l.='ls -d .* --color=auto' alias ll='ls -l --color=auto' alias ls='ls --color=auto' alias mv='mv -i' alias rm='rm -i' alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

  (2)命令历史

shell进程会保存其会话中用户曾经执行过的命令;命令通过其“历史文件”来持久保存此前执行过的命令;每个用户都有其自己专用的历史文件;

HISTSIZE:shell进程的缓冲区保留的历史命令的条数;

HISTFILESIZE:命令历史文件可保存的历史命令的条数;

history -c:清空命令历史;

history  -d  OFFSET:删除指定的条目;

   (3)快捷键

Ctrl+a:跳至命令行首;

Ctrl+e:跳至命令行尾;

Ctrl+k:删除光标所在处至尾部的内容;

Ctrl+u:删除行首至光标所在处的内容;

   (4)命令补全和路径补全

命令补全:

shell程序在接收到用户执行命令的请求且分析完成之后,最左侧字符串将被当作命令去查找;

查找机制:

① 查找内部命令;

② 查找外部命令:

1、去$PATH变量所指定的各路径下,自左而右逐个搜索各目录下的文件名;

2、给定的打头的字符串如果能惟一标识某命令程序文件的文件名,则直接补全;

3、不能惟一标识,再击tab可给列表;

4、错误:没有任何命令可被此打头字符串标识;

路径补全:

在给定的起始路径的上级目录下,以对应路径下的打头字符串来逐一匹配上级目标下的每个文件:

惟一标识:tab补全;

不能惟一标识:tab, tab给出列表;

错误路径:没有响应;

 (5)命令展开

把命令行的给定的特殊符号自动替换为相应字符串的机制;

~: 自动替换为用户家目录;

~USERNAME:自动替换为指定用户的家目录;

{}:可承载一个以逗号分隔的路径列表,能够将其展开为多个独立路径;

 (6)命令的执行状态结果

命令的正常输出结果:命令的返回值;

通过引用来保存下来或直接调用——”命令引用“

 (7)变量

程序:指令+数据

数据:文件、变量;

变量:内存空间,有名称,名称即为变量名,对应的内存空间中的数据即为变量的值;

变量赋值:左边=右边(把右边存储到左边指向的内存空间)

  2)命令执行的返回状态值

用 $? 取出最后一个带返回值的函数调用.

如果你确定某个命令或函数有返回值,就可以在调用这条命令后用 $? 取出返回值并处理.在bash中习惯用返回值0代表一切正常.

比如最常用的 ls 命令,有三个返回值: (翻译自man手册)

0 : 一切正常

1: 小问题 (比如无法访问某个子目录)

2: ×××烦 (比如找不到命令所需参数)

在终端执行了 ls 命令后,就可以用 echo $? 来查看返回值.

注意 $? 取出的是最后一个返回值,意思是如果某个命令没有返回值,那么 $? 会返回最后一个有返回值的命令的返回值.

 3)命令行展开所涉及的示例演示

[root@stady7 tmp]# mkdir -p /tmp/cn/{s,a,f}[root@stady7 tmp]# tree /tmp/cn//tmp/cn/├── a├── f└── s

6、请使用命令行展开功能来完成以下练习:

(1)、创建/tmp目录下的:a_c, a_d, b_c, b_d

[root@stady7 tmp]# mkdir -p /tmp/{a,b}_{c,d}[root@stady7 tmp]# lsa_c  a_d  b_c  b_d  cn

(2)、创建/tmp/mylinux目录下的:

[root@stady7 tmp]# mkdir -p /tmp/mylinux/{bin,boot/gtub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}[root@stady7 tmp]# tree mylinux/mylinux/├── bin├── boot│   └── gtub├── dev├── etc│   ├── rc.d│   │   └── init.d│   └── sysconfig│       └── network-scripts├── lib│   └── modules├── lib64├── proc├── sbin├── sys├── tmp├── usr│   └── local│       ├── bin│       └── sbin└── var    ├── lock    ├── log    └── run24 directories, 0 files

7、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。

  1.文件的元数据是指文件的属性、大小、创建时间、访问时间、属主属组等信息。

   2.三个时间戳:    

     access time:访问时间,简写atime,读写文件内容

     modify time: 修改时间,mtime,改变文件内容(数据)

     change time:改变时间,ctime,元数据发生改变

   3.修改文件的时间戳:touch    

       touch [OPTION]...FILE...

            -a:only atime

            -m:only mtime

            -s STAMP:

             [[CC]YY]MMDDhhmm[.ss]

            -c:如果文件不存在,则不予创建

[root@stady7 tmp]# touch -a stady/ [root@stady7 tmp]# stat stat: missing operand Try 'stat --help' for more information. [root@stady7 tmp]# stat stady/   File: ‘stady/’   Size: 6         Blocks: 0          IO Block: 4096   directory Device: 803h/2051dInode: 67510075    Links: 2 Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root) Context: unconfined_u:object_r:user_tmp_t:s0 Access: 2016-12-10 16:31:18.303914057 +0800 Modify: 2016-12-10 16:30:45.876914631 +0800 Change: 2016-12-10 16:31:18.303914057 +0800  Birth: - [root@stady7 tmp]# 

8、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。

[root@stady7 tmp]# mkdir /var/l7b[root@stady7 tmp]# ls -d /var/l*[[:digit:]]*[[:lower:]]/var/l7b

9、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。

[root@stady7 tmp]# mkdir /etc/6yt[root@stady7 tmp]# ls -d /etc/[[:digit:]]*[^[:digit:]]/etc/6abc  /etc/6yt[root@stady7 tmp]#

10、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。

[root@stady7 tmp]# mkdir /etc/615iyt7aa[root@stady7 tmp]# ls -d /etc/[^a-z]*[a-z][a-z]/etc/615iyt7aa  /etc/6abc  /etc/6yt[root@stady7 tmp]#

11、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-09-20-09-32-22。

[root@stady7 tmp]# touch /tmp/tfile-$(date +"%F-%H-%M-%S")[root@stady7 tmp]# lsa_c  a_d  b_c  b_d  cn  ks-script-KUr0a0  mylinux  stady  tfile-2016-12-10-16-54-00  yum.log

12、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。

[root@stady7 tmp]# mkdir -p /tmp/mytest2[root@stady7 tmp]# cp -ap  /etc/*.d /tmp/mytest2[root@stady7 tmp]# ls -l /tmp/mytest2total 24drwxr-xr-x.  2 root root   48 Dec  4 14:48 bash_completion.ddrwxr-xr-x.  2 root root    6 Sep 15 22:28 binfmt.ddrwxr-xr-x.  2 root root    6 May 12  2016 chkconfig.ddrwxr-xr-x.  2 root root   20 Dec  4 14:54 cron.ddrwxr-xr-x.  2 root root   22 Dec  4 14:54 depmod.ddrwxr-xr-x.  2 root root    6 Sep 15 22:30 dnsmasq.ddrwxr-xr-x.  2 root root    6 Jun 24 01:19 dracut.conf.ddrwx------.  2 root root 4096 Dec  4 14:54 grub.dlrwxrwxrwx.  1 root root   11 Dec  4 14:54 init.d -> rc.d/init.ddrwxr-xr-x.  2 root root 4096 Dec  4 14:56 ld.so.conf.ddrwxr-xr-x.  2 root root   60 Dec  9  2015 logrotate.ddrwxr-xr-x.  2 root root   22 Dec  4 14:55 modprobe.ddrwxr-xr-x.  2 root root    6 Sep 15 22:28 modules-load.ddrwxr-xr-x.  2 root root   30 Dec  4 14:56 my.cnf.ddrwxr-xr-x.  2 root root 4096 Dec  4 14:55 pam.ddrwxr-xr-x.  2 root root    6 Jun 10  2014 popt.ddrwxr-xr-x.  2 root root   75 Dec  4 14:54 prelink.conf.ddrwxr-xr-x.  2 root root 4096 Dec  4 14:54 profile.dlrwxrwxrwx.  1 root root   10 Dec  4 14:54 rc0.d -> rc.d/rc0.dlrwxrwxrwx.  1 root root   10 Dec  4 14:54 rc1.d -> rc.d/rc1.dlrwxrwxrwx.  1 root root   10 Dec  4 14:54 rc2.d -> rc.d/rc2.dlrwxrwxrwx.  1 root root   10 Dec  4 14:54 rc3.d -> rc.d/rc3.dlrwxrwxrwx.  1 root root   10 Dec  4 14:54 rc4.d -> rc.d/rc4.dlrwxrwxrwx.  1 root root   10 Dec  4 14:54 rc5.d -> rc.d/rc5.dlrwxrwxrwx.  1 root root   10 Dec  4 14:54 rc6.d -> rc.d/rc6.ddrwxr-xr-x. 10 root root 4096 Dec  4 14:54 rc.ddrwxr-xr-x.  2 root root   24 Dec  4 14:54 rsyslog.ddrwxr-xr-x.  2 root root    6 Aug  3 00:15 rwtab.ddrwxr-xr-x.  2 root root    6 Aug  3 00:15 statetab.ddrwxr-x---.  2 root root    6 Apr  1  2016 sudoers.ddrwxr-xr-x.  2 root root   27 Dec  4 14:54 sysctl.ddrwxr-xr-x.  2 root root   24 Sep 15 22:28 tmpfiles.ddrwxr-xr-x.  2 root root    6 Aug 12  2015 xinetd.ddrwxr-xr-x.  2 root root 4096 Dec  3  2015 yum.repos.d

13、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。

[root@stady7 tmp]# mkdir -p /tmp/mytest3[root@stady7 tmp]# cp /etc/[lmn]*.config /tmp/mytest3cp: cannot stat ‘/etc/[lmn]*.config’: No such file or directory[root@stady7 tmp]# ls /tmp/mytest3[root@stady7 tmp]#