作业一:linux基础

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

计算机是指一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。

组成及其功能

计算机由硬件系统、操作系统和应用软件所组成,没有安装任何软件的计算机称为裸机。

一、硬件系统由运算器、控制器、存储器、输入设备和输出设备五大部分组成,遵循冯、诺依曼原理。

CPU(中央处理器):由运算器和控制器组成。

功能:实现算术运算和逻辑运算(运算器),指挥系统或称系统协调(控制器)。控制器通过地址访问存储器,从存储器中取出指令,经译码器分析后,根据指令分析结果产生相应的操作控制信号作用于其他部件,使得各部件在控制器控制下有条不紊地协调工作。

存储器:是计算机中用来存放所有数据和程序的记忆部件,由若干个存储单元组成,由存储体、地址译码器、读写控制电路、地址总线和数据总线组成,分为ROM和RAM,主(内部)存储器和辅助(外部)存储器。

主要功能是存放程序和数据

输入设备:是向计算机中输入信息(程序、数据、声音、文字、图形、图像等)的设备。常见的输入设备有:键盘、鼠标、图形扫描仪、触摸屏、条形码输入器、光笔等。

功能:用于输入信息

输出设备:主要有显示器、打印机和绘图仪等

功能:用于输出信息

二、操作系统:是管理和控制计算机硬件与软件资源的计算机程序,位于底层硬件与用户之

间,是两者沟通的桥梁。主要有unix,linux,windows。

功能:提供资源管理,程序控制和人机交互等。为用户分配cpu,内存,为高级编程提供标

准的硬件接口,模块,库等。

三、应用软件:专门为某一应用目的而编制的软件,一般运行于操作系统之上。

功能:拓宽计算机硬件的应用领域,放大硬件的功能,满足人们的

特定需要。

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

Linux的发行版本可以大体分为两类,一类是商业公司维护的发行版本,一类是社区组织维护的发行版本,前者以著名的Redhat(RHEL)为代表,后者以Debian为代表。

linux的发行版主要有以下九种及其特点如下:

  1. Fedora Core

    它是一套从Red Hat Linux发展出来的免费Linux系统,允许任何人自由地使用、修改和重发布,无论现在还是将来。它由一个强大的社群开发,这个社群的成员以自己的不懈努力,提供并维护自由、开放源码的软件和开放的标准。Fedora 项目由 Fedora 基金会管理和控制,得到了 Red Hat, Inc. 的支持。可运行的体系结构包括 x86(即i386-i686), x86_64 和 PowerPC。

2、Debian

Debian以其稳定性著称,它的目标是提供一个稳定容错的Linux版本。虽然它的早期版本Slink有一些问题,但是它的现有版本Potato已经相当稳定了。这个版本更多的使用了 pluggable authentication modules (PAM),综合了一些更易于处理的需要认证的软件(如winbind for Samba)。

Debian的安装完全是基于文本的,它仅仅使用fdisk 作为分区工具而没有自动分区功能,所以它的磁盘分区过程令人十分讨厌。磁盘设置完毕后,软件工具包的选择通过一个名为dselect的工具实现,但它不向用户提供安装基本工具组(如开发工具)的简易设置步骤。最后需要使用anXious工具配置X Windows,这个过程与其他版本的XWindows配置过程类似。完成这些配置后,Debian就可以使用了。

支持Debian的不是某家公司,而是许多在其改进过程中投入了大量时间的开发人员。Debian主要通过基于Web的论坛和邮件列表来提供技术支持。

作为服务器平台,Debian提供一个稳定的环境。为了保证它的稳定性,开发者不会在其中随意添加新技术,而是通过多次测试之后才选定合适的技术加入。当前最新正式版本是Debian 6,采用的内核是Linux 2.6.32。Debian 6 第一次包含了一个100%开源的Linux内核,这个内核中不再包含任何闭源的硬件驱动。所有的闭源软件都被隔离成单独的软件包,放到Debian软件源的 "non-free" 部分。由此,Debian用户便可以自由地选择是使用一个完全开源的系统还是添加一些闭源驱动。

  1. Mandrake

    作为Red HatLinux的一个分支,Mandrake将自己定位在桌面市场的最佳Linux版本上,也支持服务器上的安装,而且成绩并不坏。

    Mankdrake的目标是尽量让工作变得更简单,安装非常简单明了,它完全使用GUI界面,还为磁盘分区制作了一个适合各类用户的简单GUI界面。软件包的选择非常标准。

Mandrake主要通过邮件列表和Mandrak 自己的Web论坛提供技术支持。

Mandrak没有重大的软件缺陷,只是它更加关注桌面市场,较少关注服务器市场。

4、Ubuntu

Ubuntu是一个以桌面应用为主的Linux操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词(译为吾帮托或乌班图),意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。

Ubuntu基于Debian发行版和unity桌面环境,与Debian的不同在于它每6

个月会发布一个新版本。Ubuntu的目标在于为一般用户提供一个最新的、同

时又相当稳定的主要由自由软件构建而成的操作系统。Ubuntu具有庞大的社

