马哥教育网络班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)
N21_走心哥N21_走心哥
上一篇 2016-07-12
下一篇 2016-07-12

相关推荐

  • 第二周作业

    由于图片粘贴复杂,请看链接。 http://note.youdao.com/noteshare?id=a78c3236bbf77232fcc3e2624a38ae12

    Linux干货 2016-09-19
  • LVS负载均衡WordPress

    LVS:        LVS是四层协议的开源负载均衡器,工作在netfilter框架INPUT链中,它根据不同的算        法将用户的请求调度给后端服务器,它不受sockt套接字文件限制,性能比nginx七层       …

    Linux干货 2017-05-18
  • yum使用及编译安装

    前端程序包管理器     CentOS:yum,dnf     YUM:Yellowdog update Modifier     URL:ftp:// . . .     文件服务器:  …

    Linux干货 2016-08-24
  • N28-第三周博客作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。
    2、取出最后登录到当前系统的用户的相关信息。
    3、取出当前系统上被用户当作其默认shell的最多的那个shell。
    4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中。
    5、取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分。
    6、列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字转换为大写后保存至/tmp/etc.conf文件中。
    7、显示/var目录下一级子目录或文件的总个数。
    8、取出/etc/group文件中第三个字段数值最小的10个组的名字。
    9、将/etc/fstab和/etc/issue文件的内容合并为同一个内容后保存至/tmp/etc.test文件中。
    10、请总结描述用户和组管理类命令的使用方法并完成以下练习:
    (1)、创建组distro,其GID为2016;
    (2)、创建用户mandriva, 其ID号为1005;基本组为distro;
    (3)、创建用户mageia,其ID号为1100,家目录为/home/linux;
    (4)、给用户mageia添加密码,密码为mageedu;
    (5)、删除mandriva,但保留其家目录;
    (6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
    (7)、修改slackware的默认shell为/bin/tcsh;
    (8)、为用户slackware新增附加组admins;

    Linux干货 2017-12-19
  • Linux系统上命令的使用格式

    第一部分:Linux系统上命令的使用格式 命令的语法通用格式:      COMMAND OPTIONS ARGUMENTS     发起一个命令:请求内核将某个二进制程序运行为一个进程;      程序 —-> 进程   &nbs…

    Linux干货 2016-08-15
  • Linux 命令行返回状态

    linux 执行命令后会返回一个状态码 命令执行成功返回0: 当删除一个文件并删除成功时返回的状态码为0 [root@localhost 1]# rm -rf 1_1 [root@localhost 1]# echo $? 0 命令执行失败返回1-255 当把 文件夹 1_1 重命名为1_2失败后状态码为1 [root@localhost 1]# mv 1_…

    Linux干货 2017-08-28

评论列表(1条)

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

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