第一周作业

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

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

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

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

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

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


壹 ---描述计算机的组成及其功能

======计算机的组成======

计算机(computer)俗称电脑,是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。是能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。

由硬件系统和软件系统所组成,没有安装任何软件的计算机称为裸机。可分为超级计算机、工业控制计算机、网络计算机、个人计算机、嵌入式计算机五类,较先进的计算机有生物计算机、光子计算机、量子计算机等。

硬件系统:

计算机发明者约翰·冯·诺依曼指出计算机五大基本组成部件

1)输入数据和程序的输入设备

2)记忆程序和数据的存储器

3)完成数据加工处理的运算器

4)控制程序执行的控制器

5)输出处理结果的输出设备;

image
软件系统:

所谓软件是指为方便使用计算机和提高使用效率而组织的程序以及用于开发、使用和维护的有关文档。软件系统可分为系统软件和应用软件两大类。

======各组成的功能======

硬件系统:

  1. 输入设备(Input):向计算机输入数据和信息的设备。是计算机与用户或其他设备通信的桥梁。输入设备是用户和计算机系统之间进行信息交换的主要装置之一。键盘,鼠标,摄像头,扫描仪,光笔,手写输入板,游戏杆,语音输入装置等都属于输入设备。

  2. 存储器(Memory):主要功能是存储程序和各种数据,并能在计算机运行过程中高速、自动地完成程序或数据的存取。计算机中的存储器按用途存储器可分为主存储器(内存)和辅助存储器(外存),也有分为外部存储器和内部存储器的分类方法。外存通常是移动硬盘、U盘或光盘等,能长期保存信息。内存指主板上的存储部件,用来存放当前正在执行的数据和程序,但仅用于暂时存放程序和数据,关闭电源或断电,数据会丢失。

  3. 运算器( Arithmetic Unit):由算术逻辑单元(ALU)、累加器、状态寄存器、通用寄存器组等组成。算术逻辑运算单元(ALU)的基本功能为加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、求补等操作。计算机运行时,运算器的操作和操作种类由控制器决定。运算器处理的数据来自存储器;处理后的结果数据通常送回存储器,或暂时寄存在运算器中。与Control Unit共同组成了CPU的核心部分。

  4. 控制器(Control Unit):计算机的神经中枢,指挥全机中各个部件自动协调工作。在控制器的控制下,计算机能够自动按照程序设定的步骤进行一系列操作,以完成特定任务。

控制器内部的主要部件如下:

①指令寄存器:存放由存储器取得的指令。

②译码器:将指令中的操作码翻译成控制信号。

③时序节拍发生器:产生时序脉冲节拍信号,使计算机有节奏、有次序地工作。

④操作控制部件:将控制信号组合起来,控制各个部件完成相应的操作。

⑤指令计数器:计算并指出下一条指令的地址。

  1. 输出设备(Output):外部设备之一。作用是把计算机的中间结果或最后结果、机内的各种数据及文字等信息输出来。常见的输出设备有:CRT、打印机、绘图仪等

软件系统:

软件总体分为系统软件和应用软件两大类:

系统软件是各类操作系统,如windows、Linux、UNIX等,还包括操作系统的补丁程序及硬件驱动程序,都是系统软件类。
系统软件是负责管理计算机系统中各种独立的硬件,使得它们可以协调工作。系统软件使得计算机使用者和其他软件将计算机当作一个整体而不需要顾及到底层每个硬件是如何工作的。

一般来讲,系统软件包括操作系统和一系列基本的工具(比如编译器,数据库管理,存储器格式化,文件系统管理,用户身份验证,驱动管理,网络连接等方面的工具)。
具体包括以下四类:
各种服务性程序,如诊断程序、排错程序、练习程序等;
语言程序,如汇编程序、编译程序、解释程序;
操作系统;
数据库管理系统。

应用软件可以细分的种类就更多了,如工具软件、游戏软件、管理软件等都属于应用软件类。