区力量,用户可以方便地从社区获得帮助。随着云计算的流行,ubuntu推出

了一个云计算环境搭建的解决方案,可以在其官方网站找到相关信息。

5、Red Hat Linux

可能这是最著名的Linux版本了,Red Hat Linux是公共环境中表现上佳的服务器。它拥有自己的公司,能向用户提供一套完整的服务,这使得它特别适合在公共网络中使用。拥有大多数人都需要使用的主体软件包。

Red Hat Linux的安装过程也十分简单明了。它的图形安装过程提供简易

设置服务器的全部信息。磁盘分区过程可以自动完成,还可以选择GUI工

具完成,即使对于 Linux新手来说这些都非常简单。选择软件包的过程也

与其他版本类似;用户可以选择软件包种类或特殊的软件包。系统运行起

来后,用户可以从Web站点和 Red Hat那里得到充分的技术支持。一个符

合大众需求的最优版本。在服务器和桌面系统中它都工作得很好。

Red Hat的唯一缺陷是带有一些不标准的内核补丁,这使得它难于按用户

的需求进行定制。 Red Hat通过论坛和邮件列表提供广泛的技术支持,它

还有自己公司的电话技术支持,后者对要求更高技术支持水平的集团客户

更有吸引力。

6、SuSE

总部设在德国的SuSEAG在商界已经奋斗了8年多它一直致力于创建一个连接数据库的最佳Linux版本。为了实现这一目的,SuSE与Oracle 和IBM合作,以使他们的产品能稳定地工作。SuSE还开发了SuSE Linux eMail ServerIII,一个非常稳定的电子邮件群组应用。

基于2.4.10内核的SuSE 7.3,在原有版本的基础上提高了易用性。安装过程通过GUI完成,磁盘分区过程也非常简单,但它没有为用户提供更多的控制和选择。在SuSE 操作系统下,可以非常方便地访问Windows磁盘,这使得两种平台之间的切换,以及使用双系统启动变得更容易。SuSE的硬件检测非常优秀,该版本在服务器和工作站上都用得很好。

SuSE拥有界面友好的安装过程,还有图形管理工具,可方便地访问Windows

磁盘,对于终端用户和管理员来说使用它同样方便,这使它成为了一个强大的服务器平台。 SuSE也通过基于Web的论坛提供技术支持,另外它有电话技术支持。

7、Linux Mint

Linux Mint是一份基于Ubuntu的发行版,其目标是提供一种更完整的即

刻可用体验,这包括提供浏览器插件、多媒体编解码器、对DVD播放的支

持、Java和其他组件。它与Ubuntu软件仓库兼容。Linux Mint 是一个

为pc和X86电脑设计的操作系统。

linux Mint可以很好的在一个单系统的电脑上运行,但是它也可以自动检

测其他操作系统并与其互动,例如,如果你安装Linux Mint在一个安装

了Windows版本的(xp,vista或者其他版本),它会自动检测并建立双

启动以供您在开机的时候选择启动哪个系统。并且你可以在Linux Mint

下访问Windows分区。Linux是更安全,更稳定,更有效并且日益易于操

作的甚至可以和Windows相媲美的系统。

8、Gentoo

Gentoo是Linux世界最年轻的发行版本,正因为年轻,所以能吸取在她之前的所有发行版本的优点。Gentoo最初由Daniel Robbins(FreeBSD的开发者之一)创建,首个稳定版本发布于2002年。由于开发者对FreeBSD的熟识,所以Gentoo拥有媲美FreeBSD的广受美誉的ports系统 ——Portage包管理系统。

9、centos

CentOS(CommunityENTerprise Operating System)是Linux发行版之一,它是来自于Red HatEnterprise Linux依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Red HatEnterprise Linux使用。两者的不同,在于CentOS并不包含封闭源代码软件,CentOS 是一个基于Red Hat Linux 提供的可自由使用源代码的企业级Linux发行版本。每个版本的CentOS都会获得十年的支持(通过安全更新方式)。新版本的 CentOS 大约每两年发行一次,而每个版本的 CentOS 会定期(大概每六个月)更新一次,以便支持新的硬件。这样,建立一个安全、低维护、稳定、高预测性、高重复性的 Linux 环境。

CentOS 是RHEL(Red HatEnterprise Linux)源代码再编译的产物,而且在RHEL的基础上修正了不少已知的Bug ,相对于其他 Linux 发行版,其稳定性值得信赖。

RHEL在发行的时候,有两种方式。一种是二进制的发行方式,另外一种是源代码的发行方式

附加:

Redhat,应该称为Redhat系列,包括RHEL(RedhatEnterprise Linux,也就是所谓的Redhat Advance Server收费版本)、FedoraCore(由原来的Redhat桌面版本发展而来,免费版本)、CentOS(RHEL的社区克隆版本,免费)。Redhat应该说是在国内使用人群最多的Linux版本,甚至有人将Redhat等同于Linux,的一般Linux教程都是以Redhat为例来讲解的。Redhat系列的包管理方式采用的是基于RPM包的YUM包管理方式,包分发方式是编译好的二进制文件。稳定性方面RHEL和CentOS的稳定性非常好,适合于服务器使用,但是Fedora Core的稳定性较差,最好只用于桌面应用。

