1. 杨乐多小站首页
  2. 技术栈
  3. Other

一 Linux基础入门 作业1

1. 描述计算机的组成及其功能。
计算机由运算器,控制器,存储器,输入设备和输出设备五大部件组成。
运算器的主要功能是对数据进行各种运算;
控制器是整个计算机系统的控制中心,它指挥计算机各部分协调地工作,保证计算机按照预先规定的目标和步骤有条不紊地进行操作及处理;
存储器的主要功能是存储程序和各种数据信息,并能在计算机运行过程中高速、自动地完成程序或数据的存取。存储器是具有“记忆”功能的设备,它用具有两种稳定状态的物理器件来存储信息;
输入设备(Input device) 用来向计算机输入各种原始数据和程序的设备叫输入设备;
输出设备把计算机加工处理的结果(仍然是数字形式的编码)变换为人或其它设备所能接收和识别的信息形式如文字、数字、图形、声音、电压等。常用的输出设备有显示器、打印机、绘图仪等。

2. 按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。
Debian:
Ubuntu:是一个以桌面应用为主的开源GNU/Linux操作系统,基于Debian GNU/Linux,支持x86、amd64(即x64)和ppc架构。
Slackware:是一个基于SLS的发行版。
S.u.S.e:SUSE Linux原是以Slackware Linux为基础,并提供完整德文使用界面的产品。
OpenSUSE:是一个一般用途的基于Linux内核的GNU/Linux操作系统。
RedHat:
CentOS:是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Red Hat Enterprise Linux使用。两者的不同,在于CentOS并不包含封闭源代码软件。
Fedora:它是一个 Linux 发行版,是一款由全球社区爱好者构建的面向日常应用的快速、稳定、强大的操作系统。它允许任何人自由地使用、修改和重发布,无论现在还是将来。它由一个强大的社群开发,这个社群的成员以自己的不懈努力,提供并维护自由、开放源码的软件和开放的标准。Fedora 项目由 Fedora 基金会管理和控制,得到了 Red Hat 的支持。大约每六个月发布新版本。
Gentoo:与Debian一样,Gentoo这款操作系统也包含数量众多的软件包。Gentoo并非以预编译的形式出现,而是每次需要针对每个系统进行编译。与大多数GNU/Linux发行版本不同,Gentoo Linux为用户提供了大量的应用程序源代码。Gentoo Linux的每一部分都可以在最终用户的系统上重新编译建造,甚至包括最基本的系统库和编译器自身。
Archlinux:Arch Linux是起源于加拿大的一份致力于使用简单、系统轻量、软件更新速度快的GNU/Linux发行版。主要特点为软件更新速度快和包管理简易高效。

3. 描述Linux的哲学思想,并按照自己的理解对其进行解释性描述。
a.一切皆文件;
b.由众多功能单一的程序组成:一个程序只做一件事,多个程序共同完成复杂的功能;
c.尽量避免跟用户交互;
d.配置数据存储在文本中:linux所有的配置文件都存放在文本配置文件当中,无论什么配置修改都只需修改其配置文件即可。

4. 说明Linux系统上命令的使用格式,详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述。
命令格式:command [选项] [参数];其中 选项 以 – 开始,多个选项可用一个 – 连起来;参数是指命令的作用对象,且不同的命令参数,有些命令可同时带多个参数,多个之间以空白字符分隔;
ifconfig
功能说明:显示或设置网络设备;
语法:ifconfig [网络设备][down up -allmulti -arp -promisc][add<地址>][del<地址>][<hw<网络设备类型><硬件地址>][io_addr<I/O地址>][irq<IRQ地址>][media<网络媒介类型>][mem_start<内存地址>][metric<数目>][mtu<字节>][netmask<子网掩码>][tunnel<地址>][-broadcast<地址>][-pointopoint<地址>][IP地址]
参数:
add<地址> 设置网络设备IPv6的IP地址
del<地址> 删除网络设备IPv6的IP地址
down 关闭指定的网络设备
<hw<网络设备类型><硬件地址> 设置网络设备的类型与硬件地址
io_addr<I/O地址> 设置网络设备的I/O地址
irq<IRQ地址> 设置网络设备的IRQ
media<网络媒介类型> 设置网络设备的媒介类型
mem_start<内存地址> 设置网络设备在主内存所占用的起始地址
metric<数目> 指定在计算数据包的转送次数时,所要加上的数目
mtu<字节> 设置网络设备的MTU
netmask<子网掩码> 设置网络设备的子网掩码
tunnel<地址> 建立IPv4与IPv6之间的隧道通信地址
up 启动指定的网络设备
-broadcast<地址> 将要送往指定地址的数据包当成广播数据包来处理
-pointopoint<地址> 与指定地址的网络设备建立直接连线,此模式具有保密功能
-promisc 关闭或启动指定网络设备的promiscuous模式
[IP地址] 指定网络设备的IP地址
[网络设备] 指定网络设备的名称
示例1:显示网络设备信息(已激活的)

