Linux

Linux


一、概述

1.1 Linux的历史

操作系统,英语Operating System简称为OS。说道操作系统就需要先讲一讲Unix,UNIX操作系统,是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统,最早由KenThompson、Dennis Ritchie和Douglas McIlroy于1969年在AT&T的贝尔实验室开发。而linux就是一款类Unix系统。

通常人们对linux都有一个错误的认识,就是这个名词"linux",其实是"linux not unix",linux是一个内核,linux系统构成包括:、Linux 内核、GNU 项目及其他项目的软件。当然,但人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。

1.2 Linux 开发者

在这里插入图片描述

林纳斯·本纳第克特·托瓦兹(Linus Benedict Torvalds, 1969年~ ),著名的电脑程序员、黑客。Linux内核的发明人及该计划的合作者。托瓦兹利在大学读书期间创造出了这套当今全球最流行的操作系统(作业系统)内核之一。

1.3 Linux发展历史

Linux操作系统的诞生、发展和成长过程始终依赖着五个重要支柱:UNIX 操作系统、MINIX 操作系统、GNU计划、POSIX 标准和Internet 网络。

1984年,Andrew S.Tanenbaum开发了用于教学的UNIX系统,命名为Mininx。

1989年,Andrew S.Tanenbaum将Minix系统运行于x86的PC平台。

1990年,芬兰赫尔辛基大学学生Linux Torvalds首次接触Minix系统。

1991年,Linux Torvalds开始在Minix上编写各种驱动程序等操作系统内核组件。

1991年年底,Linux Torvalds公开了Linux内核源码0.02版(http://www.kernel.org),此版本仅仅是部分代码。

1993年,Linux 1.0版本发行,Linux转向GPL版本协议。


1994年,Linux的第一个商业发行版Slackware问世。

1996年,美国国家标准技术局的计算机系统实验室确认Linux版本1.2.13符合POSIX标准。

1999年,Linux的简体中文发行版问世。

2000年以后,Linux系统日趋成熟,涌现出大量基于Linux服务器平台的应用,并且广泛应用于基于ARM技术的嵌入式系统中。

Linux发展历史还可参考:https://www.linuxprobe.com/linux-historical-chronology.html

1.4 Linux发行版

1.4.1 Linux版本Ubuntu

Ubuntu是一个以桌面应用为主的Linux操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词(译为吾帮托或乌班图),意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。Ubuntu基于Debian发行版和unity桌面环境,与Debian的不同在于它每6个月会发布一个新版本。Ubuntu的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。Ubuntu具有庞大的社区力量,用户可以方便地从社区获得帮助。随着云计算的流行,ubuntu推出了一个云计算环境搭建的解决方案,可以在其官方网站找到相关信息。于2012年4月26日发布最终版ubuntu 12.04,ubuntu 12.04是长期支持的版本。

1.4.2 Linux版本Red Hat Linux

可能这是最著名的Linux版本了,Red Hat Linux已经创造了自己的品牌,越来越多的人听说过它。Red Hat在1994年创业,当时聘用了全世界500多名员工,他们都致力于开放的源代码体系。
Red Hat Linux是公共环境中表现上佳的服务器。它拥有自己的公司,能向用户提供一套完整的服务,这使得它特别适合在公共网络中使用。这个版本的Linux也使用最新的内核,还拥有大多数人都需要使用的主体软件包。
Red Hat Linux的安装过程也十分简单明了。它的图形安装过程提供简易设置服务器的全部信息。磁盘分区过程可以自动完成,还可以选择GUI工具完成,即使对于 Linux新手来说这些都非常简单。选择软件包的过程也与其他版本类似;用户可以选择软件包种类或特殊的软件包。系统运行起来后,用户可以从Web站点和 Red Hat那里得到充分的技术支持。我发现Red Hat是一个符合大众需求的最优版本。在服务器和桌面系统中它都工作得很好。Red Hat的唯一缺陷是带有一些不标准的内核补丁,这使得它难于按用户的需求进行定制。 Red Hat通过论坛和邮件列表提供广泛的技术支持,它还有自己公司的电话技术支持,后者对要求更高技术支持水平的集团客户更有吸引力。

1.4.3 Linux版本CENTOS

CentOS(Community ENTerprise Operating System)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Red Hat Enterprise Linux使用。两者的不同,在于CentOS并不包含封闭源代码软件,CentOS 是一个基于Red Hat Linux 提供的可自由使用源代码的企业级Linux发行版本。每个版本的 CentOS都会获得十年的支持(通过安全更新方式)。新版本的 CentOS 大约每两年发行一次,而每个版本的 CentOS 会定期(大概每六个月)更新一次,以便支持新的硬件。这样,建立一个安全、低维护、稳定、高预测性、高重复性的 Linux 环境。CentOS是Community Enterprise Operating System的缩写。
CentOS 是RHEL(Red Hat Enterprise Linux)源代码再编译的产物,而且在RHEL的基础上修正了不少已知的 Bug ,相对于其他 Linux 发行版,其稳定性值得信赖。
RHEL 在发行的时候,有两种方式。一种是二进制的发行方式,另外一种是源代码的发行方式。

Centos生成环境中运用的比较多,所以本次课程使用的Linux操作系统就是Centos,版本为6.5 或者6.10

官方网址:https://www.centos.org/

镜像列表:http://isoredirect.centos.org/centos/6.10/isos/x86_64/

开源镜像网站:https://opsx.alibaba.com/?lang=zh-CNhttp://mirrors.163.com/ 等等

二、Linux 安装

2.1 物理机安装

使用相关镜像制作软件(软碟通等)制作U盘启动盘即可,按照正常的安装步骤安装即可,一般来说(迷你版本)有线网卡直接会有驱动,无线网卡的驱动需要自行编译或者查找。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xi6521jr-1577524581412)(assets/1560394126791.png)]

2.2 虚拟机安装

2.2.1 虚化技术

虚化技术是一个非常宽的概念,例如服务器(主机)虚化、存储虚化、应用程序虚化、网络虚化等等,本次课程特指服务器(主机)虚化

2.2.1.1软件层面
  • vmare workstation
  • virtualbox
  • KVM
  • openvz
  • xen
  • qemu
2.2.1.2 硬件层面
  • Intel VT-x

    Intel VT即Intel公司的Virtualization Technology虚拟化技术。
    为解决纯软件虚拟化解决方案在可靠性、安全性和性能上的不足,Intel在它的硬件产品上引入了Intel VT(Virtualization Technology,虚拟化技术)。2005年8月,Intel首次公布了针对硬件辅助虚拟化的Vanderpool(Intel VT虚拟化技术的前身)技术细节。Vanderpool技术通过增加新的指令,使得Intel处理器支持硬件虚拟化。2005年11月,Intel宣布,虚拟化技术Vanderpool改成VT,被Acer和联想应用在其基于Intel Pentium 4的PC上。
    
  • AMD AMD-V

    AMD-V技术(AMD虚拟化技术)是对x86处理器系统架构的一组硬件扩展和硬件辅助虚拟化技术,可以简化纯软件的虚拟化解决方案,改进VMM(虚拟机监视器)的设计,更充分地利用硬件资源,提高服务器和数据中心的虚拟化效率。
    目前AMD提供的所有处理器均具备AMD-V虚拟化功能,不论是笔记本电脑还是刀片服务器,均可为其提供强大的虚拟化性能、安全性及可靠性。 虚拟化 (AMD-V™) 技术是一系列芯片集成功能,可帮助您更好地利用和提高虚拟化资源的性能AMD 虚拟化 (AMD-V™) 技术是一系列芯片集成功能,可帮助您更好地利用和提高虚拟化资源的性能AMD 虚拟化 (AMD-V™) 技术是一系列芯片集成功能,可帮助您更好地利用和提
    