Debian,或者称Debian系列,包括Debian和Ubuntu等。Debian是社区类Linux的典范,是迄今为止最遵循GNU规范的Linux系统。分为三个版本分支(branch): stable,testing和unstable。其中,unstable为最新的测试版本,其中包括最新的软件包,但是也有相对较多的bug,适合桌面用户。testing的版本都经过unstable中的测试,相对较为稳定,也支持了不少新技术(比如SMP等)。而stable一般只用于服务器,上面的软件包大部分都比较过时,但是稳定和安全性都非常的高。Debian最具特色的是apt-get/dpkg包管理方式,其实Redhat的YUM也是在模仿Debian的APT方式,但在二进制文件发行方式中,APT应该是最好的了。Debian的资料也很丰富,有很多支持的社区,有问题求教也有地方可去。

Ubuntu严格来说不能算一个独立的发行版本,Ubuntu是基于Debian的unstable版本加强而来,可以这么说Ubuntu就是一个拥有Debian所有的优点,以及自己所加强的优点的近乎完美的Linux桌面系统。根据选择的桌面系统不同,有多个版本可供选择,比如基于unity的Ubuntu,基于Gnome的Ubuntu Gnome,基于KDE的Kubuntu,基于LXDE的Lubuntu以及基于Xfce的Xubuntu等。特点是界面非常友好,容易上手,对硬件的支持非常全面,是最适合做桌面系统的Linux发行版本。

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

FreeBSD,需要强调的是:FreeBSD并不是一个Linux系统!但FreeBSD与Linux的用户群有相当一部分是重合的,二者支持的硬件环境也比较一致,所采用的软件也比较类似,所以可以将FreeBSD视为一个Linux版本来比较。

FreeBSD拥有两个分支:stable和current。顾名思义,stable是稳定版,而current则是添加了新技术的测试版。FreeBSD采用Ports包管理系统,与Gentoo类似,基于源代码分发,必须在本地机器编后后才能运行,但是Ports系统没有Portage系统使用简便,使用起来稍微复杂一些。FreeBSD的最大特点就是稳定和高效,是作为服务器操作系统的最佳选择,但对硬件的支持没有Linux完备,所以并不适合作为桌面系统。

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

如下:

  1. 一切皆文件:计算机系统上的所有文件,目录,程序等都是以文件形式

存在

2、单一目的的小程序;一条命令完成一个任务,一串代码完成一个的任务,这些小程序彼此独立,代码简单,目的明确。

3、组合小程序完成复杂任务:一个复杂的任务不必使用一个大型的程序来独立完成,它由多个单独的小程序组合以完成复杂任务。这样既便于排错,也可以让程序运行更完美。

4、文本文件保存配置信息:计算机的所有硬件和软件配置信息保存在文本文件中,可以使用记事本进行编辑。

5、尽量避免捕获用户接口:尽量不和用户进行交互,一个程序一但开始运行,就不需要用户进行任何操作,如ls,ifconfig命令。

6、提供机制,而非策略:机制是泥坯,策略是可以定制的各种细节。机制是接口,策略是数据流。管道是机制,应用管道处理各种数据是策略。AWK的读入行循环是机制,各种正则式与后附的处理操作是策略。

4.说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、

export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述。

linux系统常用命令格式:command[选项]  [参数] 
其中选项以-开始,多个单字符选项可用一个-连起来,长字符用--连接。如ls -l -a 与ls-la相同。根据命令的不同,参数分为可选的或必须的。

一、ifconfig

1.命令格式:ifconfig [网络设备] [参数]

2.命令功能:ifconfig 命令用来查看和配置网络设备。当网络环境发生改变时可通过此命令对网络进行相应的配置。

3.命令参数:

up 启动指定网络设备/网卡。

down 关闭指定网络设备/网卡。

arp 设置指定网卡是否支持ARP协议。

-promisc 设置是否支持网卡的promiscuous模式,如果选择此参数,网卡将接收网络中发给它所有的数据包

-allmulti 设置是否支持多播模式,如果选择此参数,网卡将接收网络中所有的多播数据包

-a 显示全部接口信息

-s 显示摘要信息(类似于 netstat -i)

add 给指定网卡配置IPv6地址

del 删除指定网卡的IPv6地址

<硬件地址> 配置网卡最大的传输单元

mtu<字节数> 设置网卡的最大传输单元 (bytes)

netmask<子网掩码> 设置网卡的子网掩码。掩码可以是有前缀0x的32位十六进制数,也可以是用点分开的4个十进制数。如果不打算将网络分成子网,可以不管这一选项;如果要使用子网,那么请记住,网络中每一个系统必须有相同子网掩码。

tunel 建立隧道

dstaddr 设定一个远端地址,建立点对点通信

-broadcast<地址> 为指定网卡设置广播协议

-pointtopoint<地址> 为网卡设置点对点通讯协议