[root@centos111 yangcheng]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:FF:86:82
inet addr:192.168.245.111 Bcast:192.168.245.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:feff:8682/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6075 errors:0 dropped:0 overruns:0 frame:0
TX packets:1861 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:607766 (593.5 KiB) TX bytes:1063649 (1.0 MiB)

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:40 errors:0 dropped:0 overruns:0 frame:0
TX packets:40 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3400 (3.3 KiB) TX bytes:3400 (3.3 KiB)

eth0表示第一块网卡,lo表示主机回环地址
示例2:启用和关闭指定网卡
~]$ ifconfig eth0 up
~]$ ifconfig eth0 down
注意:如果通过ssh登陆linux服务器操作需要谨慎,关闭了就不能开启了,除非有多个网卡。
示例3:启用和关闭arp协议
~]$ ifconfig eth0 arp #开启网卡eth0 的arp协议
~]$ ifconfig eth0 -arp #关闭网卡eth0 的arp协议
示例4:设置允许通过传输的数据最大值
~]$ ifconfig eth0 mtu 1500 #设置能通过的最大数据包大小为 1500 bytes
示例5:用ifconfig修改MAC地址
~]$ ifconfig eth0 hw ether 00:AA:BB:CC:dd:EE
示例6:给网卡配置和删除IPv6地址
~]$ ifconfig eth0 add 33ffe:3240:800:1005::2/64 #给eth0配置IPv6地址
~]$ ifconfig eth0 del 33ffe:3240:800:1005::2/64 #给eth0删除IPv6地址
示例7:配置IP地址
~]$ ifconfig eth0 192.168.245.110
~]$ ifconfig eth0 192.168.245.110 netmask 255.255.255.0
~]$ ifconfig eth0 192.168.245.110 netmask 255.255.255.0 broadcast 192.168.245.255
echo
功能说明:用来在标准输出中显示输入的字符串;
语法:echo [选项] [字符串];
[选项]:-n 不输出结尾的换行符;-e 启用反斜线转义解释;-E 禁用反斜线转义解释(默认)
注意:如果使用 -e 选项,则可以使用如下转义序列:
\a 警告(BEL)
\b 删除前一个字符
\c 最后不加上换行符号
\e 转义
\f 换行但光标仍然停留在原来的位置
\n 换行且光标移至行首
\r 光标移至行首,但不换行
\t 水平制表
\v 垂直制表
\0NNN 八进制值表示的字节NNN(1到3个数字)
\xHH 十六进制值表示的字节NNN(1到2个数字)
\\ 插入\字符
示例1:显示系统变量

[root@centos111 yangcheng]# echo $USER
yangcheng
[root@centos111 yangcheng]# echo $HOME
/root

示例2:显示用户定义的变量值

[root@centos111 yangcheng]# str='hello world'
[root@centos111 yangcheng]# echo "$str"
hello world

示例3:使用反斜线

[root@centos111 yangcheng]# echo -e "Wuhan \b is \b the \b best \b city"
Wuhan is the best city

示例4:使用制表符空格

[root@centos111 yangcheng]# echo -e "Wuhan \tis \tthe \tbest \tcity"
Wuhan is the best city

示例5:使用垂直制表符

[root@centos111 yangcheng]# echo -e "Wuhan \vis \vthe \vbest \vcity"
Wuhan
is
the
best
city

示例6:文本字符颜色或背景色输出

[root@centos111 yangcheng]# echo -e "\033[31mMade in China\033[0m"
Made in China #文字显示红色
[root@centos111 yangcheng]# echo -e "\e[1;42mGreed Background\e[0m"
Greed Background #背景会显示绿色

示例7:插入 \ 字符

[root@centos111 yangcheng]# echo "\"
\

tty
功能说明:显示终端机连接标准输入设备的文件名称;
语法:tty [-s][–help][–version];
参数说明:-s或–silent或–quiet 不显示任何信息,只回传状态代码;–help 在线帮助;–version 显示版本信息。
示例:

[root@centos111 yangcheng]# tty
/dev/pts/2
[root@centos111 yangcheng]# tty -s
[root@centos111 yangcheng]# tty --help
Usage: tty [OPTION]...
Print the file name of the terminal connected to standard input.

-s, --silent, --quiet print nothing, only return an exit status
--help display this help and exit
--version output version information and exit

Report tty bugs to bug-coreutils@gnu.org
GNU coreutils home page: &lt;http://www.gnu.org/software/coreutils/&gt;
General help using GNU software: &lt;http://www.gnu.org/gethelp/&gt;
For complete documentation, run: info coreutils 'tty invocation'
[root@centos111 yangcheng]# tty --version
tty (GNU coreutils) 8.4
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later &lt;http://gnu.org/licenses/gpl.html&gt;.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by David MacKenzie.

