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 解压到指定目录
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是要剪切的行数)
p : 粘贴
x : 删除当前位置字符
nx : 删除当前光标后n个字符
nX : 删除当前光标前n个字符
u : 撤销上一步操作
. : 执行上一步操作
ctrl + r : 反撤销
0 : 移动到当前行开始
$ : 移动到当前行末尾
gg : 光标移动到文件首字母
G : 光标移动到文件的最后一行
-Xms 为jvm启动时分配的初始堆的大小,也是堆大小的最小值,比如-Xms200m,表示分配200M
-Xmx 为jvm运行过程中分配的最大堆内存,比如-Xmx500m,表示jvm进程最多只能够占用500M内存
nohup java -jar -Xms300m -Xmx300m *.jar > *.log 2>&1 &
"-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服务器
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 [参数] 本地文件 远程帐户@远程 IP 地址:远程目录”
scp 111.jpg [email protected]:/opt/lanren312 # 上传单个文件
scp -r test [email protected]:/opt/lanren312 # 上传整个文件夹
直接在文件夹中打开cmd
scp [email protected]:/opt/lanren312/222.jpg test2 # 下载单个文件到本地文件夹中
scp -r [email protected]:/opt/lanren312 test2 # 下载整个文件件到本地文件夹中
scp /opt/lanren312/111.jpg [email protected]:/opt/lanren312
scp -r /opt/lanren312 [email protected]:/opt/lanren312
打包传输
cd /opt/lanren312
tar cf - * | ssh [email protected] "cd /opt/lanren313/ && tar xf -"
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 --reload 重启防火墙 (重新开启端口后一定要重启防火墙,再查看开放的端口)
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
查看服务器内存被占用情况(运行很卡被攻击),iftop比top查看的更详细
sudo yum install iftop
ll -h /var/log/* # 查看/var/log/所有文件
如果发现有大量SSH登录失败的日志,并存在root用户多次登录失败后成功登录的记录,很可能被暴力破解。
du -sh /var/log/* # 查看/var/log/文件大小
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
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
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 # 刷新生效