linux使用基础
异常情况
编辑过程中链接出现中断,再次链接编辑文件会提示相应信息
解决方式:删除显示的隐藏文件
rm -f .文件名.swp
出现的原因:
1.编辑状态突然出现了中断
2.文件被多个人使用
总结:出现了隐藏文件,没有及时删除
vi -r oldboy.txt
结构特点说明
1.linux根下面的目录是一个有层次的树状结构
2.linux每个目录可以挂载在不同的设备(磁盘)上 挂载
磁盘-设备(房间) 想存储东西 从门进入>:目录(挂载点)
磁盘设备 《-- 挂载 --》 门(目录)
实践操作实现挂载过程
第一个里程:拥有一个存储设备(光驱)
第二个里程:找到相应光驱设备
[root@jasonNB ~]# ls /dev/cdrom /dev/cdrom [root@jasonNB ~]# ls -l /dev/cdrom lrwxrwxrwx. 1 root root 3 Dec 6 09:07 /dev/cdrom -> sr0
第三个里程:进行挂载操作
mount /dev/cdrom /mnt/(挂载点目录一定存在)
第四个里程:确认是否挂载成功
ls /mnt
目录结构发展过程:
一块盘:根目录
二块盘:/usr目录
继续扩展>>>:FHS文件系统目录规范
etc目录 # 系统和服务的配置文件存放区 home目录 # 普通用户信息存放区 mnt目录 # 临时挂载点目录 opt目录 # 第三方软件安装存放区 sbin目录 # 管理员可以执行的命令 tmp目录 # 临时存放数据 usr目录 # 存放用户程序 var目录 # 存放日志文件数据
1.网卡配置文件
/etc/sysconfig/network-scripts/ifcfg-eth0 ens33 # 编辑网卡文件时可以先提前备份一份 cp xxx /tmp/xxx.bak ps:esc + . 调用上一个命令最后一个参数信息 # 网卡文件修改后,必须重启网络服务 systemctl restart network 初始化软件安装 yum install -y vim tree bash-completion(提供命令参数补全功能 systemctl)
BOOTPROTO=none 启动协议 获取IP地址的方法 自动获取 dhcp手动设置 DEFROUTE=yes 开启了默认路由 网络(默认路由 动态路由 静态路由) NAME=eth0 网卡逻辑名称 UUID=... 在虚拟化软件标识一些硬件设备信息 DEVICE=eth0 网卡设备名称 ONBOOT=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 域名解析服务
2.DNS服务设置方法
方法一:设置为阿里云dns服务器地址
223.5.5.5
223.6.6.6
方法二:通用dns服务器地址
114.114.114.114
114.114.114.119
方法三:利用移动dns服务器(谷歌dns服务器)了解即可
8.8.8.8
方法四:使用网关地址充当dns服务器地址
10.0.0.254
3.网卡域名解析配置文件
/etc/resolv.conf vi /etc/resolv.conf nameserver 114.114.114.114 nameserver 223.5.5.5
PS: 配置完成,立即生效 网卡的dns配置优先于resolv.conf文件中的配置
4.主机名称配置文件
centos6 /etc/sysconfig/network 主机名称配置文件
centos7 /etc/hostname 主机名称配置文件
修改主机名称
第一个里程:利用命令修改主机名称 (临时修改)
hostname jasonNB
ps:修改完成,需要重新连接,才能命令生效
第二个里程:编辑修改配置文件 (永久修改)
vi /etc/hostname
centos7有特殊修改主机名称方式
hostnamectl set-hostname oldboyds05
5.本地域名解析文件 /etc/hosts
网站页面信息变更
小公司 直接调试线上服务器 夜里操作
大企业 直接调试测试服务器测试访问 模拟真实环境访问
京东线上网站服务器地址 112.65.34.1
京东线下网站服务器地址 10.0.0.200
[root@jasonNB ~]# vi /etc/hosts
10.0.0.200 www.jd.com (指定映射关系)
1. 确认网关地址是否通畅
2. 确认网卡配置是否正确
3. 确认网络管理服务关闭
systemctl stop NetworkManager
systemctl disable NetworkManage
1./etc/fstab # filesystem table 系统挂载信息表
磁盘 --- 分区格式化 --- 系统中可以看到磁盘设备 --- 挂载(开了个门)
PS:所有存储设备必须挂载才能使用
临时挂载:mount /dev/cdrom /mnt
永久挂载:修改一个和开机自动挂载相关的配置文件 /etc/fstab
设备文件 挂载点
/dev/第一个分区 : /boot
/dev/第二个分区 : swap
cat /etc/fstab # 查看文件内容
blkid # 查看磁盘分区
总结:实现磁盘存储设备,挂载操作永久生效,开机自动加载挂载信息
2./etc/rc.local # 此文件中只能存放linux系统命令操作信息
系统正常加载启动 --- 读取rc.local文件 --- 文件主要保存命令信息 --- 执行文件中的命令 --- 系统启动成功
eg:开机自动备份
cp /etc/sysconfig/network-scripts/ifcfg-eth0 /tmp/ifcfg-eth0.bak echo "cp /etc/sysconfig/network-scripts/ifcfg-eth0 /tmp/ifcfg-eth0.bak" >> /etc/rc.local
(
centos6:按照以上说明进行操作即可
centos7:chmod +x /etc/rc.d/rc.local
)
运维操作规范(运维人员==救火队员)
1.操作之前进行检查
2.操作之前进行备份
3.操作之后进行确认
4.操作之后进行总结
具体操作:
1.检查相应路径是否存在备份文件
有备份文件:进行删除
2.先在命令行进行测试执行
3.编辑开机自动加载命令配置文件rc.local
4.重启系统进行确认
3./etc/inittab # centos6 vs centos7
知识点:系统启动运行级别
系统启动时候:
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
调整系统运行级别
centos6
init 级别信息 临时修改
vim /etc/inittab 永久修改
centos7
systemctl get-default 获取级别信息
systemctl set-default 修改了级别
4./etc/profile # 配置环境变量信息或者别名信息文件(重要)
环境变量特征
1.环境变量都用大写字母表示
2.环境变量可以被所有用户所使用
3.环境一般是系统安装就已经设置
第一个里程:定义变量
[root@jasonNB ~]# oldboy=123
第二个里程:调取变量信息
[root@jasonNB ~]# echo $oldboy
第三个里程:调整变量值信息
[root@jasonNB ~]# oldboy=456
[root@jasonNB ~]# echo $oldboy
5./etc/bashrc # 专门用于设置别名信息
别名概念说明(先提前了解)
使复杂命令简单化
[root@jasonNB ~]# ls -l /etc/hosts -rw-r--r--. 1 root root 181 Dec 7 12:28 /etc/hosts [root@jasonNB ~]# ll /etc/hosts -rw-r--r--. 1 root root 181 Dec 7 12:28 /etc/hosts
(别名的定义既可以在profile里面也可以在bashrc里设置)
/etc/profile 国法
/etc/bashrc 国法
~/.bashrc 家规
~/.bash_profile 家规
6./etc/motd # 用户登陆系统之后提示信息
佛祖保佑 永不宕机
7./etc/issue /etc/issue.net(centos7多) # 用户登陆系统之前提示信息
[root@jasonNB ~]# cat /etc/issue [root@jasonNB ~]# echo > /etc/issue [root@jasonNB ~]# echo > /etc/issue.net [root@jasonNB ~]# cat /etc/issue
/usr/local/ 用于保存用户安装软件程序信息 == D:\Program Files (x86)
linux系统如何安装软件(四种方式)
1.yum安装软件 # 可以解决软件的依赖关系
eg:购买外卖所有东西都准备集全
yum install -y tree vim bash-completion
针对出问题的软件可以重新安装修复
yum reinstall -y tree vim bash-completion
2.rpm包方式安装软件 # 在系统中需要有软件安装包
eg:购买食材(半成品)进行烹饪 少筷子少碗
无法解决软件依赖问题
rpm -ivh xxx.rpm
-i install 安装
-v verbose 显示详细信息
-h human 以人类更好看理解方式显示信息
rpm -qa tree
-q query 查询
-a all 所有软件信息
rpm -ql vim-enhanced
-l list 显示软件安装目录的列表信息
rpm -e tree 卸载软件
# -e erase 擦出==删除
3.编译安装软件 # 安装软件更加灵活
eg:购买食材(非成品)进行烹饪 可以灵活调整食物的味道
设置软件安装路径 指定软件功能信息
4.二进制包安装软件 # 安装软件部署效率高
eg:小零食即食即用 方便简单
CS 软件安装包(绿色版免安装)
经常发生变化的文件保存在variable
经常变化的文件>>>:日志文件
/var/log/messages 服务运行情况信息、系统运行或异常信息
/var/log/secure 用户登陆信息保存文件
规律查看日志信息
[root@jasonNB ~]# # 三剑客中老三 grep [root@jasonNB ~]# grep "Failed" /var/log/secure Dec 10 12:39:00 oldboysh03 sshd[1705]:Failed password for root from 10.0.0.1 port 60099 ssh2
对于日志文件过大必须要做切割处理
secure-0k > secure-100k > 大小范围10M > 切割secure-bak01 secure
记录一些硬件使用情况 硬件详细信息
CPU # /proc/cpuinfo
命令查看CPU信息
lscpu
CPU(s): 4 整个服务器有多少核心
Core(s) per socket: 2 每颗CPU有多少核心
Socket(s): 2 服务器有几颗CPU
命令查看内存信息
cat /proc/meminfo
MemTotal: 2030172 kB --- 服务器的总共内存容量
MemFree: 1755372 kB --- 服务器未使用的CPU容量
MemAvailable: 1728900 kB --- 服务器还可以使用的
Buffers: 2076 kB
Cached: 86716 kB
实时使用情况
free、free -h
命令查看磁盘信息
df -h
查看负载情况
cat /proc/loadavg
0.00 0.01 0.03
平均每分钟负载 平均5分钟负载 平均15分钟负载
负载的数值不能超过服务器的核心数 8核 7(阈值)
利用命令查看负载信息
[root@oldboysh03 ~]# w
15:39:53 up 43 min, 2 users, load average: 0.00, 0.01, 0.03
当前时间 服务器运行时间 连接用户数 平均负载情况
查看挂载信息
df -h
cat /proc/mounts # 记录系统挂载信息
性能优化
安全优化
编码优化
1.了解自己的系统情况
cat /etc/redhat-release
uname -r/-a/-n/-s/... # 详见下图
2.在系统中创建用户信息
创建用户
useradd jason01
passwd jason01
切换用户状态管理主机
su - jason01 # su == switch user
进行检查确认
whoami
特征:
1.由大写字母组成
2.配置的环境变量所有用户都必须遵循
3.系统中默认就有的变量信息
第一个环境变量: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.repo yum repolist
PS:万一阿里云不好用,可以选择清华yum源
https://mirrors.tuna.tsinghua.edu.cn/help/centos/
2.需要修改yum扩展源epel源
第二个特殊的软件仓库
# epel Extra Packages for Enterprise Linux wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo http://mirrors.aliyun.com/repo/epel-7.repo
检查测试
yum install -y bash-completion-extras
3.所有源文件更新进行最终确认
yum repolist
(
闲暇时光
yum install sl cowsay -y
sl
cowsay "JasonNB!!!"
animalsay "数据分析五期NB"
)
狭义上来说hadoop相当于一款数据库软件
广义上来说hadoop是一个大数据神态圈
Apache、Cloudera、Hortonworks
Apache版本
最原始(最基础)的版本,对于⼊⻔学习最好。2006
Cloudera
内部集成很多⼤数据框架,对应产品CDH。 2008
Hortonworks
Hadoop1.X
NameNode(nn):存储文件的元数据 # 相当于目录
DataNode(dn):存储文件的真实数据 # 当对于文本内容
Secondary NameNode(2nn):辅助NameNode工作 # 相当于备用设施
Resource Manager:类似于大老板
Node Manager:类似于各部门经理
Application Master:类似于部门中真正干活的员工
Container:类似于每个部门拥有的各项资源
Map就是将复杂的任务拆分成多个小任务分发给不同的节点完成
Reduce就是将每个节点完成的小人物汇总到一起
1.数据来源层
针对结构化数据(关系型数据库)采用sqoop进行数据同步
针对半结构化、非结构化数据(非关系型数据库)采用flume、kafka进行同步