所以Win10|Win7 (学习环境)安装虚拟机需要开启相关硬件虚化机制

2.2.2 虚拟化平台

在学习和测试环境下,一般采用在物理机上创建虚拟机,本次课程也是这种方式

2.2.2.1 virtualbox

本次课程不涉及

VirtualBox 是一款开源虚拟机软件。VirtualBox 是由德国 Innotek 公司开发,由Sun Microsystems公司出品的软件,使用Qt编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。Innotek 以 GNU General Public License (GPL) 释出 VirtualBox,并提供二进制版本及 OSE 版本的代码。使用者可以在VirtualBox上安装并且执行Solaris、Windows、DOS、Linux、OS/2 Warp、BSD等系统作为客户端操作系统。现在则由甲骨文公司进行开发,是甲骨文公司xVM虚拟化平台技术的一部份。
VirtualBox号称是最强的免费虚拟机软件,它不仅具有丰富的特色,而且性能也很优异!它简单易用,可虚拟的系统包括Windows(从Windows 3.1到Windows10、Windows Server 2012,所有的Windows系统都支持)、Mac OS X、Linux、OpenBSD、Solaris、IBM OS2甚至Android等操作系统!使用者可以在VirtualBox上安装并且运行上述的这些操作系统! 与同性质的VMware及Virtual PC比较下,VirtualBox独到之处包括远端桌面协定(RDP)、iSCSI及USB的支持,VirtualBox在客户端操作系统上已可以支持USB 2.0的硬件装置,不过要安装 VirtualBox Extension Pack。
2.2.2.2 vmare workstation

本次课程使用的虚化平台

Mware Workstation(中文名“威睿工作站”)是一款功能强大的桌面虚拟计算机软件,提供用户可在单一的桌面上同时运行不同的操作系统,和进行开发、测试 、部署新的应用程序的最佳解决方案。VMware Workstation可在一部实体机器上模拟完整的网络环境,以及可便于携带的虚拟机器,其更好的灵活性与先进的技术胜过了市面上其他的虚拟计算机软件。对于企业的 IT开发人员和系统管理员而言, VMware在虚拟网路,实时快照,拖曳共享文件夹,支持 PXE 等方面的特点使它成为必不可少的工具。

2.2.3 vmare 介绍及系统安装

2.2.3.1 安装vmare

根据提供的软件,图形化界面,下一步即可

2.2.3.2 下载CentOS镜像

下载CentOS 6.10 Minimal 即可,保存在本地磁盘

2.2.3.3 开始安装
新建虚拟机

在这里插入图片描述在这里插入图片描述

选择典型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KjBOwZg7-1577524581413)(ass在这里插入图片描述ets/1560412005365.png)]

选择稍后安装

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UdS2JOoV-1577524581413)(assets/1560412415364.png)]

选择版本

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NCvCpS0K-1577524581414)(assets/1560412477452.png)]

设置名称和路径

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wYTp5wDu-1577524581414)(assets/1560412547808.png)]

设置磁盘大小

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RI7sQPpe-1577524581415)(assets/1560412616311.png)]

点击完成

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gz9Ryrcj-1577524581415)(assets/1560412659215.png)]

配置完成

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-270VMDu7-1577524581415)(assets/1560412920684.png)]

配置内存

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QdVOIc92-1577524581416)(assets/1560413001348.png)]

选择镜像文件

操作完成请点击确定

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kn7WIg5K-1577524581416)(assets/1560413155254.png)]

开始安装

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bu5barng-1577524581416)(assets/1560413303561.png)]

初始界面

选择第一个,回车即可

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yVY1ns9v-1577524581417)(assets/1560479832219.png)]

跳过媒体检查

键盘选择Skip,点击确认即可

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zvPud6CR-1577524581417)(assets/1560479965764.png)]

进入GUI界面

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d00kxRWe-1577524581418)(assets/1560480085835.png)]

选择语言版本

选择语言版本,默认英语即可

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5Rv2kDXN-1577524581418)(assets/1560480159582.png)]

选择键盘布局

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hSNrq0rb-1577524581418)(assets/1560480261715.png)]

选择安装在一般存储上

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q4F5dJEl-1577524581419)(assets/1560480384646.png)]

抹掉数据

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oK2c57M7-1577524581419)(assets/1560480447302.png)]

设置主机名

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Yu1djRv2-1577524581419)(assets/1560480545345.png)]

选择时区

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nQ5ytcj9-1577524581420)(assets/1560480618256.png)]

设置密码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tvaRai1S-1577524581421)(assets/1560480966438.png)]

覆盖系统

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WujUmv0w-1577524581421)(assets/1560481062271.png)]

确认写入磁盘

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dDdmFUl4-1577524581422)(assets/1560481127671.png)]

等待安装完成

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-118OJ6Tk-1577524581422)(assets/1560481199481.png)]

点击重启

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Qvlrokki-1577524581423)(assets/1560481340887.png)]

登录

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IqklwwtX-1577524581424)(assets/1560481391108.png)]

登录成功

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RbBX6JXa-1577524581424)(assets/1560481453894.png)]

2.2.3.4 系统初始化操作
双网卡配置
网卡1
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.134.99
NETMASK=255.255.255.0
BROADCAST=192.168.134.255

#解释: 双网卡配置之网卡一   使用只粘贴上方文字
#网卡1使用NAT模式
#静态IP
#网段与自身虚拟机配置保持一致 即可
#作为虚拟机之前通信使用
网卡2
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp

#解释: 双网卡配置之网卡二   使用只粘贴上方文字
#网卡1使用桥接模式
#动态IP
#作为连接公网使用
相关命令
vi /etc/sysconfig/network-scripts/ifcfg-eth0    #配置网卡
rm -rf  /etc/udev/rules.d/70-persistent-net.rules #删除MAC地址
service network restart   #重启网络
service iptables stop  	  #关闭防火墙
chkconfig iptables off    # 关闭防火墙自启
ifconfig                  # 查看网络信息
vi /etc/hosts             # 主机名和IP的映射

三、Linux Shell

3.1 文件管理

3.1.1 ls 命令

显示指定工作目录下的内容及属性信息

ls 命令是Linux下最常用的指令之一。ls命令为英文单词 list 的缩写,正如英文单词 list 的意思,其功能是列出指定目录下的内容及其相关属性信息。

默认状态下,ls命令会列出当前目录的内容。而带上参数后,我们可以用ls做更多的事情。

语法格式: ls [选项] [文件]

常用参数:

-a显示所有文件及目录 (包括以“.”开头的隐藏文件)
-l使用长格式列出文件及目录信息
-r将文件以相反次序显示(默认依英文字母次序)
-t根据最后的修改时间排序
-A同 -a ,但不列出 “.” (当前目录) 及 “…” (父目录)
-S根据文件大小排序
-R递归列出所有子目录

