Linux教程

linux总结

本文主要是介绍linux总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

linux总结

  • 电脑的种类
  • 服务器的种类
  • 服务器内部组成
  • 虚拟化
  • 磁盘分区
  • 直接操作虚拟机的缺陷
  • linux基本操作命令
  • 快捷命令方式
  • 目录结构相关命令
  • 文件相关命令
  • 文件编辑命令
  • vi编辑命令
  • 异常情况
  • 文件目录结构说明
  • 重要目录数据信息说明
  • usr目录下重要的数据文件
  • var目录下重要的数据文件
  • proc目录重要的数据文件
  • 系统优化相关
  • 环境变量补充
  • 下载软件优化操作
  • 大数据概念
  • Hadoop
  • HDFS概念
  • 公钥私钥
  • Paramiko模块
  • Hadoop目录结构
  • 伪分布式模式
  • 伪分布的YARM配置
  • 配置日志采集
  • 完全分布式(开发重点)
  • 集群群起

 

电脑的种类

  • 台式机
  • 笔记本
  • 服务器

 

操作系统

操作系统的诞生

由于管理、协调、控制计算机各个硬件的工作

现在适用的很多软件都必须运行在操作系统上

操作系统分类

windows,linux,macOS

 

服务器的种类

云主机服务器

物理主机服务器

 

服务器内部组成

五大组成部分

  • 电源 
  • 主板
  • CPU
  • 内存
  • 硬盘
  • 散热系统

工作原理

1.电源:

冗余技术:UPS(不间断电源系统)、双路或多路供电、发电机

2.CPU:

做数据运算处理

CPU路数:单路==1个 双路==2个 四路==4个

CPU核数:把CPU比喻成厂房, 将CPU中的核数比喻成厂房中的工人, CPU核数是真正处理工作任务,CPU核数越多, 同时处理工作任务的效率越高

3.内存:

临时存储数据(断电数据即丢失)

程序    进程(存储在内存中) 守护进程

代码    运行起来的程序 根本停不下来的进程

4.硬盘:

永久存储数据(断电数据不会丢失)

硬盘种类:

机械硬盘(性能低)
固态硬盘(性能高)
硬盘接口(茶壶壶嘴):SATA< SCSI <SAS <PCI-E

服务器磁盘阵列

1.服务器上有多块硬盘保证数据不容易丢失

2.服务器上存储数据较多可以将多块硬盘进行整合

3.服务器上存储大容量数据效率更高

按照不同级别进行多块硬盘整合:

raid0,raid1,raid5

5.远程管理卡:

远程控制管理服务器的运行状态

远程安装操作系统

远程配置raid阵列信息

PS:一定要确认远程管理卡的默认地址信息

6.光驱(安装系统)-- 淘汰

U盘安装系统

kickstart cobbler -- 无人值守安装系统

7.机柜

机柜里面线缆一定要布线整齐 设置标签

 

虚拟化

什么是虚拟化

将一台计算机硬件"拆分"成多份分配使用

 

磁盘分区

系统分区说明

standard parition:标准分区

LVM:特殊分区 进行分区动态扩容/缩容

通用方案

/boot:启动分区,保存和系统启动相关的文件

swap:交换分区,临时将硬盘的多余容量变为内存使用

     内存<8GB   swap分区大小=1.5倍内存容量 

/: 根本区   将剩余容量都给根等价于C盘

数据比较重要的场景

/boot:200M

swap:1G,2G,分区大小=1.5倍内存容量 

/:20G-200G

/data:剩余空间

灵活的分区方案

/boot:200M

swap:1G,2G,分区大小=1.5倍内存容量 

/:20G-200G

剩余空间不用分配

 

直接操作虚拟机的缺陷

不支持很多鼠标操作(快捷键)

如果虚拟机出现故障需要亲自去调试太麻烦

解决上述问题的方式就是借助于第三方链接工具

secureCRT 收费版(破解版是有⻛险)
xshell(推荐使⽤)  "免费版"
putty 没有什么功能 只能满⾜远程连接

 

网络相关名词

IP地址

每个连入网络的计算机都有一个IP地址,用于访问网络,类似身份证号,网络分类:IPV4、IPV6版本

PORT号

一台计算机上运行多个程序,为了便于管理有端口号的概念,端口号有一定的范围并且是随机分配的,每个程序都有端口号

IP + PORT

能够定位到具体的一台计算机上面的某个应用程序

 

linux基本操作命令

复制代码
"""
命令提示符
 [root@XXXX ~]# 
     root表示⽤户名信息
     @为分隔符
     XXXX为主机名称
     ~表示所处⽬录位置,默认是家⽬录
"""

