马哥教育网络班21期+第一周课程练习

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

计算机由五大组件组成包括:计算器,控制器,存储,输入设备,输出设备。

运算器:做运算,且只能做二进制运算,包括算术运算和逻辑运算,如加减乘除,移位,取模。运算器的核心是加法器。

控制器:控制整个计算机部件之间协调。比如做计算,运算器先从存储器取数,运算器作运算,再回存存储器。这整个过程都由控制器做协调。

    其中,计算器与控制器组成CPU,即中央处理单元。

              CPU由多组芯片(电路)构成,每个芯片都是由多个纳米级晶体管(门电路)按特定逻辑组织在一起的。

              每个芯片,功能不同,运算能力以及指令也不同。

              CPU的功能实现通过指令进行,多个指令组成指令集。其物理实现即通过调用CPU针脚的功能进行。

              针脚是为完成电气/电子运算最基本,最基础的功能。

存储器:memory 编址存储单元设备。8位一个单元(字节),英文为cell,也称为存储盒子。

    内存:众多字节联合起来形成的总体存储空间。内存中每个存储单元都有名字,即地址。因此最多最大的地址,决定内存的最大的寻址空间。32位计算机总线寻址范围是232次方范围的内存,因此32位计算机最多寻址4G内存。数据存储在内存中,可能占据一个存储空间,也可能是一片连续的存储空间。CPU读取数据的方式可以是直接寻址(直接操作数),也可以是间接寻址(间接操作数)。因为存储器与运算器的交互取决于较慢的那个,即内存的速度较慢影响了CPU的运算速度,为了协调二者的工作,缓存,接近CPU的速度的存储出现了。

    缓存:分为一级缓存,二级缓存,三级缓存,具有造价高,容量小的特点,加速CPU与内存交互,协调各个部件的工作,因部件的速率不同,最终提升计算机的性能。

    硬盘:因内存是易失性存储器,断电后数据丢失,因此,为永久存储数据,就需要硬盘。硬盘主要分为机械硬盘(磁盘)以及固态硬盘(SSD)。

输入设备,输出设备统称IO设备,是计算机与外部交互的组件,其特点是性能较差,多机械式交互。如网卡,键盘,鼠标,显示器,音响等。

 

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

Linux的发行版主要包括slackwaredebianredhat系列。

slackware

    suse(基于slackware的发行版)

        Opensuse(基于suse的二次发行版 个人操作系统)

        sles(基于suse的二次发行版 企业级操作系统)

debian

    ubuntu(基于debian的发行版)

        mint(基于ubuntu的二次发行版)

redhat

    rhelredhat enterprise linux 企业级系统,相对保守,每18个月发行一个新版本

    fedora:个人版,用于测试新功能,每6个月发行一个新版本

    CentOS:rhel的再编译版本,兼容rhel的格式

Arch:Linux轻量级系统,程序包管理与众不同

Gentoo:现编译的Linux系统,原滋;原味

Android:Linux内核+busybox+java虚拟机

LFS:Linux From Scratch 自己从头开发一个Linux发行版

 

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

自由软件:自由使用;自由学习和修改;自由分发;自由创建衍生版。

1、一切皆文件:把几乎所有资源,包括硬件设备都组织为文件格式;

2、由众多单一目的小程序组成:一个程序只实现一个功能,而且要做好。多个小程序组合完成复杂的任务;

3、尽量避免跟用户交互。目标:实现脚本编程,以自动完成某些功能;

4、使用纯文本文件保存配置信息。目标:一款使用的文本编辑器都能完成系统配置工作。

 

4、说明Linux系统上命令的使用格式;详细介绍ifconfigechottystartxexportpwdhistoryshutdownpoweroffreboothwclockdate命令的使用,并配合相应的示例来阐述。

    命令格式:COMMAND [OPTION…] [ARGUMENT…]

    选项:用于启动或关闭命令的某个或某些功能,一般短选项由"-"引导,长选项由“–”引导。选项间用空格分开。

    短选项:-c单个字符,例如-l,-h。多个短选项一起使用可合并,例如-l -h可写作-lh

    长选项:–word单词,例如–long, –human-readable。长选项一般不能合并

    参数:命令的作用对象,向命令提供数据。多个参数间用空格分隔。

    注意:

    1、多选项,以及多参数和命令之间都应该使用空白字符分隔;

    2、取消命令执行:Ctrl+c。

    ifconfig:configure a network interface 配置网口,查看网口信息。

    ifconfig [interface]

 ifconfig interface [aftype] options | address …

