一. 计算机基础部分
1.1计算机的组成部分:硬件系统(Hardware)和软件系统(Software)两大部分组成;
运算器(ALU)
中央处理器 CPU
控制器(cu)
主机
ROM(只读存储器)
内部存储器
硬件系统 RAM(随机存储器)
计 外部存储器————硬盘;光盘;软盘;磁带
输出设备———显示器;打印机;绘图仪
算 外部设备
输入设备——————键盘;鼠标;扫描仪
其他设备——————调制解调器
机
系统软件
系 数据库管理软件
操作系统 程序语言处理系统
统 服务程序——检查;诊断;调试程序
软件系统
通用应用软件——office等
应用软件
专用软件————用户程序
1.2计算机硬件
计算机(Compute):俗称电脑,是一种能接受和存储信息,并按照存储在其内部的程序对海量数据进行自动;高速的处理,然后把处理结果输出的现代化智能电子设备。
发展历史:
第一代计算机(1946-1957) 电子管时代
第二代计算机(1958-1964) 晶体管时代
第三代计算机(1965-1970) 集成电路时代
第四代计算机(1971以后) 大规模集成电路时代
1946年,世界上第一台计算机ENIAC(electronic numerical integrator and calculator)在美国宾州大学诞生,是美国奥伯丁武器场为了满足计算机弹道需要而研制成的。使用了17468只电子管,占地170平方米,重达30吨,耗电174千瓦时,耗资40多万美元。每秒可以进行5000次加减运算。
1.3计算机硬件组成部分
冯·诺依曼体系:1946年数学家冯·诺依曼提出运算器;控制器;存储器;输入设备;输出设备。
如图:
1.4摩尔定律:由Inter公司的创始人之一戈登·摩尔于1965年提出当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍;性能也将提升一倍。
1.5服务器的分类
巨型机:例如天河一号;太湖神威等
大型机:IBM z13 mainframe
计算机按规模划分
小型机:
微型机
A.巨型计算机:应用于国防尖端技术和现代科学计算中。巨型机的运算速度可达每秒百万亿次以上,“天河一号”为我国首台千万亿次超级计算机。
B.大型计算机:具有较高的运算速度,每秒可以执行几千万条指令,而且有较大的存储空间。往往用于科学计算、数据处理或作为网络服务器使用,如:IBM z13 mainframe。
C.小型计算机:规模较小、结构简单、运行环境要求较低,一般应用于工业自动控制、测量仪器、医疗设备中的数据采集等方面。
D.微型计算机:中央处理器(CPU)采用微处理器芯片,体积小巧轻便,广泛用于商业、服务业、工厂的自动控制、办公自动化以及大众化的信息处理。
1.6服务器介绍
服务器(server):是计算机的一种,是网络中卫客户端计算机提供各种服务的高性能的计算机,服务器在网络操作系统的控制下,将与其相连的硬盘;磁带;打印机及昂贵的专用通讯设备提供给网络上的客户站点共享,也能为网络用户提供集中计算;信息发布及数据管理等服务。
Web服务器
数据库服务器
邮件服务器
文件服务器
中间件应用服务器
日志服务器
服务器按功能分类 监控服务器
程序版本控制服务器
虚拟机服务器
打印机服务器
域控制服务器
多媒体服务器
通讯服务器
ERP服务器
a.早期的服务器形式
b.外形以及结构和平时使用的立式PC差不多
塔式服务器 c.机箱空间大,主板扩展性较强,插槽较多预留了足够的内部空间以便日后进行硬盘和电源的冗余扩展。 设计一般都考虑降噪
d.目前较少使用。
a.按照统一标准设计,配合机柜统一使用便于统计管理,高密度,节省空间
b.机架服务器的宽度为19英寸(48.26cm),高度以U为单位,如42U1U=1.75
服务器按外形分类 机架式Rack服务器 英寸=44.45毫米,通常有1U,2U,3U,4U,5U,7U几种标准的服务器。机柜的尺寸也是采用通用的工业标准
c.现阶段销售数量最多的服务器
d.机箱尺寸比较小巧
e.在机柜中可以同时放置多台服务器
a.在标准高度的机架式机箱内可插装多个卡式的服务器单元,实现高可用和高密度。
刀片式服务器 b.更高的密度,集中管理,高性能,灵活扩展,按需配置。
c.可以使用系统软件将这些母板集合成一个服务器集群。在集群模式下,所有的母板可以连接起来提供高速的网络环境,并同时共享资源,为相同的用户群服务。
1.7服务器硬件----CPU:
CPU是(CentralProcessing Unit)的缩写,即中央处理器。由控制器和运算器构成,是整个计算机系统中最重要的部分
1.7.1.生成服务器CPU的公司:Intrl(Xeon至强;Itanium 安腾);AMD(Althlon MP);IBM(Power)
1.7.2.CPU的主要参数:
主频: 主频是CPU的时钟频率(CPUClock Speed),是CPU运算时的工作的频率(1秒内发生的同步脉冲数)的简称。单位是Hz。一般说来,主频越高,CPU的速度越快,由于内部结构不同,并非所有的时钟频率相同的CPU的性能都一样。
外频:系统总线的工作频率,CPU与外部(主板芯片组)交换数据、指令的工作时钟频率。
倍频:倍频则是指CPU外频与主频相差的倍数。
三者关系是:主频=外频x倍频
高速缓存(cache):高速交换的存储器。CPU缓存分为一级,二级,三级缓存,即L1,L2,L3
前端总线:内存总线速度(Memory-BusSpeed):一般等同于CPU的外频,指CPU与二级(L2)高速缓存和内存之间的通信速度。
地址总线宽度:决定了CPU可以访问的物理地址空间。
X86
X64(CISC)
ARM(Acorn RISCMachine)
M6800,m68k(moto)
CPU类型 Power(IBM)
Powerpc(apple;IBM;MOTO)
Ultrasparc(SUN)
Alpha(HP)
安腾(compaq)
1.7.3服务器的分类
a. 非x86服务器:使用RISC(精简指令集)或EPIC(并行指令代码)处理器,并且主要采用UNIX和其他专用操作系统的服务器,指令相对简单,它只要求硬件执行很有限且最常用的那部分执令,CPU主要有Compaq的Alpha,HP的PA-RISC;IBM的Power PC;MIPS的MIPS和SUN的Sparc;Inetr研发的EPIC安腾处理器等。这种服务器价格昂贵,体系封闭,但是稳定性好,性
A.按CPU体系架构区分 能强,主要用在金融,电信等大型企业的核心系统。
b. X86服务器:又称为CISC(复杂指令集)架构服务器,即通常讲的PC服务器,它基于PC体系结构,使用Inter或其他兼容x86指令集的处理器的服务器。目前主要为Inter的Xeon E3;E5;E7系列,价格相对便宜;兼容性好;稳定性差;安全性不算太高
a.4路及4路以上服务器(企业级服务器)
B.按CPU个数来分 b. 2路服务器(部门级服务器)
c. 1路服务器(入门级服务器)
1.7.4内存:介于CPU和外部存储之间,是CPU对外部存储中程序与数据进行高速运算时存放程序指令;数据和中间结果的临时场所,它的物理实质就是一组具备数据输入输入输出和数据存储功能的高速集成电路。
a.内存是CPU能直接寻址的存储空间,由半导体器件制成。内存的特点是存取速度快。
b.计算机中运行的所有程序的运行的,因此内存的性能对计算机的影响非常大。
内存断电后数据丢失
c.内存和外存的区别
外存断电后数据可以保存。
1.7.5内存:
A.容量:即该内存的存储容量,单位一般为“MB”或“GB”。
B. 内存带宽:内存带宽是指内存与北桥芯片之间的数据传输率。
C. 单通道内存节制器一般都是64-bit的,8个二进制位相当于1个字节,换算成字节是64/8=8,再乘以内存的运行频率,如果是DDR内存就要再乘以2。
D.计算公式:内存带宽=内存总线频率×数据总线位数/8
示例:DDR内存带宽计算
DDR2667,运行频率为333MHz,
带宽为333×2×64/8=5400MB/s=5.4GB/s
DDR2800,运行频率为400MHz,
带宽为400×2×64/8=6400MB/s=6.4GB/s
1.7.6服务器常用的内存技术:
A. 在线备用内存技术 :当住内存或扩展内存中的内存出现多位错误
时或者出现物理内存故障时,服务器仍继续运行;由备用内存接替出现故障的内存工作;备用内存区域必须比其他区域的内存容量要打或相同。
B.内存镜像技术:镜像为系统在出现多位错或内存物理故障时提供数据保护功能,以保证系统仍能正常运行;数据同时写入两个镜像的内存区域;从一个区域进行数据的读取。
1.8服务器硬盘:
1.8.1硬盘的机构:
盘片(Media): 盘片的基板是金属或玻璃材质制成,为达到高密度高稳定的质量,基板要求表面光滑平整,不可有任何暇疵
读写头(Read Write Head): 磁头是硬盘读取数据的关键部件,它的主要作用就是将存储在硬盘盘片上的磁信息转化为电信号向外传输.
马达(Spindle Motor& Voice Coil Moto): 马达上装有一至多片盘片,以7200,10000,15000 RPM等定速旋转,为保持其平衡不可抖动,所以其质量要求严谨,不产生高温躁音。
1.8.2硬盘的基本参数:
a.容量: 容量是硬盘最主要的参数。单位有MB、GB、TB
b.转速:转速是指硬盘盘片每分钟转动的圈数,单位为rpm。现在硬盘的转速已经达到10000rpm,15000rpm
c.缓存: 硬盘缓存的目的是为了解决系统前后级读写速度不匹配的问题,以提高硬盘的读写速度
d.传输速率:(DataTransfer Rate) 。硬盘的数据传输率是指硬盘读写数据的速度,单位为兆字节每秒(MB/s)
1.8.3硬盘的接口类型:IDE: 硬盘接口规范,采用ATA技术规范
SCSI: 应用于小型机上的高速数据传输技术
SATA(Serial ATA): 提高传输速率,支持热插拔
SAS(Serial Attached SCSI)兼容SATA
目前主流的硬盘接口为SATA和SAS接口
1.8.4硬盘的主要参数:
尺寸:3.2;2.5;1.8寸
容量:500G;1T;2T;3T;4T;6T
转速:7200/10K/15K
缓存:8M;16M;32M
接口速度:3G/6G
是否支持热插拔
平均无故障时间(MTBF)
1.8.5 SATA硬盘:
容量:转速:5400转,7200转
缓存:8M,16M,32M
SAS硬盘:
容量:146GB,300GB,500GB,1T,2T…
转速:10000转,15000转
缓存:16M,32M,64M
1.8.6服务器的性能短板:
如果CPU有每秒处理1000个服务请求的能力,各种总线的负载能力能达到500个,但网卡只能接受200个请求,而硬盘只能负担150个的话,那这台服务器得处理能力只能是150个请求/秒,有85%的处理器计算能力浪费了。
1.8.7 SSD硬盘:
SSD(Solid State Disk)泛指使用NAND Flash组成的固态硬盘。其特别之处在于没有机械结构,以区块写入和抹除的方式作读写的功能,因此在读写的效率上,非常依赖读写技术上的设计SSD读写存取速度快,性能稳定,防震性高,发热低,耐低温,电耗低,无噪音。因为没有机械部分,所以长时间使用也出现故障几率也较小。缺点:价格高,容量小,在普通硬盘前毫无性价比优势。
1.9阵列卡
Raid卡:用来实现RAID的建立和重建,检测和修复多位错误,错误磁盘自动检测等功能。RAID芯片使CPU的资源得以释放。
阵列卡(RAID卡)的作用:
a. 阵列卡把若干硬盘驱动器按照一定要求组成一个整体、由阵列控制器管理的系统。
. b. 阵列卡用来提高磁盘子系统的性能及可靠性
1.10电源和风扇
a.支持服务器的电力负载
b.支持冗余,防止电源故障
c.故障预警和防止
d.故障之前的预防性维护
e.保证服务器持续运行
f.电源子系统包括
h.智能电源和风扇
i.冗余电源和风扇
1.11热插拔技术
a.称为热交换技术(Hot Swap),允许在不关机的状态下更换故障热插拔设备。
b.常见的热插拔设备:硬盘,电源,PCI设备,风扇等
c.热插拔硬盘技术与RAID技术配合起来,可以使服务器在不关机的状态下恢复故障硬盘上的数据,同时并不影响网络用户对数据的使用
1.12机架式服务器-服务器放置在机柜中
通常使用的机柜是42U机柜(高度约2米); 机架及其配件:KVM Keyboard Video
Mouse;和PDU Power Distribution Unit。
1.13存储网络
DAS-----直接连接存储(Direct AttachedStorage)
NAS-----网络连接存储(Network AttachedStorage)
SAN-----存储区域网络(Storage AreaNetworks)
1.13.1DAS:直接存储(Direct AttachedStorage)。存储设备与主机的紧密相连
a.管理成本较低,实施简单
b.储时直接依附在服务器上,因此存储共享受到限制
c.CPU必须同时完成磁盘存取和应用运行的双重任务,所以不利于CPU的指令周期的优化,增加系统负担
1.13.2NAS:网络连接存储(Network AttachedStorage):
通过局域网在多个文件服务器之间实现了互联,基于文件的协议(NFS、SMB/CIFS ),实现文件共享
a.集中管理数据,从而释放带宽、提高性能
b.可提供跨平台文件共享功能
c.可靠性较差,适用于局域网或较小的网络
1.13.3SAN:存储区域网络(Storage AreaNetworks,SAN)
利用高速的光纤网络链接服务器与存储设备,基于SCSI,IP,ATM等多种高级协议,实现存储共享
a.服务器跟储存装置两者各司其职
b.利用光纤信道来传输数据﹐以达到一个服务器与储存装置之间多对多的高效能、高稳定度的存储环境
c.实施复杂,管理成本高
1.13.4三种网络形态对比:
二操作系统
2.1OS: Operating System,通用目的的软件程序
硬件驱动
进程管理
内存管理
网络管理
安全管理
文件管理
2.2OS分类:
服务器OS:RHEL,CentOS,WindowsServer,AIX
桌面OS:Windows 10,Windows 7,Mac OS,Fedora
移动设备OS:Andriod,IOS,YunOS
2.3开发接口标准
ABI: Application Binary Interface
ABI描述了应用程序与OS之间的底层接口,允许编译好的目标代码在使用兼容ABI的系统中无需改动就能运行。
API:Application Programming Interface
API定义了源代码和库之间的接口,因此同样的源代码可以在支持这个API的任何系统中编译。
POSIX: Portable Operating System Interface
IEEE在操作系统上定义的一系列API标准
POSIX兼容的程序可在其它POSIX操作系统编译执行
运行程序格式: Windows:EXE, .dll(dynamic link library),.lib
Linux:ELF, .so(shared object), .a
2.4Libraryfunction(库函数)和system call(系统调用)
2.5用户和内核空间
2.6用户空间:User space
a.用户程序的运行空间。为了安全,它们是隔离的,即使用户的程序崩溃了,内核也不受影响
b.只能执行简单的运算,不能直接调用系统资源,必须通过系统接口(system call),才能向内核发出指令
2.7内核空间:Kernel space 是Linux 内核的运行空间;可以执行任意命令,调用系统的一切资源
示例:
str=“www.magedu.com" // 用户空间
x= x + 100 // 用户空间
file.write(str) // 切换到内核空间
y= x + 200 // 切换回用户空间
第一行和第二行都是简单的赋值运算,在User space 执行。第三行需要写入文件,就要切换到Kernel space,因为用户不能直接写文件,必须通过内核安排。第四行又是赋值运算,就切换回User space
2.8编程语言
2.8.1低级语言: 机器语言:0和1;汇编语言:和机器语言一一对应,与硬件相关的特有代码、驱动程序开发
2.8.2中级语言:C系统级应用、驱动程序
2.8.3高级语言:java,Objective-C,C#,python,php,go应用级程序开发
2.9服务器三大操作系统
Windows:
Linux:GNU/Linux
Unix:1969年Ken Thompson
System:Bell Lab
AIX(IBM)
Solaris(SUN)
HP-UX(HP)
BSD:(BSRG)Berkeley System Distribution
NetBSD
OpenBSD
FreeBSD
2.10Unix历史
a.1965前后Multics由贝尔实验室,麻省理工,通用电气发起
b.1969 Unix雏形UNICS
c.Ken Thompson 汇编语言B语言
d.1973 正式命名为Unix;Dennis Ritchie C语言
e.1977 BSD:Berkeley SoftwareDistribution伯克利大学
f.1979 System V架构版权声明
h.HP-UNIX IBM AIX “不对学生提供源码”收回版权
g.1984年Minix操作系统荷兰阿姆斯特丹自由大学计算机科学系Andrew S. Tanenbaum
2.11Linux起源
1984年:Richard Stallman发起GNU项目
自由软件基金会:Free Software Foundation
创建开源的UNIX实用工具版本
创建通用公共许可证(GPL)
开源软件许可实施原则
Hurd:Hirdof Unix-Replacing Daemons
1991年:Linus Torvalds发布Linux
创建开放源码,类Unix的内核,在GPL下发布
下载:www.kernel.org
Linux操作系统:
a.完整的类UNIX操作系统
b.Linux内核+ GNU工具
c.如:CentOS,Ubuntu,Android
2.12Linux发行版
slackware:SUSELinux Enterprise Server (SLES)
OpenSuse桌面:debian:ubuntu,mint
redhat:RHEL: RedHatEnterprise Linux
每18个月发行一个新版本
CentOS:兼容RHEL的格式
中标麒麟:中标软件
Fedora:每6个月发行一个新版本
ArchLinux:轻量简洁
Gentoo:极致性能,不提供传统意义的安装程序
LFS: Linux From scratch 自制Linux
Android: kernel+busybox(工具集)+java虚拟机
Linux分支参考网站:http://futurist.se/gldt/
2.13开源open source
开源:Open Source ,软件和源代码提供给所有人
自由分发软件和源代码
能够修改和创建衍生作品
软件分类:商业
共享
自由free
2.14开源协议
世界上的开源许可证,大概有上百种GPLv2, GPLv3, LGPL(lesser) :通用公共许可copyleft
Apache: apache
BSD: bsd
Mozilla
Apache
MIT
2.15Linux哲学思想
A.一切都是一个文件(包括硬件)
B.小型,单一用途的程序
C.链接程序,共同完成复杂的任务
D.避免令人困惑的用户界面
E.配置数据存储在文本中
2.16获取发行版
CentOS的IOS镜像下载网址如下:
https://wiki.centos.org/Download
http://mirrors.aliyun.com
http://mirrors.sohu.com
http://mirrors.163.com
2.17虚拟机
虚拟机:用软件(如:vmware,virtualbox等)模拟硬件
使用vmware workstation
CPU:默认
内存:1G以上,推荐2G
硬盘:一块硬盘,200G
网卡:桥接或仅主机模式
光盘:挂载对应版本的ISO文件
2.18linux远程登录方式:a.centos默认安装了SSH的服务器端,客户机可以通过命令”SSH”来登录。
示例:[root@ming_v6(nanyibo) ~]$ ssh 192.168.28.131
[email protected]'spassword: ##输入root的用户密码
Last login: Thu May 1713:16:55 2018 from 192.168.28.130
[root@ming ~]#
三.用户登录
3.1用户登录
root用户:一个特殊的管理帐户也被称为超级用户;root已接近完整的系统控制;对系统损害几乎有无限的能力除非必要,不要登录为root。
普通(非特权)用户:权限有限;造成损害的能力比较有限。
3.2终端Terminal
A.设备终端:键盘鼠标显示器
B.物理终端(/dev/console ):控制台console
C.虚拟终端(tty:teletypewriters,/dev/tty# #为[2-6])
tty可有n个,Ctrl+Alt+F[2-6]
D.图形终端(/dev/tty1 )startx, xwindows CentOS 6: Ctrl + Alt + F1在/dev/tty1
CentOS 7: 在哪个终端启动,即位于哪个虚拟终端
E.串行终端(/dev/ttyS# )
F.ttyS:伪终端(pty:pseudo-tty,/dev/pts/# )
G.pty,SSH远程连接
查看当前的终端设备:#tty
示例:[root@ming ~]#tty
/dev/pts/0 ##伪终端
/dev/tty1 ##虚拟终端
[root@ming ~]#[tty
/dev/pts/1 ##虚拟终端
3.3交互式接口
交互式接口:启动终端后,在终端设备附加一个交互式应用程序
GUI:Graphic User Interface
X protocol, window manager,desktop
Desktop:
GNOME (C, 图形库gtk),
KDE (C++,图形库qt)
XFCE (轻量级桌面)
CLI:Command Line Interface
shell程序:sh(bourn史蒂夫·伯恩) csh tcsh ksh(korn) bash (bourn again shell)GPL(系统默认shell) zsh
3.3什么是shell
Shell :是Linux系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行
A.hell也被称为LINUX的命令解释器(command interpreter)
B.shell是一种高级程序设计语 言
3.4 bash shell
GNU Bourne-Again Shell(bash)是GNU计划中重要的工具软件之一,目前也是Linux标准的shell,与sh兼容
A.CentOS默认使用bash
B.显示当前使用的shell用命令:echo ${SHELL}
示例:[root@ming~]#echo $SHELL ##打印SHELL变量的值即当前用户使用的shell
/bin/bash
显示当前系统使用的所有shell 用:cat /etc/shells
示例:[root@ming~]#cat /etc/shells ## 查看系统使用的所有shell
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
3.5命令提示符(prompt):[root@ming ~]#
“root”表示的是当前用户 “@”没有意义 “ming”代表主机名的第一个单词 ~表示当前路径为当前用户的路径为用户家目录。
# 提示符当前用户是管理员 $ 提示符代表普通用户
3.5.1显示提示符格式:echo $PS1
示例:[root@~]$ echo $PS1
[\[\e[32m\]\u\[\e[36m\]@\[\e[31m\]\[\e[0m\]\W]$
设置PS1变量:vim/etc/profile.d/env.sh ###使用vim编辑/etc/profile.d/env.sh的内容为:PS1="[\[\e[32m\]\u\[\e[36m\]@\h\[\e[31m\]\[\e[0m\]\W]\\$"
3.5.2修改提示符格式
PS1="\[\e[1;5;41;33m\][\u@\h \W]\\$\[\e[0m\]"
\e \033 \u 当前用户
\h 主机名简称 \H 主机名
\w 当前工作目录 \W 当前工作目录基名
\t 24小时时间格式 \T 12小时时间格式
\! 命令历史数 \# 开机后命令历史数
3.6执行命令
提请shell程序找到键入命令所对应的可执行程序或代码,并由其分析后提交给内核分配资源将其运行起。
内部命令:由shell自带的,而且通过某命令形式提供
Shell中可以执行的命令
外部命令:在文件系统路径下有对应的可执行程序文件
3.6.1
help 内部命令列表也查看内部命令的帮助
示例:[root@~]$ help pwd ##查看pwd命令的帮助
pwd:pwd [-LP]
Print thename of the current working directory.
--help查看外部命令的帮助
示例: [root@ ~]$ ifconfig–help ###查看外部命令ifcofnig的帮助信息
Usage:
ifconfig [-a] [-v] [-s]
[add
[/[del
[/3.6.2 enable命令:查看;启用;禁用内部命令等。
格式pwd[--options][--version]
选项:
-n:关闭指定的内部命令;
-a:显示所有激活的内部命令;
-f:从指定文件中读取内部命令
示例:[root@ ~]$ enable ##查看内部命令
enable.
enable:
enable[
enablealias
[root@~]$ enable -n pwd ##禁用pwd命令
[root@~]$ enable –n ##查看所有被禁用的命令
enable-n pwd
[root@~]$ enable pwd ##启用pwd命令
[root@ ~]$ enable| wc –l ##查看有多少内部命令;enable的命令是按一列显示的
61 wc –l是查看文的行数,统计出行数也就统计出命令数了。
3.6.3 which命令:用于查找并显示给定命令的绝对路径,环境变量PATH中保存了查找命令时需要遍历的目录。which指令会在环境变量$PATH设置的目录里查找符合条件的文件。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
格式:which [--options][--version]
示例:[root@ ~]$ which pwd
/usr/bin/pwd
选项:-n<文件名长度>:制定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名;
-p<文件名长度>:与-n参数相同,但此处的<文件名长度>包含了文件的路径;
-w:指定输出时栏位的宽度;
-V:显示版本信息。
3.6.4where is命令:用来定位指令的二进制程序、源代码文件和man手册页等相关文件的路径。
注意:whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
格式:whereis [--options][--version]
选项:
-b:只查找二进制文件;
-B<目录>:只在设置的目录下查找二进制文件;
-f:不显示文件名前的路径名称;
-m:只查找说明文件;
-M<目录>:只在设置的目录下查找说明文件;
-s:只查找原始代码文件;
-S<目录>只在设置的目录下查找原始代码文件;
-u:查找不包含指定类型的文件。
示例:[root@~]$ whereis pwd ##查找pwd的二进制文件;man说明文件;源代码文件
pwd:/usr/bin/pwd /usr/share/man/man1/pwd.1.gz /usr/share/man/man1p/pwd.1p.gz
[root@~]$ whereis -b pwd ##查找pwd的可执行文件的路径
pwd:/usr/bin/pwd
[root@~]$ whereis -m pwd ##查看pwd的man帮助文件的路径
pwd:/usr/share/man/man1/pwd.1.gz /usr/share/man/man1p/pwd.1p.gz
[root@~]$ whereis -s pwd ##查找pwd的源代码文件路径
pwd:[root@~]$
3.6.5type命令:区别指定的命令是内部或外部命令
示例:[root@ming ~]#type pwd ##查看pwd是内部还是外部命令
pwd is a shell builtin ##pwd是一个内部命令
[root@ming ~]#type ifconfig ##查看ifcofig是内部还是外部命令
ifconfig is /usr/local/sbin/ifconfig ##icofnig是一个外部命令并显示路径