linux基本命令积累

服务器配置信息查看

查看linux内核信息 cat /proc/version 或者 uname -r
查看centos的版本 cat /etc/redhat-release
查看服务器上都有哪些用户etc/passwd和etc/shadow
列出已安转的软件包 rpm -qa 或者 yum list installed

硬件配置查看

lscpu 查看CPU核心数
free -g 查看内存
lsblk 查看磁盘大小

centos7防火墙

centos的防火墙有两种,分别为firewald 和 iptables,默认使用firewald,但是firewald底层也用的是iptables
查看防火墙状态 systemctl status firewalld.service 或者 firewall-cmd --state
开启防火墙 systemctl start firewalld.service
关闭防火墙 systemctl stop firewalld.service
重启防火墙 systemctl restart firewalld.service

防火墙是否开机启动设置

查看是否开启启动 systemctl is-enabled firewalld.service
开启开机启动 systemctl enable firewalld.service
关闭开机启动 systemctl disable firewalld.service

更新服务器时间

第一步:yum install ntp
第二步:ntpdate time.nist.gov
第三步:date

环境变量

用户级别: ~/.bashrc
系统级别: /etc/profile
export 设置环境变量
echo 打印

服务器各连接状态统计

netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a,S[a]}’
注意:
SYN_RECV表示正在等待处理的请求数;
ESTABLISHED表示正常数据传输状态;
TIME_WAIT表示处理完毕,等待超时结束的请求数。

CentOS和Red Hat的关系

Red Hat是付费的,CentOS是Red Hat的克隆版本,免费的。

批量替换

方法一: vim模式下输入%s/原字符/新字符/g
方法二: sed命令 sed -i ‘s/原字符/新字符/’ 2.log

远程连接其他服务器

ssh -p 22 root@192.168.1.1
-p 后边跟端口号
root是用户名

find

-name 文件名
-size 文件大小
-type 文件类型 d代表目录 f代表文件
-delete 删除
常用组合:
find /home/ -name 1.log #查看文件
find /home/ -name 1.log -delete #查找并删除
find /home/ -size +100M #查找大于100M的文件
find /home/ -type f -name ‘*.tar.gz’ #查看以.tar.gz结尾的文件

chmod

chmod 777 文件名
chmod +x 文件名 # +x +r +w -x -r -w
chmod -R -x 0424 # -R 参数是递归的意思

chown

chown -R es:es 0424 #把0424这个目录下的所有文件的拥有者改为es用户

grep

不带任何参数显示,显示的关键词所在的行
-i 忽略大小写
-o 精确查找(只显示匹配到的内容)
-v 反向查找

uniq

-i 忽略大小写
-c 在每列旁边显示该行重复出现的次数。如果相邻和不相邻的行都需要统计,则需要先排序,再uniq。 例如: cat 1.log |sort | uniq -c
-u 仅显示出一次的行列。

sort

sort默认是按照英文字母顺序(abcdefg…排序的)
-u 去除重复
-n 按数字排序(只要是按数字排序都需要该参数)
-r 按降序排列
-t 后边跟间隔符
-k列数(一般-k和-u参数一起使用,否则会报错) 例子: 日志内容如下 banana:30:5.5 apple:10:2.5 pear:90:2.3 orange:20:3.4 按第二数字从大到小排序的命令为: sort -n -r -k 2 -t: 1.log

cd

cd /
cd ~
cd …/…/
cd xx

ll

-h 友好的展示
-S 展示文件大小单位并排序
-s 展示文件大小单位不排序
-r 逆序
常见组合用法: ll -hS 查看目录下所有文件大小并按文件从大到小排序

mkdir

mkdir 目录名
mkdir -p a/b/b/b
mkdir -p a b c

rmdir

rmdir 目录名 :移除空目录

touch&cp&mv

touch 文件名:创建一个空文件
cp 文件名 目录/文件名:复制
mv 文件名 目录/文件名
mv 文件名 新文件名:重命名

tail

tail -f info.log 动态查看日志
tail -n 10 1.log 取文件的后10行

head

head –n 10 1.log 取文件的前10行
head –n 10 1.log> b.txt 取a.txt前十行数据重定向到b.txt

清空日志

1.log 清空1.log文件