multicast 为网卡设置组播标志

address 为网卡设置IPv4地址

txqueuelen<长度> 为网卡设置传输列队的长度

4.使用实例:

实例1:显示网络设备信息(激活状态的)

[[email protected] ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:50:56:BF:26:20 
          inet addr:192.168.120.204 Bcast:192.168.120.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST MTU:1500  Metric:1
          RX packets:8700857 errors:0 dropped:0overruns:0 frame:0
          TX packets:31533 errors:0 dropped:0overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:596390239 (568.7 MiB)  TXbytes:2886956 (2.7 MiB)
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436 Metric:1
          RX packets:68 errors:0 dropped:0 overruns:0frame:0
          TX packets:68 errors:0 dropped:0 overruns:0carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:2856 (2.7 KiB)  TXbytes:2856 (2.7 KiB)

说明:

eth0 表示第一块网卡, 其中 HWaddr 表示网卡的物理地址,可以看到目前这个网卡的物理地址(MAC地址)是 00:50:56:BF:26:20

inet addr 用来表示网卡的IP地址,此网卡的 IP地址是 192.168.120.204,广播地址, Bcast:192.168.120.255,掩码地址Mask:255.255.255.0

lo 是表示主机的回坏地址,这个一般是用来测试一个网络程序,但又不想让局域网或外网的用户能够查看,只能在此台主机上运行和查看所用的网络接口。比如把 HTTPD服务器的指定到回坏地址,在浏览器输入 127.0.0.1 就能看到你所架WEB网站了。但只是您能看得到,局域网的其它主机或用户无从知道。

第一行:连接类型:Ethernet(以太网)HWaddr(硬件mac地址)

第二行:网卡的IP地址、子网、掩码

第三行:UP(代表网卡开启状态)RUNNING(代表网卡的网线被接上)MULTICAST(支持组播)MTU:1500(最大传输单元):1500字节

第四、五行:接收、发送数据包情况统计

第七行:接收、发送数据字节数统计信息。

实例2:启动关闭指定网卡

命令:

ifconfig eth0 up

ifconfig eth0 down

输出:

说明:

ifconfig eth0 up 为启动网卡eth0 ;ifconfig eth0 down 为关闭网卡eth0。ssh登陆linux服务器操作要小心,关闭了就不能开启了,除非你有多网卡。

备注:用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。

二、echo命令

1.echo命令用于在shell中打印shell变量的值,或者直接输出指定的字符串。linux的echo命令,在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的,echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。

2.语法echo(选项)(参数)

3.选项

-e:激活转义字符。

使用-e选项时,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:

\a 发出警告声;

\b 删除前一个字符;

\c 最后不加上换行符号;

\f 换行但光标仍旧停留在原来的位置;

\n 换行且光标移至行首;

\r 光标移至行首,但不换行;

\t 插入tab;

\v 与\f相同;

\\ 插入\字符;

\nnn 插入nnn(八进制)所代表的ASCII字符;

参数

变量:指定要打印的变量。

实例

用echo命令打印带有色彩的文字:

文字色:

echo -e "\e[1;31mThis is red text\e[0m"This is red text

\e[1;31m将颜色设置为红色

\e[0m将颜色重新置回

颜色码:重置=0,黑色=30,红色=31,绿色=32,黄色=33,蓝色=34,洋红=35,青色=36,白色=37

背景色:

echo -e "\e[1;42mGreed Background\e[0m"Greed Background

颜色码:重置=0,黑色=40,红色=41,绿色=42,黄色=43,蓝色=44,洋红=45,青色=46,白色=47

文字闪动:

echo -e "\033[37;31;5mMySQL Server Stop...\033[39;49;0m"

红色数字处还有其他数字参数:0 关闭所有属性、1 设置高亮度(加粗)、4 下划线、5 闪烁、7 反显、8 消隐

三、tty(teletypewriter)

1.功能说明:显示终端机连接标准输入设备的文件名称。

2.语  法:tty [-s][--help][--version]
补充说明:在Linux操作系统中,所有外围设备都有其名称与代号,这些名称代号以特殊文件的类型存放于/dev目录下。你可以执行tty指令查询目前使用的终端机的文件名称。

3.参  数:
-s或--silent或--quiet   不显示任何信息,只回传状态代码。

--help   在线帮助。

--version   显示版本信息。

返回的状态码

标准输入是终端。
1  标准输入不是终端。
>1 发生错误。

示例:要显示全路径名:

要测试标准输入是否是终端: if tty s、

Then

echo ‘Enter thetext to print:‘ >/dev/tty

qprt –

fi

如果标准输入是终端,则显示消息“Enterthe text to print:”作为

提示并打印用户输入的文本。如果标准输入不是终端,则无显示;仅打

印从标准输入读取的文本。即使重定向 shell 过程的标准输出,回

显 . . . >/dev/tty仍在屏幕上显示提示。这样形式的提示永远不会写

入输出文件。特殊文件/dev/tty 始终是指您的终端,尽管它还有其他

名称比如/dev/console 或 /dev/tty2。

文件/usr/bin/tty    包含 tty 命令。
/dev/tty        指定 tty 伪设备。

四、startx命令

startx命令用来启动XWindow,实际上启动X Window的程序为xinit。

1.语法startx(参数)

2.参数

客户端、服务器及选项:X客户端、服务器及选项;

3.实例

要在工作站上或 X 终端上启动 X 会话,输入:

startx

要在工作站上强制启动 X 会话,请输入:

startx -w

要为 X 终端启动 X 会话,并注销用户的 telnet 会话,请输入:

startx; kill -9 $$

要使用 .xinitrc 脚本启动 X 会话,请输入:

startx -x .xinitrc

要使用 mwm 窗口管理器启动 X 会话,请输入:

startx -m mwm

但是,如果找到启动脚本文件,则忽略-w选项。在启动脚本中,启动窗口管理器、装入X资源以及产生X客户机是用户的责任。

以下是启动X会话一贯使用的文件名。

$HOME/.xerrors 其中,startx 用来重定向错误消息。在缺省情况下,startx 将错误重定向至用户主目录中的 .xerrors 文件中。

$HOME/.Xinit,

$HOME/.xinit,

$HOME/.Xinitrc,

$HOME/.xinitrc,

$HOME/.xsession 作为包含 shell 命令的“启动文件”来启动窗口管理器、装入 X 资源并产生 X 客户机。

$HOME/.Xdefaults,

$HOME/.xresources 作为装入的 X 资源文件来设置 X 客户机的用户首选项。

$HOME/.mwmrc mwm 配置文件。

$HOME/.twmrc twm 配置文件。

$HOME/.awmrc awm 配置文件。

$HOME/.uwmrc uwm 配置文件。

/dev/lft* 终端或 tty、工作站初始login shell 的界面。

五、export命令

1.export命令用于将shell变量输出为环境变量,或者将shell函数输出为环境变量。

一个变量创建时,它不会自动地为在它之后创建的shell进程所知。而命令export可以向后面的shell传递变量的值。当一个shell脚本调用并执 行时,它不会自动得到原为脚本(调用者)里定义的变量的访问权,除非这些变量已经被显式地设置为可用。export命令可以用于传递一个或多个变量的值到任何后继脚本。

2.语法export(选项)(参数)

3.选项

-f:代表[变量名称]中为函数名称;

-n:删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中;

-p:列出所有的shell赋予程序的环境变量。

参数 变量:指定要输出或者删除的环境变量。

4.实例

一般来说,配置交叉编译工具链的时候需要指定编译工具的路径,此时就需要设置环境变量。查看已经存在的环境变量:

[[email protected] ~]# export

declare -x G_BROKEN_FILENAMES="1"

declare -x HISTSIZE="1000"

declare -x HOME="/root"

declare -x hostname="localhost"

declare -x INPUTRC="/etc/inputrc"

declare -x LANG="zh_CN.UTF-8"

declare -x LESSOPEN="|/usr/bin/lesspipe.sh %s"

declare -x logname="root"

declare -xLS_COLORS="no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*NaNd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:"

declare -x mail="/var/spool/mail/root"

declare -x OLDPWD

declare -xPATH="/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"

declare -x pwd="/root"

declare -x SHELL="/bin/bash"

declare -x SHLVL="1"

declare -x SSH_CLIENT="192.168.2.111 2705 22"

declare -x SSH_CONNECTION="192.168.2.111 2705 192.168.2.2 22"

declare -x SSH_TTY="/dev/pts/0"

declare -x TERM="linux"

declare -x USER="root"

六、pwd命令

1.目录基本操作 pwd命令以绝对路径的方式显示用户当前工作目录。

2.语法pwd(选项)

3.选项

--help:显示帮助信息;

--version:显示版本信息。

4.实例

[[email protected] ~]# pwd

/root

七、history命令

1.history命令用于显示指定数目的指令命令,读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件。

该命令单独使用时,仅显示历史命令,在命令行中,可以使用符号!执行指定序号的历史命令。例如,要执行第2个历史命令,则输入!2。

历史命令是被保存在内存中的,当退出或者登录shell时,会自动保存或读取。在内存中,历史命令仅能够存储1000条历史命令,该数量是由环境变量HISTSIZE进行控制。

2.语法   history(选项)(参数)

3.选项

-c:清空当前历史命令;

-a:将历史命令缓冲区中命令写入历史命令文件中;

-r:将历史命令文件中的命令读入当前历史命令缓冲区;

-w:将当前历史命令缓冲区命令写入历史命令文件中。

4.参数  n:打印最近的n条历史命令。

实例

使用history命令显示最近使用的10条历史命令,输入如下命令:

[[email protected] ~]# history 10

八、shutdown命令

1.shutdown命令的作用:系统关机和重启。shutdown指令可以关闭所有程序,并依用户的需要,进行重新开机或关机的动作。

2.语法shutdown(选项)(参数)

3.选项

-c:当执行“shutdown -h 11:50”指令时,只要按+键就可以中断关机的指令;

-f:重新启动时不执行fsck;

-F:重新启动时执行fsck;

-h:将系统关机;

-k:只是送出信息给所有用户,但不会实际关机;

-n:不调用init程序进行关机,而由shutdown自己进行;

-r:shutdown之后重新启动;

-t<秒数>:送出警告信息和删除信息之间要延迟多少秒。

4.参数

[时间]:设置多久时间后执行shutdown指令;

[警告信息]:要传送给所有登入用户的信息。

5.实例

指定现在立即关机:

shutdown -h now

指定5分钟后关机,同时送出警告信息给登入用户:

shutdown +5 "System willshutdown after 5 minutes"

九、poweroff命令

1.系统关机和重启 poweroff命令用来关闭计算机操作系统并且切断系统电源。

2.语法poweroff(选项)

3.选项

-n:关闭操作系统时不执行sync操作;

-w:不真正关闭操作系统,仅在日志文件“/var/log/wtmp”中;

-d:关闭操作系统时,不将操作写入日志文件“/var/log/wtmp”中添加相应的记录;

-f:强制关闭操作系统;

-i:关闭操作系统之前关闭所有的网络接口;

-h:关闭操作系统之前将系统中所有的硬件设置为备用模式。

4.实例

如果确认系统中已经没有用户存在且所有数据都已保存,需要立即关闭系统,可以使用poweroff命令。

使用poweroff立即关闭系统:poweroff

十、reboot命令

1.系统关机和重启 reboot命令用来重新启动正在运行的Linux操作系统。

2.语法reboot(选项)

3.选项 与shutdown基本一致

4.实例

reboot        //重开机。

十一、hwclock命令

1.硬件管理 hwclock命令是一个硬件时钟访问工具,它可以显示当前时间、设置硬件时钟的时间和设置硬件时钟为系统时间,也可设置系统时间为硬件时钟的时间。在Linux中有硬件时钟与系统时钟等两种时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。系统时钟则是指kernel中的时钟。当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作。所有Linux相关指令与函数都是读取系统时钟的设定。

2.语法hwclock(选项)

3.选项

--adjust:hwclock每次更改硬件时钟时,都会记录在/etc/adjtime文件中。使用--adjust参数,可使hwclock根据先前的记录来估算硬件时钟的偏差,并用来校正目前的硬件时钟;

--debug:显示hwclock执行时详细的信息;

--directisa:hwclock预设从/dev/rtc设备来存取硬件时钟。若无法存取时,可用此参数直接以I/O指令来存取硬件时钟;

--hctosys:将系统时钟调整为与目前的硬件时钟一致;

--set --date=<日期与时间>:设定硬件时钟;

--show:显示硬件时钟的时间与日期;

--systohc:将硬件时钟调整为与目前的系统时钟一致;

--test:仅测试程序,而不会实际更改硬件时钟;

--utc:若要使用格林威治时间,请加入此参数,hwclock会执行转换的工作;

--version:显示版本信息。

4.实例

设置硬件时间要依赖于操作系统时间,具体方法如下:

hwclock –systohc

hwclock --systohc –-utc

不加任何参数使用hwclock,可以查看当前的硬件日期和时间。

hwclock

查看clock文件,确认是否设置了UTC:

cat /etc/default/rcS

UTC=yes

十二、date命令

1.date命令是显示或设置系统时间与日期。

2.语法date(选项)(参数)

3.选项

-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;

-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;

-u:显示GMT;

--help:在线帮助;

--version:显示版本信息。

4.参数   <+时间日期格式>:指定显示时使用的日期时间格式。

日期格式字符串列表

%H 小时,24小时制(00~23)

%I 小时,12小时制(01~12)

%k 小时,24小时制(0~23)

%l 小时,12小时制(1~12)

%M 分钟(00~59)

%p 显示出AM或PM

%r 显示时间,12小时制(hh:mm:ss %p)

%s 从1970年1月1日00:00:00到目前经历的秒数

%S 显示秒(00~59)

%T 显示时间,24小时制(hh:mm:ss)

%X 显示时间的格式(%H:%M:%S)

%Z 显示时区,日期域(CST)

%a 星期的简称(Sun~Sat)

%A 星期的全称(Sunday~Saturday)

%h,%b 月的简称(Jan~Dec)

%B 月的全称(January~December)

%c 日期和时间(Tue Nov 20 14:12:58 2012)

%d 一个月的第几天(01~31)

%x,%D 日期(mm/dd/yy)

%j 一年的第几天(001~366)

%m 月份(01~12)

%w 一个星期的第几天(0代表星期天)

%W 一年的第几个星期(00~53,星期一为第一天)

%y 年的最后两个数字(1999则是99)

实例

格式化输出:

date +"%Y-%m-%d"

2009-12-07

输出昨天日期:

date -d "1 day ago"+"%Y-%m-%d"

2012-11-19

2秒后输出:

date -d "2 second"+"%Y-%m-%d %H:%M.%S"

2012-11-20 14:21.31

传说中的 1234567890 秒:

date -d "1970-01-011234567890 seconds" +"%Y-%m-%d %H:%m:%S"

2009-02-13 23:02:30

普通转格式:

date -d "2009-12-12"+"%Y/%m/%d %H:%M.%S"

2009/12/12 00:00.00

apache格式转换:

date -d "Dec 5, 200912:00:37 AM" +"%Y-%m-%d %H:%M.%S"

2009-12-05 00:00.37

格式转换后时间游走:

date -d "Dec 5, 200912:00:37 AM 2 year ago" +"%Y-%m-%d %H:%M.%S"

2007-12-05 00:00.37

加减操作:

date +%Y%m%d                   //显示前天年月日

date -d "+1 day"+%Y%m%d       //显示前一天的日期

date -d "-1 day"+%Y%m%d       //显示后一天的日期

date -d "-1 month"+%Y%m%d     //显示上一月的日期

date -d "+1 month"+%Y%m%d     //显示下一月的日期

date -d "-1 year"+%Y%m%d      //显示前一年的日期

date -d "+1 year"+%Y%m%d      //显示下一年的日期

设定时间:

date -s                        //设置当前时间,只有root权限才能设置,其他只能查看

date -s 20120523               //设置成20120523,这样会把具体时间设置成空00:00:00

date -s 01:01:01               //设置具体时间,不会对日期做更改

date -s "01:01:012012-05-23"  //这样可以设置全部时间

date -s "01:01:0120120523"    //这样可以设置全部时间

date -s "2012-05-2301:01:01"  //这样可以设置全部时间

date -s "2012052301:01:01"    //这样可以设置全部时间

有时需要检查一组命令花费的时间,举例:

#!/bin/bash

start=$(date +%s)

nmap man.linuxde.net &>/dev/null

end=$(date +%s)

difference=$(( end - start ))

echo $difference seconds.

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

(1).Linux内部命令获取帮助的命令:help COMMAND

区分内部和外部命令:type COMMAND

外部命令获取帮助的方法:

一、command --help 或-h

二、查询使用手册:man COMMAND

三、信息页:info COMMAND

四、程序自身的帮助文档:README INSTALL ChangeLog

五、程序官方文档:站点Documentation

六、发行版的官方文档:

七:搜索工具:Google

(2).man文档的章节分为:

Man 1: 用户命令

Man 2:  系统调用

Man 3:  c库调用

Man 4:  设备文件及特殊文件

Man 5:  配置文件格式

Man 6:  游戏

Man 7:  杂项

Man 8: 管理类命令

附:man章节窗口的操作:

f 空格键      向后翻一个窗口

b            向前翻一个窗口

d           前进半个窗口(将这半个窗口设置到N)
u           后退半个窗口(将这半个窗口设置到N)

j  Enter      前进一行(或N行)
 k           后退一行(或N行)

?pattern      向后查找包含pattern的行.

/pattern       向前查找包含pattern的行.
n           查找下一个pattern行.
N           查找上一个pattern行.

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

linux各种发行版都遵循LSB(LinuxStandards Base)规则,使用一致的相同的基础目录名称,使用根文件系统结构(root filesystem),使用FHS(files Hierarchy Standard)层次结构。其基础目录名称及功用如下:

1. /:      根目录

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

3. /usr/:  Unix system Resource,Uinx系统资源目录,是系统核心所在,包含了所有的共享文件。

是 unix 系统中最重要的目录之一,涵盖了二进制文件,各种文档,各种头文件,还有各种库文件;还有诸多程序。

Linux系统安装完成软件的默认安装目录。相当于Windows下的C:\Windows\和C:\Program files\两个目录的综合。

/usr/的子目录包括:

(1) /usr/bin     存放了几乎所有用户命令

(2) /usr/sbin    存放了系统管理命令

(3) /usr/include 存放c语言的头文件,

(4) /usr/lib     软件的函数库,程序或子系统的不变的数据文件

(5) /usr/local   存放本地软件或用户安装的软件

(6) /usr/share   存放了共享文件的目录,如/usr/share/man,/usr/share/doc等

(7) /usr/src     内核源码存放位置

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

(1)/var/lib      存放系统正常运行时要改变的文件

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

(3)/var/lock     存放锁定文件

(4)/var/log      存放了各种程序的日志文件,特别是login日志(/var/log/wtmp记录了所有的系统登录和注销日志),syslog(/var/log/messages 存储所有核心和系统程序信息)。                              /var/log 里的文件经常不确定地增长,应该定期清除。

(5)/var/run       保存到下次引导前有效的关于系统的信息文件

(6)/var/mail     邮件

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

1./var/spool/cron

2./var/spool/mail

3./var/spool/mqueue

4./var/spool/lpd

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

6. /root/:  root用户家目录,还存放了一些root文件;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

时间: 2024-10-13 01:08:56

作业一:linux基础的相关文章

第四周作业:linux基础

本周作业内容: 1.复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限. # ls /home/tuser1 || mkdir /home/tuser1 && cp -R /etc/skel/* /home/tuser1 && chmod -R g-r,o-r /home/tuser1 | ls -l /home/tuser1 -rw-------. 1 root root 0 8月  25 10

【Linux基础】作业一

1.描述计算机的组成及其功能. >>>计算机由硬件,操作系统,软件三大部分组成. 一.其中硬件: 1.核心CPU(大脑处理中心) 2.必备电源(心脏动力来源),硬盘(仓库),内存(中转站),主板(协调中心),显示器(人机交互界面) 3.优化部件:网卡,声卡,显卡,风扇,光驱 4.输入输出设备:显示器,鼠标,键盘,麦克风音箱,闪存,蓝牙等等自添加. 二.其中系统: 操作系统是管理者,亦服务者,它还是一个执行者 1.Unix:AIX,BSD,FreeBSD,openBSD,HP-UX,Sol

Linux基础文本查看命令之 cat,tac,more,less,head,tail

在使用linux的过程中多多少少都会涉及到文本的操作,因此掌握一些文本操作的工具命令能大大的提高我们的工作效率. cat命令 cat命令的用途是链接文件或标准输入并打印.这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者是从标准输入读取内容并显示,它常与重定向符号配合使用. 1)命令格式 cat    [选项]    [FILENAME] 2)命令功能 将文件或标准输入组合输出到标准输出. 3)命令参数 -E:在每行结束处显示 $ -n:对输出的所有行编号 -s:不输出多行空行 4)常

