序:
第一次写博客,就先唠叨下,嘻嘻。本人之前是做机房运维工作的,大专毕业,专业学的是法律,之后转行进的网络培训班,开始了IT生涯,其实计算机基础是相当薄弱的,呵呵。机房运维工作就是搬机器,布网线,调设备,装系统,能远程连上,剩下的事情就不用你管了,当下云计算的盛行,传统IDC势必要被淘汰的,也怪自己的主观意识没有加强,以至于浪费了七八年的大好青春、最佳学习时间和机会。偶然的机会看到了马哥,幡然醒悟,好像找到了以后奋斗的路,别人说30岁左右的工作基本上就决定了你今后的路,也是自己本身就对Linux感兴趣,故决定一扫眼前阴霾,一条道走到黑,哈哈。也希望各位大大、大神们多多指教,共同学习,共同分享。生生不息,学习不止。
正文:
1、 描述计算机的组成及其功能。
计算机有五大部件组成,也叫冯诺依曼体系,虽然我不认识他,呵呵。其中包括CPU(存储器和控制器),内存(调取指令数据并存储排列),硬盘(存储数据媒介),I/O设备(输入输出信息,与用户进行交互的设备)。下面以图为例简单说明下各部件的功能。(没有计算机理论基础,如有不对的地方请大神们多多指教,日后必恶补之。)
CPU与内存组成了计算机的系统管理体系,程序是由指令和进程组成的,进程是有生命周期的二进制运行程序,CPU可以理解为是指令的集合,调用指令并进行运算,控制其各个进程的顺序排列和运行进退,其指令暂存于内存中,程序数据又都存储在硬盘中。故用户通过I设备(IN,如键盘,鼠标等)根据需求操作,CPU得知到后(这里有个操作系统的概念,稍后再做解释),控制相关指令进行运算,并将其结果通过O设备(OUT,如显示器,打印机等)反映给用户,即完成计算机运行。
这里有个操作系统的概念,我也简单讲下,不对的地方,请多指教,多重复几遍,以免自己以后忘了,呵呵。
操作系统是由kernel组成的,其作用有驱动管理,文件管理,安全管理,进程管理,网络管理等,是用户与硬件达成交互的渠道,其在kernel之上要运行程序需有syscall(系统调用,也是存在于kernel之中)来完成,但由于各个OS的版本及架构的CPU不同,又在kernel中完成了libcall(库调用)以便各程序在不同的OS中能够运行,与用户完成完美交互,也方便了程序员的开发,libcall之上就是我们所看到的程序。这里还有个概念就是机器语言,汇编语言,编译,编译器等,稍后再做解释。
2、 按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。
Linux系统是遵循GPL(GNU General Public License)规则的,即开源软件(软件源代码),可自由编写,修改,并发布,但也要遵循GPL规则。有些公司及社区在Linux内核的基础上将一些服务与工具写入到内核中并发行,当然也是遵循GPL规则的,但是服务出了问题,社区版由黑客大大们进行维护修改,这是免费的,但不稳定,发行版则是由发行商进行有偿服务,保证其系统的稳定性。也分有个人版和企业版之说。
目前主流的Linux发行版大致分为三大公司的产品,Debian,Slackware,RedHat。Debian旗下有Ubuntu,Knopix,Slackware旗下有S.u.S.E,S.u.S.E下又有Opensuse,RedHat旗下有Fedora,CentOS,基本上欧洲大陆用的比较多的是Debian和S.u.S.E的版本,美国和中国用的RedHat较多,当然还有Gentoo,ArchLinux等上百种Linux系统。版本发行有版本号,X.Y.Z,X代表主版本号,Y代表次版本号,Z代表修订版本号,其为奇数是修订版,为偶数是稳定版。
3、 描述Linux的哲学思想,并按照自己的理解对其进行解释性描述。
Linux的哲学思想大分有四:
其一、一切皆文件,即把系统上的所有资源几乎统统以文件的形式进行表示,包括硬件设备,外联设备,链接设备等,都是已文件的形式保存,用户可进行访问与查询,修改其配置文件,达到需求。
其二、Linux由众多功能单一的程序组成,且每个程序只做一件事,并做好。这就大大划分了系统上的管理,用户可修改配置文件来更改自己对程序的需求,也可据源代码做二次开发,各程序间互不影响。
其三、尽量避免与用户交互,编写程序达到自动化任务。Linux提供了很好的API(Application Programe Interface)接口,可在其环境下(shell环境,也是一个库调用,分有bash,csh,zsh,tcsh,ksh等),根据用户的需求进行脚本编写,或程序开发,以完成自动化任务,节约成本,方便管理。
其四、使用文本文件保存配置信息。用户修改程序或服务参数,可参考其配置文件进行,而文件是以文本形式进行存储,这就提高了方便性,最主要的是灵活性,用户可修改配置文件之后以保存,在下次启动服务之后自动加载文件以到达需求目的。
4、 说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述。
Linux系统与用户进行交互提供了两种界面,GUI和CLI,GUI包括GNmoe,KDC图形界面,CLI包括shell,bash,csh,Tcsh等环境,其命令行方式为[user@host ~]#($):COMMAND OPTIONS ARGUMENTS,user表示当前登录用户,@分隔符,host表示登录主机,~表示当前目录,或工作目录,#表示管理用户登录,具有管理权限,$表示普通用户登录,不具有管理类权限,COMMAND命令,OPTIONS可选项,以表示命令的详细选择内容,ARGUMENTS参数,表示命令的作用对象。下面以man命令(命令的帮忙查看命令)查看使用方式介绍命令的使用。(CentOS 7)
ifconfig 查看网络接口信息,ip addr list与其有相同的结果,常用选项为-a,表示查看所有网络端口信息
在此信息栏中可查看所有端口的IP地址,掩码,广播地址,MAC地址,IPV6信息,上下行流量,速率等信息。
echo 显示其文本内容,后有‘强引用’,“弱引用”,`反引用`之分,是对内容进行显示,后也可跟选项,如echo – n显示不换行,echo -e让转义符(\)生效,\n换行,\t制表,\v纵向制表,后面也可跟选项表示颜色,以图作说明。
echo也可用于显示变量值,$SHELL环境变量是什么,$PATH命令查找的路径是什么等。
tty startx 这是与终端有关的命令,Linux提供了很好的交互界面,当然要有终端实现连接,终端有虚拟终端(/dev/tty,虚拟终端6个端口号,1到6),物理终端(/dev/console),串行终端(/dev/ttyS),伪终端(/dev/pty),其终端在系统中以文件形式表示,startx是由命令行终端转为图形终端的命令,可跟&转为后台运行。
我用的是XSHELL,第一个窗口为伪终端1,第二个窗口为伪终端2,第三个窗口为虚拟机的终端,系统上的虚拟终端,图形界面的就不做展示了,呵呵。
export 用于显示当前SHELL环境下变量的值,一般存在交叉编译链的时候需要更改变量环境,这时候用export查看当前环境下的变量。
太多就不全部截屏了。
pwd 显示当前工作目录,即用户都有自己的家目录,不同的用户登录,所显示的pwd是不一样的,用图展示。
pwd的使用可让用户清楚自己当下的工作目录,方便路径的查找或其他的修改操作。
history 历史查询命令,这个命令也是我们经常用的,后可跟-c表示清空历史列表,history查询的结果一般存储在.bash_history的历史文件中,用户当前登录执行的命令不会即刻存到文件中,需下次启动后,或用选项执行,如history -r,表示把命令文件读取到列表中,可先清空再执行这个命令做实验,history -w,表示把历史列表中的命令追加到历史文件中,这个操作大家可以实验下,先把历史文件清空,history -d,表示从列表中删除指定命令。history也由环境变量值,来定制其功能,HISTSIZE(历史命令保存的最大条数),HISTFILE(持久保持的历史文件),HISTFILESIZE(历史文件保存的最大条数),HISTCONTROL(历史命令执行的控制结果,ignoredups,忽略重复命令,ignorespace,忽略以空白字符开头的命令,ignoreboth,以上两者同时生效),也有快捷符号来执行上一条命令,当然也可按键盘的上下键,如若编写脚本,这个很省事,!!执行上一条命令,!#,#表示命令列表中的命令序号,执行第几条命令,如图。
shutdown poweroff reboot halt 这些是与系统开关机有关的命令,shutdown后可跟选项,不跟表示1分钟后关机,-c表示取消,-P等于poweroff,-H等于halt,停止也是关机,-r,reboot表示重启,-k,表示不关机只发送消息,这里还有个wall也很好玩,加上文本内容,其他终端能看到发送的内容,不过我还是比较喜欢init命令控制,init 0是关机,6是重启,3是字符界面,5是图形界面,后期讲INIT进程的时候再做说明。
date hwclock clock cal 是与时间有关的命令,cal显示日历形式,也可显示单月,整年,如cal 05 2018,date显示及设置系统时间,后可跟-s 设备系统时间,也可单独显示某一个项,date +%F日期,%T时间,%Y年,%m月,%d日,%D时间,格式不一样,%H小时,%M分钟,%S秒,date -u显示UTC时间,clock用法与hwclock一样,显示和设置硬件时间,即CMOS上的BIOS时间,hwclock –set –date=””,修改硬件时间,hwclock -w表示systohc,从系统同步到硬件,以系统时间为准,hwclock -s表示hctosys,从硬件同步到系统,以硬件时间为准,如图。
5、 如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分的。
Linux系统上的命令分为内部命令和外部命令,可用type和which查看命令的类型,内部命令帮助信息查看即help COMMAND,外部命令可用COMMAND –help,也可用man COMMAND来查看,info命令是在线文档查看,也可登录redhat官方网站查看文档,也有其程序的说明文档,也可google。man命令很强大,共有8个章节之分说明命令的使用,可用whatis COMMAND来查看命令所在章节。八大章节,有用户命令说明,系统调用,C库调用,设备文件及特殊文件,文件格式(即配置文件格式),游戏帮助使用说明,杂项,守护进程及管理工具。
6、 请罗列Linux发行版的基础目录名称命名法则及功用规定。
Linux系统存储文件有文件系统管理,即/(根目录)下的子目录,层级管理,下面用图一一说明。
/bin,/sbin,存储命令的目录文件,有链接到/usr/bin,/usr/sbin,bin下是用户可操作的基础命令的程序文件,sbin是供管理命令使用的程序文件,/boot系统加载必须用到各静态文件,/dev 系统下的设备文件存放,/etc 系统的各配置文件的存放,/home普通用户的家目录,/lib,/lib64 链接到/usr/lib,/usr/lib64,为系统启动或者根文件系统上的程序文件启动提供共享库,或内核启动提供共享模块,/media,/mnt为外联设备提供挂载点,挂载目录,/opt 为第三方软件提供安装位置目录,/proc,/sys两个伪文件系统,基于内核的虚拟文件系统,用于为内核及进程存储相关信息,将内核参数虚拟为映射路径,在以后的系统调优上能用的到,配置设备参数,/root 管理员的家目录,/srv 当前主机为服务提供的数据文件,/tmp临时文件存放目录,/run 系统启动时生成的文件,为系统所用,/usr 全局共享只读路径,其也有层级结构,/var 经常存放经常发生变化的文件目录,比如日志文件等,也有层级结构,如图。
/usr下的include为C程序的头文件,local下一个层级文件,一般/usr/local让管理员安装本地应用程序,也用于安装第三方程序,share命令手册页及自带文档架构的特有文件存储位置,src程序源代码存储位置。
/var下的log日志存放位置,cache缓存文件存放位置,spool打印列队和其他列队的工作目录,如邮箱,新闻之类的。
至此,学习第一周完成的Linux作业,有不对的地方速速指正,我加以恶补和强化,多谢各位大大们。
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/98028
评论列表(2条)
加油,涉及到的命令 建议用命令格式写。
@马哥教育:继续搬砖中。。。