3.1.2 pwd命令

显示当前路径

pwd命令是“print working directory”中每个单词的首字母缩写,其功能正如所示单词一样,为打印工作目录,即显示当前工作目录的绝对路径。
在实际工作中,我们经常会在不同目录之间进行切换,为了防止“迷路”,我们可以使用pwd命令快速查看当前我们所在的目录路径。

语法格式: pwd [参数]

常用参数:

-L显示逻辑路径

3.1.3 mkdir命令

mkdir命令是“make directories”的缩写,用来创建目录。

默认状态下,如果要创建的目录已经存在,则提示已存在,而不会继续创建目录。 所以在创建目录时,应保证新建的目录与它所在目录下的文件没有重名。
语法格式 : mkdir [参数] [目录]

常用参数:

-p递归创建多级目录
-m建立目录的同时设置目录的权限
-z设置安全上下文
-v显示目录的创建过程

3.1.4 cp命令

cp命令可以理解为英文单词copy的缩写,其功能为复制文件或目录。

cp命令可以将多个文件复制到一个具体的文件名或一个已经存在的目录下,也可以同时复制多个文件到一个指定的目录中。

语法格式:cp [参数] [文件]

常用参数:

-f若目标文件已存在,则会直接覆盖原文件
-i若目标文件已存在,则会询问是否覆盖
-p保留源文件或目录的所有属性
-r递归复制文件和目录
-d当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录
-l对源文件建立硬连接,而非复制文件
-s对源文件建立符号连接,而非复制文件
-b覆盖已存在的文件目标前将目标文件备份
-v详细显示cp命令执行的操作过程
-a等价于“dpr”选项

3.1.5 mv命令

改名|移动

mv命令是“move”单词的缩写,其功能大致和英文含义一样,可以移动文件或对其改名。

这是一个使用频率超高的文件管理命令,我们需要特别留意它与复制的区别:mv与cp的结果不同。mv命令好像文件“搬家”,文件名称发生改变,但个数并未增加。而cp命令是对文件进行复制操作,文件个数是有增加的。
语法格式:mv [参数]

常用参数:

-i若存在同名文件,则向用户询问是否覆盖
-f覆盖已有文件时,不进行任何提示
-b当文件存在时,覆盖前为其创建一个备份
-u当源文件比目标文件新,或者目标文件不存在时,才执行移动此操作

3.2 文档编辑

3.2.1 cat命令

显示文件内容

当文件内容较大时,文本内容会在屏幕上快速闪动(滚屏),用户往往看不清所显示的具体内容。因此对于较长文件内容可以按Ctrl+S键,停止滚屏;以及Ctrl+Q键可以恢复滚屏;而按Ctrl+C(中断)键则可以终止该命令的执行。或者对于大文件,干脆用more命令吧!

语法格式:cat [参数] [文件]

常用参数:

-n显示行数(空行也编号)
-s显示行数(多个空行算一个编号)
-b显示行数(空行不编号)
-E每行结束处显示$符号
-T将TAB字符显示为 ^I符号
-v使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
-e等价于”-vE”组合
-t等价于”-vT”组合
-A等价于 -vET组合
–help显示帮助信息
–version显示版本信息

3.2.2 echo命令

输出字符或者 提取Shell 变量的值

echo命令用于在终端设备上输出字符串或变量提取后的值,这是在Linux系统中最常用的几个命令之一,但操作却非常简单。

人们一般使用在变量前加上$符号的方式提取出变量的值,例如:$PATH,然后再用echo命令予以输出。或者直接使用echo命令输出一段字符串到屏幕上,起到给用户提示的作用。

语法格式:echo [参数] [字符串]

常用参数:

-n不输出结尾的换行符
-e “\a”发出警告音
-e “\b”删除前面的一个字符
-e “\c”结尾不加换行符
-e “\f”换行,光标扔停留在原来的坐标位置
-e “\n”换行,光标移至行首
-e “\r”光标移至行首,但不换行
-E禁止反斜杠转移,与-e参数功能相反
—version查看版本信息
–help查看帮助信息

3.2.3 tail命令

查看尾部内容

tail用于显示文件尾部的内容,默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名为“-”,则读取标准输入。

语法格式:tail [参数]

常用参数:

–retry即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。使用此选项时需要与选项“——follow=name”连用
-c或——bytes=输出文件尾部的N(N为整数)个字节内容
-f<name/descriptor>–follow:显示文件最新追加的内容
-F与选项“-follow=name”和“–retry”连用时功能相同
-n或——line=输出文件的尾部N(N位数字)行内容
–pid=<进程号>与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令
–help显示指令的帮助信息
–version显示指令的版本信息

3.2.4 expr命令

命令行计数器

expr命令的英文全称是“expression”,即是表达式的意思,作用是一个命令行的计数器,常用于在UNIX/LINUX系统中求表达式变量的值,一般用于整数值,也可用于字符串。

语法格式:expr [表达式]

常用参数:

空格隔开每个项
\(反斜杠)放在 shell 特定的字符前面
“”(引号)对包含空格和其他特殊字符的字符串要用引号括起来

1、计算字串长度

> expr length “this is a test”
 14

2、抓取字串

> expr substr “this is a test” 3 5
is is

3、抓取第一个字符数字串出现的位置

> expr index "sarasara"  a
 2

4、整数运算

 > expr 14 % 9
 5
 > expr 10 + 10
 20
 > expr 1000 + 900
 1900
 > expr 30 / 3 / 2
 5
 > expr 30 \* 3 (使用乘号时,必须用反斜线屏蔽其特定含义。因为shell可能会误解显示星号的意义)
 90
 > expr 30 * 3
 expr: Syntax error

3.2.5 grep命令

文本搜索工具

grep是“global search regular expression and print out the line”的简称,意思是全面搜索正则表达式,并将其打印出来。这个命令可以结合正则表达式使用,它也是linux使用最为广泛的命令。

grep命令的选项用于对搜索过程的补充,而其命令的模式十分灵活,可以是变量、字符串、正则表达式。需要注意的是:一当模式中包含了空格,务必要用双引号将其引起来。

linux系统支持三种形式的grep命令,大儿子就是grep,标准,模仿的代表。二儿子兴趣爱好多-egrep,简称扩展grep命令,其实和grep -E等价,支持基本和扩展的正则表达式。小儿子跑的最快-fgrep,简称快速grep命令,其实和grep -F等价,不支持正则表达式,按照字符串表面意思进行匹配。

语法格式: grep [参数]

常用参数:

-i搜索时,忽略大小写
-c只输出匹配行的数量
-l只列出符合匹配的文件名,不列出具体的匹配行
-n列出所有的匹配行,显示行号
-h查询多文件时不显示文件名
-s不显示不存在、没有匹配文本的错误信息
-v显示不包含匹配文本的所有行
-w匹配整词
-x匹配整行
-r递归搜索
-q禁止输出任何结果,已退出状态表示搜索是否成功
-b打印匹配行距文件头部的偏移量,以字节为单位
-o与-b结合使用,打印匹配的词据文件头部的偏移量,以字节为单位

3.3 系统管理

3.3.1 rpm命令

RPM软件管理器

