Linux常用方法
1、查看日志后100行
tail -f -n 100 catalina.out
2、ps命令
ps命令用来列出系统中当前运行的那些进程。ps命令列出的是当前那些进程的快照
ps -ef 显示所有进程信息,连同命令行,ps 与grep 常用组合用法,查找特定进程
ps aux列出目前所有的正在内存当中的程序
ps -ef|grep java 或ps -aux|grep java 显示出所有的java进程
ps工具标识进程的5种状态码:
D 不可中断 uninterruptible sleep (usually IO)
R 运行 runnable (on run queue)
S 中断 sleeping
T 停止 traced or stopped
Z 僵死 a defunct (”zombie”) process
注:linux上进程有5种状态
(1)运行(正在运行或在运行队列中等待)
(2)中断(休眠中,受阻,在等待某个条件的形成或接受到信号)
(3)不可中断(收到信号不唤醒和不可运行,进程必须等待直到有中断发生)
(4)僵死(进程已终止,但进程描述符存在,直到父进程调用wait4()系统调用后释放)
(5)停止(进程收到SIGSTOP,SIGSTP,SIGTIN,SIGTOU信号后停止运行运行)
3、文件大小查看
df -h 查看磁盘各分区大小、已用空间等信息
ls -lh 查看文件大小
du -sh 查看当前文件夹下所有文件大小总和
du -sh foo 查看foo目录的大小
du -sh ./* 查看当前文件夹下各个文件大小
ll -Sh 由大到小排序(可读的方式)
ll -Sr 由小到大排序(可读的方式)
ll -t 按时间排序,由新到旧
ll -rt 按时间排序,有旧到新
ll -a 查看隐藏文件
4、文件查找
查找包含有redis的文件
find -type f -name ‘.’|xargs grep ‘redis’
find / -name docker.service -type f
-name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写
-type f : 文件类型是 f 的文件。
d: 目录
c: 字型装置文件
b: 区块装置文件
p: 具名贮列
f: 一般文件
l: 符号连结
s: socket
find -type f -mtime +7 -exec rm -f {} ;
-mtime 按创建天数查找
-mtime +3和-mtime -3 这个查找方式都是以指定的3天为分割,一个是+3查找3天前的,-3是查找3天到现在的
语法格式为find /目录 -type f -name “ ” -mtime +3
find /home/data/mysql/data/mysql-bin* -mtime +3
按照text.txt中的文件名清单删除文件
cat text.txt |xargs rm
5、Linux查看端口占用情况
Linux 查看端口占用情况一般可以使用 lsof 和 netstat 命令。
lsof
lsof(list open files)是一个列出当前系统打开文件的工具。
lsof 查看端口占用方式:
lsof -i:端口号
案例:
查看服务器 8080 端口的占用情况:
lsof -i:8080
netstat
netstat -tunlp 用于显示 tcp,udp 的端口和进程等相关情况。
netstat查看端口号占用方式:
netstat -tunlp | gerp 8080
检查进程启动
ps aux|grep java
杀掉多个进程
kill -9 $(ps -ef | grep wx |awk ‘{print $2}’)
6、修改时区
echo ‘Asia/Shanghai’ >/etc/timezone
sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
7、node安装与卸载
wget https://nodejs.org/dist/v14.17.3/node-v14.17.3-linux-x64.tar.xz
export PATH=$PATH:/usr/share/node-v14.17.3-linux-x64/bin
cnpm cache verify
cnpm install
cnpm run build
zip -r dist.zip dist
echo $PATH
node -v
cnpm -v
cnpm install --force chromedriver --chromedriver_cdnurl=http://cdn.npm.taobao.org/dist/chromedriver
cnpm install --force
cnpm run build
node的卸载
在卸载node时需要先卸载npm
查看node的版本:
命令:
sudo node -v
查看node相关的文件信息
命令:
sudo whereis node
卸载node
命令:
sudo apt-get remove nodejs
注意:卸载时需要卸载nodejs,而不是node;如果卸载的是node将会报错,无法定位node软件包
清理掉自动安装的并且不需要软件包
命令:
sudo apt autoremove //清理掉不需要软件包
查看node相关文件
命令:
sudo whereis node
如果有文件需要手动删除文件
删除该文件命令
命令:
sudo rm -rf /usr/local/bin/node
再次查看node的版本
命令:
sudo node -v
或者
node -v
node完全卸载。
8、sed命令
sed 的 -i 选项可以直接修改文件内容
-g 忽略大小写
数据的搜寻并替换
sed ‘s/要被取代的字串/新的字串/g’
sed -i “s/171.212.101.25/192.168.1.76/g” grep 171.212.101.25 -rl application.yml
9、chmod 命令
linux chmod 755
chmod是Linux下设置文件权限的命令,后面的数字表示不同用户或用户组的权限。
一般是三个数字:
第一个数字表示文件所有者的权限
第二个数字表示与文件所有者同属一个用户组的其他用户的权限
第三个数字表示其它用户组的权限。
权限分为三种:读(r=4),写(w=2),执行(x=1)。综合起来还有可读可执行(rx=5=4+1)、可读可写(rw=6=4+2)、可读可写可执行(rwx=7=4+2+1)。
所以,chmod 755 设置用户的权限为:
(1)、文件所有者可读可写可执行
(2)、与文件所有者同属一个用户组的其他用户可读可执行
(3)、其它用户组可读可执行
10、cron定时任务
/etc/crontab 这个文件负责调度各种管理和维护任务
yum install vixie-cron
yum install crontabs
apt-get install vixie-cron
apt-get install crontabs
查看定时任务
cat /etc/crontab
service cron start //启动服务
service cron stop //关闭服务
service cron restart //重启服务
service cron reload //重新载入配置
service cron status //查看crond状态
systemctl start crond //启动服务
systemctl stop crond //关闭服务
systemctl restart crond //重启服务
systemctl reload crond //重新载入配置
systemctl status crond //查看服务状态
crontab -l //查看root用户的crontab任务
crontab -r //删除root用户所有crontab任务
crontab -u //使用者名称
11、ubuntu修改apt-get源为国内镜像源
(1)、原文件备份
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
(2)、编辑源列表文件
sudo vim /etc/apt/sources.list
(3)、将原来的列表删除,添加如下内容
(dG 删除至文末
d1G 删除至文首)
https://developer.aliyun.com/mirror/ubuntu?spm=a2c6h.13651102.0.0.3e221b11VySHLS
阿里云 ubuntu 20.04(focal) 配置如下
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
(4)、更新源
更新软件包列表
sudo apt-get update
休复损坏的软件包,尝试卸载出错的包,重新安装正确版本的。
sudo apt-get -f install
升级系统中的所有软件包
sudo apt-get -y upgrade
更换三方源没有对应的Key
解决:
直接执行如下命令,比如我没有 3B4FE6ACC0B21F32,就需要执行
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32
参考文档:https://www.landui.com/help/show-7562
12、java相关操作
(1)、查看java的执行路径
[root@icoolkj ~]# which java
/usr/bin/java
(2)、查看java的文件目录情况
[root@icoolkj ~]# whereis java
java: /usr/bin/java /usr/lib/java /etc/java /usr/share/java /usr/share/man/man1/java.1.gz
(3)、java的安装与卸载
apt-get install openjdk-8-jdk
apt-get install openjdk-8-jdk
yum -y install java-1.8.0-openjdk.x86_64
apt-get remove openjdk*
13、tcpdump抓包
使用-i参数指定tcpdump监听的网卡
使用-c参数指定要监听的数据包数量,
使用-w参数指定将监听到的数据包写入文件中保存
tcpdump -i eth0 tcp port 7611 -w test.cap
tcpdump -i enp7s0 -w test.cap
抓包文件搜索
sip.Method == INVITE
ip.addr == 221.237.182.121
ip.addr == 171.212.101.25
udp.payload contains “51013199011318104016”
查看所有uri请求
http.request.uri
14、查看Linux操作系统
cat /etc/redhat-release
显示系统名、节点名称、操作系统的发行版号、内核版本等等。
uname -a
uname -r 查看Linux内核版本
cat /proc/cpuinfo | grep ‘cpu cores’ | uniq 查看Linux内核数
监听本机的TCP80端口
nc -l -p 80
监听本机的UDP80端口
nc -l -p 80 -u
15、ftp安装
yum -y install vsftpd
设置 FTP 服务开机自启动。
systemctl enable vsftpd.service
启动FTP服务器
systemctl start vsftpd.service
systemctl status vsftpd.service #查看状态, 显示active说明FTP启动成功
修改文件权限, var/ftp/pub为FTP服务默认的文件目录
chmod o+w /var/ftp/pub/
创建一个新的FTP用户,请输入以下内容:
adduser ftp
passwd 123456
16、防火墙操作
(1):查看防火状态
systemctl status firewalld
service iptables status
(2):暂时关闭防火墙
systemctl stop firewalld
service iptables stop
(3):永久关闭防火墙
systemctl disable firewalld
chkconfig iptables off
(4):重启防火墙
systemctl enable firewalld
service iptables restart
(5):永久关闭后重启
chkconfig iptables on
17、Nginx配置
Nginx配置之client_max_body_size和client_body_buffer_size
client_max_body_size
client_max_body_size 默认 1M,表示 客户端请求服务器最大允许大小,在“Content-Length”请求头中指定。如果请求的正文数据大于client_max_body_size,HTTP协议会报错 413 Request Entity Too Large。就是说如果请求的正文大于client_max_body_size,一定是失败的。如果需要上传大文件,一定要修改该值。
client_body_buffer_size
Nginx配置文件路径
/etc/nginx/conf.d
修改Nginx配置文件后加载生效
nginx -t
nginx -s reload
18、Ubuntu系统离线安装资源包
找到/var/cache/apt/archives目录
离线安装
sudo dpkg -i gcc.deb
19、SSH 登录时出现如下错误
No supported key exchange algorithms
对于 Ubuntu 、Debain 类操作系统,修复指令如下:
sudo rm -r /etc/ssh/ssh*key
sudo dpkg-reconfigure openssh-server
20、scp命令
scp -P 22122 data.zip root@10.25.25.61:/data