[root@localhost /]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:E3:76:C9  
          inet addr:192.168.9.103  Bcast:192.168.9.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fee3:76c9/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:14011 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7973 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:15773354 (15.0 MiB)  TX bytes:595864 (581.8 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:10 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:578 (578.0 b)  TX bytes:578 (578.0 b)

 echo:回显命令,shell内建命令 

    – display a line of text

    – write arguments to standard output

    echo [string …]

    echo [SHORT-OPTION]… [STRING]…

     echo LONG-OPTION

 echo+变量名:取变量的值并回显

    单引号:强引用,真正显示引号内容,即变量名;

     双引号:弱引用,变量替换,显示变量名所指向空间所存储的数据。

    -n 禁止自动添加换行符,即回显后不另起一行,默认回显后添加换行符

    -e 允许使用转义符,即用于控制功能的某些符号,如\n 换行,\t 制表符。

[root@localhost /]# echo "$SHELL"
/bin/bash
[root@localhost /]# echo '$SHELL'
$SHELL

    tty:- print the file name of the terminal connected to standard input

        显示当前连接终端信息

        tty [OPTION]…

        物理终端:直接接入本机的显示器和键盘设备等,路径:/dev/console。设备启动时使用物理终端。

        虚拟终端:附加在物理终端之上的以软件方式虚拟实现的终端。为保持unix特性,默认启动多个虚拟终端。CenOS 6默认启动6个虚拟终端,切换快捷键: Ctrl+Alt+F1->F6。默认启动虚拟终端1(图形终端登录)

                          图形终端:虚拟终端的一种,但额外提供桌面环境。

        虚拟终端设备文件路径:/dev/tty#(#表示数字)

        模拟终端:图形界面下打开的命令行接口,基于SSH协议或telnet协议等远程打开的界面。以软件方式实现,不会附加在物理终端之上,而是图形终端或其他远程终端之上。

        模拟终端设备文件路径:/dev/pts/#(#表示数字)

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

startx: – initialize an X session

启动XWindow图形界面

GUI:图形用户界面,由X protocol(远程显示协议),window manager(窗口管理器),desktop(桌面系统)组成

常见桌面系统类型:GNOME(c,gtk),XFCE(嵌入式轻量级桌面环境),KDE(c++,qt)

export: Set export attribute for shell variables.设置,显示环境变量

    export [-fn] [name[=value] …] or export -p

    -f refer to shell functions 关联到shell方程

     -n remove the export property from each NAME 根据名字删除环境变量

     -p display a list of all exported variables and functions 显示环境变量列表

[root@localhost ~]# export -p
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 MAIL="/var/spool/mail/root"
declare -x OLDPWD
declare -x PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"
declare -x PWD="/root"
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_ASKPASS="/usr/libexec/openssh/gnome-ssh-askpass"
declare -x SSH_CLIENT="192.168.9.102 60130 22"
declare -x SSH_CONNECTION="192.168.9.102 60130 192.168.9.103 22"
declare -x SSH_TTY="/dev/pts/0"
declare -x TERM="xterm"
declare -x USER="root"
export NAME=VALUE
此设置临时生效,长期生效需修改配置文件/etc/profile(全局),~/.bashrc,~/.bash_profile(针对某个用户)

history:

管理命令历史 Display or manipulate the history list.

history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg…]

Options:

      -c clear the history list by deleting all of the entries清空命令历史

      -d offset delete the history entry at offset OFFSET.用编号删除历史中指定的命令

      -a append history lines from this session to the history file 追加本次会话新执行的命令历史列表到历史文件中

原理:

登录进shell后新执行的命令只会记录在缓存中

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

这些新命令在用户退出时会“追加”至命令历史文件中

history的环境变量:

    HISTSIZE:命令历史记录的条数

    HISTFILE:每个用户独立的命令历史文件,~/.bash_history位于用户家目录下

    HISTFILESIZE:命令历史文件记录历史记录的条数

history #:显示历史中最近的#条命令

[root@localhost ~]# history 5
    6  export -p
    7  man history
    8  type history
    9  help history
   10  history 5

快捷调用历史中的命令:

!#:重复执行第#条命令

!!:重复执行上一条命令

!string:执行最近一个以指定string开头的命令

若不想运行的命令记录到历史中,可通过环境变量HISTCONTROL控制命令历史的记录方式。

环境变量HISTCONTROL取值

ignoredups:忽略重复的命令(连续且相同的命令方为“重复”),默认值

ignorespace:忽略以空白开头的命令。

ignoreboth:以上两种均生效(ignoredups,ignorespace)


shutdown: – bring the system down关机,重启命令

shutdown [OPTION]…  TIME [MESSAGE]

OPTION:

-r reboot重启

-h halt关机

-c 取消关机cancel

