一、描述计算机的组成及其功能。

  答: 现代计算机系统遵循冯·诺依曼体系结构,由以下部分组成:

     运算器: 用于二进制算数运算和逻辑运算;

     控制器: 用于控制计算机各部件协调工作,是一个调度控制中心;

     存储器: 用于存储数据,通常指内存。存储参与计算的数据包括结果;

     输入设备: 用于向计算机中输入数据,如键盘;

     输出设备 : 将计算机计算的结果或过程显示出来,如显示器、打印机;

     其中,运算器和控制器集中于CPU中,输入/出设备是计算机与人进行交互的设备。


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

 答:Linux的发行版:

         slackware: (历史最悠久任活跃维护的Linux发行版)

             suse (基于slackware的二次发行版,免费使用)(欧洲最流行的发行版)

                 opensuse (基于slackware的三次发行版)

         debian:(原汁原味的版本)

              ubuntu (二次发行版)(有着漂亮华丽的桌面)

                  mint:(三次发行版)

         redhat:

              rhel: redhat enterprise linux  (企业版)(每18个月发行一个新版本)

              CentOS:兼容rhel的格式,从新编译一次(程序社区组织维护)

              fedora:每6个月发行一个新版本 (主要测试各项软件,测试是否稳定)

         ArchLinux

         Gentoo

         LFS: Linux From scratch (这个发新版不是光盘,是第一本书,要我们自己做一个linux,指导文档而已)

         Android: kernel+busybox+java虚拟机 

         GNU: GPLv2, GPLv3, LGPL(lesser)

         Apache: apache 

         BSD: bsd  


三、描述Linux的哲学思想,并按照自己的理解对其进行解释性描述。

  答: 1.一切皆文件,计算机中所有的文件目录,把几乎所有资源,包括硬件设备都组织为文件格式。

     2.单一功能程序(由许许多多的小程序组成,一个程序完成一个功能,而很多小程序的组合就可以完成一个复杂的任务。)

     3.文本文件保存配置信息

     4.尽量避免用户交互(注:尽量不与用户交互,一个程序一旦运行,就不需要用户进行任何操作,如查看IP:ifconfig,日期:date等。)

     5.提供机制,而不是策略


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

  答:1, ifconfig:查看和配置网络设备。

       ifconfig [interface]ifconfig interface [aftype] options | address ...

       格式:ifconfig

       马哥2016全新Linux+Python高端运维班第一周作业_Linux

       如果想启用或者禁用网卡,可使用下面的命令。

       马哥2016全新Linux+Python高端运维班第一周作业_Linux_02

       up:表示启用 down:表示禁用

    2, echo:回显,打印,格式化输出:

[root@localhost ~]# echo 你好
你好

       -n 不换行显示(禁止自动添加换行符号。)

[root@localhost ~]# echo -n 你好
你好[root@localhost ~]#

       -e 允许使用转移字符\t,\n,\b(退格),\c...;

[root@localhost ~]# echo -e ho"\b"w are you?  #(b:删除前一个字符)
hw are you?
[root@localhost ~]# echo -e ho"\t"w are you?  #(\t:插入tab.)
ho      w are you?
[root@localhost ~]# echo -e ho"\f"w are you?  #( \f:换行,但光标在停留的字符后开始。)
ho
  w are you?
[root@localhost ~]#

       echo “x”:x可以是字符串,也可以是变量

    3,tty:显示自己终端名,Print the file name of the terminal connected to standard input.

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

    4,startx:切换到Xwindow界面,前提安装了图形桌面。

    5,export:设置全局变量

[root@localhost ~]# export
declare -x CVS_RSH="ssh"
declare -x G_BROKEN_FILENAMES="1"
declare -x HISTCONTROL="ignoredups"
declare -x HISTSIZE="1000"
declare -x HOME="/root"
declare -x HOSTNAME="localhost.localdomain"
declare -x LANG="en_US.UTF-8"
declare -x LESSOPEN="||/usr/bin/lesspipe.sh %s"
declare -x LOGNAME="root"
declare -x LS_COLORS="rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.tbz=01;31:*.tbz2=01;31:*.bz=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:"
declare -x MAIL="/var/spool/mail/root"
declare -x OLDPWD
declare -x PATH="/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"
declare -x PWD="/root"
declare -x QTDIR="/usr/lib64/qt-3.3"
declare -x QTINC="/usr/lib64/qt-3.3/include"
declare -x QTLIB="/usr/lib64/qt-3.3/lib"
declare -x SELINUX_LEVEL_REQUESTED=""
declare -x SELINUX_ROLE_REQUESTED=""
declare -x SELINUX_USE_CURRENT_RANGE=""
declare -x SHELL="/bin/bash"
declare -x SHLVL="1"
declare -x SSH_CLIENT="192.168.2.45 61282 22"
declare -x SSH_CONNECTION="192.168.2.45 61282 192.168.2.52 22"
declare -x SSH_TTY="/dev/pts/0"
declare -x TERM="xterm"
declare -x USER="root"
[root@localhost ~]#

    6,pwd:显示当前路径