rpm命令是Red-Hat Package Manager(RPM软件包管理器)的缩写, 该命令用于管理Linux 下软件包的软件。在 Linux 操作系统下,几乎所有的软件均可以通过RPM 进行安装、卸载及管理等操作。

概括的说,rpm命令包含了五种基本功能:安装、卸载、升级、查询和验证。

语法格式:rpm [参数] [软件包]

常用参数:

-a查询所有的软件包
-b或-t设置包装套件的完成阶段,并指定套件档的文件名称;
-c只列出组态配置文件,本参数需配合”-l”参数使用
-d只列出文本文件,本参数需配合”-l”参数使用
-e或–erase卸载软件包
-f查询文件或命令属于哪个软件包
-h或–hash安装软件包时列出标记
-i显示软件包的相关信息
–install安装软件包
-l显示软件包的文件列表
-p查询指定的rpm软件包
-q查询软件包
-R显示软件包的依赖关系
-s显示文件状态,本参数需配合”-l”参数使用
-U或–upgrade升级软件包
-v显示命令执行过程
-vv详细显示指令执行过程

3.3.2 find命令

查找和搜索文件

find命令可以根据给定的路径和表达式查找的文件或目录。find参数选项很多,并且支持正则,功能强大。和管道结合使用可以实现复杂的功能,是系统管理者和普通用户必须掌握的命令。

find如不加任何参数,表示查找当前路径下的所有文件和目录,如果服务器负载比较高尽量不要在高峰期使用find命令,find命令模糊搜索还是比较消耗系统资源的。

语法格式:find [参数] [路径] [查找和搜索范围]

常用参数

-name按名称查找
-size按大小查找
-user按属性查找
-type按类型查找
-iname忽略大小写

3.3.3 crontab命令

定时任务

crontab是英文“cron table”的简写。该命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。

Linux下的任务调度分为两类,系统任务调度和用户任务调度。

系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。/etc/crontab文件是系统任务调度的配置文件。用户任务调度:用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的crontab 文件都被保存在 /var/spool/cron目录中。其文件名与用户名一致。

语法格式:crontab [参数]

常用参数:

-e编辑该用户的计时器设置
-l列出该用户的计时器设置
-r删除该用户的计时器设置
-u指定要设定计时器的用户名称
–help显示帮助信息

3.3.4 reboot命令

重启计算机

Linux reboot命令用于用来重新启动计算机,和Windows系统中的restart一样。但是机器重启必须要root用户才有权限。

语法格式: reboot [参数]

常用参数:

-n在重开机前不做将记忆体资料写回硬盘的动作 帮助
-w并不会真的重开机,只是把记录写到 /var/log/wtmp 档案里
-d不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d)
-f强迫重开机,不呼叫 shutdown 这个指令
-i在重开机之前先把所有网络相关的装置先停止

3.3.5 halt命令

关机

halt命令用来关闭正在运行的Linux操作系统,如果是线上跑了业务的服务器,执行此命令需谨慎。

halt命令会先检测系统的runlevel,若runlevel为0或6,则关闭系统,否则即调用shutdown来关闭系统。

语法格式:halt [参数]

常用参数

-w并不是真正的重启或关机,只是写wtmp(/var/log/wtmp)纪录
-d不写wtmp纪录(已包含在选项[-n]中)
-f没有调用shutdown而强制关机或重启
-i关机(或重启)前关掉所有的网络接口
-p该选项为缺省选项,就是关机时调用poweroff

3.3.6 uname 命令

显示系统信息

uname命令的英文全称即“Unix name”。

用于显示系统相关信息,比如主机名、内核版本号、硬件架构等。

如果未指定任何选项,其效果相当于执行”uname -s”命令,即显示系统内核的名字。

语法格式:uname [参数]

常用参数:

-a显示系统所有相关信息
-m显示计算机硬件架构
-n显示主机名称
-r显示内核发行版本号
-s显示内核名称
-v显示内核版本
-p显示主机处理器类型
-o显示操作系统名称
-i显示硬件平台

3.3.7 clear命令

清除屏幕

clear命令用于清除屏幕。这个命令将会刷新屏幕,本质上只是让终端显示页向后翻了一页,如果向上滚动屏幕还可以看到之前的操作信息。

语法格式:clear [参数]

常用参数:

–help在线帮助
–vesion显示版本信息

3.3.8 nohup命令

后端运行程序

nohup命令的全称为“no hang up”,该命令可以将程序以忽略挂起信号的方式运行起来,被运行的程序的输出信息将不会显示到终端。

无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输出重定向到$HOME/nohup.out文件中。如果没有文件能创建或打开以用于追加,那么 command 参数指定的命令不可调用。如果标准错误是一个终端,那么把指定的命令写给标准错误的所有输出作为标准输出重定向到相同的文件描述符。

语法格式:nohup [参数]

常用参数

–help在线帮助
–version显示版本信息

3.3.9 top命令

实时显示进程状态

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,常用于服务端性能分析。

在top命令中按f按可以查看显示的列信息,按对应字母来开启/关闭列,大写字母表示开启,小写字母表示关闭。带*号的是默认列。

语法格式:top [参数]

常用参数:

-d改变显示的更新速度,或是在交谈式指令列( interactive command)按 s
-q没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行
-c切换显示模式
-s安全模式,将交谈式指令取消, 避免潜在的危机
-i不显示任何闲置 (idle) 或无用 (zombie) 的行程
-n更新的次数,完成后将会退出 top
-b批次档模式,搭配 “n” 参数一起使用,可以用来将 top 的结果输出到档案内

3.3.10 init命令

切换系统运行级别

init命令是Linux下的进程初始化工具,init进程是所有Linux进程的父进程,它的进程号为1。init命令是Linux操作系统中不可缺少的程序之一,init进程是Linux内核引导运行的,是系统中的第一个进程。

语法格式:init [参数]

常用参数:

0关机
1单用户
2多用户
3完全多用户模式
5图形界面
6重启

3.3.11 kill命令

杀死进程

kill正如这个单词的意思一样,就是杀死。linux系统中kill命令用来删除执行中的程序或工作。

kill命令可将指定的信号发送给相应的进程或工作。 kill命令默认使用信号为15,用于结束进程或工作。如果进程或工作忽略此信号,则可以使用信号9,强制杀死进程或作业。

语法格式:kill [参数] [进程号]

常用参数:

-l列出系统支持的信号
-s指定向进程发送的信号
-a处理当前进程时不限制命令名和进程号的对应关系
-p指定kill命令只打印相关进程的进程号,而不发送任何信号

3.3.12 ps命令

显示进程状态

ps命令是“process status”的缩写,ps命令用于显示当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。

ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。

语法格式:ps [参数]

常用参数:

