linux常用命令记录

一、linux常用命令 

mkdir -p /aa/bb/bb      多层级创建
pwd                     查看当前路径
cat /etc/hosts          查看ip
find / -name ***.jar    查看jar包位置,也可以找nginx等
cp -a note1/* note2/    将note1目录下的文件的全部复制到note2
cp -a note1 note2/      不加/*就是把note1复制到了note2下

grep "xxxxx" /var/log/mysqld.log  过滤文件,常用查询日志,非常好用
grep -rn "aaa" /path  # 查找/path路径下所有包含aaa关键字的文件
    r表示在/path目录下进行递归查询,n表示若有关键字aaa显示文件所在行数
cat /var/log/aaa.log | grep "xxxxx"

tar -zxvf xxx.tar -C /tmp	解压到指定目录
nslookup 域名  获取域名对应的网络ip
reboot  # 表示立刻重启
shutdown -r now  # 表示立刻重启
shutdown -r 10   # 表示10分钟后重启

who -b  # 获得最后一次系统启动的日期和时间

history  查看历史的shell命令
history | grep xxx  查找历史命令中包含xxx命令
netstat -anp|grep 20000    通过端口号找到服务
netstat -lnpt              看所有服务对应的端口号

查看ssh端口是否被占用
ps -ef|grep ssh
netstat -tlnp | grep 22
lsof -i :22
ps -ef | grep java           查看所有的java服务
ps -ef | grep java | grep -v grep 过滤掉grep命令本身(grep --color=auto java)

ll -h       查看文件大小
ll start.sh 查看文件权限
du -sh      查看文件夹内文件大小--------常用
du -sh *    查看文件夹内文件大小
du -ah *    查看文件夹内文件大小,可以看子层级

df -h      显示磁盘空间(否则默认显示单位是字节,不直观)--------常用
free -m    查看内存使用大小
free -h    查看内存使用大小 --显示G
du -ah --max-depth=1    查看资源占用多的文件夹
du -hs * | sort -rh | head -n 10    查看当前目录下占用最大的10个
du -a /home | sort -n -r | head -n 10  查看/home目录下占用最大的10个(看不到G)

echo "" > filename      清空日志命令
echo 1 > /proc/sys/vm/drop_caches    清理centos系统内存 buff/cache 占用过高

// 给某个文件添加代码,省去vim操作..
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config

gzip FileName        ##创建.gz文件
gzip -d FileName.gz  ## 解压
临时显示行号,在Vim编辑器中输入以下命令:  :set number
隐藏行号 :set nonumber
永久显示行号,在Vim编辑器中输入以下命令  vi ~/.vimrc
添加 set number
或
vi /etc/virc
set number     # 最后面添加 
set tabstop=4  # 设置tab键缩进4格
检查服务是否开机启动
systemctl list-unit-files | grep mysqld
systemctl list-unit-files | grep nginx
systemctl list-unit-files | grep redis
systemctl list-unit-files | grep rabbitmq-server.service

vim复制、粘贴、撤销等命令

dd/yy : 剪切/复制 当前整行内容              
dw/yw : 剪切/复制 一个完整单词
d$/y$ : 剪切/复制 从光标到当前行末尾.              
dn/yn:  剪切/复制 从光标到当前行开始n行
ndd/nyy : 剪切/复制 当前开始的n行内容(n是要剪切的行数)

将光标放在要删除的多行语句行首,例如 3dd, 就会删除三行

p : 粘贴

x : 删除当前位置字符
nx : 删除当前光标后n个字符
nX : 删除当前光标前n个字符
u  : 撤销上一步操作   
.  : 执行上一步操作         
ctrl + r : 反撤销

0 : 移动到当前行开始
$ : 移动到当前行末尾
gg : 光标移动到文件首字母
G  : 光标移动到文件的最后一行
:5,10d   # 按下 esc 退出,输入5,10d,删除5到10行

 多行/取消注释

编辑模式 ctrl+v,上下键选中行,shift+i 切换编辑模式,在首行输入 #, 再按esc键没反应,有待查证
编辑模式 ctrl+v,上下键选中行,按x或d键

显示行号后
5,8 s/^/# , 按enter键 (# 有空格更友好)
5,8 s/# /, 按enter键(# 有空格更友好)

二、启动命令

-Xms 为jvm启动时分配的初始堆的大小,也是堆大小的最小值,比如-Xms200m,表示分配200M
-Xmx 为jvm运行过程中分配的最大堆内存,比如-Xmx500m,表示jvm进程最多只能够占用500M内存
nohup java -jar -Xms300m -Xmx300m *.jar > *.log 2>&1 &

java -Xms512m -Xmx1024m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -jar xxxx.jar
这个命令行指定JVM初始堆内存为512MB,最大堆内存为1024MB,初始元数据空间为256MB,最大元数据空间为512MB。

"-Dlog4j2.formatMsgNoLookups=true" 是Log4j2紧急缓解措施
nohup java -Xmx500m -Xms500m -Dlog4j2.formatMsgNoLookups=true -jar ***.jar 2>&1 &

重新指定端口号
nohup java -Xmx500m -Xms500m -Dlog4j2.formatMsgNoLookups=true -jar ***.jar --server.port=9999 &
nohup java -Xmx500m -Xms500m -jar ***.jar --server.port=9999 >./***.log 2>&1 &
nohup java -Xms800m -Xmx800m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -jar ./***.jar --server.port=9059 &
重新指定active
nohup java -jar ./***.jar --spring.profiles.active=prod 2>&1 &

不会产生nohup.out日志
nohup java -Xmx120m -Xms120m -Dlog4j2.formatMsgNoLookups=true -jar **.jar >/dev/null 2>&1 &

## nacos
nohup  java -Xms1024m -Xmx1024m -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=800m -jar ./***.jar --spring.cloud.nacos.config.group=lanren312 --spring.application.name=user-service --spring.profiles.active=prod --spring.cloud.nacos.config.server-addr=*.*.*.*:8848 &

nohup java -jar ./***.jar --spring.profiles.active=prod --spring.cloud.nacos.config.server-addr=*.*.*.*:8848 >./***.log 2>&1 &

 自动关闭、启动

touch start.sh

#!/bin/sh
ps -ef | grep monkey.jar | grep -v grep | awk '{print $2}'| xargs  kill -9
nohup java -jar -Xms300M -Xmx300M -Dlog4j2.formatMsgNoLookups=true -server monkey-1.0.0.jar > ./monkey.log 2>&1 &

chmod +x start.sh  # 赋可执行权限

grep -v 过滤关键字
awk是对每一行进行处理,然后输出
print $2 代表第二列的值,刚好就是进程id

#!/bin/sh

filepath=/opt/xxx.jar
pid=`ps -ef | grep $filepath | grep -v grep | awk '{print $2}'`
echo "find "$filepath" id: "$pid

for id in $pid
do
    kill -9 $id  
    echo "killed $id"  
done

/opt/jdk1.8.0_191/bin/java -Xmx120m -Xms120m -jar /opt/xxx.jar >/opt/xxx.log 2>&1 &

exit


三、修改服务器时间

查看服务器时间命令:date
tzselect
选择 5) Asia
选择 9) China
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
再date,时间没改成功

方法二
安装ntpdate:yum install -y ntpdate
删除    etc/localtime
替换    cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
更新时间 ntpdate -u ntp.api.bz
date 发现时间改成当前时间
很重要   hwclock -w
完美解决
方法三
ntpdate ntp1.aliyun.com  # 同步阿里云NTP服务器

四、更改root密码

sudo passwd
输入新的密码
重新输入新的密码

 查看root用户上次的修改时间

awk -F ":" '{print $1,$3}' /etc/shadow|grep root
root 19316
date -d "1970-01-01 19316 days" "+%Y/%m/%d %H:%M:%S"
2022/11/20 00:00:00

 方法二

六、查看服务器磁盘

fdisk -l:查找未挂载的磁盘信息
lsblk:查看挂载磁盘的大小

七、scp命令

 其格式为“scp [参数] 本地文件 远程帐户@远程 IP 地址:远程目录”

1.windows本地上传

scp 111.jpg root@192.168.1.118:/opt/lanren312  # 上传单个文件
scp -r test root@192.168.1.118:/opt/lanren312  # 上传整个文件夹

 直接在文件夹中打开cmd

 

 

2. windows本地下载

scp root@192.168.1.118:/opt/lanren312/222.jpg test2 # 下载单个文件到本地文件夹中
scp -r root@192.168.1.118:/opt/lanren312 test2      # 下载整个文件件到本地文件夹中

3.linux两台服务器互传文件

scp /opt/lanren312/111.jpg root@192.168.1.119:/opt/lanren312
scp -r /opt/lanren312 root@192.168.1.119:/opt/lanren312

打包传输

cd /opt/lanren312
tar cf - * | ssh root@192.168.1.119 "cd /opt/lanren313/ && tar xf -"

八、rsync命令增量传输,传输2个文件不同的部分

rsync -av /lanren312/6666/ 服务器ip:/lanren312_tmp

九、防火墙,开放端口相关

Centos7默认安装了firewalld,如果没有安装的话,可以使用 yum install firewalld firewalld-config进行安装。

//开启防火墙    systemctl start firewalld.service	
//停止防火墙    systemctl stop firewalld.service 	
//设置开机启动  systemctl enable firewalld
//停止并禁用开机启动  sytemctl disable firewalld

systemctl status firewalld    查看防火墙状态
firewall-cmd --state          查看防火墙状态
firewall-cmd --list-ports    查看已经开放的端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent     开启8080端口
firewall-cmd --zone=public --remove-port=8080/tcp --permanent  关闭8080端

firewall-cmd --zone=public --add-port=9000-10000/tcp --permanent
firewall-cmd --zone=public --remove-port=9000-10000/tcp --permanent

firewall-cmd --reload        重启防火墙 (重新开启端口后一定要重启防火墙,再查看开放的端口)

十、查看linux版本

uname -r            # 查看内核linux版本 
cat /proc/version   # 查看内核linux版本 
cat /etc/redhat-release   # 查看centos版本 


### 下载vim,有的默认只有vi
apt-get update		     # 更新包管理
apt-get install vim -y   # 安装vim

sudo yum update      # 升级所有包同时也升级软件和系统内核
sudo yum upgrade     # 只升级所有包,不升级软件和系统内核,软件和内核保持原样

十一、其他相关

## gcc删除重装
yum remove -y gcc
yum install -y gcc gcc-c++

## nginx安装错误:c compiler cc is not found
yum -y install gcc gcc-c++ autoconf automake make

十二、top、iftop

查看服务器内存被占用情况(运行很卡被攻击),iftop比top查看的更详细

sudo yum install iftop

  内存占用前10的进程列表

ps aux --sort=-%mem | head  # 内存占用前10的进程列表

USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
%MEM : 进程使用的物理内存和总内存的百分比

十三、排查服务器是否被攻击了

1、看日志是否有记录,或者日志是否被清空

ll -h /var/log/*	# 查看/var/log/所有文件
如果发现有大量SSH登录失败的日志,并存在root用户多次登录失败后成功登录的记录,很可能被暴力破解。

du -sh /var/log/*  # 查看/var/log/文件大小

2、 检查 /var/log/secure文件

grep "Accepted" /var/log/secure	# 查看是否有可疑 IP 成功登录机器
grep "Accepted" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more  # 查看哪些IP登录成功了
grep "Accepted" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | head -n 20 # 查看20条IP登录成功了
gerp "Accepted" /var/log/secure | awk '{print $1,$2,$3,$9,$11}'  # 登录成功的日期,用户名,IP

查看ssh用户的登录日志:tail -100f /var/log/secure 

3、检查是否存在非法定时任务脚本

crontab -l
cat /etc/crontab   
cd /etc/cron.d     

cd /etc/cron.daily
cd /etc/cron.hourly
cd /etc/cron.monthly
cd /etc/cron.weekly 

4、其它

ll /etc/pass* # 查看/etc/passwd文件
ll /etc/sha* # 查看/etc/shadow文件
cat /etc/shadow # Linux查看用户登录密码,密码是经过加密的
	
sar -n DEV 2  # 检查服务器流量,网卡出入流是否存在暴增减等情况	
history [n]  # n为数字,列出最近的n条命令	
lastlog # 查看用户最后登录时间
last 用户名  # Linux查看用户登录时间
w、who、users # 当前登录的全部用户
who | wc -l	  # Linux查看有几个用户登录

十四、操作超时退出功能

编辑 /etc/profile 系统文件,在文件后面添加:

export TMOUT=600  # 十分钟没操作自动退出

source /etc/profile  # 刷新生效

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值