[root@localhost ~]# pwd

/root

[root@localhost ~]# 

    7,history:历史命令

     (1),参数:
         n  :数字,要列出最近的 n 笔命令列表
         -c :将目前的shell中的所有 history 内容全部消除
         -a :将目前新增的history 指令新增入 histfiles 中,若没有加 histfiles,则预设写入 ~/.bash_history
         -r :将 histfiles 的内容读到目前这个 shell 的 history 记忆中
         -w :将目前的 history 记忆内容写入 histfiles。Linux系统当你在shell(控制台)中输入并执行命令时,shell会自动把你的命令记录到历史列表中,一般保存在用户目录下 的.bash_history文件中。默认保存1000条,你也可以更改这个值。如果你键入 history, history会向你显示你所使用的前1000个历史命令,并且给它们编了号,你会看到一个用数字编号的列表快速从屏幕上卷过。你可能不需要查看1000 个命令中的所有项目, 当然你也可以加入数字来列出最近的 n 笔命令列表。linux中history命令不仅仅让我们可以查询历史命令而已. 我们还可以利用相关的功能来帮我们执行命令。运行特定的历史命令history会列出bash保存的所有历史命令,并且给它们编了号,我们可以使用“叹号 接编号”的方式运行特定的历史命令.

        ①.列出所有的历史记录:

[root@localhost ~]# history
    1  ll
    2  ifconfig
    3  halt
    4  ifconfig
    5  ifconfig up eth0
    6  vim /etc/sysconfig/network-scripts/ifcfg-eth0 
    7  service network restart
    8  ll
    9  ifconfig
   10  ping www.baidu.com
   11  ll
   12  yum -y install lrzsz
   13  ll
   14  sz -bey install.log
   15  rz -bey 
   16  ll
   17  ifconfig
   18  trr
   19  tty
   20  date
   21  ll
   22  vim install.log
   23  ll
   24  vim install.log.syslog 
   25  ll
   26  cd /
   27  ll
   28  cd /usr/local/
   29  ll
   30  cd src/
   31  ll

          ②,只列出最近10条记录

[root@localhost ~]# history 10 
   61  echo -e ho"\f"w are you?
   62  TTY
   63  tty
   64  clear
   65  export
   66  c;ear
   67  clear
   68  pwd
   69  history
   70  history 10
[root@localhost ~]#

          ③,使用命令记录号码执行命令,执行历史清单中的第60条命令

[root@localhost ~]# !60   (我第60条历史记录是 echo -e ho"\t"w are you? )
echo -e ho"\t"w are you?
ho      w are you?
[root@localhost ~]#

          ④,重复执行上一个命令

[root@localhost ~]# !!
echo -e ho"\t"w are you?
ho      w are you?
[root@localhost ~]#

           ⑤,执行最后一次以echo开头的命令(!代表的是字符串,这个String可以随便输,Shell会从最后一条历史命令向前搜索,最先匹配的一条命令将会得到执行。)

[root@localhost ~]# !echo
echo -e ho"\t"w are you?
ho      w are you?
[root@localhost ~]#

            ⑥.立即清空history当前所有历史命令的记录

               [root@localhost ~]# history -c

    8, shutdown:安全关机或重启

     shutdown [OPTION]…  TIME [MESSAGE] 

              -r:reboot 重启

              -h:halt   关机

              -c:       取消

              -k: 提示用户关机/重启,但是不会真正的执行。

      TIME的设定:

         now:立刻马上

         +m:  m表示分钟,如+3,表示3分钟后

         hh:mm  绝对的时间,指明时间来执行

   9,poweroff :关闭电源

      -f --force 强制重启

      -n --no-sync 直接重启,不将内存的数据写入磁盘

    10,reboot :重启

      正常重启

    11,hwclock:系统硬件时间,也是COMS电池不间断供电,是计算机时间不再断电情况下恢复出场时间。

