一、入门
1.概述
(1)Linux是什么
Linux是一个操作系统(OS)
(2)Linux的诞生
李纳斯·托瓦兹(Linux Torvalds)
上大学期间,对Unix产生了浓厚兴趣
1991年初,开始基于Minix(Unix的变种)进行开发
1991年6月,确定开发一个类Unix操作系统内核
1991年9月,开发完成内核的0.01版本,命名为Linux
(3)Linux和Unix的渊源
(4)GNU/Linux
(5)Linux的发行版
(6)Linux VS Windows
特点比较 | Windows | Linux |
---|---|---|
费用 | 收费且很贵 | 免费或少许收费 |
软件与支持 | 数量和质量都有优势,不过大部分为收费软件;由微软官方提供支持和服务 | 开源自由软件,用户可以修改定制和再发布,由于基本免费没有资金支持,部分软件质量和体验欠缺; 由全球所有的Linux开发者和自由软件社区提供支持 |
安全性 | 三天两头打补丁安装系统更新,还是会中病毒木马 | 要说Linux没有安全问题,那当然是不可能的; 相对来说,肯定比Windows平台要更加安全 |
使用习惯 | 基本都是纯图形界面下操作使用,依靠鼠标和键盘完成一切操作; 用户上手容易,入门简单 | 兼具图形界面操作和完全的命令行操作,可以只用键盘完成一切操作; 新手入门较困难,需要一些学习和指导,一旦熟练之后效率极高 |
可定制性 | 封闭的,系统可定制性很差 | 开源,可定制性非常强 |
应用场景 | 个人电脑桌面操作系统主要是Windows | 服务器操作系统主要是Linux; 世界上大部分软件和服务都是运行在Linux之上的。 |
2.安装
Linux发行版CentOS安装
下载
选择架构(一般电脑是x86_64)
镜像下载(选择离自己最近的地方)
虚拟机Vmware安装
专业版
下载
选择对应的系统下载
创建新的虚拟机
二、基础
1.文件与目录结构
快捷键(基于CentOS):
ctrl+alt+F2/…/F6 打开shell控制台(可同时打开多个控制台)
ctrl+alt 鼠标从VMware中退出
[ 用户名@主机名 ~(当前目录位置)] #(输入命令提示符,root超级管理员为#,普通用户为$)
终端命令:
ls(list) 把当前目录下所有文件、文件夹列出
exit 退出当前终端
(1)Linux文件
Linux系统中一切皆文件
(2)Linux目录结构
下方带有箭头的文件夹其实是一个跳转链接,我们把它当成文件系统的一部分
目录:
/bin(binary) 二进制的命令目录,里面存放直接可以执行的常用命令文件
/sbin(system binary) 系统级的二进制的命令目录,里面存放超级管理员能用的命令
/lib(library) 库目录,里面存放系统和应用程序所需要的一些共享库文件,类似于windows里的dll文件(动态链接库)
/lib64 64位相关的比较特殊的库文件,和/lib关系类似windows的system和system32
/usr 包含用户的所有的应用程序和所需要的文件和数据
/boot 挂载的引导分区存放处,引导启动所需要的文件和一些核心文件,包括一些链接文件和映像文件
/dev(device) 设备目录,当前管理所有设备的文件
/etc 存放系统管理所需要的配置文件和对应的一些子目录
/home 存放每一个普通用户自己相关的一些个性化的数据、文件
/root 系统超级管理员的主目录
/opt(optional) 可选目录,Linux给第三方软件包留下的位置
/media 媒体目录,可移动媒体设备挂载点,识别一些可移动媒体设备——U盘、光驱······挂载到这里
/mnt(mount) 也是一个挂载目录和/meidia类似
/proc(process) 进程目录,虚拟目录,相当于系统内存里进程的一个映射,存放现有的一些硬件和当前进程的信息
/run 运行目录,存放当前系统运行以来的所有实时信息,重启后内容消失
/srv(service) 存放跟系统服务相关的一些东西
/sys(system) 存放系统硬件信息的相关文件
/tmp(temporary) 临时目录,临时存放的东西
/var(variable) 可变目录,存放一些不断会扩充变化的东西,如各种各样的日志
终端命令:
cd(change directory) 切换目录路径 (后面跟上切换到的路径,单独/表示根目录)
2.VI/VIM编辑器
(1)vi/vim是什么
VI是Unix操作系统和类Unix操作系统中最通用的文本编辑器。
VIM编辑器是从VI发展出来的一个性能更强大的文本编辑器。可以主动的以字体颜色辨别语法的正确性,方便程序设计。VIM与VI编辑器完全兼容。
终端命令:
vim 进入vim编辑器
vi 进入vi编辑器
(输入目的路径前几个字符按tab键自动填入剩余内容)
中文输入:
在应用程序找到系统工具,找到设置
添加如下内容
之后按住 win+空格 键即可修改输入方式
(2)模式
一般模式常用语法
语法 | 功能描述 |
---|---|
yy | 复制光标当前一行 |
y数字y | 复制一段(从光标当前行到后n行) |
p | 箭头移动到目的行粘贴 |
u | 撤销上一步 |
dd | 删除光标当前行 |
d数字d | 删除光标(含)后多少行 |
x | 剪切一个字符(当前光标),相当于del |
X | 剪切一个字符(当前光标的前一个),相当于Backspace |
yw | 复制一个词 |
dw | 删除一个词 |
shift+6(^) | 移动到行头 |
shift+4($) | 移动到行尾 |
w | 移动到下一个词(词头位置) |
e | 移动到当前词尾 |
1+G | 移动到页头,数字 |
G | 移动到页尾 |
数字+G | 移动到目标行 |
编辑模式常用语法
进入编辑模式
按键 | 功能 |
---|---|
i | 当前光标前 |
a | 当前光标后 |
o | 当前光标行的下一行 |
I | 光标所在行最前 |
A | 光标所在行最后 |
O | 当前光标行的上一行 |
退出编辑模式
按esc键
指令模式基本语法
命令 | 功能 |
---|---|
:w | 保存 |
:q | 退出 |
:wq | 保存并提出 |
:q! | 不保存强制退出 |
/要查找的词 | n查找下一个,N往上查找 |
:noh | 取消高亮显示 |
:set nu | 显示行号 |
:set nonu | 关闭行号 |
:s/old/new | 替换当前行匹配到的第一个old为new |
:s/old/new/g | 替换当前行匹配到的所有old为new |
:%s/old/new | 替换文档中每一行匹配到的第一个old为new |
:%s/old/new/g | 替换文档中匹配到的所有old为new |
3.网络配置
快捷键:
ctrl+shift+v 粘贴
ctrl+shift+c 复制
方向键上 上一条命令
终端命令:
ping 检测两台机器之间是否能够正常通信
ifconfig(“network interfaces configuring) 获取网络接口配置
service network restart 重启网络
VMware提供了三种网络连接模式:
- 桥接模式:
虚拟机直接连接外部物理网络的模式,主机起到了网桥的作用。这种模式下,虚拟机可以直接访问外部网络,并且对外部网络是可见的。 - NAT(Network Address Translator)模式:
虚拟机和主机构建一个专用网络,并通过虚拟网络地址转换(NAT)设备对IP进行转换.虚拟机通过共享主机IP可以访问外部网络,但外部网络无法访问虚拟机。 - 仅主机模式:
虚拟机只与主机共享一个专用网络,与外部网络无法通信。
修改虚拟机ip为静态地址:
用vim打开配置文件
修改为如下配置(网关、域名解析器需和VMware虚拟网络编辑器中的配置一样)
:wq保存退出vim,终端命令service network restart重启网络,命令ifconfig查看修改成功与否
连接成功
修改IP地址后可能会遇到的问题
- 物理机能ping通虚拟机,但是虚拟机ping不通物理机,一般都是因为物理机的防火墙问题,把防火墙关闭就行
- 虚拟机能Ping通物理机,但是虚拟机Ping不通外网,一般都是因为DNS的设置有问题
- 虚拟机Ping www.baidu.com 显示域名未知等信息,一般查看GATEWAY和DNS设置是否正确
- 如果以上全部设置完还是不行,需要关闭NetworkManager服务
终端命令:
systemctl stop NetworkManager 关闭NetworkManager服务
systemctl disable NetworkManager 禁用NetworkManager服务 - 如果检查发现systemctl status network有问题,需要检查ifcfg-ens33
修改主机名
第一种方法:
使用hostname命令查看当前主机名,用vim打开/etc/hostname,在里面修改主机名,保存返回后已修改成功,不过再次查看发现主机名未变,需要重启才能查看到更新主机名
第二种方法:
利用hostnamectl命令查看当前主机名,执行命令hostnamectl set-hostname spark10,将主机名立即修改并可以立即查看
相互之间利用主机名通信设置:
用vim打开/etc/hosts,插入想要的添加的ip和主机名,保存退出即可
终端命令:
hostname 查看主机名
hostnamectl 查看和当前主机名有关的一些信息
hostnamectl set-hostname 主机名 直接修改主机名
4.系统管理
(1)Linux中的进程和服务
计算机中,一个正在执行的程序或命令,被叫做“进程”(process)。
启动之后一直存在、常驻内存的进程,一般被称作“服务”(service)。
(2)service 服务管理(CentOS 6 版本-了解)
- 基本语法
service 服务名 start | stop | restart | status - 经验技巧
查看服务的方法:/etc/init.d/ 服务名,发现只有两个服务保留在service
(3)systemctl(CentOS 7 版本-重点掌握)
- 基本语法
systemctl start | stop | restart | status 服务名 - 经验技巧
查看服务的方法:/usr/lib/systemd/system
终端命令:
setup 进入系统服务设置的图形化界面
系统服务设置
利用setup命令进入系统服务设置的图形化界面
选择系统服务,回车,看到相关服务,[ ]代表开机不自启,[ *]代表开机自启,在[ ]中选择相应服务按空格即可切换
(4)系统运行级别
CentOS7的运行级别简化为:
multi-user.target 等价于原运行级别3(多用户有网,无图形界面)
graphical.target 等价于原运行级别5(多用户有网,有图形界面)
终端命令:
systemctl get-default 查看当前运行级别
init 运行级别(数字) 设置当前运行级别
5.远程登录
基于ssh协议的远程登录方式
在windows环境打开cmd命令提示符,利用ssh(需要电脑有ssh功能)即可进行登录(该方式登录简单但功能有限)
通常在工作过程中,公司中使用的真实服务器或者是云服务器,都不允许除运维人员之外的员工直接接触,因此就需要通过远程登录的方式来操作。所以,远程登录工具就是必不可缺的,目前,比较主流的有Xshell,SSH Secure Shell,SecureCRT,FinalShell等,可以根据自己的习惯自行选择
Xshell、Xftp免费版网址:https://www.xshell.com/zh/free-for-home-school/
Xshell:远程登陆,可执行Linux命令
Xftp:远程传输文件
(5)关机重启命令
在linux领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。
终端命令:
sync 将数据由内存同步到硬盘中
halt 停机,关闭系统,但不断电
poweroff 关机,断电
reboot 就是重启,等同于shutdown -r now
shutdown [选项] [参数] 关机命令
选项 | 功能 |
---|---|
-H | 相当于–halt,停机 |
-r | -r=reboot重启 |
参数 | 功能 |
---|---|
now | 立刻关机 |
时间 | 等待多久后关机(时间单位是分钟) |
经验技巧:
Linux系统中为了提高磁盘的读写效率,对磁盘采取了“预读迟写”操作方式。当用户保存文件时,Linux核心并不一定立即将保存数据写入物理磁盘中,而是将数据保存在缓冲区中,等缓冲区满时再写入磁盘,这种方式可以极大的提高磁盘写入数据的效率。但是,也带来了安全隐患,如果数据还未写入磁盘时,系统掉电或者其他严重问题出现,则将导致数据丢失。使用sync指令可以立即将缓冲区的数据写入磁盘。
三、实操
1.文件目录类
2.时间日期类
3.用户管理类
4.文件权限类
5.磁盘分区类
6.进程线程类
四、扩展
1.软件包管理
(1)RPM
概述
RPM(RedHat Package Manager),RedHat软件包管理工具,类似windows里面的setup.exe
是Linux这系列操作系统里面的打包安装工具,它虽然是RedHat的标志,但理念是通用的。
名称格式
Apache-1.3.23-11.i386.rpm
- “apache”软件名称
- “1.3.23-11”软件的版本号,主版本和此版本
- “i386”是软件所运行的硬件平台,Intel 32位处理器的统称
- “rpm”文件扩展名,代表RPM包
查询命令(rpm -qa)
- 基本语法
rpm -qa (功能描述:查询所安装的所有rpm软件包)
rpm -qi (功能描述:查询所安装的rpm软件包的详细信息) - 经验技巧
由于软件包比较多,一般都会采取过滤。rpm -qa | grep rpm软件包 - 案例实操
查询firefox软件安装情况
查看firefox的详细信息
卸载命令(rpm -e)
- 基本语法
rpm -e RPM软件包
rpm -e --nodeps 软件包 - 选项说明
选项 | 功能 |
---|---|
-e | 卸载软件包 |
–nodeps | 卸载软件时,不检查以来。这样的话,那些使用该软件包的软件在此之后可能就不能正常工作了。 |
安装命令(rpm -ivh)
- 基本语法
rpm -ivh RPM包全名 - 选项说明
选项 | 功能 |
---|---|
-i | install,安装 |
-v | –verbose,显示详细信息 |
-h | –hash,进度条 |
–nodeps | 安装前不检查依赖 |
(2)YUM仓库配置
概述
YUM(全称为Yellow dog Updater,Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装
常用命令
- 基本语法
yum [选项] [参数] - 选项说明
选项 | 功能 |
---|---|
-y | 对所有提问都回答yes |
- 参数说明
参数 | 功能 |
---|---|
install | 安装rpm软件包 |
update | 更新rpm软件包 |
check-update | 检查是否有可用的更新rpm软件包 |
remove | 删除指定的rpm软件包 |
list | 显示软件包信息 |
clean | 清理yum过期的缓存 |
deplist | 显示yum软件包的所有依赖关系 |
修改网络YUM源
默认的系统YUM源,需要连接国外apache网站,网速比较慢,可以修改关联的网络YUM源为国内镜像的网站,比如网易163,aliyun等
-
安装wget,wget用来从指定的URL下载文件
-
在/etc/yum.repos.d/目录下,备份默认的repos文件
-
下载网易163或者是aliyun的repos文件,任选其一
-
使用下载好的repos文件替换默认的repos文件
例如:用CentOS7-Base-163.repo替换CentOS-Base.repo
-
清理旧缓存数据,缓存新数据
yum makecache
就是把服务器的包信息下载到本地电脑缓存起来 -
测试