应用软件是为了某种特定的用途而被开发的软件。它可以是一个特定的程序,比如一个图像浏览器。也可以是一组功能联系紧密,可以互相协作的程序的集合,比如微软的Office软件。也可以是一个由众多独立程序组成的庞大的软件系统,比如数据库管理系统。


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

Linux的本质来说,它只是操作系统的核心,负责控制硬件、管理文件系统、程序进程等,并不给用户提供各种工具和应用软件。以Linux内核为中心,再集成搭配各种各样的系统管理软件或应用工具软件组成一套完整的操作系统,如此的组合便称为Linux发行版。

l.jpg

Linux发行版主要有三个分支:Debian、Slackware、Redhat。
(1)Debian:(以社区的方式运作)

Ubuntu:基于Debian开发的开源Linux操作系统,主要针对桌面和服务器;
Linux Mint:基于Debian和Ubuntu的Linux发行版,致力于桌面系统对个人用户每天的工作更易用,更高效,且目标是提供一种更完整的即刻可用体验。
(2)slackware

suse:基于Slackware二次开发的一款Linux,主要用于商业桌面、服务器。
SLES(SUSE Linux Enterprise Server(SLES):企业服务器操作系统,是唯一与微软系统兼容的Linux操作系统。
OpenSUSE:由suse发展而来,旨在推进linux的广泛使用,主要用于桌面环境,用户界面非常华丽,而且性能良好。
(3)Redhat

rhel(red hat enterprise Linux):Red Hat公司发布的面向企业用户的Linux操作系统。早起版本主要用于桌面环境,免费:
Fedora:基于Red Hat Linux终止发行后,红帽公司计划以Fedora来取代Red Hat Linux在个人领域的应用,而另外发行的Red Hat Enterprise Linux取代Red Hat Linux在商业应用的领域。Fedora的功能对于用户而言,它是一套功能完备、更新快速的免费操作系统,而对赞助者Red Hat公司而言,它是许多新技术的测试平台,被认为可用的技术最终会加入到Red Hat Enterprise Linux中。Fedora大约每六个月发布新版本。
Centos:基于Red hat Linux提供的可自由使用源代码的企业级Linux发行版本。每个版本的Centos都会获得十年的支持(通过安全更新的方式)。新版本的Centos大约每两年发行一次,而每个版本的Centos会定期(大概6个月)更新一次,以支持新的硬件。这样,建立一个安全、低维护、稳定、高预测性、高重复性的Linux环境。
(4)其他发行版本:

Gentoo:基于linux的自由操作系统,基于Linux的自由操作系统,它能为几乎任何应用程序或需求自动地作出优化和定制。追求极限的配置、性能,以及顶尖的用户和开发者社区,都是Gentoo体验的标志特点, Gentoo的哲学是自由和选择。得益于一种称为Portage的技术,Gentoo能成为理想的安全服务器、开发工作站、专业桌面、游戏系统、嵌入式解决方案或者别的东西--你想让它成为什么,它就可以成为什么。由于它近乎无限的适应性,可把Gentoo称作元发行版。
Aech Linux(或称Arch):以轻量简洁为设计理念的Linux发行版。其开发团队秉承简洁、优雅和代码最小化的设计宗旨。
不通发行版之间的联系和区别:
联系:所有发行版都是使用Linux内核;都需要遵循GNU的GPL协定;所有的发行版都有自己的版本号,版本格式约定基本一样(主版本号.次版本号.发行号.修正号)。
区别:发行版的本质区别,在于继承不同版本的内核,库、程序的组成。不同发行版几乎采用了不同包管理器(SLES、Fedora、openSUSE、centos、RHEL使用rmp包管理系统,包文件以RPM为扩展名;Ubuntu系列,Debian系列使用基于DPKG包管理系统,包文件以deb为扩展名。)


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

Linux的哲学思想
1、一切皆文件,把几乎所有资源系统抽象为文件形式,包括硬件设备,甚至通信接口。

表现之一:硬件设备也通过文件表示;
查看终端设备:'
                ~]# tty
                物理终端:/dev/console
                虚拟终端:/dev/tty# [1,6]
                串行终端:/dev/ttyS#
                伪终端:/dev/pts/#