-a显示所有终端机下执行的程序,除了阶段作业领导者之外
a显示现行终端机下的所有程序,包括其他用户的程序
-A显示所有程序
-c显示CLS和PRI栏位
c列出程序时,显示每个程序真正的指令名称,而不包含路径,选项或常驻服务的标示
-C <指令名称>指定执行指令的名称,并列出该指令的程序的状况
-d显示所有程序,但不包括阶段作业领导者的程序
-e此选项的效果和指定”A”选项相同
e列出程序时,显示每个程序所使用的环境变量
-f显示UID,PPIP,C与STIME栏位
f用ASCII字符显示树状结构,表达程序间的相互关系
-g <群组名称>此选项的效果和指定”-G”选项相同,当亦能使用阶段作业领导者的名称来指定
g显示现行终端机下的所有程序,包括群组领导者的程序
-G <群组识别码>列出属于该群组的程序的状况,也可使用群组名称来指定
h不显示标题列
-H显示树状结构,表示程序间的相互关系
-j或j采用工作控制的格式显示程序状况
-l或l采用详细的格式来显示程序状况
L列出栏位的相关信息
-m或m显示所有的执行绪
n以数字来表示USER和WCHAN栏位
-N显示所有的程序,除了执行ps指令终端机下的程序之外
-p <程序识别码>指定程序识别码,并列出该程序的状况
p <程序识别码>此选项的效果和指定”-p”选项相同,只在列表格式方面稍有差异
r只列出现行终端机正在执行中的程序
-s <阶段作业>指定阶段作业的程序识别码,并列出隶属该阶段作业的程序的状况
s采用程序信号的格式显示程序状况
S列出程序时,包括已中断的子程序资料
-t <终端机编号>指定终端机编号,并列出属于该终端机的程序的状况
t <终端机编号>此选项的效果和指定”-t”选项相同,只在列表格式方面稍有差异
-T显示现行终端机下的所有程序
-u <用户识别码>此选项的效果和指定”-U”选项相同
u以用户为主的格式来显示程序状况
-U <用户识别码>列出属于该用户的程序的状况,也可使用用户名称来指定
U <用户名称>列出属于该用户的程序的状况
v采用虚拟内存的格式显示程序状况
-V或V显示版本信息
-w或w采用宽阔的格式来显示程序状况
x显示所有程序,不以终端机来区分
X采用旧式的Linux i386登陆格式显示程序状况
-y配合选项”-l”使用时,不显示F(flag)栏位,并以RSS栏位取代ADDR栏位
– <程序识别码>此选项的效果和指定”p”选项相同
–cols <每列字符数>设置每列的最大字符数
–columns <每列字符数>此选项的效果和指定”–cols”选项相同
–cumulative此选项的效果和指定”S”选项相同
–deselect此选项的效果和指定”-N”选项相同
–forest此选项的效果和指定”f”选项相同
–headers重复显示标题列
–help在线帮助
–info显示排错信息
–lines <显示列数>设置显示画面的列数
–no-headers此选项的效果和指定”h”选项相同,只在列表格式方面稍有差异
–group <群组名称>此选项的效果和指定”-G”选项相同
–Group <群组识别码>此选项的效果和指定”-G”选项相同
–pid <程序识别码>此选项的效果和指定”-p”选项相同
–rows <显示列数>此选项的效果和指定”–lines”选项相同
–sid <阶段作业>此选项的效果和指定”-s”选项相同
-tty <终端机编号>此选项的效果和指定”-t”选项相同
–user <用户名称>此选项的效果和指定”-U”选项相同
–User <用户识别码>此选项的效果和指定”-U”选项相同
–version此选项的效果和指定”-V”选项相同
–widty <每列字符数>此选项的效果和指定”-cols”选项相同

3.4 磁盘管理

3.4.1 df命令

显示磁盘空间使用情况

df命令的英文全称即“Disk Free”,顾名思义功能是用于显示系统上可使用的磁盘空间。默认显示单位为KB,建议使用“df -h”的参数组合,根据磁盘容量自动变换合适的单位,更利于阅读。

日常普遍用该命令可以查看磁盘被占用了多少空间、还剩多少空间等信息。

语法格式: df [参数] [指定文件]

常用参数:

-a显示所有系统文件
-B <块大小>指定显示时的块大小
-h以容易阅读的方式显示
-H以1000字节为换算单位来显示
-i显示索引字节信息
-k指定块大小为1KB
-l只显示本地文件系统
-t <文件系统类型>只显示指定类型的文件系统
-T输出时显示文件系统类型
– -sync在取得磁盘使用信息前,先执行sync命令

3.4.2 lsblk命令

查看系统的磁盘

lsblk命令的英文是“list block”,即用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息。

lsblk命令包含在util-linux-ng包中,现在该包改名为util-linux。

语法格式:lsblk [参数]

常用参数:

-a显示所有设备
-b以bytes方式显示设备大小
-d不显示 slaves 或 holders
-Dprint discard capabilities
-e排除设备
-f显示文件系统信息
-h显示帮助信息
-iuse ascii characters only
-m显示权限信息
-l使用列表格式显示
-n不显示标题
-o输出列
-P使用key=”value”格式显示
-r使用原始格式显示
-t显示拓扑结构信息

3.4.3 fdisk命令

磁盘分区

fdisk命令的英文全称是“Partition table manipulator for Linux”,即作为磁盘的分区工具。进行硬盘分区从实质上说就是对硬盘的一种格式化, 用一个形象的比喻,分区就好比在一张白纸上画一个大方框,而格式化好比在方框里打上格子。

语法格式:fdisk [参数]

常用参数:

-b指定每个分区的大小
-l列出指定的外围设备的分区表状况
-s将指定的分区大小输出到标准输出上,单位为区块
-u搭配”-l”参数列表,会用分区数目取代柱面数目,来表示每个分区的起始地址
-v显示版本信息

3.4.4 quota命令

显示磁盘已经使用的空间与限制

quota命令用于显示磁盘已使用的空间与限制。执行quota命令可查询磁盘空间的限制,并得知已使用多少空间。

语法参数:quota [参数]

常用参数:

-g列出群组的磁盘空间限制
-q简明列表,只列出超过限制的部分
-u列出用户的磁盘空间限制
-v显示该用户或群组,在所有挂入系统的存储设备的空间限制
-V显示版本信息

3.4.5 arpd命令

收集arp信息

arpd命令是用来收集免费arp信息的一个守护进程,它将收集到的信息保存在磁盘上或者在需要时,提供给内核用户用于避免多余广播。

语法格式:arpd [参数]
启动arpd进程:
arpd -b /var/tmp/arpd.db

运行一段时间后,查看结果:
arpd -b /var/tmp/arpd.db

参考实例

-l将arp数据库输出到标准输出设备显示并退出
-f指定读取和加载arpd数据库的文本文件,文件的格式与“-l”输出信息类似
-b指定arpd数据库文件,默认的位置为“/var/lib/arpd.db
-a指定目标被认为死掉前查询的次数
-k禁止通过内核发送广播查询
-n设定缓冲失效时间

3.5 文件传输

3.5.1 curl命令

文件传输命令

curl命令是一个利用URL规则在shell终端命令行下工作的文件传输工具;它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。

作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征;做网页处理流程和数据检索自动化。

语法格式:curl [参数] [网址]

常用参数:

-O把输出写到该文件中,保留远程文件的文件名
-u通过服务端配置的用户名和密码授权访问

3.5.2 ftpwho命令

显示FTP会话信息

ftpwho命令用于显示当前所有以FTP登入的用户会话信息。

执行该命令可得知当前用FTP登入系统的用户有哪些人,以及他们正在进行的操作。

语法格式:ftpwho [参数]

常用参数:

-h显示帮助信息
-v详细模式,输出更多信息

3.5.3 fsck命令

检查并修复Linux文件系统