1.查看网卡信息

ip a

2.测试网络

ping ip地址

3.查看当前路径下的文件信息(文件、文件夹...)

ls

4.查看linux系统下总命令数

连续按tab键即可

5.如何清空当前窗口信息

clear

6.切换文件路径

cd 路径名

7.返回上一级目录

cd ..  # 返回多级需要加斜杠 cd ../..

补充

复制代码
"""
帮助命令  man(mannual)  
  eg:man  命令信息
     命令帮助信息中 语法中的中括号信息可有可无
     ps:有些命令是不能通过man手册获取帮助信息 
"""

系统命令

关机命令

shutdown
shutdown -h 10  # 指定多少分钟后进行关机
shutdown -c  # 取消关机方案 
shutdown -h 0/now  # 立即关机

重启命令

# 使用方法与关机差不多
shutdown
shutdown -r 10  # 指定多少分钟后进行重启
shutdown -r 0/now  # 表示进行立即重启操作
shutdown -c  # 取消重启方案

 

快捷命令方式

1. 显示历史输⼊命令信息

利⽤⽅向键 上 下
或者输入history查看完整命令列表

2. 清楚所有屏幕信息输出

ctrl 键+ l 

3. 中断取消命令执行过程

ctrl键 + c  # cancel 取消    

4. 快速移动光标到行首

ctrl键 + a  

5. 快速移动光标到行尾

ctrl键+ e   

6. 将光标所在位置到行首的信息进行删除(剪切)

ctrl键 + u 
# 将光标所在位置到行尾的信息进行删除(剪切)
ctrl键 + k

7. 将剪切内容进行粘贴回来

ctrl键+ y

8. 锁定系统窗口信息状态

ctrl键 + s
# 解锁系统窗口信息状态
ctrl键 + q 

9. 系统命令补全快捷方式

tab键

10. 命令行中快速移动光标

# 按照英文单词进行移动光标
ctrl键 + 方向键 左 右

 

目录结构相关命令

1 显示当前路径信息  

pwd

2 切换目录结构

cd  # 改变目录位置
cd -  # 快速切换路径,返回到上一次所在路径信息
cd ..  # 快速切换路径,返回到当前路径的上一级目录中
cd ../..  # 上多级

3 创建目录结构

mkdir

eg:

创建多级目录需要加参数-p

mkdir -p /oldgirl/oldbaby/heihei

建议:

''' 创建目录时以绝对路径创建目录'''

 

文件相关命令

'''
强调:在linux系统中,尽量不要输入中文符号信息(命令行)
'''

1)如何创建文件信息

touch 文件

2)如何检查文件或目录是否存在

ls  # list
# 显示文件/目录数据详细信息
ls -l a.txt  # ls -ltr a.txt 倒序

3)如何查看文件信息

cat 文件

4)在空文件中生成数据信息

echo  # 将信息进行输出
echo hello world  # 等价于print('hello world')
echo hello world > a.txt  # w模式写入文件
echo baby.com >> a.txt  # 追加模式写入

5)对文件或目录数据信息进行拷贝(复制)

语法:

cp 参数信息 要进行复制的信息 复制到什么位置

常见问题:

    在复制文件时,不要在文件名称后面加上/ 一般只有目录后面有/
    文件没有存在会直接复制,如果已经存在会提示是否覆盖
          cp -a 
           -a == -d + -r + -p
           -d          和链接文件有关
           -R          进行递归复制
           -p          保持属性不变  

6)对文件或目录数据信息进行剪切(移动)

mv  # move 
           mv 参数 要移动数据信息 移动到什么位置

7)数据的删除命令

rm  # remove
               rm 参数 要删除的数据信息
# 删除oldboy目录中的hosts01文件
              rm hosts01
# 删除目录操作
            rm shanghai/  报错
            rm -r shanghai/  正确
# 如何强制删除数据信息
            rm -f olddog.txt   不提示
            rm -rf jason  不提示

 

文件编辑命令

内部自带的vi

vi
vi 你要编辑的文件信息

编辑文件的操作步骤

第一个里程:利用vi命令打开文件

vi oldboy.txt # 文件不存在会自动创建(先在内存中临时创建)

进入到编辑模式,开始编辑文件:

按键盘上小写字母 i 

进行编辑

退出编辑模式

按esc进行退出

关闭打开的文件

:wq   w-write  q-quit  保存退出
:q!   不保存进行退出

 

vi编辑命令

光标快速移动快捷方式