2、 由众多功能单一的程序组成,一个程序只做一件事,并且做好,组合小程序完成复杂的任务。
3、尽量避免跟用户打交道,其目标是易于以编程的方式实现自动化。
4、 使用文本文件保存配置文件,无论要实现什么功能都只需要修改对应的配置文件即可。


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

命令格式

COMMAND [OPTIONS] ARGUMENTS
COMMAND
命令本身是一个可执行的程序文件:二进制格式的文件,有可能会调用共享库文件;多数系统程序文件都存放在以下路径:
普通命令:/bin, /usr/bin, /usr/local/bin
管理命令:/sbin, /usr/sbin, /usr/local/sbin
命令往往会调用到许多库文件,这些库可能许多程序都会遇到,我们形象的称之为共享库。         这些共享库也是二进制文件,但是由于其没有程序执行入口,所以不能独立执行。只能被其他有执行入口的程序调用时才能执行,一般这些库都存放在这些目录下

共享库:
32bits的库:/lib, /usr/lib, /usr/local/lib
64bits的库:/lib64, /usr/lib64, /usr/local/lib64

注意:并非所有的命令都有一个在某目录与之对应的可执行程序文件

命令必须遵循特定格式规范:exe, msi(windows); ELF(Linux)

image.png

 命令的分类:        由shell程序自带的命令:内置命令(builtin)        shell程序是一种独特的程序,它的作用是负责解析用户提供的命令。

独立的可执行程序文件:文件名即命令名:外部命令
 查看命令类型:        type COMMAND  


image.png

[OPTIONS]
指定命令的运行特性;
选项有两种表现形式:
短选项:-C, 例如-l, -d
注意:有些命令的选项没有-;
如果同一命令同时使用多个短选项,多数可合并:-l -d = -ld
选项:--word, 例如--help, --human-readable
注意:长选项不能合并;

注意:有些选项可以带参数,此称为选项参数;

[ARGUMENTS]:命令的作用对象;命令对什么生效;
注意:不同的命令的参数;有些命令可同时带多个参数,多个之间以空白字符分隔;严格区分大小写

    例如:ls -ld /var /etc 

① ifconfig命令

ifconfig命令被用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。
配置文件的路径一般为

~]# cd /etc/sysconfig/network-scripts/

语法

ifconfig(参数)

参数

add<地址>:设置网络设备IPv6的ip地址;
del<地址>:删除网络设备IPv6的IP地址;
down:关闭指定的网络设备;
<硬件地址>:设置网络设备的类型与硬件地址;
io_addr:设置网络设备的I/O地址;
irq:设置网络设备的IRQ;
media<网络媒介类型>:设置网络设备的媒介类型;
mem_start<内存地址>:设置网络设备在主内存所占用的起始地址;
metric<数目>:指定在计算数据包的转送次数时,所要加上的数目;
mtu<字节>:设置网络设备的MTU;
netmask<子网掩码>:设置网络设备的子网掩码;
tunnel<地址>:建立IPv4与IPv6之间的隧道通信地址;
up:启动指定的网络设备;
-broadcast<地址>:将要送往指定地址的数据包当成广播数据包来处理;
-pointopoint<地址>:与指定地址的网络设备建立直接连线,此模式具有保密功能;
-promisc:关闭或启动指定网络设备的promiscuous模式;
IP地址:指定网络设备的IP地址;
网络设备:指定网络设备的名称。

