1.vi命令
总共三个模式
命令行模式 #vi 文件名 进入
编辑模式 在命令行模式按 i 键进入;按esc键退出
尾行模式 在命令行模式按shift+: 进入尾行模式 输入wq保存退出,wq!强制保存退出,q!强制不保存退出
粘贴文本 将文本复制,打开编辑模式再粘贴。若不开编辑模式会遗失字节
找ERROR ① cat xxx.log | grep -C 10 ERROR > error.log
然后用cat 、more 或者sz上传Windows查看
② 编辑文本,进入尾行模式: /关键词 回车自动匹配 按N键找寻下一个
设置行号 进入尾行模式: set nu 取消行号: set nonu
清空内容 ① cat /dev/null > xxx.log
② echo ‘’ > xxx.log 存在1个字节
③ vi文本,命令行删除 gg+dG
dd 删除当前行
dG 删除光标当前及以下的所有行
ndd 删除光标当前及以下的n行
gg 跳转到第一行的第一个字母
G 跳转到最后一行的第一个字母
shift+$ 行尾
常用场景:拷贝参数去覆盖官方的默认参数
2.系统命令
查看磁盘空间 df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 40G 8.2G 32G 21% / —— 系统盘
/dev/vdb1 1T 10G XXX X% /data01 —— 数据盘
/dev/vdb2 1T 10G XXX X% /data02 —— 数据盘
/dev/vdb3 1T 10G XXX X% /data03 —— 数据盘
/dev/vdb4 1T 10G XXX X% /data04 —— 数据盘
/dev/vdb5 1T 10G XXX X% /data05 —— 数据盘
…
/dev/vdb9 1T 10G XXX X% /data09 —— 数据盘
devtmpfs 7.8G 0 7.8G 0% /dev
tmpfs 7.8G 16K 7.8G 1% /dev/shm
tmpfs 7.8G 51M 7.8G 1% /run
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
tmpfs 1.6G 0 1.6G 0% /run/user/0
tmpfs 1.6G 0 1.6G 0% /run/user/1001
内存 free -m
free -g
http://blog.itpub.net/30089851/viewspace-2131678/
详见此链接
系统负载 top
top - 21:47:07 up 1 day, 11:24, 2 users, **load average: 0.00, 0.01, 0.05**
Tasks: 125 total, 1 running, 124 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 16268360 total, 3686432 free, 4804424 used, 7777504 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 11099012 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
347 root 20 0 64044 24712 24348 S 0.3 0.3 0:44.28 systemd-journal
733 root 20 0 405008 17052 15460 S 0.3 0.2 0:39.06 rsyslogd
1510 root 20 0 781056 18252 6204 S 0.3 0.2 28:44.68 MonitorPlugin
1 root 20 0 125416 3756 2488 S 0.0 0.0 1:30.80 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
主要看load average: 0.00, 0.01, 0.05 三个值不要超过10
表格主要看CPU占比
3.查看进程 查看端口号
查看进程 # ps -ef 打印所有进程
[root@ruozedata001 ~]# ps -ef |grep xxx
root 15892 29399 0 12:28 ? 00:00:00 sshd: [accepted]
root 15902 29399 0 12:28 ? 00:00:00 sshd: [accepted]
root 15931 25798 0 12:28 pts/0 00:00:00 grep --color=auto xxx
root 25795 29399 0 10:13 ? 00:00:00 sshd: root@pts/0
root 29399 1 0 Jan18 ? 00:00:24 /usr/sbin/sshd -D
以第一条为例:root 15892 29399 0 12:28 ? 00:00:00 sshd: [accepted]
root:进程用户
15892 :进程的pid
29399 : 进程的父id(上一层)
最后一条的pid为第一条的父id,表明先运行最后一条进程,然后再运行第一条。
最后一条的父id为 1 ,表示 1 为系统级别的进程。
管道符筛选本身也成为一个进程,可以用 # ps -ef|grep ssh | grep -v grep来过滤这条进程
端口号 netstat -nlp 打印所有进程及端口号
netstat -nlp |grep 762 根据pid找端口号port(762为某个进程的pid)
[root@ruozedata001 ~]# netstat -nlp |grep 29399
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 29399/sshd
tcp6 0 0 :::22 :::* LISTEN 29399/sshd
端口号为 22
通过pid找port
一个软件的服务要想运行,必须满足以下条件
1: 启动一个进程 (ps -ef可以看到的 ) 必须条件
2: 可能启动一个port (netstat -nlp可以查找的)不是必须
安装服务,打开web
[root@ruozedata001 ~]# yum install httpd
[root@ruozedata001 ~]# service httpd start
Redirecting to /bin/systemctl start httpd.service
[root@ruozedata001 ~]# systemctl start httpd
[root@ruozedata001 ~]#
[root@ruozedata001 ~]#
[root@ruozedata001 ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: active (running) since Sun 2019-11-17 22:15:20 CST; 40s ago
Docs: man:httpd(8)
man:apachectl(8)
Main PID: 87908 (httpd)
Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec"
CGroup: /system.slice/httpd.service
├─87908 /usr/sbin/httpd -DFOREGROUND
├─87909 /usr/sbin/httpd -DFOREGROUND
├─87910 /usr/sbin/httpd -DFOREGROUND
├─87911 /usr/sbin/httpd -DFOREGROUND
├─87912 /usr/sbin/httpd -DFOREGROUND
└─87913 /usr/sbin/httpd -DFOREGROUND
Nov 17 22:15:20 ruozedata001 systemd[1]: Starting The Apache HTTP Server...
Nov 17 22:15:20 ruozedata001 httpd[87908]: AH00558: httpd: Could not reliably determine the serve...sage
Nov 17 22:15:20 ruozedata001 systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.
service httpd start centos6.x 7.x
systemctl start httpd centos7.x
二者的区别在于,前者只能识别运行一种命令,后者可以多种
即:service httpd sshd status httpd和sshd无法一起识别
systemctl status httpd sshd 二者可以一起识别运行
上述服务运行后,可以查找端口号
[root@ruozedata001 ~]# ps -ef|grep http
root 87908 1 0 22:15 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 87909 87908 0 22:15 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 87910 87908 0 22:15 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 87911 87908 0 22:15 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 87912 87908 0 22:15 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 87913 87908 0 22:15 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
root 88447 74889 0 22:18 pts/0 00:00:00 grep --color=auto http
[root@ruozedata001 ~]# netstat -nlp |grep 87908
tcp6 0 0 :::80 :::* LISTEN 87908/httpd
查到端口号,可以用浏览器测试端口连接状态。主机地址后加 :端口号
http 协议为 80
https 协议为 443
4. Connection refused错误的解决
场景: 在centos部署大数据组件,发现一个错误 Connection refused
我们可以用两种方法
①ping ip 测试ip :打开cmd黑窗口,输入ping ip地址 然后回车
②telnet ip port 测试ip和端口号: 打开cmd黑窗口,输入telnet ip port,然后回车
注:windows系统默认不带telnet命令
Linux系统则需要安装一下命令
[root@ruozedata001 ~]# yum install -y telnet
[root@ruozedata001 ~]# which telnet
/usr/bin/telnet
[root@ruozedata001 ~]# telnet 114.67.73.169 80
Trying 114.67.73.169...
Connected to 114.67.73.169.
Escape character is '^]'.
最后结果表示通过
面试题: 老板说去A服务器login,打开xxx软件的web界面?
查找ip以及端口号port
ip查找方法:window : ipconfig
linux: ifconfig
端口号查找方法:
ps -ef|grep xxx
netstat -nlp |grep pid ==》port
查看端口号特殊情况:[root@ruozedata001 ~]# netstat -nlp |grep ssh tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 762/sshd tcp6 0 0 :::22 :::* LISTEN 762/sshd
0.0.0.0:22 当前的ip
:::22 当前的ip
192.168.0.3:22 当前的ip
----------------------------
127.0.0.1:22
localhost:22 这两种都是本地自己访问自己 window和其他服务器无法进行访问
5. 高危命令
①rm -rf /
②vi 生产配置文件 当写完之后发现错误,需要修改,没有备份
注:每次编辑生产配置文件,需要习惯性拷贝一份标明时间 cp xxx.xml xxx.xml20191117
③ps -ef进程xxx,或者top命令查询 电脑系统夯住
删除xxx进程:
kill -9 进程pid
kill -9 进程pid 进程pid 进程pid
kill -9 $(pgrep -f 匹配关键词) pgrep -f是ps -ef |grep的缩写
注:杀进程之前,先ps 找到相关的进程,搞清楚,哪些是你要杀的,不然造成生产事故
[root@ruozedata001 conf]# ps -ef|grep http
root 91733 1 0 22:38 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 91734 91733 0 22:38 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 91735 91733 0 22:38 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 91736 91733 0 22:38 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 91737 91733 0 22:38 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 91738 91733 0 22:38 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
root 93161 83057 0 22:46 pts/1 00:00:00 grep --color=auto http
[root@ruozedata001 conf]# kill -9 91733
[root@ruozedata001 conf]#
[root@ruozedata001 conf]# ps -ef|grep http
apache 91734 1 0 22:38 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 91735 1 0 22:38 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 91736 1 0 22:38 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 91737 1 0 22:38 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 91738 1 0 22:38 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
root 93185 83057 0 22:46 pts/1 00:00:00 grep --color=auto http
[root@ruozedata001 conf]# kill -9 91734 91735 91736
[root@ruozedata001 conf]#
[root@ruozedata001 conf]# ps -ef|grep http
apache 91737 1 0 22:38 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
apache 91738 1 0 22:38 ? 00:00:00 /usr/sbin/httpd -DFOREGROUND
root 93207 83057 0 22:46 pts/1 00:00:00 grep --color=auto http
[root@ruozedata001 conf]#
[root@ruozedata001 conf]#
[root@ruozedata001 conf]# echo $(pgrep -f http)
91737 91738
[root@ruozedata001 conf]# pgrep -f http
91737
91738
[root@ruozedata001 conf]# kill -9 $(pgrep -f http)
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
[root@ruozedata001 conf]#
[root@ruozedata001 conf]#
[root@ruozedata001 conf]# pgrep -f http
[root@ruozedata001 conf]# ps -ef|grep http
root 93533 83057 0 22:48 pts/1 00:00:00 grep --color=auto http
6 安装yum软件
yum search xxx 搜索匹配的yum安装包
yum install -y xxx-yyy 安装
yum remove xxx-yyy 卸载
搜索已安装的安装包全称以及依赖包 rpm -qa | grep xxxx
[root@ruozedata001 conf]# rpm -qa | grep http
httpd-2.4.6-90.el7.centos.x86_64
httpd-tools-2.4.6-90.el7.centos.x86_64
卸载 rpm -e 安装包全称
此删除有顺序,必须先删除依赖包
先删除httpd-2.4.6-90.el7.centos.x86_64
httpd-tools-2.4.6-90.el7.centos.x86_64
否则就会出现以下错误
[root@ruozedata001 conf]# rpm -e httpd-tools-2.4.6-90.el7.centos.x86_64 error: Failed dependencies: httpd-tools = 2.4.6-90.el7.centos is needed by (installed) httpd-2.4.6-90.el7.centos.x86_64
不校验,直接删除 rpm -e --nodeps xxxx
7.在网页上直接下载 wget
wget http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.16.2.tar.gz
8.压缩解压
zip
在文件夹里边操作:zip -r xxx.zip ./* 该文件夹存在子文件夹 ,将该文件夹里的所有文件压缩为xxx.log的压缩包中
在文件夹外边操作:zip -r xxx.zip xxx/*
解压:unzip
大数据组件的压缩包几乎都是后缀 tar.gz
压缩tar -czvf hadoop-2.6.0-cdh5.16.2.tar.gz hadoop-2.6.0-cdh5.16.2/*
解压tar -xzvf hadoop-2.6.0-cdh5.16.2.tar.gz