scp 跨服务器拷贝

scp -r performance yinyongjie@172.17.0.180:/home/yinyongjie
把当前机器的performance目录复制到172.17.0.180上的/home/yinyongjie目录

scp -r -P 6789 root@172.16.123.54:/root/yyj/tiku.war
/data/tomcat-newtiku/webapps
把172.16.123.54上的/root/yyj/tiku.war拷贝到当前机器的/data/tomcat-newtiku/webapps目录下
-P后跟端口号

跨服务器带密码拷贝用sshpass

sshpass -p “admin123456” scp -r -P 6789
root@172.16.123.54:/root/yyj/tiku.war /data/tomcat-newtiku/webapps
-p后跟登录172.16.123.54服务器的密码

rm

rm 文件名:带询问的删除文件
rm -f 文件名:不带询问的删除文件
rm -rf 目录|文件:不带询问的递归文件
:8,15d 删除第8到15行

wc

cat 1.log | wc -l 统计行数

vim

快速跳转到首行: gg
快速跳转到尾行 : G 批量删除: 删除5-10行 :5,10d

软连接

软连接就是window的快捷方式,前提软连接文件是不存在的
格式:ln -s 源文件 软连接文件(快捷方式) 例如: 执行ln -s
config.php config.php.dist 结果: config.php.dist -> config.php
访问config.php.dist 就相当于访问config.php

用户切换

sodo -i 切换到root用户
exit 退出root用户

上传下载

rz -e 给服务器上传数据(上传报错时需要加-e参数) sz 下载

打包/解压 tar命令

tar -xvf 文件名 #解压到当前目录
tar -xvf 文件名 -C 目录名字 #解压到固定目录
tar -cvf 文件名 目录 #打包
tar -cvf 20190923-user.tar.gz * --exclude log #打包时排除某个目录,注意:–exclude后为目录时,目录后不需要带/,–exclude后为文件时,直接写文件名,如果排除的文件或者目录过多,需写多个 --exclude

查看磁盘大小-文件大小

df -h 查看磁盘大
du - sh * 查看文件及文件夹大小

wc

-l 显示行数

cut

-b 字节
-c 字符
cut -c 2-8 截取第二个到第八个字符

watch

-d 高亮显示动态变化
-n 时隔多少秒刷新
-t 关闭命令顶部的时间间隔,命令显示
例如:
watch -n 3 date
watch -n 3 -d date
watch -n 3 -d -t date
watch -d cat /proc/softirqs

后台运行

nohup java –jar xxjar &
&表示在后台运行 nohupb表示不挂断的运行命令 一般nohup和&一起使用

sh

sh 1.sh 任务在前台执行
sh 1.sh & 将任务放在后台执行
ctrl+z 将一个正在前台执行的命令放到后台,并且处于暂停状态
bg 将一个在后台暂停的命令,变成在后台继续执行 (b代表back)
fg 将后台中的命令调至前台继续运行 (f代表front)
jobs -l 查看后台执行的所有任务

进程和端口互查

根据进程查端口:netstat -natp|grep pid
根据端口查进程:netstat -natp|grep port 或者 lsof-i:port

查看所有java进程

jps -l

杀掉所有java进程

方法一:pkill java
方法二:killall java
方法三:ps -ef | grep java | grep -v grep | awk ‘{print $2}’ | xargs kill -9
参数说明: -v : 反选,除grep外的所有进程
xargs 作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题

netstat命令

-a all
-n 不显示别名
-t tcp
-l listen
-p process

查看已打开服务对应的进程及端口
Netstat -ntlp

查看80端口占了多少个连接
netstat -nat | grep -i “80” | wc -l

查看当前80端口有多少连接处于连接状态
netstat -anp | grep ESTABLISHED | grep 80| wc -l

查看httpd进程占了多少个连接
ps -ef | grep httpd | wc -l