linux基础命令作业四

linux基础命令四 作业一: 1)              开启Linux系统前添加一块大小为15G的SCSI硬盘 2)              开启系统,右击桌面,打开终端 3)              为新加的硬盘分区,一个主分区大小为5G,剩余空间给扩展分区, 在扩展分区上划分1个逻辑分区,大小为5G 4)              格式化主分区为ext3系统 5)              将逻辑分区设置为交换分区 6)              启用上一步的交换分区 7)   

linux基础(2)

Linux基础题 作业一:1) 新建用户natasha,uid为1000,gid为555,备注信息为"master"useradd natashagroupmod -g 555 natashausermod -u 1000 -c master natasha2) 修改natasha用户的家目录为/Natashausermod -d /home/Natasha natasha 3) 查看用户信息配置文件的最后一行tail -1 /etc/passwd4) 为natasha用户设置密码&q

linux基础知识的总结

例如以下内容是我对linux基础知识的总结,由于本人在初期学习linux的时候走了不少的弯路,对于基础的掌握耗费了不少的时间,所以为了后来者对linux的基础部分有个清晰的了解,特对基础知识进行了总结,由于水平有限.难免有疏忽或者不准确的地方.希望大家可以直接指出来,我会及时改正.一切为了知识的传播.^_^ ? *********************************************************************************************

