概述
学了Linux可以干什么
Linux是什么
linux操作系统与windows,macOS并重
Linux基础篇
1、桌面和终端基础操作
-
进入终端:点击应用程序,从中选择系统工具,最下方可看到终端图标,点击进入终端
-
将图形化界面转换为命令行界面:同时点击ctrl+alt+F1~F6中任意(如果无法转换同时点击Fn键)
显示电脑文件目录:
[root ~]# ls
anaconda-ks.cfg 公共 视频 文档 音乐
initial-setup-ks.cfg 模板 图片 下载 桌面
退出终端界面:
[root ~]# exit
2、Linux文件系统
2.1 文件系统和挂载点
2.1.1 Linux的文件
Linux系统中一切皆文件
2.1.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.6n内核的一个很大的变化,该目录下安装了2.6内核中新出现的一个文件系统sysfs。
/tmp
:这个目录是用来存放一些临时文件的。 /dev:类似windows的设备管理器,把所有的硬件用文件的形式存储。
/media(CentOS6)
:linux系统会自动识别一些设备,例如U盘光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。CentOS7迁移到/run/media。
/mnt
:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里面的内容了。
/opt
:这是给主机额外安装软件所摆放的目录,如安装mysql数据库就可放到该目录下。默认为空。
/usr/local
:这是另一个给主机额外安装软件所安装的目录,一般是通过编译源码的方式安装的程序。
/var
:这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下,包括各种日志文件。
/selinux
:SELinux是一种安全子系统,它能控制程序只能访问特定文件。
3、VI/VIM 编辑器
3.1 vi/vim是什么
- VI是Unix操作系统和类Unix操作系统中最通用的文本编辑器。
- VIM编辑器是从VI发展出来的一个性能更强大的文本编辑器。可以主动的以字体颜色辨别语法的正确性,方便程序设计。VIM与VI编辑器完全兼容。
3.2 模式转换方法
3.3 一般模式
用户刚刚启动
vi/vim,便进入了一般模式。在这个模式中,你可以使用【上下左右】按键来移动光标,你可以使用【删除字符】或【删除整行】来处理档案内容,也可以使用【复制、粘贴】来处理你的文件数据。此状态下敲击键盘动作会被vim识别为命令,而非输入字符。
输入:set nu进入命令模式,在此中存在行号,若想退出输入set nonu
常用语法
语法 | 功能描述 |
---|---|
yy | 复制光标当前一行 |
y 数字 y | 复制一段(从第几行到第几行) |
p | 箭头移动到目的行粘贴 |
u | 撤销上一步 |
dd | 删除光标当前行 |
d 数字 d | 删除光标(含)后多少行 |
x | 剪切一个字母,相当于 del |
X | 剪切一个字母,相当于 Backspace |
yw | 复制一个词 |
dw | 删除一个词 |
操作符+^ | 移动/操作到行头 |
操作符+$ | 移动/操作到行尾 |
w | 移动到下一个词(词头的位置) |
e 移动到当前词尾 | |
G | 移动到页尾 |
gg | 移动到当前的开头 |
数字(n)+G | 移动到目标n行 |
3.4 编辑模式
在一般模式中可以进行删除、复制、粘贴等的动作,但是却无法编辑文件内容的,要等到按下[i, I, o, O, a,
A]等任何一个字母之后才会进入编辑模式。
通常在Linux中,按下这些按键时,在画面的左下方会出现[INSERT或REPLACE]的字样,此时才可以进行编辑。而如果要回到一般模式时,则必须要按下[Esc]这个按键即可退出编辑模式。
(1) 进入编辑模式
常用语法
按键 | 功能 |
---|---|
i | 当前光标前 |
a | 当前光标后 |
o | 当前光标行的下一行 |
I | 光标所在行最前 |
A | 光标所在行最后 |
O | 当前光标行的上一行 |
(2)退出编辑模式
按『Esc』键退出编辑模式,之后所在的模式为一般模式。
3.5 命令模式
在一般模式当中,输入[: / ?]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 |
3.6 vi/vim键盘图
4、网络配置
4.1 VMware 提供的三种网络连接模式
- 桥接模式
虚拟机直接连接外部物理网络的模式,主机起到了网桥的作用。这种模式下,虚拟机可以直接访问外部网络 并且对外部网络是可见的 - NAT模式
虚拟机和主机构建一个专用网络,并通过虚拟网络地址转换(NAT)设备对IP进行转换。虚拟机通过共享主机可以访问外部网络,但外部网络无法访问虚拟机,构建了一个虚拟的子网。 - 仅主机模式
虚拟机只与主机共享一个专用网络,与外部网络无法通信。
4.2 查看虚拟网络编辑器
1)首先点击编辑在中找到虚拟网络编辑器选项点击
2)可看到与主机连接的三种模式
4.3 静态网络IP
1)查看当前网络接口的配置信息
[root ~]# ifconfig
2)测试主机之间的连接性
oot~]# ping +主机名
也可连接百度如下
oot~]# ping www.baidu.com
3)修改静态网络IP
- 在终端输入以下内容进入网络IP文件中
[root ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
-
在文件中修改修改输入以下部分内容,修改完后按键盘esc退出编辑模式,然后输入:wq回车即可退出文件
-
输入以下内容重启网络,点击确定后,修改的IP地址生效,
[root ~]# service network restart
Restarting network (via systemctl): [ 确定 ]
4.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
4.5 修改主机名
- 基本语法
hostname
(查看当前服务器的主机名称) - 案例实操
- 查看当前服务器主机名称
[root ~]# hostname
- 如果感觉此主机名不合适,我们可以通过编辑/etc/hostname文件 进行修改。
[root ~]# vi /etc/hostname
注意:修改完成后重启生效。
- 修改主机名的简洁方式
[root ~]# hostnamectl set hostname +新名字
4.6 修改hosts映射文件
- 修改 linux 的主机映射文件(hosts 文件)后续在 hadoop 阶段,虚拟机会比较多,配置时通常会采用主机名的方式进行配置,比较简单方便,不用刻意记 ip 地址。
- 打开/etc/hosts
[root ~]# 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
- 修改 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
- 将文件另存为桌面
- 修改文件名去掉后缀.txt
- 将该文件拖拽到存放原hosts文件的目录下面
- 电脑显示是否替换该文件,点击替换,即完成
- 在Windows里面实现远程登录虚拟机
- 同时点击徽标键+r打开运行窗口
- 输入cmd点击确认
- 输入以下内容
C:\Users\86178>ssh 用户@主机名/IP地址
5、系统管理
5.1 Linux中的进程和服务
- 计算机中,一个正在执行的程序或命令,被叫做“进程”(process)。
- 启动之后一直存在、常驻内存的进程,一般被称作“服务”(service)。
5.2 service服务管理(CentOS 6版本)
(1) 基本语法
service 服务名 start(开启) | stop(停止) | restart(重启) | status(查看当前服务的状态)
- 查看服务的方法:
/etc/init.d/服务名
- 查看该文件中所含有的内容:
[root ~] ls /etc/init.d/
(2) 案例实操
- 查看网络服务的状态
[root ~]#service network status
5.3 systemctl服务管理(CentOS 7版本)
CentOS7采用systemd管理,服务独立的运行在内存中,服务响应速度快,但占用更多内存。独立服务的服务启动脚本都在目录/usr/lib/systemd/system里。
- systemd的新特性:
系统引导时实现服务的并行启动;
按需激活进程;
系统实现快照;
基于依赖关系定义服务的控制逻辑;
systemctl可用于内省和控制“systemd”系统和服务管理器的状态。
(1) 基本语法
systemctl start(开启) | stop(关闭) | restart(重启) | status(查看) 服务名
查看服务的方法:/usr/lib/systemd/system
(2) 案例实操
- 重启防火墙服务
```dart
[root@hadoop100 ~]# systemctl restart firewalld
5.4. 系统运行级别
(1) Linux 的进程运行级别[CentOS 6]
(2)CentOS7 的运行级别简化为:
- multi-user.target 等价于原运行级别 3(多用户有网,无图形界面)
- graphical.target 等价于原运行级别 5(多用户有网,有图形界面)
(3) 查看当前运行级别:
systemctl get-default
(4) 修改当前运行级别(如果级别为5)
[root ~]# init 3
5.5 chkconfig设置后台服务的自启配置(CentOS 6版本)
(1) 基本语法
chkconfig
(查看所有服务器自启配置)
chkconfig 服务名 off
(关掉指定服务的自动启动)
chkconfig 服务名 on
(开启指定服务的自动启动)
chkconfig 服务名 --list
(查看服务开机启动状态)
(2) 案例实操
- 开启/关闭 network(网络)服务的自动启动
[root ~]#chkconfig network on
[root ~]#chkconfig network off
- 开启/关闭 network 服务指定级别的自动启动
[root ~]#chkconfig --level 指定级别 network on
[root ~]#chkconfig --level 指定级别 network off
5.6. systemctl设置后台服务的自启配置(CentOS 7版本)
(1) 基本语法
systemctl list-unit-files(查看服务开机启动状态)
systemctl disable service_name(关掉指定服务的自动启动)
systemctl enable service_name(开启指定服务的自动启动)
(2)案例实操
- 开启/关闭 iptables(防火墙)服务的自动启动
[root ~]# systemctl enable firewalld.service
[root ~]# systemctl disable firewalld.service
5.7. 关闭防火墙
(1) 临时关闭防火墙
- 查看防火墙状态
[root~]# systemctl status firewalld
- 临时关闭防火墙
[root~]# systemctl stop firewalld
(2) 开机启动时关闭防火墙
- 设置开机时开启防火墙
[root~]# systemctl enable firewalld.service
- 设置开机时关闭防火墙
[root~]# systemctl disable firewalld.service
5.8. 关机重启命令
在 linux 领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。
(1) 基本语法
sync
(将数据由内存同步到硬盘中)
halt
(停机,关闭系统,但不断电)
poweroff
(关机,断电)
reboot
(就是重启,等同于 shutdown -r now)
shutdown
[选项] 时间
选项 | 功能 |
---|---|
-H | 相当于–halt,停机 |
-r | -r=reboot 重启 |
参数 | 功能 |
---|---|
now | 立刻关机 |
时间 | 等待多久后关机(时间单位是分钟) |
(2) 经验技巧
Linux系统中为了提高磁盘的读写效率,对磁盘采取了“预读迟写”操作方式。当用户保存文件时,Linux核心并不一定立即将保存数据写入物理磁盘中,而是将数据保存在缓冲区中,等缓冲区满时再写入磁盘,这种方式可以极大的提高磁盘写入数据的效率。但是,也带来了安全隐患,如果数据还未写入磁盘时,系统掉电或者其他严重问题出现,则将导致数据丢失。使用sync指令可以立即将缓冲区的数据写入磁盘。
(3) 案例实操
- 将数据由内存同步到硬盘中
[root~]#sync
- 重启
[root~]# reboot
- 停机(不断电)
[root ~]#halt
- 计算机将在 1 分钟后关机,并且会显示在登录用户的当前屏幕中
[root~]#shutdown -h 1 ‘This server will shutdown after 1 mins’
- 立马关机(等同于 poweroff)
[root~]# shutdown -h now
- 系统立马重启(等同于 reboot)
[root ~]# shutdown -r now