TIME:

now立刻

+m分钟,例如:+3,相对时间表示法,从命令提交开始多久之后执行命令

hh:mm: 绝对时间表示,指明具体时间


reboot 重启计算机

poweroff关闭计算机

reboot, halt, poweroff – reboot or stop the system

-f ,–force 强制执行命令,不调用shutdown,类似冷重启,不保存数据。一般shutdown会安全关机并保存数据,数据可还原。(一般不用-f)

-p 切断电源

–verbose 显示详细信息


hwclock:- query and set the hardware clock (RTC) 查询设置硬件时钟

Linux的两种时钟

硬件时钟:主板上纽扣电池为晶体振荡器供电,实时时钟,开机时读取硬件时间并设定为当前系统时间

系统时钟:由Linux内核通过CPU的工作频率进行的计时。

hwclock命令显示硬件时钟,并实现硬件时钟与系统时钟同步

-s –hctosys 以硬件时钟为准

-w –systohc 以系统时钟为准


date 显示系统时钟,管理当前系统日期和时间

– print or set the system date and time

date [OPTION]… [+FORMAT]

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

MM:月份 DD:几号 hh:小时 mm:分钟 YY:两位年份 CCYY:四位年份 .ss秒种
显示今天为周几:date +%a/date +%A

显示今天的日期:date +%D/date +%F

获取当前系统时间:date +%T/date +%H-%M-%S

date +%F-%H-%M-%S

设定系统时间:

[root@localhost ~]# date 070916132016.52
Sat Jul  9 16:13:52 PDT 2016
[root@localhost ~]# date
Sat Jul  9 16:13:57 PDT 2016


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

输入type命令查看命令类型:内/外部命令

内部命令:shell自带 

内部命令帮助:help + COMMAND

外部命令:都有一个可执行程序,位于文件系统某目录下,可通过which,whereis查看

shell程序搜寻外部命令可执行文件的路径定义在PATH环境变量中

#echo $PATH 路径优先级自左向右搜寻

hash:shell搜寻到的外部命令的路径结果会缓存至kvkey-value)存储中

外部命令帮助:

1#COMMAND –helpCOMMAND -h

2)使用手册(manual)简写#man

3)信息页 #info COMMAND

4)程序自身的帮助文档,README,INSTALL,Changelog

    通常在目录/usr/share/doc/COMMAND-VERSION

5)程序官方文档,官方站点的Documentation

6)发行版的官方文档

7Google

8www.slideshare.com

 

man到相应的章节下找到命令对应的压缩文件,解压后用less命令展示。

注意:

有些关键字在不止一个章节中存在帮助手册

要查看指定章节中的手册:man # COMMAND

man文档的章节划分:

man1:用户命令

man2:系统调用

man3C库调用

man4:设备及特殊文件

man5:配置文件格式

man6:游戏相关

man7:杂项

man8:管理类的命令

 

man命令的配置文件:/etc/man.config

->MANPATH /PATH/TO/SOMEWHERE:通过文本指定新的手册文件搜索位置

->man -M /PATH/TO/SOMEWHERE COMMAND:通过命令方式到指定位置下搜索COMMAND命令的手册并显示之。

man帮助手册中常用段落说明:

NAME:程序的名字

SYNOPSIS:简要使用帮助

    []:可选内容

    <>:必选内容

    a|b:二选一,多选一

    …:同一个内容可出现多次

    {}:成组,多选一

DESCRIPTION:详细功能

OPTIONS:专用选项解释

EXAMPLES:使用示例参考

AUTHOR:作者

REPORTING BUGS:报告BUG联系方式和人

SEE ALSO:参考帮助

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

/boot:引导文件的存放目录,存放操作系统启动所依赖的文件,一般为一个独立分区

/bin:供所有用户使用的二进制命令,linux启动会用到这些程序,不能关联至独立分区,OS启动会用到的程序

/sbin:管理类的基本命令,不能关联至独立分区,OS启动即会用到的程序

/lib:基本共享库文件,以及内核模块文件(/lib/modules)

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

/etc:配置文件目录

    /etc/opt:第三方软件安装文件配置文件目录

    /etc/X11:图形界面XWindow系统的配置文件目录

    /etc/sgml:SGML配置文件目录

    /etc/xml:xml配置文件目录

/home 用户家目录,分两类用户:管理员,普通用户

    /home/USERNAME:普通用户家目录

    /root管理员家目录

/media:便携式移动设备挂载点,如U盘,光盘

/mnt:临时文件系统挂载点

/dev:设备文件目录

/opt:第三方应用程序安装位置

/srv:系统上运行服务用到的数据存放目录

/tmp:临时文件存储位置