如何将光标快速移动到最后一行  # 大写字母 G
如何将光标快速移动到第一行  # 小写字母 gg
如何快速移动光标到中间指定行  # 小写字母 10gg
如何快速移动光标到一行的行尾  # 符号信息 shift+$
如何快速移动光标到一行的首部  # 数字信息 0 

移动光标转为编辑状态

如何快速移动光标到下一行并进入编辑状态  # 小写字母 o
如何快速移动光标到一行的行尾并进行编辑  # 大写字母 A
如何快速删除光标所在位置到一行行尾所有信息并进入编辑状态  # 大写字母 C
如何清空当前行的所有内容信息并进入编辑状态  # 小写字母 cc

快速编辑文本内容信息

复制代码
如何复制文本信息   # 小写字母 yy 
如何复制多行信息  # 3yy
如何粘贴文本信息   # 小写字母 p
如何粘贴多行信息   # 3p
如何删除文本信息     # 小写字母 dd    实际是将指定行信息进行剪切
如何删除多行信息   # 3dd
将光标所在行到最后一行都删除    # 字母 dG
复制代码

特殊操作文本内容方式

如何显示文本行号信息/如何取消行号   # :set nu/:set nonu
如何撤销编辑信息                     # 小写字母 u  undo
如何取消撤销操作                     # ctrl + r    redo 
快速搜索文件信息                     # /待搜索内容 n下一次匹配项

批量操作文本内容

批量删除操作

vim是需要进行安装的:

yum install vim tree bash-completion -y

第一个步骤:移动光标到相应位置

第二个步骤:进入到批量编辑模式(视图块模式)

ctrl + v 

第三个步骤:选中多行信息

第四个步骤:进行删除

小写字母 d 或者 x  # 删除光标选中的内容

 

vim命令

"""vim命令比vi命令功能更加强大 但是快捷方式一致"""

在linux中用到一个东西没有的话可以使用yum安装

yum install vim
# 安装过程中会出现很多需要二次确认的过程 如果不想提示默认确认
yum install vim -y

 

异常情况

编辑过程中链接出现中断,再次编辑文件会提示相应信息

解决方法:

删除隐藏文件

rm -f .oldboy.txt.swp

出现的原因:

1)编辑状态突然出现了中断
2)文件被多个人使用
'''总结:出现了隐藏文件,没有及时删除'''

 

文件目录结构说明

结构特点说明

1.linux根下面的目录是一个有层次的树状结构
2.linux每个目录可以挂载在不同的设备(磁盘)上挂载

实践操作实现挂载过程

1.拥有一个存储设备(光驱)

2.找到相应光驱

# ls /dev/cdrom
# ls -l /dev/cdrom

3.进行挂载操作

mount /dev/cdrom  /aaa/(挂载点目录一定存在)

4.确认是否挂载成功

ls /aaa

目录结构发展过程

一块盘:根目录
二块盘:/usr目录
继续扩展>>>:FHS文件系统目录规范

 

重要目录数据信息说明

网卡配置文件

cat /etc/sysconfig/network-scripts/ifcfg-eth0 
'''如果要编辑网卡文件可以先提前备份一份数据'''
cp XXX /tmp/XXX.bak
ps:esc +.  # 调用上一个命令最后一个参数信息
# 网卡文件修改后,必须重启网络服务
    systemctl restart network

初始化软件安装

# 提供命令参数补全功能 systemctl
yum install -y vim tree bash-completion

网卡文件参数说明

BOOTPROTO=none: 启动协议 获取IP地址的方法 自动获取 dhcp手动设置

DEFROUTE=yes: 开启了默认路由 网络(默认路由 动态路由 静态路由)

NAME=eth0:网卡逻辑名称

UUID=...:在虚拟化软件标识一些硬件设备信息

DEVICE=eth0:网卡设备名称

ONBOOT=yes:确保网卡是否处于激活状态

# 当虚拟机无法访问外网的时候,也许使该项为no,应该改为yes

IPADDR=10.0.0.200: IP地址设置

PREFIX=24:  设置子网掩码确保一个局域网里面可以连接多少台主机默认253

GATEWAY=10.0.0.254:网关信息,不同局域网之间进行通讯的必经关卡 需要和虚拟编辑器中nat网卡设置保持一致

IPV6_PRIVACY=no

DNS=114.114.114.114:DNS 域名解析服务 

网卡域名解析配置文件 

/etc/resolv.conf

主机名称配置文件

centos6主机名称配置文件 

/etc/sysconfig/network

centos7主机名称配置文件所在路径

cat /etc/hostname

本地域名解析文件

vim /etc/hosts