fsck命令的英文全称是“filesystem check”,即检查文件系统的意思,常用于检查并修复Linux文件系统的一些错误信息,操作文件系统需要先备份重要数据,以防丢失。

Linux fsck命令用于检查并修复Linux文件系统,可以同时检查一个或多个 Linux 文件系统;若系统掉电或磁盘发生问题,可利用fsck命令对文件系统进行检查。

语法格式:fsck [参数] [文件系统]

常用参数:

-a自动修复文件系统,不询问任何问题
-A依照/etc/fstab配置文件的内容,检查文件内所列的全部文件系统
-N不执行指令,仅列出实际执行会进行的动作
-P当搭配”-A”参数使用时,则会同时检查所有的文件系统
-r采用互动模式,在执行修复时询问问题,让用户得以确认并决定处理方式
-R当搭配”-A”参数使用时,则会略过/目录的文件系统不予检查
-t指定要检查的文件系统类型
-T执行fsck指令时,不显示标题信息
-V显示指令执行过程

3.6 网络通讯

3.6.1 ping命令

测试主机间网络连通性

ping命令主要用来测试主机之间网络的连通性,也可以用于。执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。

不过值得我们注意的是:Linux系统下的ping命令与Windows系统下的ping命令稍有不同。Windows下运行ping命令一般会发出4个请求就结束运行该命令;而Linux下不会自动终止,此时需要我们按CTR+C终止或者使用-c参数为ping命令指定发送的请求数目。

语法格式:ping [参数] [目标主机]

常用参数:

-d使用Socket的SO_DEBUG功能
-c指定发送报文的次数
-i指定收发信息的间隔时间
-I使用指定的网络接口送出数据包
-l设置在送出要求信息之前,先行发出的数据包
-n只输出数值
-p设置填满数据包的范本样式
-q不显示指令执行过程
-R记录路由过程
-s设置数据包的大小
-t设置存活数值TTL的大小
-v详细显示指令的执行过程

3.6.2 netstat命令

显示网络状态

netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。

从整体上看,netstat的输出结果可以分为两个部分:一个是Active Internet connections,称为有源TCP连接,其中”Recv-Q”和”Send-Q”指%0A的是接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到;另一个是Active UNIX domain sockets,称为有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。

语法格式:netstat [参数]

常用参数:

-a显示所有连线中的Socket
-p显示正在使用Socket的程序识别码和程序名称
-u显示UDP传输协议的连线状况
-i显示网络界面信息表单
-n直接使用IP地址,不通过域名服务器

3.6.3 ifconfig命令

显示或者设置网络设备

ifconfig命令的英文全称是“network interfaces configuring”,即用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。

语法格式:ifconfig [参数]

常用参数:

add<地址>设置网络设备IPv6的IP地址
del<地址>删除网络设备IPv6的IP地址
down关闭指定的网络设备
up启动指定的网络设备
IP地址指定网络设备的IP地址

3.6.4 ss命令

显示活动套接字信息

ss是Socket Statistics的缩写。ss命令用来显示处于活动状态的套接字信息。它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。

语法格式:ss [参数]

常用参数:

-n不解析服务名称,已数字方式显示
-a显示所有套接字
-l显示处于监听状态的套接字
-o显示计时器信息
-e显示详细的套接字信息
-m显示套接字的内存使用情况
-p显示使用套接字的进程
-i显示内部的TCP信息
-s显示套接字使用概况
-4仅显示ipv4的套接字
-6仅显示ipv6的套接字
-0显示PACKET套接字
-t只显示TCP套接字
-u只显示UDP套接字
-d只显示DCCP套接字
-w只显示RAW套接字
-x只显示 Unix套接字
-D将原始TCP套接字信息转储到文件

3.6.5 ipcalc命令

简单的IP地址计算器

ipcalc命令的全称是:Calculate IP information for a host(计算主机的IP信息)

ipcalc命令是一个简单的ip地址计算器,可以完成简单的IP地址计算任务。

语法格式: ipcalc [参数] [IP地址]
[root@GuoJiafeng01 ~]# ipcalc -h 192.168.123.129
HOSTNAME=guojiafeng01

常用参数:

-b由给定的IP地址和网络掩码计算出广播地址
-h显示给定IP地址所对应的主机名
-m由给定的IP地址计算器网络掩码
-p显示给定的掩码或IP地址的前缀
-n由给定的IP地址和网络掩码计算网络地址
-s安静模式,不显示任何错误信息
–help显示帮助信息

3.7 设备管理

3.7.1 mount命令

文件系统挂载

mount命令用于加载文件系统到指定的加载点。此命令的最常用于挂载cdrom,使我们可以访问cdrom中的数据,因为你将光盘插入cdrom中,Linux并不会自动挂载,必须使用Linux mount命令来手动完成挂载。

语法格式:mount [参数]

常用参数:

-t指定挂载类型
-l显示已加载的文件系统列表
-h显示帮助信息并退出
-V显示程序版本
-n加载没有写入文件“/etc/mtab”中的文件系统
-r将文件系统加载为只读模式
-a加载文件“/etc/fstab”中描述的所有文件系统

3.7.2 setleds命令

设定键盘上方三个LED的状态

setleds即是英文词组“set leds”的合并,翻译为中文就是设置LED灯。setleds命令用来设定键盘上方三个 LED 灯的状态。在 Linux 中,每一个虚拟主控台都有独立的设定。

这是一个十分神奇的命令,竟然可以通过命令来控制键盘的灯的状态。

语法格式:setleds [参数]

常用参数:

-F设定虚拟主控台的状态
-D改变虚拟主控台的状态和预设的状态
-L直接改变 LED 显示的状态
+num/-num将数字键打开或关闭
+caps/-caps把大小写键打开或关闭
+scroll /-scroll把选项键打开或关闭

3.7.3 loadkeys命令

改变lInux键盘驱动程序

loadkeys命令可以根据一个键盘定义表改变 linux 键盘驱动程序转译键盘输入过程。

语法格式:loadkeys [参数] [文件]

常用参数:

-v印出详细的资料,你可以重复以增加详细度
-q不要显示任何讯息
-c清除所有 composite 定义
-s将定串定义表清除

3.8 备份压缩

3.8.1 unarj命令

解压 unarj

unarj命令用于解压缩.arj文件。

语法格式:unarj [参数] [.arj压缩文件]

常用参数:

-e解压缩.arj文件
-l显示压缩文件内所包含的文件
-t检查压缩文件是否正确
-x解压缩时保留原有的路径

3.8.2 compress命令

unix 档案压缩命令

compress命令是一个相当古老的 unix 档案压缩指令,压缩后的档案会加上一个 .Z 延伸档名以区别未压缩的档案,压缩后的档案可以以 uncompress 解压。若要将数个档案压成一个压缩档,必须先将档案 tar 起来再压缩。由于 gzip 可以产生更理想的压缩比例,一般人多已改用 gzip 为档案压缩工具。

语法格式: compress [参数]

常用参数:

-c输出结果至标准输出设备(一般指荧幕)
-f强迫写入档案,若目的档已经存在,则会被覆盖 (force)
-v将程序执行的讯息印在荧幕上 (verbose)
-b设定共同字串数的上限,以位元计算,可以设定的值为 9 至 16 bits 。由于值越大,能使用的共同字串就 越多,压缩比例就越大,所以一般使用预设值 16 bits (bits)
-d将压缩档解压缩
-V列出版本讯息