startx
功能说明:用来启动X Window,startx为启动X Window的script文件,实际上启动X Window的程序为xinit;
语法:startx [程序][–服务器设置];
[程序] 此处所指定的[程序]为X Window所要执行程序的配置文件;
[–服务器设置] startx预设会去读取.xerverrc中的配置,决定启动X Window的方式;
示例1:以 16 位色启动 X 服务器
startx — -depth 16
示例2:以 100 的 dpi 启动 X 服务器
startx — -dpi 100

export
功能说明:用于设置或显示环境变量
语法:export [-fnp] [变量名称]=[变量设置值]
-f  代表[变量名称]中为函数名称;
-n  删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中;
-p  列出所有的shell赋予程序的环境变量。
示例1:列出当前的环境变量值

[root@centos111 yangcheng]# export -p
declare -x CVS_RSH="ssh"
declare -x G_BROKEN_FILENAMES="1"
declare -x HISTCONTROL="ignoredups"
declare -x HISTSIZE="1000"
declare -x HOME="/root"
declare -x HOSTNAME="centos111"
declare -x LANG="en_US.UTF-8"
declare -x LESSOPEN="||/usr/bin/lesspipe.sh %s"
declare -x LOGNAME="yangcheng"
declare -x LS_COLORS="rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.tbz=01;31:*.tbz2=01;31:*.bz=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:"
declare -x MAIL="/var/spool/mail/yangcheng"
declare -x OLDPWD
declare -x PATH="/usr/local/mariadb/bin:/usr/local/mariadb/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/yangcheng/bin"
declare -x PWD="/home/yangcheng"
declare -x SELINUX_LEVEL_REQUESTED=""
declare -x SELINUX_ROLE_REQUESTED=""
declare -x SELINUX_USE_CURRENT_RANGE=""
declare -x SHELL="/bin/bash"
declare -x SHLVL="2"
declare -x SSH_ASKPASS="/usr/libexec/openssh/gnome-ssh-askpass"
declare -x SSH_CLIENT="192.168.245.1 54215 22"
declare -x SSH_CONNECTION="192.168.245.1 54215 192.168.245.111 22"
declare -x SSH_TTY="/dev/pts/2"
declare -x TERM="vt100"
declare -x USER="yangcheng"

示例2:删除指定的环境变量
先定义一个环境变量:~]$ export YANGCHENG;//已新增了一个环境变量
a.删除YANGCHENG:~]$ export -n YANGCHENG
b.查看当前的环境变量:~]$ export –p //此时列表里已经看不到YANGCHENG了
pwd
功能说明:以绝对路径的方式显示用户当前工作目录。全部目录使用/分隔,第一个/表示根目录,最后一个目录是当前目录。
语法:pwd [OPTION]…
选项:–help:显示帮助信息; –version:显示版本信息。
示例:

[root@centos111 yangcheng]# pwd
/home/yangcheng

history
功能说明:用于显示指定数目的指令命令,读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件。
注意:该命令单独使用时,仅显示历史命令,在命令行中,可以使用符号!,执行指定序号的历史命令。例如,要执行第2个历史命令,则输入!2。历史命令是被保存在内存中的,当退出或者登录shell时,会自动保存或读取。在内存中,历史命令仅能够存储1000条历史命令,该数量是由环境变量HISTSIZE进行控制。
语法:history [选项] [参数]
选项:-c:清空当前历史命令;-a:将历史命令缓冲区中命令写入历史命令文件中;-r:将历史命令文件中的命令读入当前历史命令缓冲区;-w:将当前历史命令缓冲区命令写入历史命令文件中。
参数:n:打印最近的n条历史命令。
示例:

[root@centos111 yangcheng]# history 5
1012 tty --help
1013 tty --version
1014 export -p
1015 pwd
1016 history 5

shutdown
功能说明:用来系统关机命令
语法:shutdown [选项] [参数]
选项:
-c:当执行“shutdown -h 11:50”指令时,只要按+键就可以中断关机的指令;
-f:重新启动时不执行fsck;
-F:重新启动时执行fsck;
-h:将系统关机;
-k:只是送出信息给所有用户,但不会实际关机;
-n:不调用init程序进行关机,而由shutdown自己进行;
-r:shutdown之后重新启动;
-t<秒数>:送出警告信息和删除信息之间要延迟多少秒。
参数:[时间]:设置多久时间后执行shutdown指令; [警告信息]:要传送给所有登入用户的信息。
示例1:现在立刻关机
shutdown -h now
示例2:指定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
reboot
功能说明:用来重新启动正在运行的Linux操作系统
语法:reboot [选项]
选项:
-d:重新开机时不把数据写入记录文件/var/tmp/wtmp,该参数具有“-n”参数效果;
-f:强制重新开机,不调用shutdown指令的功能;
-i:在重开机之前,先关闭所有网络界面;
-n:重开机之前不检查是否有未结束的程序;
-w:仅做测试,并不真正将系统重新开机,只会把重开机的数据写入/var/log目录下的wtmp记录文件。
示例1:立即重启系统:~]$ reboot
示例2:模拟重启系统:~]$ reboot –w