![在这里插入图片描述](https://img-blog.csdnimg.cn/20191003204116483.png

ss命令

参数:
-a all
-l listen
-p process
-s summary

常用:
ss -a 查看socket连接数
ss -l 查看端口情况
ss -s 查看网络连接数
当服务器请流量特别大时,用ss比用netstat效率高

nginx日志统计

nginx用空格进行分割时
$4 请求时间、 $7 接口URL、$9 HTTP状态码
统计PV:cat access.log |wc -l
统计UV:cat access.log | awk ‘{print $1}’|sort |uniq -c |wc -l
统计TPS
统计每个接口出现的次数并排序:cat access.log |awk ‘{print $7}’|sort|uniq -c|sort -rn

awk

awk是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理

例如:
echo “123|456|789”|awk -F ‘|’ ‘{print $1}’
echo “123+345-789”|awk -F ‘+|-’ ‘{print $1}’ #根据加号或者减号分割
参数:
-F参数为指定分隔符 print为打印
$1为第一个域,$2为第二域
$为所有域 \t为制表符
| 表示或

显示123.log文件中的所有包含404的字段
awk ‘/404/{print $0}’ 123.log

显示110文件中每个用户及对应的IP,要求用制表符分开
cat 110 | awk -F ‘:’ ‘{print $1"\t"$2}’

某列求和
cat 5.log |awk -F ’ ’ ‘{sum=sum+$2} END {print “sum=”,sum}’

求平均值
cat 5.log |awk -F ’ ’ ‘{sum=sum+$2} END {print “sum=”,sum/NR}’

sed

1.简介 sed是一种行编辑器,它一次处理一行内容。

参数:
-n:sed会在处理一行文本前,将待处理的文本打印出来,-n参数关闭了这个功能(关闭默认输出)
-i: 修改内容

功能选项:
s: 取代
p:打印,表示打印当前行

sed -n p 1.log # 打印1.log的内容,相当于cat命令

2.定址
告诉sed你期望处理的行,由逗号分隔的两个数字表示,(美元符号)符号表示最后一行;

sed -n '2,3’p 5.log #打印第2到3行
sed -n '2,$'p 5.log #打印第2行到最后一行
sed -n ‘/100/p’ 5.log #打印文件中包含100的行

查看某时间段日志
例如:查看2014-12-17 16:17:20到2014-12-17 16:17:36的日志如下:
sed -n ‘/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p’ test.log

删除带有xxx的行
sed -i -e ‘/xxx/d’ 1.log

网络
ifconfig:查看当前网卡信息
ping:查看网络是否通畅
telnet ip port 查看服务器的某个端口是否开通(前提条件是服务端该端口要已启动)在这里插入图片描述
ifconfig eth1 up 启用网卡
ifconfig eth1 down 禁用网卡
ip a 查看服务器有几个网卡
在这里插入图片描述
watch cat /proc/net/dev 查看当前使用的哪个网卡(当前哪个网卡流量变化大,就是用的是那个)在这里插入图片描述
curl cip.cc 查看公网IP
在这里插入图片描述

网络带宽单位换算
数字信息流的基本单位是bit(比特),时间的基本单位是s(秒),因此bit/s(比特/秒)是描述带宽的单位,1bit/s是带宽的基本单位
KB/s && Kbps
kbps 中的 p 是 per 的缩写,意思就是 “每”。
kbps = kb/s
KB/s 中的 B 是 Byte (字节数)
kb/s 中的 b 是 bit (位数)
计算机中 1Byte = 8bit
所以 1KB/s = 8kbps = 8kbs
一般安装宽带讲的 20M 其实就是 20Mbps = 20Mb/s = (20/8) MB/s
同样,购买服务器的时候,商家说的 100M 带宽也是 100Mbps。
如下为DF测试环境网络带宽:
在这里插入图片描述

crontab 定时任务
vim /etc/crontab
*/1 * * * * root 1.sh 每1分钟执行一次
/n * * * * root 1.sh 当 n 不能被 60 整除的时候,就不是每 n 分钟执行一次
例如:
/25 * * * * root 1.sh 每小时的 0分,25分,50分,而不是 0,25,50,15,40 。。。
进程 ps -ef|grep cron
crontab -e 编辑定时任务
crontab -l 查看定时任务
crontab -r 删除当前的定时任务
注意:[1] 执行的脚本一定要有执行权限
[2] 定时语句写在/etc/crontab里可以成功,crontab -e里为什么不成功还没找到原因
[3] crontab里只写定时任务的语句,重定向语句写在可执行文件里

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值