/usr:独立的层级文件系统,存放除/bin,/sbin下基本命令外,额外其他的应用程序以及诸多只读资源和共享资源文件,通常会关联到独立分区。

usr:universal shareable read-only

/usr is the second major section of the filesystem,/usr is shareable,read-only data

    /bin:保证系统拥有完整功能而提供的应用程序

    /sbin:保证系统拥有完整功能而提供的管理类应用程序

    /include:C程序的头文件,库文件的调用接口

    /share:结构化独立数据,如man,doc,系统背景图片等

    /X11R6:XWindow系统的文件

    /games:游戏和教育类二进制文件

    /lib

    /lib64

    /src 源代码

    /local 第三方应用程序的安装位置,取代/opt,可关联至完全独立的分区

        bin,sbin,lib,lib64,etc,share

/var 可变数据文件,通常会独立分区

    /cache:应用程序缓存数据目录

    /lib:应用程序状态信息数据

    /local:专用于为/usr/local下的应用程序存储可变数据

    /lock:锁文件

    /log:日志目录及文件

    /opt:专用于为/opt下的应用程序存储可变数据

    /run:运行中的进程相关的数据,通常用于存储进程的pid文件

    /spool:应用程序的池数据

    /tmp:保存系统两次重启之间产生的临时数据

    /mail:邮件目录

/proc:用于输出内核与进程信息相关的虚拟文件系统

/sys:用于输出当前系统上硬件设备相关信息的虚拟文件系统

/misc:杂项

/lost+found:ext文件系统默认格式化后产生的路径,与系统没关系

/selinux:security enhanced linux 安全加强的Linux,selinux相关安全策略信息存储位置

Linux上应用程序的组成部分:

二进制程序:/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin,/usr/local/sbin

库文件:/lib,/lib64,/usr/lib,/usr/lib64,/usr/local/lib,/usr/local/lib64

配置文件:/etc,/etc/Directory,/usr/local/etc

帮助文件:/usr/share/man,/usr/share/doc,/usr/local/share/man,/usr/local/share/doc

    

原创文章,作者:N21_走心哥,如若转载,请注明出处:http://www.178linux.com/20555

(0)
上一篇 2016-07-12 11:15
下一篇 2016-07-12 11:16

相关推荐

  • until 练习题

    一、用until实现下列作业 1、每隔3秒钟到系统上获取已经登录的用户的信息;如果发现用户hacker登录,则将登录时间和主机记录于日志/var/log/login.log中,并提示该用户退出系统。   2、随机生成10以内的数字,实现猜字游戏,提示比较大或小,相等则退出 3、编写脚本,求100以内所有正整数之和   4、编写脚本,通过p…

    Linux干货 2016-08-17
  • Liunx学习第一周之对目录及文件的操作总结

            Liunx学习的第一周已经结束,回顾这一周的学习,已经对Linux的发展历史有了初步的了解,也在老师的指导下成功的在虚拟机上安装了两个Liunx系统:centos6和centos7,然后在这两个Liunx系统的CLI模式下输入一个个命令,让系统执行各种任务,下面是第一周学习的几种命令的总结。 &nbsp…

    2017-07-15
  • C语言的整型溢出问题

    整型溢出有点老生常谈了,bla, bla, bla… 但似乎没有引起多少人的重视。整型溢出会有可能导致缓冲区溢出,缓冲区溢出会导致各种黑客攻击,比如最近OpenSSL的heartbleed事件,就是一个buffer overread的事件。在这里写下这篇文章,希望大家都了解一下整型溢出,编译器的行为,以及如何防范,以写出更安全的代码。 什么是整型溢出 C语言…

    Linux干货 2016-06-03
  • Linux Sysadmin–part1

    一、创建一个10G分区,并格式为ext4文件系统; 1、要求其block大小为2048,预留空间百分比为2,卷标为MYDATA,默认挂载属性包含acl; 2、挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; ###创建10G分区 ~]# fdisk /dev/sdb Command (m for help): n P…

    2017-09-04
  • 马哥教育网络班N22期+第6周课程练习

    一、总结vim编辑器的使用方法 vim文本编辑器 全屏编辑器,模式化编辑器 vim的教程文件命令:vimtutor vim /path/to/somefile vim模式: 编辑模式(命令模式),默认模式 输入模式 末行模式 内置的命令行接口; 模式转换: 编辑模式—>输入模式: i:insert, 在光标所在处前方输入,转为输入模式 a:append…

    Linux干货 2016-10-09

评论列表(1条)

  • 马哥教育
    马哥教育 2016-07-12 14:15

    写的很好,排版还可以在漂亮一点,加油