[root@localhost ~]# hwclock
Sun 14 Aug 2016 08:50:59 AM EDT  -0.438195 seconds
[root@localhost ~]#

       选项:-s –hctosys:以硬件时间为准,来调整系统时间

           -w –systohc:以系统时间为准,来调整硬件时间。

    12,date:显示date 

[root@localhost ~]# date
Sat Aug  6 23:41:41 EDT 2016
[root@localhost ~]#

date [OPTION]... [+FORMAT]

    date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

date+[potions]+[+Format]

%Y 年

%m 月

%d 日

%D 月/日/年

%F 日期

%T 时间

%H 时

%M 分

%S 秒

%a 短星期

%A 长星期

设置日期格式date

date [YYMMDDhhmm[[CC]YY][.ss]]

MM 月

DD 日

hh 时

mm 分

YY 短年

CCYY 长年格式

.ss 秒


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

  答,1.help+COMMAND

      2.COMMAND+--help(-h)

      3.man+COMMAND

      4.info+COMMAND

      5.程序自身的帮助文档:/usr/share/doc/COMMAND.VERSION

      6.查看程序官方文档

      7.发行版的官方文档

      8.Google,百度

   man手册页各节及内容

      man1 用户命令及应用程序

      man2 系统调用和内核出错代码

      man3 库调用

      man4 设备驱动程序和网络协议

      man5 标准文件格式

      man6 游戏和演示

      man7 各种文件和文档

      man8 系统管理命令

      man9 含糊的内核规范和接口


六、请罗列Linux发行版的基础目录名称命名法则及功用规定

  答:1./:根

    2./boot/:系统启动目录,内核文件vmlinuz,引导文件,启动加载器boot loader,grub(开机设置文件相关);

    3./root/:root用户家目录;

    4./home/用户名:普通用户家目录;

    5./bin/:一般命令存放目录;

    6./sbin/:开机或单用户模式还能操作的命令;

    7./etc/:配置文件存放目录,init.d下存放了各种软件的启动脚本;

    8./dev/:任何设备与接口设备都是以文件的形式存放在此目录,通过访问目录下的文件,就等于访问某个设备,这就相当于是设备的入口,类似有/dev/null,/dev/zero,dev/tty,/dev/sd*,/dev/lp*,/dev/hd*等设备文件;

    9./lib/:基本共享库,内核模块文件/lib/modules;

    10./lib64:专用于x86_64系统上的辅助共享库文件存放位置;

    11./usr/:Unix Software Resource,Linux系统安装完成软件的默认安装目录。相当于Windows下的C:\Windows\和C:\Program files\两个目录的综合。/usr/的子目录包括:

       ①./usr/bin/用户可使用命令

       ②./usr/include/包含文件

       ③./usr/lib/软件的函数库,目标文件以及不被一般用惯用的执行文件或脚本。

       ④./usr/sbin/非系统正常运行所需的系统命令。

       ⑤./usr/local/本地软件或用户安装的软件目录

       ⑥./usr/share/放置共享文件的目录,其中有/usr/share/man在线帮助文档,/usr/share/doc软件杂项文档说明,/usr/share/zoneinfo与时区有关的时区文件。

       ⑦./usr/src/一般源码置位置。

    12./var/:常态性变动的文件,包括缓存(cache)、登录文件(log file)以及某些软件运行所产生的文件,包括程序文件(lock file,run file),也许有MySQL数据库的文件等。/var/的子目录包括:

      (1)./var/lib

      (2)./var/cache程序运行过程中产生的缓存文件

      (3)./var/lock锁文件

      (4)./var/log日志文件

      (5)./var/run

      (6)./var/mail邮件

      (7)./var/spool程序数据池

         ①./var/spool/cron

         ②./var/spool/mail

         ③./var/spool/mqueue

         ④./var/spool/lpd

    13./opt/:第三方软件安装目录

    14./mnt/:临时挂载目录

    15./media/:如cdrom,floppy等暂存媒体;

    16./sys/:属于虚拟文件系统,内存中的数据,如内核、文件系统等。

    17./proc/:属于虚拟文件系统,内存中的数据,如内核、程序进程、外部设备的状态,网络状态等,处于动态变化中。

    18./srv/:service,一些网络服务启动后,这些服务所需要取用的数据目录。常见的服务有关www,FTP等,不同服务在不同的子文件夹中。

    19./tmp/:临时存放目录,所用用户都能访问,

    20./selinux/

    21.Lost+found当文件发生错误时,将一些丢失的片段放置到这个目录下。