Linux 基础入门(新版)”实验报告一~十二

实验报告 日期: 2015年9月15日 一.实验的目的与要求 熟练地使用 Linux,本实验介绍 Linux 基本操作,shell 环境下的常用命令. 二.主要内容 1.Linux 基础入门& 2.基本概念及操作 认真看过这篇linux系统简介文章,对于这样一个免费.高效的操作系统有了一个初步的认识.希望能在本学期对于linux操作系统有很好的认识和操作,使用. 同时,对于新认识的一些历史中开发和修复各个操作系统的前辈表示深深地敬佩. 2. 基本概念及操作 主要过程: (1)实验楼环境介绍 (2

Linux基础知识&mdash;&mdash;shell命令类型及命令使用帮助

加入马帮有一段时间了,看到群里面大总管要检查博客,才意识到,原来我还没有写过作业.俗话说的好,时间是把杀猪刀!!!咳咳,其实想说,马哥视频忒长,内容贼多,对于文笔不好我来说,写作业压力山大啊,有木有.嗯.嗯,长话短说,进入正题. 两个星期过去,课程进度有点掉队,这篇博文主要记录基础命令课程知识,用于梳理知识点并加深印象,为今后行走linux之路打下坚实基础的好开端,完成该博文并回顾相关知识点后,期望加快学习步伐,稳扎稳打,跟上进度,good good study,day day up! 1.  

Linux基础命令快速入门

Linux基础命令 write by Booboo Wei [email protected] 摘要: 常用的命令 ls cd pwd 符号 * ? { } | 帮助命令 --help help type man info /usr/share/doc 针对文件的的基本操作 touch mkdir rmdir cp rm mv 针对文件内容的基本操作 cat tac head tail more less 文件的查看.编辑.过滤vi vim echo grep cut wc file 关于时间的

Linux基础入门学习笔记20135227黄晓妍

学习计时:共24小时 读书:1小时 代码:8小时 作业:3小时 博客:12小时 一.学习目标 1. 能够独立安装Linux操作系统 2. 能够熟练使用Linux系统的基本命令 3. 熟练使用Linux中用户管理命令/系统相关命令/文件目录相关命令/打包压缩相关命令/比较合并相关命令/网络相关命令等 4. 熟练应用“搜索”进行举一反三的学习 二.学习资源 1. 课程资料:https://www.shiyanlou.com/courses/413   实验一,课程邀请码:W7FQKW4Y 2. Li