一、Linux入门
1. Linux概述
- Linux内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。
- Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。Linux能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
- 目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debain、Fedora、SuSE、OpenSUSE。
2. Linux和Windows区别
3. CentOS和VMWare下载
4. 创建虚拟机
二、Linux文件与目录结构
1. Linux文件
- Linux的文件系统采用阶层式的树状目录结构.
- 最上层是根目录“/”。
- Linux 系统中一切皆文件。
2. Linux目录结构
/bin
: 是Binary的缩写,这个目录存放着最经常使用的命令。/sbin
:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。/home
:存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。/root
:该目录为系统管理员,也称作超级权限者的用户主目录。/lib
:系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。/lost+found
:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。/etc
:所有的系统管理所需要的配置文件和子目录。/usr/local
:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。/boot
:存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。/proc
:这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息。/srv
:service的缩写,该目录存放一些服务启动之后需要提供的数据。/sys
:这是linux2.6内核的一个很大的变化,该目录下安装了2.6内核中新出现的一个文件系统sysfs。/tmp
:这个目录是用来存放一些临时文件的。/dev
:类似windows的设备管理器,把所有的硬件用文件的形式存储。- /
media(CentOS6
):linux系统会自动识别一些设备,例如U盘光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。CentOS7迁移到/run/media。/mnt
:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里面的内容了。/opt
:这是给主机额外安装软件所摆放的目录,如安装mysql数据库就可放到该目录下。默认为空。/usr/local
:这是另一个给主机额外安装软件所安装的目录,一般是通过编译源码的方式安装的程序。/var
:这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下,包括各种日志文件。/selinux
:SELinux是一种安全子系统,它能控制程序只能访问特定文件。
三、VI/VIM编辑器
1. VI/VIM是什么
- VI 是 Unix 操作系统和类 Unix 操作系统中最通用的文本编辑器。
- VIM 编辑器是从 VI 发展出来的一个性能更强大的文本编辑器。可以主动的以字体颜色辨别语法的正确性,方便程序设计。VIM 与 VI 编辑器完全兼容。
2. VI/VIM的三种模式
2.1 一般模式
用户刚刚启动 vi/vim,便进入了正常模式。此状态下敲击键盘动作会被vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。
常用语法
语法 | 功能描述 |
---|---|
yy | 复制光标当前一行 |
y 数字 y | 复制一段(从第几行到第几行) |
p | 箭头移动到目的行粘贴 |
u | 撤销上一步 |
dd | 删除光标当前行 |
d 数字 d | 删除光标(含)后多少行 |
x | 剪切一个字母,相当于 del |
X | 剪切一个字母,相当于 Backspace |
yw | 复制一个词 |
dw | 删除一个词 |
shift+6(^) | 移动到行头 |
shift+4 ($) | 移动到行尾 |
1+shift+g | 移动到页头,数字 |
shift+g | 移动到页尾 |
数字+shift+g | 移动到目标行 |
2.2 编辑模式
在一般模式中可以进行删除、复制、粘贴等的动作,但是却无法编辑文件内容的,要等到按下[i, I, o, O, a, A]等任何一个字母之后才会进入编辑模式。
通常在Linux中,按下这些按键时,在画面的左下方会出现[INSERT或REPLACE]的字样,此时才可以进行编辑。而如果要回到一般模式时,则必须要按下[Esc]这个按键即可退出编辑模式。
(1) 进入编辑模式
常用语法
按键 | 功能 |
---|---|
i | 当前光标前 |
a | 当前光标后 |
o | 当前光标行的下一行 |
I | 光标所在行最前 |
A | 光标所在行最后 |
O | 当前光标行的上一行 |
(2)退出编辑模式
按『Esc』键退出编辑模式,之后所在的模式为一般模式。
2.3 指令模式
在一般模式当中,输入[: / ?]3个中的任何一个按钮,就可以将光标移动到最底下那一行。
在这个模式当中,可以提供[搜寻资料]的动作,而读取、存盘、大量取代字符、离开 vi 、显示行号等动作是在此模式中达成的。
基本语法
命令 | 功能 |
---|---|
: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 |
2.4 模式间转换
四、网络配置
1. 查看网络IP和网关
(1)查看虚拟网络编辑器
(2)修改虚拟网卡 Ip
(3)查看网关
(4)查看 windows 环境的中 VMnet8 网络配置
2. 配置网络ip地址
2.1 ifconfig配置网络接口
ifconfig :network interfaces configuring
网络接口配置
(1)基本语法
ifconfig
(显示所有网络接口的配置信息)
(2)案例实操
查看当前网络ip
[root@hadoop100 桌面]# ifconfig
2.2 ping测试主机之间网络连通性
(1)基本语法
ping 目的主机
(测试当前服务器是否可以连接目的主机)
(2)案例实操
测试当前服务器是否可以连接百度
[root@hadoop100 桌面]# ping www.baidu.com
2.3 修改IP地址
(1)查看 IP 配置文件
[root@hadoop100 桌面]#vim /etc/sysconfig/network-scripts/ifcfg-ens33
(2)根据自身虚拟机IP等修改如下位置,编辑完后,按键盘 esc ,然后输入 :wq 回车即可。
(3)执行 service network restart 重启网络
2.4 修改IP地址后可能会遇到的问题
(1)物理机能ping通虚拟机,但是虚拟机ping不通物理机,一般都是因为物理机的防火墙问题,把防火墙关闭就行
(2)虚拟机能Ping通物理机,但是虚拟机Ping不通外网,一般都是因为DNS的设置有问题
(3)虚拟机Ping www.baidu.com 显示域名未知等信息,一般查看GATEWAY和DNS设置是否正确
(4)如果以上全部设置完还是不行,需要关闭NetworkManager服务
systemctl stop NetworkManager 关闭
systemctl disable NetworkManager 禁用
(5)如果检查发现systemctl status network有问题,需要检查ifcfg-ens33
3. 配置主机名
3.1 修改主机名称
(1) 基本语法
hostname
(查看当前服务器的主机名称)
(2) 案例实操
- 查看当前服务器主机名称
[root@hadoop100 桌面]# hostname
- 如果感觉此主机名不合适,我们可以通过编辑/etc/hostname 文件进行修改。
[root@hadoop100 桌面]# vi /etc/hostname
- 修改完成后重启生效。
3.2 修改hosts映射文件
(1) 修改 linux 的主机映射文件(hosts 文件)后续在 hadoop 阶段,虚拟机会比较多,配置时通常会采用主机名的方式配置,比较简单方便,不用刻意记 ip 地址。
- 打开/etc/hosts
[root@hadoop100 桌面]# vim /etc/hosts
- 添加如下内容
192.168.2.100 hadoop100
192.168.2.101 hadoop101
192.168.2.102 hadoop102
192.168.2.103 hadoop103
192.168.2.104 hadoop104
192.168.2.105 hadoop105
- 重启设备,重启后,查看主机名,已经修改成功
(2) 修改 windows 的主机映射文件(hosts 文件)
- 进入 C:\Windows\System32\drivers\etc 路径
- 打开 hosts 文件并添加如下内容
192.168.2.100 hadoop100
192.168.2.101 hadoop101
192.168.2.102 hadoop102
192.168.2.103 hadoop103
192.168.2.104 hadoop104
192.168.2.105 hadoop105
(3) 修改 windows10 的主机映射文件(hosts 文件)
- 进入 C:\Windows\System32\drivers\etc 路径
- 拷贝 hosts 文件到桌面
- 打开桌面 hosts 文件并添加如下内容
192.168.2.100 hadoop100
192.168.2.101 hadoop101
192.168.2.102 hadoop102
192.168.2.103 hadoop103
192.168.2.104 hadoop104
192.168.2.105 hadoop105
- 将桌面 hosts 文件覆盖 C:\Windows\System32\drivers\etc 路径 hosts 文件
五、系统管理
1. Linux中的进程和服务
计算机中,一个正在执行的程序或命令,被叫做“进程”(process)。
启动之后一直存在、常驻内存的进程,一般被称作“服务”(service)。
2. service服务管理(CentOS 6版本)
(1) 基本语法
service 服务名 start | stop |· restart | status
查看服务的方法:/etc/init.d/服务名
(2) 案例实操
- 查看网络服务的状态
[root@hadoop100 桌面]#service network status
- 停止网络服务
[root@hadoop100 桌面]#service network stop
- 启动网络服务
[root@hadoop100 桌面]#service network start
- 重启网络服务
[root@hadoop100 桌面]#service network restart
3. chkconfig设置后台服务的自启配置(CentOS 6版本)
(1) 基本语法
chkconfig
(查看所有服务器自启配置)
chkconfig 服务名 off
(关掉指定服务的自动启动)
chkconfig 服务名 on
(开启指定服务的自动启动)
chkconfig 服务名 --list
(查看服务开机启动状态)
(2) 案例实操
- 开启/关闭 network(网络)服务的自动启动
[root@hadoop100 桌面]#chkconfig network on
[root@hadoop100 桌面]#chkconfig network off
- 开启/关闭 network 服务指定级别的自动启动
[root@hadoop100 桌面]#chkconfig --level 指定级别 network on
[root@hadoop100 桌面]#chkconfig --level 指定级别 network off
4. systemctl服务管理
CentOS7采用systemd管理,服务独立的运行在内存中,服务响应速度快,但占用更多内存。独立服务的服务启动脚本都在目录/usr/lib/systemd/system里。systemd的新特性:
- 系统引导时实现服务的并行启动;
- 按需激活进程;
- 系统实现快照;
- 基于依赖关系定义服务的控制逻辑;
systemctl可用于内省和控制“systemd”系统和服务管理器的状态。
(1) 基本语法
systemctl start | stop | restart | status 服务名
指令管理的服务在 /usr/lib/systemd/system
查看服务的方法:/usr/lib/systemd/system
(2) 案例实操
- 查看防火墙服务的状态
[root@hadoop100 桌面]# systemctl status firewalld
- 停止防火墙服务
[root@hadoop100 桌面]# systemctl stop firewalld
- 启动防火墙服务
[root@hadoop100 桌面]# systemctl start firewalld
- 重启防火墙服务
[root@hadoop100 桌面]# systemctl restart firewalld
5. systemctl设置后台服务的自启配置
(1) 基本语法
systemctl list-unit-files
(查看服务开机启动状态)
systemctl disable service_name
(关掉指定服务的自动启动)
systemctl enable service_name
(开启指定服务的自动启动)
(2) 案例实操
- 开启/关闭 iptables(防火墙)服务的自动启动
[root@hadoop100 桌面]# systemctl enable firewalld.service
[root@hadoop100 桌面]# systemctl disable firewalld.service
6. 关闭防火墙
(1) 临时关闭防火墙
- 查看防火墙状态
[root@hadoop100桌面]# systemctl status firewalld
- 临时关闭防火墙
[root@hadoop100桌面]# systemctl stop firewalld
(2) 开机启动时关闭防火墙
- 查看防火墙开机启动状态
[root@hadoop100桌面]# systemctl enable firewalld.service
- 设置开机时关闭防火墙
[root@hadoop100桌面]# systemctl disable firewalld.service
7. 系统运行级别
(1) Linux 运行级别[CentOS 6]
(2)CentOS7 的运行级别简化为:
multi-user.target
等价于原运行级别 3(多用户有网,无图形界面)
graphical.target
等价于原运行级别 5(多用户有网,有图形界面)
(3) 查看当前运行级别:
systemctl get-default
(4)修改当前运行级别:
systemctl set-default TARGET.target
(这里 TARGET 取 multi-user 或者 graphical)
8. 关机重启命令
在 linux 领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。
(1) 基本语法
sync
(将数据由内存同步到硬盘中)
halt
(停机,关闭系统,但不断电)
poweroff
(关机,断电)
reboot
(就是重启,等同于 shutdown -r now)
shutdown [选项] 时间
选项 | 功能 |
---|---|
-H | 相当于–halt,停机 |
-r | -r=reboot 重启 |
参数 | 功能 |
---|---|
now | 立刻关机 |
时间 | 等待多久后关机(时间单位是分钟)。 |
(2)经验技巧
Linux 系统中为了提高磁盘的读写效率,对磁盘采取了“预读迟写”操作方式。当用户保存文件时,Linux
核心并不一定立即将保存数据写入物理磁盘中,而是将数据保存在缓冲区中,等缓冲区满时再写入磁盘,这种方式可以极大的提高磁盘写入数据的效率。但是,也带来了安全隐患,如果数据还未写入磁盘时,系统掉电或者其他严重问题出现,则将导致数据丢失。使用
sync 指令可以立即将缓冲区的数据写入磁盘。
(3)案例实操
- 将数据由内存同步到硬盘中
[root@hadoop100桌面]#sync
- 重启
[root@hadoop100桌面]# reboot
- 停机(不断电)
[root@hadoop100桌面]#halt
- 计算机将在 1 分钟后关机,并且会显示在登录用户的当前屏幕中
[root@hadoop100桌面]#shutdown -h 1 ‘This server will shutdown after 1 mins’
- 立马关机(等同于 poweroff)
[root@hadoop100桌面]# shutdown -h now
- 系统立马重启(等同于 reboot)
[root@hadoop100桌面]# shutdown -r now