Linux基础 & bash基础特性

Q1:描述计算机的组成及其功能。

计算机的组成:运算器、控制器、存储设备、输入设备、输出设备。

  • 运算器:

运算器是计算机中执行各种算术和逻辑运算操作的部件。运算器的基本操作包括加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、比较和传送等操作,亦称算术逻辑部件。

  • 存储设备:

计算机总是需要记录与读取数据的,而这些数据当然不可能每次都由用户经过键盘来打字。所以就需要有存储设备。计算机系统上面的存储设备包括硬盘、软盘、U盘等,乃至大型机器的局域网存储设备(SAN,NAS)等,都可以用来存储数据。而其中的最常见的就是硬盘。存储设备是用于储存信息的设备,通常是将信息数字化后再以利用电、磁或光学等方式的媒体加以存储。

  • 输入设备:

向计算机输入数据和信息的设备。是计算机与用户或其他设备通信的桥梁。输入设备是用户和计算机系统之间进行信息交换的主要装置之一。键盘,鼠标,摄像头,扫描仪,光笔,手写输入板,游戏杆,语音输入装置等都属于输入设备。输入设备(InputDevice)是人或外部与计算机进行交互的一种装置,用于把原始数据和处理这些数的程序输入到计算机中。计算机能够接收各种各样的数据,既可以是数值型的数据,也可以是各种非数值型的数据,如图形、图像、声音等都可以通过不同类型的输入设备输入到计算机中,进行存储、处理和输出。

  • 输出设备:

输出设备是计算机硬件系统的终端设备,用于接收计算机数据的输出显示、打印、声音、控制外围设备操作等。也是把各种计算结果数据或信息以数字、字符、图像、声音等形式表现出来。常见的输出设备有显示器、打印机、绘图仪、影像输出系统、语音输出系统、磁记录设备等。

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

Linux发行版可以大体分为两类:一类是商业公司维护的发行版,另一类是社区组织维护的发行版。Redhat是商业公司维护的代表,Debian是社区组织维护的代表。

Redhat系列目前有三个重要分支:RHEL、Fedora以及CentOS。RHEL的全称是Redhat Enterprise Linux,中文名为红帽企业版,是一种服务器发行版,它的稳定性非常好,但需要收费;Fedora主要面向桌面发行版,它的内核与应用软件更新非常快,适合于Linux发烧友使用;CentOS是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Red Hat Enterprise Linux使用。两者的不同,在于CentOS并不包含封闭源代码软件,CentOS 是一个基于Red Hat Linux 提供的可自由使用源代码的企业级Linux发行版本。每个版本的 CentOS都会获得十年的支持(通过安全更新方式)。新版本的 CentOS 大约每两年发行一次,而每个版本的 CentOS 会定期(大概每六个月)更新一次,以便支持新的硬件。这样,建立一个安全、低维护、稳定、高预测性、高重复性的 Linux 环境。CentOS 是RHEL(Red Hat Enterprise Linux)源代码再编译的产物,而且在RHEL的基础上修正了不少已知的 Bug ,相对于其他 Linux 发行版,其稳定性值得信赖。在稳定性方面,RHEL和CentOS的稳定性非常好,适合于服务器使用;Fedora由于软件更新快,其稳定性较差,最好只用于桌面应用。

Debian,或者称Debian系列,包括Debian和Ubuntu等。Debian是社区类Linux的典范,是迄今为止最遵循GNU规范的Linux系统。Debian最早由Ian Murdock于1993年创建,分为三个版本分支: 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发行版本。

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

Linux的哲学思想:

  • 1、一切皆文件;

  • 2、由众多功能单一的程序组成,一个程序只做一件事,并且做好,组合小程序完成复杂任务;

  • 3、尽量避免跟用户交互;

  • 4、使用文本文件保存配置信息。