网站页面信息变更方面:

小公司  直接调试线上服务器

大企业   直接调试测试服务器测试访问  模拟真实环境访问

 

网络不通排查流程

1. 确认网关地址是否通畅

2. 确认网卡配置是否正确

3. 确认网络管理服务关闭

systemctl stop NetworkManager  # 关闭网络管理服务
systemctl disable NetworkManager  # 禁用网络管理服务
systemctl status NetworkManager  # 查看网络管理服务

 

etc目录下重要的数据文件

系统挂载信息表

cat /etc/fstab

临时挂载:

mount /dev/cdrom  /mnt  

永久挂载:

修改一个和开机自动挂载相关的配置文件 /etc/fstab

存放linux系统命令操作信息的文件

vim  /etc/rc.local

系统启动运行级别

系统启动时候,有三种系统

A系统启动:网络服务运行 安全服务运行 存储服务运行 01级别
B系统启动:安全服务运行 存储服务运行 02级别
C系统启动:存储服务运行 03级别
运行启动级别不一样

centos6 (7种运行级别) 0 关机级别(init 0)

1 单用户模式(重置用户密码信息root 修复系统) 救援模式
2 多用户模式 NFS (没有网络服务)
3 多用户模式 (命令行模式)
4 未知 未使用
5 图形化界面模式(init 5)
6 重启级别

centos7 (target目标)

    ls /usr/lib/systemd/system/runlevel*target -l
    poweroff.target
    rescue.target 
    multi-user.target
    multi-user.target
    multi-user.target
    graphical.target
    reboot.target

配置环境变量信息或者别名信息文件(重要)

cat /etc/profile

环境变量特征:

01. 环境变量都用大写字母表示
02. 环境变量可以被所有用户所使用
03. 环境一般是系统安装就已经设置

专门用于设置别名信息 

cat /etc/bashrc

使复杂命令简单化 

ls -l /etc/hosts  # 查看文件权限

ll /etc/hosts  # 查看文件权限

别名定义优先级:

  '''别名的定义既可以在profile里面也可以在bashrc里设置'''
    /etc/profile    国法  
    /etc/bashrc     国法
    ~/.bashrc       家规
    ~/.bash_profile 家规 

用户登陆系统之后提示信息

/etc/motd 

用户登陆系统之前提示信息

# cat /etc/issue

 

usr目录下重要的数据文件

/usr/local/  用于保存用户安装软件程序信息

linux系统如何安装软件(四种方式)

01. yum安装软件

# 可以解决软件的依赖关系 

02. rpm包方式安装软件

# 在系统中需要有软件安装包 

03. 编译安装软件

eg:购买食材(非成品)进行烹饪  可以灵活调整食物的味道

设置软件安装路径 指定软件功能信息

04. 二进制包安装软件 

eg:小零食即食即用 方便简单

 

var目录下重要的数据文件

经常发生变化的文件保存在variable

经常变化的文件>>>:日志文件

/var/log/messages    服务运行情况信息、系统运行或异常信息

/var/log/secure      用户登陆信息保存文件

规律查看日志信息

grep "Failed" /var/log/secure

对于日志文件过大必须要做切割处理

secure-0k > secure-100k > 大小范围10M > 切割secure-bak01 secure

 

proc目录重要的数据文件

记录一些硬件使用情况 硬件详细信息

#cat /proc/cpuinfo

 

系统优化相关

性能优化

安全优化

编码优化

1)了解自己的系统情况

cat /etc/redhat-release

 

环境变量补充

特征:

01. 由大写字母组成
02. 配置的环境变量所有用户都必须遵循
03. 系统中默认就有的变量信息

第一个环境变量:PS1 (命令提示符信息)

echo $PS1

修改环境变量:

第一个里程:临时修改

PS1="[\u@\h \w]\$" 错误修改环境变量方式
export PS1="[\u@\h \w]\$" 正确修改环境变量方式

第二个里程:永久修改

vim /etc/profile
export PS1="[\u@\h \w]\$ " # 添加内容
source /etc/profile # 重新加载文件内容

 

下载软件优化操作

1)需要修改yum源文件(指定使用哪个yum软件仓库)  # 类似于pip换源

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repoyum repolis

2)需要修改yum扩展源epel源

需要下载wegt

yum install wegt -y

 3)所有源文件更新进行最终确认

yum repolist

 

大数据概念

1.什么样的数据才可以称之为是"大数据"

    1.海量:数据量一定要大
    2.高增长率:一定的时间内数据快速增长
    3.多样化:数据的种类千奇百怪