[root@centos111 yangcheng]# reboot -w

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

[root@centos111 yangcheng]# hwclock --systohc
[root@centos111 yangcheng]# hwclock --systohc --utc

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

[root@centos111 yangcheng]# hwclock
Sat 22 Jul 2017 10:07:24 PM CST -1.036759 seconds

date
功能说明:是显示或设置系统时间与日期
语法:date [选项] [参数]
选项:
-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;
-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;
-u:显示GMT;
–help:在线帮助;
–version:显示版本信息。
参数:<+时间日期格式>:指定显示时使用的日期时间格式。
示例1:格式化输出

[root@centos111 yangcheng]# date +"%Y-%m-%d"
2017-07-22

示例2:输出昨天的日期

[root@centos111 yangcheng]# date -d "1 day ago" +"%Y-%m-%d"
2017-07-21

示例3:输出5秒后的日期时间

[root@centos111 yangcheng]# date -d "5 second" +"%Y-%m-%d %H:%M.%S"
2017-07-22 22:11.04

5. 如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分的。
Linux系统上获取命令的帮助信息方式有:
a. help Command,适用于内部命令,如:

[root@centos111 yangcheng]# type cd
cd is a shell builtin

b. Command –help/-h,适用于外部命令,如:

[root@centos111 yangcheng]# ll --help
Usage: ls [OPTION]... [FILE]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort.

Mandatory arguments to long options are mandatory for short options too.
-a, --all do not ignore entries starting with .
-A, --almost-all do not list implied . and ..
--author with -l, print the author of each file
-b, --escape print octal escapes for nongraphic characters
--block-size=SIZE use SIZE-byte blocks. See SIZE format below
-B, --ignore-backups do not list implied entries ending with ~
-c with -lt: sort by, and show, ctime (time of last
modification of file status information)
with -l: show ctime and sort by name
otherwise: sort by ctime

c. man Command,使用手册,如:man cd;
d. info Command,获取命令的在线文档;
e. 很多应用程序会自带帮助文档:/usr/share/doc/APP-VERSION
README:程序的相关的信息;
INSTALL:安装帮助;
CHANGES:版本迭代时的改动信息。
另外还有下面三种方式获取命令帮助信息:
f. 主流发行版官方文档,如:http://www.redhat/com/doc
g. 程序官方的文档,一般官方站点上有“Document”;
h. 利用搜索引擎Google。
man文档章节划分:
a. 用户命令;
b. 系统调用;
c. 库函数调用;
d. 设备文件及特殊文件;
e. 文件格式;(配置文件格式)
f. 游戏使用帮助;
g. 杂项;
h. 管理工具及守护进行。
比如:想查看库函数sleep手册,则命令为:man 3 sleep

6. 请罗列Linux发行版的基础目录名称命名法则及功用规定。
命名法则:
a. 文件名名称严格区分字符大小写;
b. 文件名可以使用除 / 以外任意字符;
c. 文件名长度不能超过255字符;
d. 以*开头的文件为隐藏文件;
功用规定:
/bin集中存放一些必要的命令工具,最好不要单独挂载,否则会找不到那些所需的实用程序
/boot包含Linux的启动文件及其内核
/dev集中存放各类设备驱动程序,该分区不要单独挂载
/etc集中存放一些基本的配置文件
/home集中存放用户的主目录
/lib内核和实用程序的编译库文件,该分区不要单独挂载
/proc集中存放当前内核相关进程及其内核配置信息服务
/usr集中存放一些对所有用户可用的小程序,包含许多系统管理命令和实用程序
/var集中存放可变数据,如日志和打印机缓冲文件等等
/mnt老的用于移动介质的挂载点
/misc使用automounter挂载本地目录的标准挂载点
/net使用automounter挂载网路目录的标准挂载点
/smb使用automounter挂载远程共享Microsoft网络目录的标准挂载点
/media可移动介质的挂载点
/sbin集中存放一些系统管理命令,该分区不要单独挂载
/selinux与安全升级Linux相关的当前配置
/tmp集中存放临时文件,默认情况下,RedHat会自动周期性地清空该目录

原创文章,作者:iConan,如若转载,请注明出处:https://www.aspyc.com/archives/151.html

发表评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据