自己的理解:

  • 一切皆文件:把几乎所有的资源统统抽象为文件格式,比如通信借口、硬件设备也通过文件表示,便于统一管理。目前我对于统一管理的认识就是,抽象成文件以后,可以对文件设置属主、属组,这样就能对于登录到当前Linux系统中的用户,设置他们能够对文件读、写、执行等权限。

  • 对于由众多功能单一的程序组成,一个程序只做一件事,一个小程序做一件事,这样将复杂任务拆解成一个一个的小程序,这样能够使得Linux运行更加地高效。

  • 尽量避免跟用户交互:易于以编程的方式实现自动化任务,可以通过脚本编程的方式实现大量服务器的自动化运维,这样可以提高效率,减少错误。

  • 使用文本文件保存配置信息:Linux所有的配置文件都存放在文本配置文件当中(例:/etc/下的文件),无论什么配置修改都只需修改其配置文件即可,配置文件时文本形式的只需任意一款文本编辑器修改即可。这种保存形式便于Linux进行管理。

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

1、命令的语法通用格式:

~]# COMMAND OPTIONS ARGUMENTS
~]# 命令 + 选项 +参数

COMMAND:发起一命令,请求内核将某个二进制程序运行为一个进程;命令本身是一个可执行的程序文件。

OPTIONS:指定命令的运行特性。

ARGUMENTS:命令的作用对象;命令对什么生效;

2、详细介绍部分命令的使用:

  • ifconfig:

ifconfig查看和配置网络接口IP、子网掩码、网关等信息;

命令格式:

ifconfig [网络设备] [参数]

示例:

[root@promote ~]# ifconfig
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.107  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::20c:29ff:fe71:bc51  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:71:bc:51  txqueuelen 1000  (Ethernet)
        RX packets 4723  bytes 431081 (420.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1059  bytes 106786 (104.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 4  bytes 340 (340.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4  bytes 340 (340.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  • echo:

echo回显,命令的功能是在显示器上显示一段文字;

命令格式:

echo [SHORT-OPTION]... [STRING]...

-n:不自动进行换行操作

[root@promote ~]# echo -n 'hello world'
hello world[root@promote ~]#

-e:让转移符生效

[root@promote ~]# echo 'hello \nworld'
hello \nworld
[root@promote ~]# echo -e 'hello \nworld'
hello 
world

\n:表示换行

STRING可以使用引号,单引号和双引号均可用;

单引号:强引用,变量引用不执行替换;

双引号:弱引用,变量引用会被替换;

[root@promote ~]# echo '$SHELL'
$SHELL
[root@promote ~]# echo "$SHELL"
/bin/bash
  • tty:

tty查看当前的终端设备;

命令格式:

tty [OPTION]...

示例:

[root@promote ~]# tty
/dev/pts/3
  • startx:

startx用于打开图形化界面

命令格式:startx

示例:

[root@promote ~]# startx &
  • export:

export设置或显示环境变量;

示例:

[root@promote ~]# export $PATH
-bash: export: `/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin': 不是有效的标识符
  • pwd:

pwd查看当前“工作目录”的完整路径;

命令格式:

pwd [OPTION]...

示例:

[root@promote radio]# pwd
/home/radio
  • history:

history显示命令历史

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

命令格式:

history [选项] [参数]

参数:

-c:清空命令历史(清空内存中的内容)

-d offset [n]:根据offset偏移量来删除指定条目,如果添加[n],表示从指定位置开始删除n个

-a:从内存到文件

-r:从文件读取命令历史至列表中 #如果history -c清空后,直接history -r,再history,可以读取文件中的内容

-w:保存到文件中

n:显示最近的n条命令

示例:

[root@promote radio]# history 10
396  man export
397  man pwd
398  cd /home
399  ls
400  cd radio/
401  pwd
402  man history
403  clear
404  history 
405  history 10

调用命令历史列表中的命令:

!#:再一次调用历史列表中的第#条命令;

!!:再一次执行上一条命令;

!STRING:再一次执行命令历史列表中最近一个STRING开头的命令;

  • shutdown:

shutdown关机或重启命令;

命令格式:

shutdown [OPTIONS...] [TIME] [WALL...]

参数:

-h:halt将系统的服务停掉后,立即关机

-r:reboot在将系统的服务停掉之后就重新启动

-c:cancel取消已经在进行的shutdown进程

-n:不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自行关机

-k:不要真的关机,只是发送警告信息出去

示例:

[root@promote radio]# shutdown +8888
Shutdown scheduled for 五 2016-11-04 01:27:45 CST, use 'shutdown -c' to cancel.
[root@promote radio]# shutdown -c
Broadcast message from root@promote.cache-dns.local (Fri 2016-10-28 21:19:55 CST):
The system shutdown has been cancelled at Fri 2016-10-28 21:20:55 CST!
  • poweroff:

poweroff关闭计算机操作系统并且切断系统电源;

  • reboot:

reboot进行重启;

命令格式:

reboot [options]

选项:

-n:重启之前保留当前数据;

-f:强制重启计算机;

-w:模拟重启,并将数据写入到”/var/log/wtmp”日志文件中;

-d:重启,但不写入日志;

-i:重启计算机前关闭网络;

  • hwclock:

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

命令格式:

hwclock [function] [option...]

参数:

-s,–hctosys:以硬件时钟为准,把系统调整为与硬件时间相同;

-w,–systohc:以系统时钟为准,把硬件时间调整为与系统时钟相同;

示例:

[root@promote radio]# hwclock -w
[root@promote radio]# hwclock
2016年10月28日 星期五 21时50分47秒  -0.384467 秒
  • date:

date显示日期的命令;

命令格式:

date [OPTION]... [+FORMAT]

参数:

%F:完整日期格式;

%H:显示小时;

%M:显示分钟;

%r:时间显示,含时分秒上下午;

%s:总秒数,自1970-01-01 00:00:00 UTC;

%T:时间,含时分秒,24小时制显示;

示例:

[root@promote ~]# date
2016年 10月 28日 星期五 21:56:03 CST
[root@promote ~]# date +%F
2016-10-28
[root@promote ~]# date +%Y-%m-%d
2016-10-28
[root@promote ~]# date +%H:%M:%S
21:58:51
[root@promote ~]# date +%F%H:%M:%S
2016-10-2821:59:25
[root@promote ~]# date +%r
下午 10时08分44秒
[root@promote ~]# date +%s
1477663845
[root@promote ~]# date +%T
22:11:22

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

获取命令的使用帮助,可先使用type确定这个命令是内部命令还是外部命令,以便对应操作:

  • 内部命令:

1、help

help COMMAND

help命令用于显示shell内部的帮助信息。help命令只能显示shell内部的命令帮助信息。

  • 外部命令:

1、info

~]# info [OPTION]... [MENU-ITEM...]

info指令是man指令的详细内容。但man使用起来要方便的多。一个man只有一页,而info总是将它们的内容组织成多个区段(节点),每个区段也可能包含子区段(子节点)。info工具可显示更完整的最新的GNU工具信息。通常man中若包含的信息概要在info中也有时,会有提示:“请参考info页更详细内容”。

2、使用手册:manual

手册位置:/usr/share/man

~]# man COMMAND

man命令,通过man指令可以查看Linux中的指令帮助、配置文件帮助和编程帮助等信息。man是在程序安装的时候安装的帮助文档,可以在系统的目录下找到,如果软件有配套的页面,就可以使用man来查找。比如通过指令:ls /user/share/man可以看到很多man帮助文档的存储,从中看到有很多个man#文件,Linux的一些man指令文档就存在于这些文件内。一个程序的man帮助文档可能存在多个man中,比如我们用指令:whatis COMMAND,查看到COMMAND的多个信息。

  • man文档章节划分:

man(1):用户在shell环境中可以操作的命令或可执行文件;

man(2):系统内核可调用的函数或工具等;

man(3):一些常用的函数与函数库,大部分为C的函数库;

man(4):设备文件的说明,通常在/dev下的文件;

man(5):配置文件或者是某些文件的格式;

man(6):游戏;

man(7):惯例与协议等;

man(8):系统管理员可用的管理命令;

man(9):与kernel相关的文件;

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

/:根目录,是整个系统最重要的一个目录,所有的目录都是由根目录衍生出来的;

/bin:放置的是在单用户维护模式下还能够被操作的命令;

/boot:放置开机会使用到的文件;

/dev:在Linux系统上,任何设备与接口设备都是以文件的形式存在于这个目录中;

/etc:系统主要的配置文件;

/home:系统默认的用户主文件夹;

/lib:开机时会调用的函数库;

/media:放置的可以删除的设备,包括软盘、光盘、DVD等都暂时挂载在此;

/mnt:挂载一些额外的设备;

/opt:放置第三方软件;

/root:系统管理员的主文件夹;

/sbin:开机过程中所需要设置系统环境的,包含了开机、修复、还原系统所需要的命令;

/srv:一些网络服务启动之后,所需要取用的数据目录;

/tmp:一般用户或者正在执行程序暂时放置文件的地方;

/proc:目录本身就是一个虚拟文件系统,放置的数据都是内存当中的,该目录本身不占任何硬盘空间;

/sys:一个虚拟文件系统,主要记录与内核相关的信息,同样不占硬盘容量;

/usr:放置的数据属于可分享的与不可变动的,所有系统默认的软件都会放在该目录下;

/usr/bin/:绝大部分的用户可使用命令都放在这里;

/usr/include/:C和C++等程序语言的头文件与包含文件放置处;

/usr/lib/:包含各应用软件的函数库、目标文件,以及不被一般用户惯用的执行文件或脚本;

/usr/local/:系统管理员在本机自行安装自己下载的软件;

/usr/sbin/:非系统正常运行所需要的系统命令;

/usr/share/:放置共享文件;

/usr/src/:放置源码;

/var:主要针对常态性变动的文件;

/var/cache/:应用程序本身运行过程中产生的一些暂存文件;

/var/lib/:程序本身运行过程中,需要使用到的数据文件放置的目录;

/var/lock/:某些设备或者文件资源一次只能被一个应用程序所使用,为了不被两个设备同时使用,因此就要上锁,以确保被单一使用;

/var/log/:登录文件放置的目录;

/var/mail/:放置个人电子邮件信箱的目录;

/var/run/:某些程序启动以后,会将它们的UID放置在这个目录下;

/var/spool/:放置一些队列数据,通常使用后会被删除;

原创文章,作者:N24_VC,如若转载,请注明出处:http://www.178linux.com/56020

(0)
N24_VCN24_VC
上一篇 2016-10-30
下一篇 2016-10-30

相关推荐

  • Linux下文件权限管理轻微总结

    Linux下文件权限管理轻微总结       此文对linux下文件的权限及其如何管理权限进行介绍,涉及到读“r”写“w”执行“x”三个权限,特殊权限SUID、SGID、STICKY、ACL、attr的使用。同时对更改文件的指令chmod、getfacl、setfacl、chattr、lsattr等进行说明。  &nb…

    Linux干货 2016-11-07
  • redis

    redis 简述 redis的数据结构 redis的数据持久化实现 程序与配置文件 redis-cli命令 主从复制原理与架构实现 redis的高可用方案 – sentinel redis分布式系统概述与简介 简述 什么是redis? redis是一个基于nosql技术的kv数据库,支持非常大的并发场景,与memcached不同的是,redis拥…

    Linux干货 2016-08-19
  • linux系统上命令使用格式及常见命令

    [root@localhost ~]# date -d ‘2017-07-06 00:00:00 ‘  用上面这条指令讲解命令使用格式 date command  -d 是参数,参数有可选参数,必选参数,在参数前必选加上- ,还是以这条指令为列,-d可以写成–date,如果写成date,date前面必选…

    Linux干货 2017-08-19
  • 网络基础

    网络小白一个,针对网络的基础知识无从下手,因此本文引用了鸟哥私房菜中的众多概念性知识,在此谢过,本文主要从OSI七层协议,TCP协议和一些网络中专业词汇进行解析,并通过子网掩码的划分,网络接口的配置、路由配置等实例来加深对网络的理解。 一、OSI七层协议:     OSI七层协议的由来:   由于网络链接过程…

    Linux干货 2016-09-07
  • N22-第八章作业

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。       网桥:网桥是工作在数据链路层的设备。用于将两个LAN连接在一起并按照Mac地址转发数据。网桥保存着所有与它相连的主机的Mac地址表和端口号并具有学习功能。当网桥收到某个数据包后,能根据目的主机的Mac地址再选择从哪个端…

    Linux干货 2016-10-24
  • awk基本用法

    一、awk介绍     awk、sed&grep都可以匹配文本,但sed和awk可以对文本进行编辑,grep则不具有此功能;sed是非交互式的流编辑器,而awk则是一门模式匹配的编程语言。awk主要用于处理匹配的文本,同时awk还支持编程语言的一些特性,如变量、函数、循环语句等。  &nbs…

    Linux干货 2016-09-21

评论列表(1条)

  • 马哥教育
    马哥教育 2016-11-02 16:28

    赞!格式排版都很不错,作者有心了,以后拿出来就可以直接当参考文档,加油加油~