3.8.3 zipinfo命令

查看压缩文件信息

zipinfo命令的全称为“zip information”,该命令用于列出压缩文件信息。执行zipinfo指令可得知zip压缩文件的详细信息。

语法格式:zipinfo [参数]

常用参数:

-1只列出文件名称
-2此参数的效果和指定”-1″参数类似,但可搭配”-h”,”-t”和”-z”参数使用
-h只列出压缩文件的文件名称
-l此参数的效果和指定”-m”参数类似,但会列出原始文件的大小而非每个文件的压缩率
-m此参数的效果和指定”-s”参数类似,但多会列出每个文件的压缩率
-M若信息内容超过一个画面,则采用类似more指令的方式列出信息
-s用类似执行”ls -l”指令的效果列出压缩文件内容
-t只列出压缩文件内所包含的文件数目,压缩前后的文件大小及压缩率
-T将压缩文件内每个文件的日期时间用年,月,日,时,分,秒的顺序列出
-v详细显示压缩文件内每一个文件的信息
-x<范本样式>不列出符合条件的文件的信息
-z如果压缩文件内含有注释,就将注释显示出来

3.8.4 uudecode命令

还原档案

uudecode命令将uuencode编码后的档案还原,uudecode只会将begin与end标记之间的编码资料还原,程序会跳过标记以外的资料。

语法格式:uuencode [参数]

常用参数:

h列出指令使用格式
v列出版本讯息

3.8.4 zipsplit命令

分割压缩包

zipsplit命令用于将较大的“zip”压缩包分割成各个较小的“zip”压缩包。

语法格式:zipsplit [参数]

常用参数:

-n指定分割后每个zip文件的大小
-t报告将要产生的较小的zip文件的大小
-b指定分割后的zip文件的存放位置

3.8.5 gzip命令

压缩和解压文件

gzip命令的英文是“GNUzip”,是常用来压缩文件的工具,gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多处“.gz”扩展名。

gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。gzip不仅可以用来压缩大的、较少使用的文件以节省磁盘空间,还可以和tar命令一起构成Linux操作系统中比较流行的压缩文件格式。据统计,gzip命令对文本文件有60%~70%的压缩率。减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。

语法格式:gzip [参数]

常用参数:

-a使用ASCII文字模式
-d解开压缩文件
-f强行压缩文件
-l列出压缩文件的相关信息
-c把压缩后的文件输出到标准输出设备,不去更动原始文件
-r递归处理,将指定目录下的所有文件及子目录一并处理
-q不显示警告信息

3.8.6 bzip2命令

bz2的文件压缩程序

Linux系统中bzip2命令的英文是“bunzip2”,即.bz2文件格式的压缩程序; bzip2命令系统默认是没有安装的,需要安装bzip2库才可以使用此命令。

bzip2命令采用新的压缩演算法,压缩效果比传统的LZ77/LZ78压缩演算法来得好。若没有加上任何参数,bzip2压缩完文件后会产生.bz2的压缩文件,并删除原始的文件。

语法格式:bzip2 [参数] 文件系统

常用参数:

-c将压缩与解压缩的结果送到标准输出
-d执行解压缩
-fbzip2在压缩或解压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。若要覆盖,请使用此参数
-kbzip2在压缩或解压缩后,会删除原始的文件。若要保留原始文件,请使用此参数
-s降低程序执行时内存的使用量
-t测试.bz2压缩文件的完整性
-v压缩或解压缩文件时,显示详细的信息
-z强制执行压缩

3.8.7 unzip命令

解压缩zip文件

unzip命令是用于.zip格式文件的解压缩工具 ,unzip命令将列出、测试或从zip格式存档中提取文件,这些文件通常位于MS-DOS系统上。

默认行为(就是没有选项)是从指定的ZIP存档中提取所有的文件到当前目录(及其下面的子目录)。一个配套程序zip(1L)创建ZIP存档;这两个程序都与PKWARE的PKZIP和PKUNZIP为MS-DOS创建的存档文件兼容,但许多情况下,程序选项或默认行为是不同的。

语法格式:unzip [参数] [文件]

常用参数:

-l显示压缩文件内所包含的文件
-v执行时显示详细的信息
-c将解压缩的结果显示到屏幕上,并对字符做适当的转换
-n解压缩时不要覆盖原有的文件
-j不处理压缩文件中原有的目录路径

3.8.8 tar 命令

tar -zxvf

格式:
tar[必要参数][选择参数][文件] 

常用参数

-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件

这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。

-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出

下面的参数-f是必须的

-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。

常用命令

tar 
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName

.tar.gz 和 .tgz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName

3.9 其他命令

3.9.1 rmmod命令

删除模块

rmmod即“remove module”的简称,rmmod命令用于删除模块。 执行rmmod命令,可删除不需要的模块。Linux操作系统的核心具有模块化的特性,因此在编译核心时,不需要吧全部功能都放入核心,可以将这些功能编译成一个个单独的模块,待有需要时再分别载入它们。

语法格式:rmmod [参数] [模块名称]

常用参数:

-a删除所有目前不需要的模块
-s把信息输出至syslog常驻服务,而非终端机界面
-v显示指令执行的详细信息
-f强制移除模块,使用此选项比较危险
-w等待着,知道模块能够被除时再移除模块

3.9.2 bc命令

浮点运算

bc的英文全拼为“ Binary Calculator ”,是一种支持任意精度的交互执行的计算器语言。bash内置了对整数四则运算的支持,但是并不支持浮点运算,而bc命令可以很方便的进行浮点运算,当然整数运算也不再话下。

语法格式:bc [选项]

常用参数:

-i强制进入交互式模式
-l定义使用的标准数学库
-w定义使用的标准数学库
-q打印正常的GNU bc环境信息

四、Linux 桌面环境

本课程中以Cntos 为例,在此基础上为其安装桌面环境

安装GNOME桌面

其实在Linux中有很多桌面,GNOME作为其中一种,本次课程中安装桌面并不在实际课程中使用,只作为了解

yum groupinstall "X Window System"

yum  groupinstall "Desktop"

yum groupinstall "Chinese Support" 

安装完成后,直接重启

启动GNOME桌面

startx

默认启动图形化界面

修改/etc/inittab文件中的

id:3:initdefault , 将3改为5 ,重新启动系统;

完整版安装

上述方法是安装精简版的桌面,其实可以在安装系统的时候直接安装桌面,但是大家在选择镜像的时候需要注意不是Minimal版本而是Everything版本

课程资源中提供了相关ISO镜像文件,名称为:CentOS-6.10-x86_64-bin-DVD1.iso,选择此完整版镜像即可直接安装桌面。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JS5U8BFW-1577524581426)(assets/1560491599863.png)]

五、Linux 开发环境

以CentOS 桌面环境为例,一般Linux下开发Ubuntu比较合适

5.1 Java

5.2 Mysql

5.3 Tomcat

5.4 IDEA

5.5 Chrome

5.6 Maven

5.7 Git

六、Linux Script

所有安装基础在于本地已经有相关的安装软件或者解压缩软件,并存放在root目录下的app目录下。