实例
显示网络设备信息(激活状态的):
~]# ifconfig
ens33: flags=4163 mtu 1500
inet 192.168.113.129 netmask 255.255.255.0 broadcast 192.168.113.255
inet6 fe80::653b:8117:bade:acd2 prefixlen 64 scopeid 0x20
ether 00:0c:29:2b:46:45 txqueuelen 1000 (Ethernet)
RX packets 1924 bytes 149688 (146.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 390 bytes 59257 (57.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1 (Local Loopback)
RX packets 72 bytes 6260 (6.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 72 bytes 6260 (6.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

说明:

ens33表示第一块网卡,其中ether表示网卡的物理地址,可以看到目前这个网卡的物理地址(MAC地址)是00:0c:29:2b:46:45

**inet **用来表示网卡的IP地址,此网卡的IP地址是192.168.113.129,掩码地址netmask 255.255.255.0,广播地址broadcast 192.168.113.255

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

  • 第一行:UP(代表网卡开启状态)RUNNING(代表网卡的网线被接上)MULTICAST(支持组播)MTU:1500(最大传输单元):1500字节。
  • 第二行:网卡的IP地址、子网掩码、广播地址。
  • 第四行:连接类型:Ethernet(以太网)硬件mac地址。
  • 第五、六行:接收数据包情况统计信息。
  • 第七、八行:发送数据字节数统计信息。

启动关闭指定网卡:

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


②echo命令

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

语法

echo(选项)(参数)

选项

-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"


image.png

\e[1;31m将颜色设置为红色
\e[0m 将颜色重新置回
颜色码:重置=0,黑色=30,红色=31,绿色=32,黄色=33,蓝色=34,洋红=35,青色=36,白色=37

背景色:

echo -e "\e[1;43mGreed Background\e[0m"
Yellow Background


image.png

颜色码:重置=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 命令

用于显示终端机连接标准输入设备的文件名称。
在Linux操作系统中,所有外围设备都有其名称与代号,这些名称代号以特殊文件的类型存放于/dev目录下。你可以执行tty(teletypewriter)指令查询目前使用的终端机的文件名称。

语法
tty [-s][--help][--version]
参数说明:
-s或--silent或--quiet 不显示任何信息,只回传状态代码。
--help 在线帮助。
--version 显示版本信息。
实例
显示当前终端


image.png

④startx命令

用来启动X Window,实际上启动X Window的程序为xinit
实例

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

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

startx -w


⑤export 命令

用于将shell变量输出为环境变量,或者将shell函数输出为环境变量。

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

语法

export(选项)(参数)

选项

-f:代表[变量名称]中为函数名称;
-n:删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中;
-p:列出所有的shell赋予程序的环境变量。
参数

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

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


image.png

修改当前环境变量


image.png

⑥pwd命令

以绝对路径的方式显示用户当前工作目录。命令将当前目录的全路径名称(从根目录)写入标准输出。全部目录使用/分隔。第一个/表示根目录,最后一个目录是当前目录。执行pwd命令可立刻得知您目前所在的工作目录的绝对路径名称。

语法

pwd(选项)
选项

--help:显示帮助信息;
--version:显示版本信息。

实例

image.png

⑦history命令

用于显示指定数目的指令命令,读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件。
该命令单独使用时,仅显示历史命令,在命令行中,可以使用符号!执行指定序号的历史命令。例如,要执行第2个历史命令,则输入!2。

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

history(选项)(参数)
选项

-c:清空当前历史命令;
-a:将历史命令缓冲区中命令写入历史命令文件中;
-r:将历史命令文件中的命令读入当前历史命令缓冲区;
-w:将当前历史命令缓冲区命令写入历史命令文件中。
参数

n:打印最近的n条历史命令。

实例

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

image.png

⑧shutdown命令

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

语法

shutdown(选项)(参数)
选项

-c:当执行“shutdown -h 11:50”指令时,只要按+键就可以中断关机的指令;
-f:重新启动时不执行fsck;
-F:重新启动时执行fsck;
-h:将系统关机;
-k:只是送出信息给所有用户,但不会实际关机;
-n:不调用init程序进行关机,而由shutdown自己进行;
-r:shutdown之后重新启动;
-t<秒数>:送出警告信息和删除信息之间要延迟多少秒。
参数

[时间]:设置多久时间后执行shutdown指令;
[警告信息]:要传送给所有登入用户的信息。

实例

指定现在立即关机:

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

shutdown +5 "System will shutdown after 5 minutes"


⑨poweroff命令

用来关闭计算机操作系统并且切断系统电源。

语法

poweroff(选项)
选项

-n:关闭操作系统时不执行sync操作;
-w:不真正关闭操作系统,仅在日志文件“/var/log/wtmp”中;
-d:关闭操作系统时,不将操作写入日志文件“/var/log/wtmp”中添加相应的记录;
-f:强制关闭操作系统;
-i:关闭操作系统之前关闭所有的网络接口;
-h:关闭操作系统之前将系统中所有的硬件设置为备用模式。
实例

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

使用poweroff立即关闭系统:

poweroff


⑩reboot命令

用来重新启动正在运行的Linux操作系统。

语法

reboot(选项)
选项

-d:重新开机时不把数据写入记录文件/var/tmp/wtmp。本参数具有“-n”参数效果;
-f:强制重新开机,不调用shutdown指令的功能;
-i:在重开机之前,先关闭所有网络界面;
-n:重开机之前不检查是否有未结束的程序;
-w:仅做测试,并不真正将系统重新开机,只会把重开机的数据写入/var/log目录下的wtmp记录文件。
实例

reboot //重开机。
reboot -w //做个重开机的模拟(只有纪录并不会真的重开机)。


(11) hwclock命令

是一个硬件时钟访问工具,它可以显示当前时间、设置硬件时钟的时间和设置硬件时钟为系统时间,也可设置系统时间为硬件时钟的时间。

在Linux中有硬件时钟与系统时钟等两种时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。系统时钟则是指kernel中的时钟。当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作。所有Linux相关指令与函数都是读取系统时钟的设定。

语法

hwclock(选项)
选项

--adjust:hwclock每次更改硬件时钟时,都会记录在/etc/adjtime文件中。使用--adjust参数,可使hwclock根据先前的记录来估算硬件时钟的偏差,并用来校正目前的硬件时钟;
--debug:显示hwclock执行时详细的信息;
--directisa:hwclock预设从/dev/rtc设备来存取硬件时钟。若无法存取时,可用此参数直接以I/O指令来存取硬件时钟;
--hctosys:将系统时钟调整为与目前的硬件时钟一致;
--set --date=<日期与时间>:设定硬件时钟;
--show:显示硬件时钟的时间与日期;
--systohc:将硬件时钟调整为与目前的系统时钟一致;
--test:仅测试程序,而不会实际更改硬件时钟;
--utc:若要使用格林威治时间,请加入此参数,hwclock会执行转换的工作;
--version:显示版本信息。

实例

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

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

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

cat /etc/default/rcS
UTC=yes
在其他一些版本的Linux(如RebHat)中可以这样查看:

cat /etc/sysconfig/clock
ZONE="America/Los_Angeles"
UTC=false
ARC=false


(12)date命令

用于显示或设置系统时间与日期。

很多shell脚本里面需要打印不同格式的时间或日期,以及要根据时间和日期执行操作。延时通常用于脚本执行过程中提供一段等待的时间。日期可以以多种格式去打印,也可以使用命令设置固定的格式。在类UNIX系统中,日期被存储为一个整数,其大小为自世界标准时间(UTC)1970年1月1日0时0分0秒起流逝的秒数。

语法

date(选项)(参数)
选项

-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;
-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;
-u:显示GMT;
--help:在线帮助;
--version:显示版本信息。
参数

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

日期格式字符串列表

%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)

示例:

输出当前时间的年月日

[root@centos7 ~]# date +"%Y-%m-%d"
2018-07-08
显示前一天的年月日
[root@centos7 ~]# date -d "1 day ago" +"%Y-%m-%d"
2018-07-07
按照“年-月-日 小时:分钟:秒”的格式输出当前系统时间
[root@centos7 ~]# date "+%Y-%m-%d %H:%M:%S"
2018-07-08 23:34:51
更改当前系统时间
[root@centos7 ~]# date -s "19960601 9:00:00"
Sat Jun 1 09:00:00 CST 1996


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

linux 的命令分内部命令外部命令 查看方法如下所示:

a. 查看内部命令帮助方法 :
help COMMAND

如果想查看当前系统所有的内部命令可直接输入 “help” 即可

 ~]#  help
GNU bash, 版本 4.2.46(1)-release (x86_64-redhat-linux-gnu)
这些 shell 命令是内部定义的。请输入 `help' 以获取一个列表.
输入 `help 名称' 以得到有关函数`名称'的更多信息.
使用 `info bash' 来获得关于 shell 的更多一般性信息
使用 `man -k' 或 `info' 来获取不在列表中的命令的更多信息.
名称旁边的星号 (*) 意味着该命令被禁用.

 job_spec [&]                                 history [-c] [-d 偏移量] [n] 或 histo>
 (( 表达式 ))                              if 命令; then 命令; [ elif 命令; th>
 . 文件名 [参数]                         jobs [-lnprs] [任务声明 ...] 或 jobs>
 :                                            kill [-s 信号声明 | -n 信号编号 |>
 [ 参数... ]                                let 参数 [参数 ...]
 [[ 表达式 ]]                              local [option] 名称[=值] ...
 alias [-p] [名称[=值] ... ]               logout [n]
 bg [任务声明 ...]                        mapfile [-n 计数] [-O 起始序号] [-s>
 bind [-lpvsPVS] [-m 键映射] [-f 文件㼠 popd [-n] [+N | -N]
 break [n]                                    printf [-v var] 格式 [参数]
 builtin [shell 内嵌 [参数 ...]]          pushd [-n] [+N | -N | 目录]
 caller [表达式]                           pwd [-LP]
 case 词 in [模式 [| 模式]...) 命令 >  read [-ers] [-a 数组] [-d 分隔符] [->
 cd [-L|[-P [-e]]] [dir]                      readarray [-n 计数] [-O 起始序号] [>
 command [-pVv] 命令 [参数 ...]           readonly [-aAf] [name[=value] ...] or rea>
 compgen [-abcdefgjksuv] [-o 选项]  [-A 㼠 return [n]
 complete [-abcdefgjksuv] [-pr] [-DE] [-o 缠 select NAME [in 词语 ... ;] do 命令; >
 compopt [-o|+o 选项] [-DE] [名称 ...]    set [-abefhkmnptuvxBCHP] [-o option-name]>
 continue [n]                                 shift [n]
 coproc [名称] 命令 [重定向]           shopt [-pqsu] [-o] [选项名 ...]
 declare [-aAfFgilrtux] [-p] [name[=value] >  source 文件名 [参数]
 dirs [-clpv] [+N] [-N]                       suspend [-f]
 disown [-h] [-ar] [任务声明 ...]         test [表达式]
 echo [-neE] [参数 ...]                     time [-p] 管道
 enable [-a] [-dnps] [-f 文件名] [名称>  times
 eval [参数 ...]                            trap [-lp] [[参数] 信号声明 ...]
 exec [-cl] [-a 名称] [命令 [参数 ...>  真
 exit [n]                                     type [-afptP] 名称 [名称 ...]
 export [-fn] [名称[=值] ...] 或 export>  typeset [-aAfFgilrtux] [-p] name[=value] >
 伪                                          ulimit [-SHacdefilmnpqrstuvx] [限制]
 fc [-e 编辑器名] [-lnr] [起始] [终张 umask [-p] [-S] [模式]
 fg [任务声明]                            unalias [-a] 名称 [名称 ...]
 for 名称 [in 词语 ... ] ; do 命令; d>  unset [-f] [-v] [名称 ...]
 for (( 表达式1; 表达式2; 表达式3 >  until 命令; do 命令; done
 function 名称 { 命令 ; } 或 name () {>  variables - 一些 shell 变量的名称
 getopts 选项字符串 名称 [参数]      wait [编号]
 hash [-lr] [-p 路径名] [-dt] [名称 ..>  while 命令; do 命令; done
 help [-dms] [模式 ...]                     { 命令 ; }
[root@localhost ~]# help |less
[root@localhost ~]# help |grep cd
 cd [-L|[-P [-e]]] [dir]                      readarray [-n 计数] [-O 起始序号] [>
 compgen [-abcdefgjksuv] [-o 选项]  [-A 㼠 return [n]
 complete [-abcdefgjksuv] [-pr] [-DE] [-o 缠 select NAME [in 词语 ... ;] do 命令; >
 伪                                          ulimit [-SHacdefilmnpqrstuvx] [限制]```

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.:执行当前进程环境中的程序。同source。

. file:dot命令从文件file中读取命令并执行。

: 空操作,返回退出状态0。

alias:显示和创建已有命令的别名。

bg:把作业放到后台。

bind:显示当前关键字与函数的绑定情况,或将关键字与readline函数或宏进行绑定。

break:从最内层循环跳出。

builtin [sh-builtin [args]]:运行一个内置Shell命令,并传送参数,返回退出状态0。当一个函数与一个内置命令同名时,该命令将很有用。

cd [arg]:改变目录,如果不带参数,则回到主目录,带参数则切换到参数所指的目录。

command comand [arg]:即使有同名函数,仍然执行该命令。也就是说,跳过函数查找。

declare [var]:显示所有变量,或用可选属性声明变量。

dirs:显示当前记录的目录(pushd的结果)。

disown:从作业表中删除一个活动作业。

echo [args]:显示args并换行。

enable:启用或禁用Shell内置的命令。

eval [args]:把args读入Shell,并执行产生的命令。

exec command:运行命令,替换掉当前Shell。

exit [n]:以状态n退出Shell。

export [var]:使变量可被子Shell识别。

fc:历史的修改命令,用于编辑历史命令。

fg:把后台作业放到前台。

getopts:解析并处理命令行选项。

hash:控制用于加速命令查找的内部哈希表。

help [command]:显示关于内置命令的有用信息。如果指定了一个命令,则将显示该命令的详细信息。

history:显示带行号的命令历史列表。

jobs:显示放到后台的作业。

kill [-signal process]:向由PID号或作业号指定的进程发送信号。输入kill-l查看信号列表。

let:用来计算算术表达式的值,并把算术运算的结果赋给变量。

local:用在函数中,把变量的作用域限制在函数内部。

logout:退出登录Shell。

popd:从目录栈中删除项。

pushd:向目录栈中增加项。

pwd:打印出当前的工作目录。

read [var]:从标准输入读取一行,保存到变量var中。

readonly [var]:将变量var设为只读,不允许重置该变量。

return [n]:从函数中退出,n是指定给return命令的退出状态值。

set:设置选项和位置参量。

shift [n]:将位置参量左移n次。

stop pid:暂停第pid号进程的运行。

suspend:终止当前Shell的运行(对登录Shell无效)。

test:检查文件类型,并计算条件表达式。

times:显示由当前Shell启动的进程运行所累计用户时间和系统时间。

trap [arg] [n]:当Shell收到信号n(n为0、1、2或15)时,执行arg。

type [command]:显示命令的类型,例如:pwd是Shell的一个内置命令。

typeset:同declare。设置变量并赋予其属性。

ulimit:显示或设置进程可用资源的最大限额。

umask [八进制数字]:用户文件关于属主、属组和其他用户的创建模式掩码。

unalias:取消所有的命令别名设置。

unset [name]:取消指定变量的值或函数的定义。

wait [pid #n]:等待pid号为n的后台进程结束,并报告它的结束状态。

==================================================

b.查看外部命令帮助方法 :

(1)命令自带简要格式的使用帮助
              # COMMAND --help
       (2)使用手册:manual
                    位置:/usr/share/man
             # man COMMAND
                 SECTION(部分):
                         NAME:功能性说明
                         SYNOPSIS:语法格式(命令的使用格式)
                         DESCRIPTION:描述
                         OPTIONS:选项
                         EXAMPLES:使用示例
                         AUTHOR:作者
                         BUGS:报告程序BUG的方式
                         SEE ALSO:参考
                         ...
                         SYNOPSISI:
                            []:可选内容;
                                <>:必须提供的内容;
                                a|b|c:多选一;
                                ...:同类内容可出现多个;
                使用手册:压缩格式文件,有章节之分;
                    章节位于:/usr/share/man
                        手册章节分为man1-man9
                        man1:用户命令
                        man2:系统调用
                        man3:C库调用
                        man4:设备文件及特许文件
                        man5:文件格式(配置文件格式)
                        man6:游戏使用帮助
                        man7:杂项
                        man8:管理工具及守护进程
                        
                   # man CHAPTER COMMAND
                      chapter:章节 1-8
                       注意:并非每个COMMAND在所有章节下都有手册;
                       查看命令帮助手册所在章节:
                        ~]# whatis COMMAND
                          注意:其执行过程是查询数据库进行的;
                            手动更新数据库:    ~]# makewhatis


man命令打开手册以后的操作方法:
                    翻屏:
                        空格键:向文件尾翻一屏;
                        b: 向文件首部翻一屏;
                        Ctrl+d:向文件尾部翻半屏;
                        Ctrl+u:向文件首部翻半屏;
                        回车键:向文件尾部翻一行;
                        k: 向文件首部翻一行;
                        G:跳转至最后一行;
                        #G: 跳转至指定行;
                        1G:跳转至文件首部;

                    文本搜索:
                        /keyword:从文件首部向文件尾部依次查找;不区分字符大小写;
                        ?keyword:从文件尾部向文件首部依次查找;    
                            n: 与查找命令方向相同;
                            N: 与查找命令方向相反;

                    退出:
                        q: quit

                选项:
                    -M /PATH/TO/SOMEDIR:到指定目录下查找命令手册并打开之;


(3)info COMMAND 获取命令的在线文档
(4)应用程序自带帮助文档:/usr/share/doc/APP-VERSION
                README:程序的相关的信息;
                INSTALL: 安装帮助;
                CHANGES:版本迭代时的改动信息;
(5)主流发行版官方文档:http://www.redhat.com.doc
(6)程序官方文档:官方站点上的“Document”
(7)搜索引擎:google

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

Linux命名法则
内核版本由三部分组成:主板本号、次版本号、末版本号,其中次版本号为奇数时是开发版本,为偶数时为稳定版本。
文件命名规则
a. 文件名严格区分大小写;
b. 文件名可以使用除了/以外的任何字符;
c. 文件名长度不能超过255个字符;
d. 以.开头的文件问隐藏文件。
文件类型
f-普通文件
d-目录文件,
l-符号链接文件,
b-块设备文件,
c-字符设备文件,
p-管道文件,
s-套接字文件。
文件系统

Linux入门基础知识(1)

/boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader,grub)都存放在此目录,例如kernels、intrd等
/bin:供所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序
/sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序
/lib:基本共享库文件和内核模块文件(/lib/modules)
/lib64:专用于x86_64系统上的辅助共享库文件存放位置
/etc配置文件目录(纯文本文件);init.d下存放了各种软件的启动脚本
/home:普通用户的家目录,包括存放的文件,个人配置等等
/root: 管理员的家目录;
/media:便携式移动设备挂载点;
/mnt:临时文件系统挂载点(目录);
/dev:设备文件及特殊文件存放位置;任何设备与接口设备都是以文件的形式存放在此目录,通过访问目录下的文件,就等于访问某个设备,这就相当于是社保的入口,类似/dev/null,/dev/zero,dev/tty,/dev/sd*,/dev/lp*,/dev/hd*等设备文件;
/opt:第三方应用程序的安装位置;
/srv:系统上运行的服务用到的程序;
/tmp:临时文件存放位置;所有用户都可以访问;
/usr:全局共享只读数据,整个目录都是只读;
/var:variable data files常态性变动的文件夹,包括缓存(cache)、登录文件(logfile)以及某些软件运行所产生的文件,包括程序文件(lock file,run file),也许有MySQL数据库的文件等。
/proc:用于输出内核与进程信息相关的虚拟文件系统;属于虚拟文件系统,内存中的数据,如内核、程序进程、外部设备的状态,网络状态等;
/sys:用于当前系统上的硬件设备相关信息的虚拟文件系统;
一般情况下,除了boot和home,其他目录一般不能放在其他分区

你可能感兴趣的:(第一周作业)