网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
到此 centos7.4安装完成,网络也配置成功
5)Linux远程连接工具
Linux系统中是通过 SSH服务实现的远程登录功能,默认 ssh服 务端口号为 22。Window系统上Linux 远程登录客户端有 SecureCRT, Putty, SSH Secure Shell,XShell等
SecureCRT安装:https://blog.csdn.net/qq_39052513/article/details/100272502
3.Linux文件与目录结构
1)文件
Linux系统中一切皆文件
2)目录结构
4.linux中文本编辑器
=============
vim是从 vi 发展出来的一个文本编辑器 。代码补完、编译及错误跳转等方便编程的功能特别丰富
1.进入插入模式
i: 插入光标前一个字符
I: 插入行首
a: 插入光标后一个字符
A: 插入行未
o: 向下新开一行 ,插入行首
O: 向上新开一行 ,插入行首
2.进入末行模式
在命令模式下 ,用户按 “:”键即可进入末行模式
3.退出
:q 退出
:q! 退出并不保存
:w 保存 :wq 保存并退出
:x 保存并退出
4.查找命令
/: str查找
n: 下一个
N:上一个
5.替换命令
把 abc全部替换成 123
:%s/abc/123/g—末行模式下,将当前文件中的所有 abc替换成 123。如果不使用 g, 则只会替换每一行的第一个 abc
:1, 10s/abc/123/g—末行模式下,将第一行至第 10行之间的 abc替换成 123
6.vim里面执行shell下命令
末行模式里输入 !,后面跟命令
7.进入命令模式
ESC:从插入模式或末行模式进入命令模式
8.移动光标
h: 左移
j: 下移
k: 上移
l: 右移
M: 光标移动到当前屏幕的中间行
L: 光标移动到当前屏幕最后一行行首
gg: 光标移动 文件开头
G: 光标移动到文件末尾
G: 移动到指定行 ,行号 G (扩展:打开文件时跳转指定行 ,vi 文件名 +行数 )
w: 向后一次移动一个字
b: 向前一次移动一个字
{: 按段移动 ,上移
}: 按段移动 ,下移
Ctr-d: 向下翻半屏
Ctr-u: 向上翻半屏
Ctr-f: 向下翻一屏
Ctr-b: 向上翻一屏
9.撤销命令
u: 一步一步撤销
Ctr-r: 反撤销
10.删除命令
x: 删除光标后一个字符 ,相当于 Del
X: 删除光标前一个字符 ,相当于 Backspace
dd: 删除光标所在行 ,n dd 删除指定的行数
D: 删除光标后本行所有内容 ,包含光标所在字符
d0: 删除光标前本行所有内容 ,不包含光标所在字符
dw: 删除光标开始位置的字 ,包含光标所在字符
11.复制粘贴
yy: 复制当前行 ,n yy 复制 n 行
p: 在光标所在位置向下新开辟一行 ,粘贴
12.替换操作
r: 替换当前字符
R: 替换当前行光标后的字符
13.文本行移动
>>: 文本行右移
<<: 文本行左移
14.重复命令
.: 重复上一次操作的命令
15.可视模式
v: 按字符移动 ,选中文本
V: 按行移动 ,选中文本可视模式可以配合 d, y, >>, << 实现对文本块的删除 ,复制 ,左右移动
5.linux常用基本命令
=============
ctrl + c 停止进程
ctrl+l 清屏;彻底清屏是: reset
ctrl + q 退出
善于用 tab键补全 提示 (更重要的是可以防止敲错 )
上下键 查找执行过的命令
ctrl +alt
2)文件命令
#pwd 显示当前工作目录的绝对路径
#ls,ll,ll -a
#cd 进入到某一个目录下
#mkdir 创建文件夹
#rmdir 删除文件夹
#touch 创建文件
#cp 复制文件 /文件夹
#cp -r 递归复制,多级目录
#mv 移动文件 夹/重命名
#rm 删除文件
#rm -rf 强制删除文件不需要确认
#cat 查看文件
#more 查看文件
#less 查看文件
#echo 输出 #head 查看文件头部
#tail 查看文件末尾
#tail -f 实时查看文件末尾
#nl 文件带行号标准输出
# > 覆盖
# >> 追加
#ln -s 目标目录 软链接地址 创建 软链接
rm -rf 软链接地址 删除软连接
ln -snf 新目标目录 软链接地址 修改软连接
# history 查看已经执行过历史命令
3)文本处理类命令
wc [option] [file]…
-l: 统计行数
-c: 统计字节数
-w;统计单词数
tr: 转换字符或删除字符
tr ‘集合 1’ ‘集合 2’
tr -d '字符集合 ’
cut:
-d字符:指定分隔符
-f#: 指定要显示字段
单个数字:一个字段
逗号分隔的多个数字:指定多个离散字段
-:连续字段,如 3-5;
例子:cut test.txt -f “1,3” -d " "------# 以空格分开每一行并输出第 1个和第 3个字段
sort [option] file…
-f: 忽略字符大小写;
-n: 比较数值大小;
-t: 指定分隔符
-k: 指定分隔后进行比较字段
-u: 重复的行,只显示一次;
uniq:移除重复的行
-c:显示每行重复的次数
-d:仅显示重复过的行
-u: 仅显示不曾重复的行
4)系统信息命令
#date 查看当前系统时间
#data -s 修改时间
#w 显示登陆用户
#uname -a 查看系统内核
#cat /proc/cpuinfo 查看 cpu信息
#cat /proc/meminfo 查
5)压缩/解压命令
#tar -xvf file.tar 解压 .tar结尾的
#tar -zxvf file.tar.gz 解压 .tar.gz文件
#tar -cf file.tar file 创建包含 files的文件 file.tar
#gzip -d file.gz 将 file.gz解压缩为 file
6)网络命令
#ping host(主机名 ) 网络是否连通
#ifconfig 查看本机 ip等信息
#telnet ip 端口 查看端口是否占用
(没有这个命令执行 yum -y install telnet )
#wget file 下载文件
#tcpdump tcp port 端口 抓包 tcp
#hostname 查看主机名
7)权限命令
1.文件权限命令:
#chmod 777 file 为所有用户添加读,写,执行权限
#chmod 755 file 为所有者添加 rwx权限,为组和其他用户添加
rx权限
2.文件所属用户和用户组权限命令:
#chown hadoop:hadoop file 将 file的用户和用户组都改为 hadoop
8)用户管理命令
useradd 用户名 添加新用户
useradd -g 组名 用户名 给某个组创建用户
passwd 用户名 设置用户密码
cat /etc/passwd 查看创建了那些用户
Su 用户名 切换用户
userdel 用户名 删除用户但保存用户主目录
userdel -r 用户名 用户和用户主目录,都删除
whoami 显示自身用户名称
who am i 显示登录用户的用户名
usermod -g 更改用户组 用户名
例子:
2.修改配置文件
[root@hadoop101 ~]#vi /etc/sudoers 修改 /etc/sudoers 文件,找到下面一行 (91行),在 root下面添加一行,
如下所示:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
hadoopALL=(ALL) ALL
或者配置成采用 sudo命令时,不需要输入密码
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
hadoopALL=(ALL) NOPASSWD:ALL
修改完毕,现在可以用 hadoop帐号登录,然后用命令 sudo ,即可 获得 root权限进行操作。
9)用户组管理命令
groupadd 组名 添加组
groupdel 组名 删除组
groupmod -n 新组名 老组名 指定工作组的新组名
cat /etc/group 查看创建了哪些组
10)搜索查找命令
1.find查找文件或者目录
常用: find / -name file 查找 /目录下 file文件
2.grep 过滤查找及“ “|”管道符 (详细使用见下一章中的 grepgrep)
1.管道符,“ ,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理
2.grep常常跟在 |的后面做过滤查找
3.反转 grep -v
4.示例
#查找某文件在第几行 ls | grep -n test
#查找某进程 ps -ef | grep PID
#查看日志中含有 errer cat file |grep error
3.which 查找命令
white 命令
11)磁盘分区挂载命令
df -h 查看磁盘使用 /剩余空间
fdisk -l 磁盘分区
mount 挂载
umount 卸载
12)进程管理命令
UID 用户 ID
PID 进程 ID
ps aux | grep xxx 查看系统中所有进程
ps -ef | grep xxx 可以查看子父进程之间的关系
kill -9 PID 强制杀死进程
top 查看所有进程 /cpu/内存 /负载
netstat -anp |grep 进程号 查看该进程网络信息
netstat -nlp | grep 端口号 查看网络端口号占用情况
13)crond系统定时任务
Crontab -e 编辑定时文件
参考文档:https://blog.csdn.net/qq_22172133/article/details/81263736
14)rpm包管理与yum管理
1.rpm相关命令:
rpm -qa|grep 包名 查找已经安装的 rpm某包
rpm -ivh 包名 安装 rpm包
rpm -e 包名 删除 rpm包
rpm -e – nodeps 软件包 删除 rpm包不检查依赖
2.yum源管理:详情见链接文档
https://blog.csdn.net/qingfenggege/article/details/80394564
3.yum在线安装 lrzsz上传下载工具
yum -y install lrzsz
15)ssh免密
1.ssh是什么?
SSH(SecureShell),是建立在应用层基础上的安全协议,其 SSH客户端适用于多种平台,可以有效防止远程管理过程中的信息泄露问题。
2.配置 hadoop用户 ssh免密:
ssh-keygen -t rsa
三台机器在 hadoop用户下,执行以下命令将公钥拷贝到 node01服 务器上面去
ssh-copy-id node01
node01在 hadoop用户下,执行以下命令,将 authorized_keys拷贝 到 node02与 node03服务器
cd /home/hadoop/.ssh/ scp authorized_keys node02:$PWD
scp authorized_keys node03:$PWD
16)防火墙
systemctl stop firewalld.service 关闭防火墙
systemctl status firewalld.service 查看防火墙状态
systemctl disable firewalld.service 禁止开启启动防火墙
6.linux实用故障排查
=============
大数据集群运行在linux系统上总会遇见各种各样的问题,我们要定位问题,基本从这几个方面入手排查: cpu, 内存,磁盘 IO,网络, GC等。
2) cpu
一些概念:多核,超线程,CPU频率( 2.2GHZ)(节能模式,普通模式,超能模式,bios里设置, 搭集群要注意下这个参数尽量关闭节能模式) bios里可以关闭 。
#1 查看物理 CPU个数
cat /proc/cpuinfo |grep “physical id”|sort |uniq|wc -l
#2查看逻辑 cpu个数
cat /proc/cpuinfo |grep “processor”|wc -l
#3 在生产集群中我们通常通过 top来查看 cpu的使用率来判断系统
的负载情况 ,Top 然后按 1,可以看到 cpu的使用率
#1,常见内存大小 64 G— 128G-- 256G— 512G,通过 free -g来查看系 统内存是否不足
4)磁盘IO
#1磁盘种类:
sata(150M/s左右 ) sas(300 M/S左右) ssd(最快也最贵)一般磁盘 2T-4T,服务器支持的最大存储也不同,比较常见的 48T,一 般服务器可以支持 12-24块盘 。
#2磁盘 io的查看: 可以定位是否是因为 io过大导致性能下降
iostat -mx 2
如果没有这个命令:yum install -y sysstat
#3 df -h 查看磁盘空间
#4 df -T 查看磁盘的格式化的格式,主流一般是 xfs和 ext4,系统盘默认是 xfs,后续添加数据盘尽量也是 xfs格式这样统一比较好,也方便写脚本批量挂盘
#5 lsblk 能够查看盘与分区以及 ssd盘,用 fdisk查看盘可能识别不到ssd
#6 fdisk -l 查看磁盘与未挂载的磁盘和分区信息
#7 cat /etc/fstab 查看磁盘挂载信息,新加磁盘要手动永久挂在需要在这个配置文件里添加, 6列。如果这个文件写错了,重启服务器正常模式下是启动不了的!!!
5)网络
#1 查看是否 ping通:ping IP
#2 查看某端口是否被监听
示例:比如你起启动datanode没有启动,查看日志报错: Address in used ,翻译过来就是端口被占用,那你得查看下这个端口被哪个程序占用了,就用 netatat -anp|grep 端口号,就可以知道它的进程,比如下图进程pid就是 107484,就可以用 kill -9 PID强制杀死
#3网卡模式配置( bound6,负载均衡
6)系统负载
Top
Uptime
W
cat /proc/loadavg
7)GC问题
#1是否 full GC(GC是 java里面 JVM的东西,不了解的可以去看下)
Jps查出要查看的 pid,用 jstat -gcutil pid,看第四列 O如果 100%就是 fullGC
8)日志查看
#1首先要知道日志的位置 ,一种是去配置文件查看有没有配置相关位置,一种是去通过进程查看如下 用 ps -ef |grep pid通过显示出来的信息可以找到日志的位置 。
# 2查看日志
实时查看日志文件后100行: tail -f 100 file
静态查看:vim filelog,然后 可以通过关键字 error/warn等查
7.linux运维之生产监控工具
================
1.zabbix:https://blog.51cto.com/u_14154700/2419934
2.nagios(网络监控):https://www.cnblogs.com/52-qq/p/9773880.html
3.Prometheus(普罗米修斯 ):https://blog.csdn.net/csolo/article/details/82460539
4.ganglia (hadoop集群监控常用工具):https://www.cnblogs.com/marility/p/9444357.html
8.自动化运维工具ansible与pdsh
https://www.cnblogs.com/keerya/p/7987886.html#_label2_0_1
https://blog.csdn.net/weixin_42193400/article/details/82148974
9.并行管理工具 pdsh与 pssh
===================
相关文档:https://www.cnblogs.com/goldenblade/p/9604642.html
10.linux知识点扩展
=============
运行级别 0:系统停机状态,系统默认运行级别不能设为 0,否则不能正常启动
运行级别 1:单用户工作状态 root权限,用于系统维护,禁止远程登陆运行级别
为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!
这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。
本份面试集锦涵盖了
- 174 道运维工程师面试题
- 128道k8s面试题
- 108道shell脚本面试题
- 200道Linux面试题
- 51道docker面试题
- 35道Jenkis面试题
- 78道MongoDB面试题
- 17道ansible面试题
- 60道dubbo面试题
- 53道kafka面试
- 18道mysql面试题
- 40道nginx面试题
- 77道redis面试题
- 28道zookeeper
总计 1000+ 道面试题, 内容 又全含金量又高
- 174道运维工程师面试题
1、什么是运维?
2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?
3、现在给你三百台服务器,你怎么对他们进行管理?
4、简述raid0 raid1raid5二种工作模式的工作原理及特点
5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?
6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?
7、Tomcat和Resin有什么区别,工作中你怎么选择?
8、什么是中间件?什么是jdk?
9、讲述一下Tomcat8005、8009、8080三个端口的含义?
10、什么叫CDN?
11、什么叫网站灰度发布?
12、简述DNS进行域名解析的过程?
13、RabbitMQ是什么东西?
14、讲一下Keepalived的工作原理?
15、讲述一下LVS三种模式的工作过程?
16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
17、如何重置mysql root密码?
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
- 60道dubbo面试题
- 53道kafka面试
- 18道mysql面试题
- 40道nginx面试题
- 77道redis面试题
- 28道zookeeper
总计 1000+ 道面试题, 内容 又全含金量又高
- 174道运维工程师面试题
1、什么是运维?
2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?
3、现在给你三百台服务器,你怎么对他们进行管理?
4、简述raid0 raid1raid5二种工作模式的工作原理及特点
5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?
6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?
7、Tomcat和Resin有什么区别,工作中你怎么选择?
8、什么是中间件?什么是jdk?
9、讲述一下Tomcat8005、8009、8080三个端口的含义?
10、什么叫CDN?
11、什么叫网站灰度发布?
12、简述DNS进行域名解析的过程?
13、RabbitMQ是什么东西?
14、讲一下Keepalived的工作原理?
15、讲述一下LVS三种模式的工作过程?
16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?
17、如何重置mysql root密码?
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!