百度网盘链接:

链接:https://pan.baidu.com/s/1z0B5jeTNgSjF6-wfQhd-Hw
提取码:rcs4
复制这段内容后打开百度网盘手机App,操作更方便哦

6.1 Java一建安装

安装Oracle JDK 区别于Open JDK ,自动配置环境变量

 bash <(curl -s -k -L https://raw.githubusercontent.com/GuoJiafeng/ShellScript/master/src/main/resources/onekeyInstall/javaInstaller.sh)

6.2 Mysql一键安装

安装时设置密码,打开远程连接权限

bash <(curl -s -k -L https://raw.githubusercontent.com/GuoJiafeng/ShellScript/master/src/main/resources/onekeyInstall/mysqlInstaller.sh)

6.3 Tomcat 一键安装

自动配置环境变量

bash <(curl -s -k -L https://raw.githubusercontent.com/GuoJiafeng/ShellScript/master/src/main/resources/onekeyInstall/tomcatInstaller.sh)

6.4 Maven 一键安装

自动配置环境变量

 bash <(curl -s -k -L https://raw.githubusercontent.com/GuoJiafeng/ShellScript/master/src/main/resources/onekeyInstall/mavenInstaller.sh)

七、Yum相关

7.1 介绍

yum,是Yellow dog Updater Modified的简称,起初是由yellow dog这一发行版的开发者Terra Soft研发,用python写成,那时还叫做yup(yellow dog updater),后经杜克大学的Linux@Duke开发团队进行改进,遂有此名。yum的宗旨是自动化地升级,安装/移除rpm包,收集rpm包的相关信息,检查依赖性并自动提示用户解决。yum的关键之处是要有可靠的repository,顾名思义,这是软件的仓库,它可以是http或ftp站点, 也可以是本地软件池,但必须包含rpm的header, header包括了rpm包的各种信息,包括描述,功能,提供的文件,依赖性等.正是收集了这些 header并加以分析,才能自动化地完成余下的任务。它能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。自己本身也可以做yum服务器,本身可以根据光盘镜像做yum服务器。

简而言之:yum为用户提供软件包管理,并在安装的时候自动下载依赖,但是如果本地以及远程仓库中都没有软件源,则软件的安装将无法继续。

7.2 yum源相关

yum源的问题也就是yum去哪里去下载rpm软件包的问题,默认的远程仓库由于地域限制,下载网速比较慢(当然是能用的),有两种解决办法:1 更换为本地源 2 更换为国内源

7.2.1 本地yum源(不能上网)

详情可参考 https://blog.csdn.net/weixin_37490221/article/details/80848564

优点:快、脱机操作
缺点:软件不能得到更新,制作本地yum源麻烦

7.2.2 远程yum源(能够访问外网)

对于国内用户的话当然是首推163的yum源,http://mirrors.163.com/.help/centos.html(注意次数是centos版本的yum源)

备份本地原有的源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
下载对应版本repo文件

放入/etc/yum.repos.d/(操作前请做好相应备份)

运行命令生成缓存
yum clean all
yum makecache

7.2.3 阿里云源

将原来的centos源进行备份
将阿里云的源文件下载到对应的位置--/etc/yum.repos.d
源链接:http://mirrors.aliyun.com/repo/Centos-6.repo

7.3 yum软件

下文中提到的软件能够使用yum安装,同样也能够使用其他方式安装,yum一般来说安装一些通用的环境,比如说wget curl gcc telnet等等,这里与其说介绍yum软件,不如说介绍linux下的软件生态。

7.3.1 wget

下载工具 指令参考: https://www.cnblogs.com/semonxv/p/3816366.html

Linux wget是一个下载文件的工具,它用在命令行下。对于Linux用户是必不可少的工具,尤其对于网络管理员,经常要下载一些软件或从远程服务器恢复备份到本地服务器。如果我们使用虚拟主机,处理这样的事务我们只能先从远程服务器下载到我们电脑磁盘,然后再用ftp工具上传到服务器。这样既浪费时间又浪费精力,那不没办法的事。而到了Linux VPS,它则可以直接下载到服务器而不用经过上传这一步。wget工具体积小但功能完善,它支持断点下载功能,同时支持FTP和HTTP下载方式,支持代理服务器和设置起来方便简单。

7.3.2 scp

指令参考:https://www.runoob.com/linux/linux-comm-scp.html

Linux scp命令用于Linux之间复制文件和目录。
scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。

7.3.3 telnet

发送消息的客户端

Telnet协议是TCP/IP协议家族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法。

7.3.4 编译环境

gcc/g++,gdb 是Linux下基础源码编译环境

编译环境可以直接使用yum进行安装,也可以手动下载安装。

yum install  gcc  gcc-g++   gdb     

中都没有软件源,则软件的安装将无法继续。

7.2 yum源相关

yum源的问题也就是yum去哪里去下载rpm软件包的问题,默认的远程仓库由于地域限制,下载网速比较慢(当然是能用的),有两种解决办法:1 更换为本地源 2 更换为国内源

7.2.1 本地yum源(不能上网)

详情可参考 https://blog.csdn.net/weixin_37490221/article/details/80848564

优点:快、脱机操作
缺点:软件不能得到更新,制作本地yum源麻烦

7.2.2 远程yum源(能够访问外网)

对于国内用户的话当然是首推163的yum源,http://mirrors.163.com/.help/centos.html(注意次数是centos版本的yum源)

备份本地原有的源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
下载对应版本repo文件

放入/etc/yum.repos.d/(操作前请做好相应备份)

运行命令生成缓存
yum clean all
yum makecache

7.2.3 阿里云源

将原来的centos源进行备份
将阿里云的源文件下载到对应的位置--/etc/yum.repos.d
源链接:http://mirrors.aliyun.com/repo/Centos-6.repo

7.3 yum软件

下文中提到的软件能够使用yum安装,同样也能够使用其他方式安装,yum一般来说安装一些通用的环境,比如说wget curl gcc telnet等等,这里与其说介绍yum软件,不如说介绍linux下的软件生态。

7.3.1 wget

下载工具 指令参考: https://www.cnblogs.com/semonxv/p/3816366.html

Linux wget是一个下载文件的工具,它用在命令行下。对于Linux用户是必不可少的工具,尤其对于网络管理员,经常要下载一些软件或从远程服务器恢复备份到本地服务器。如果我们使用虚拟主机,处理这样的事务我们只能先从远程服务器下载到我们电脑磁盘,然后再用ftp工具上传到服务器。这样既浪费时间又浪费精力,那不没办法的事。而到了Linux VPS,它则可以直接下载到服务器而不用经过上传这一步。wget工具体积小但功能完善,它支持断点下载功能,同时支持FTP和HTTP下载方式,支持代理服务器和设置起来方便简单。

7.3.2 scp

指令参考:https://www.runoob.com/linux/linux-comm-scp.html

Linux scp命令用于Linux之间复制文件和目录。
scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。

7.3.3 telnet

发送消息的客户端

Telnet协议是TCP/IP协议家族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法。

7.3.4 编译环境

gcc/g++,gdb 是Linux下基础源码编译环境

编译环境可以直接使用yum进行安装,也可以手动下载安装。

yum install  gcc  gcc-g++   gdb     
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明月清风,良宵美酒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值