2.研究大数据的目的

    1.海量数据的存储
    2.海量数据的分析计算

3.重要的度量单位

bit(位)、Byte(字节)、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB

 

Hadoop

它是相当于一款数据库软件,更是一个大数据神态圈

Hadoop1.X

    MapReduce  # 计算与资源调度
    HDFS  # 数据存储
    Common  # 辅助工具

Hadoop2.X与3.X

    MapReduce  # 计算
    Yarn  # 资源调度
    HDFS  # 数据存储
    Common  # 辅助工具

 

HDFS架构组成

NameNode(nn):存储文件的元数据  # 相当于目录
DataNode(dn):存储文件的真实数据  # 当对于文本内容
Secondary NameNode(2nn):辅助NameNode工作  # 相当于备用设施

 

Yarn架构组成

Resource Manager:类似于大老板
Node Manager:类似于各部门经理
Application Master:类似于部门中真正干活的员工
Container:类似于每个部门拥有的各项资源

 

MapReduce架构组成

Map就是将复杂的任务拆分成多个小任务分发给不同的节点完成
Reduce就是将每个节点完成的任务汇总到一起

 

技术生态圈

1.数据来源层 
    针对结构化数据(关系型数据库)采用sqoop进行数据同步
    针对半结构化、非结构化数据(非关系型数据库)采用flume、kafka进行同步
更多请参考群内pdf文件

 

HDFS概念

  ⼀个⽂件系统,通过⽬录树来定位⽂件; 其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各 ⾃的⻆⾊

优点:

1.高容错性

2.适合处理大数据量

3.可以构建在廉价机器上

缺点:

1.不适合低延时数据访问

2.无法高效的对大量小文件进行存储

3.支持数据append(追加)

HDFS文件块

可以最多存储3个副本块

HDFS存储数据的数据块大小

  1.X版本最小是64M其它版本是128M

'''数据块大小使用默认128M即可,不需要修改'''

热备与冷备

  热备:不停服更新
  冷备:停服更新

热数据与冷数据

  热数据:使用频率较高的数据

  冷数据:使用频率较低的数据

保存副本节点选择

两个备份在同一个机架,另一个备份在其他机架

 

公钥私钥

# 比用户名密码的方式更加安全
通过ssh远程连接服务器并执行想要命令 类似于Xshell 链接服务器有两种方式: 
1.用户名和密码连接服务器 
2.公钥私钥连接服务器

 

Paramiko模块

paramiko模块支持上面两种连接服务器的方式:
1.用户名和密码连接服务器
2.公钥私钥连接服务器

安装

pip3 install paramiko

 

Hadoop目录结构

 bin:

主要服务
hadoop 管理整个hadoop集群
hdfs 管理数据存储
yarn 管理资源调度

 

伪分布式模式

需要配置的文件

1./etc/hadoop路径下

2./etc/hadoop

3./etc/hadoop路径下

4.退出到hadoop根目录下(hadoop-2.7.2)

6.浏览器界面Browse Directory

7.将hadoop-2.7.2路径下的wcinput文件上传到 hdfs路径下

8.在hdfs上实现字符统计

 

伪分布的YARM配置

需要修改的文件

在hadoop-2.7.2路径下

在hadoop路径下

在hadoop-2.7.2路径下启动yarn

在hadoop-2.7.2路径下启动NodeManager

 

配置日志采集

需要配置的文件

在hadoop路径下编辑文件

复制插入

<!-- 日志聚集功能使能 -->
<property>
<name>yarn.log-aggregationenable</name>
<value>true</value>
</property>
<!-- 日志保留时间设置 7 天 -->
<property>
<name>yarn.log-aggregation.retainseconds</name>
<value>604800</value>
</property>
'''
注意:开启日志聚集功能,需要重新启动 NodeManager 、ResourceManager 和  HistoryManager。
'''

 

完全分布式(开发重点)

准备工作

1)准备 3台客户机

2)安装 JDK

3)配置环境变量

4)安装 Hadoop

5)配置环境变量

6)配置集群

7)单点启动

8)配置 ssh

9)群起并测试集群

单点启动(了解)

 

集群群起

1.配置文件位置:/opt/module/hadoop-2.7.2/etc/hadoop/slaves。

2.同步所有节点配置文件

3.将之前单节点启动的datanode、namenode全部退出

4.启动HDFS

5.验证每个节点对于启动的服务

jps查看照着之前的表格比较不能出错

6.启动yarn(一定要在hadoop103上启动 因为rm在这里)

7.验证每个节点对于启动的服务

集群时间同步(了解)

返回目录

这篇关于linux总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!