1、返回root
su root
2、在系统中查找某目录/文件夹
find / -name "你的文件名,引号不用写"
中断执行查询操作
ctrl + c
3、在当前目录找某软件是否安装,whereis
#在linux里,怎样寻找mongodb安装的位置?
find / -name mongodb
locate mongodb
whereis mongodb
which mongodb
4、默认vim打开后是不能录入的,需要按键才能操作,具体如下:
开启编辑:按“i”或者“Insert”键
退出编辑:“Esc”键
退出vim:“:q”
保存vim:“:w”
保存退出vim:“:wq”
不保存退出vim:“:q!”
5、mysql操作
a、退出 exit,如果没有生效,先ctrl+c
b、登录
mysql -u 用户名 -p
# 例如
mysql -u root -p
c、查看最大空闲时间并且修改,mysql的8小时经典问题,即mysql的连接“隔夜失效”问题
# 查询空闲时间
show variables like '%timeout%';
# 设置
set global wait_timeout=86400;
# 再设置
set global interactive_timeout=86400;
效果如图所示,wait_timeout是28800,即8小时(8*60*60);
ps:遇到了一个奇葩的问题,linux运行正常,navicat连接报以下错误,则ip:3306访问网络连接异常,防火墙又是打开的,80端口都正常
原因:因为使用的是腾讯云,腾讯云策略的端口不包含3306,需要添加策略
ps:阿里云更离谱,所有的端口都不开放(找寻公司的运维同事了解到的)
6、nginx 启动,重启,关闭
a、测试配置文件是否正确(后面可忽略)
进入nginx安装目录sbin下,输入命令./nginx -t,
看到如下显示nginx.conf syntax is ok
nginx.conf test is successful
说明配置文件正确!
b、进入nginx可执行目录sbin下,输入命令
// 启动
./nginx -s start
// 重启
./nginx -s reload
// 停止
./nginx -s stop
#linux nginx启动 如
[root@LinuxServer sbin]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
检查nginx是否已经启动,查看nginx配置是否正确,查看nginx日志
ps -ef | grep nginx
注意:如果nginx没有启动,执行重启命令是无效且抛出错误
7、linux 下如何回到根目录?
cd www , 意思是 到www目录;
cd .. , 意思是到上一级目录;
cd - ,意思是返回到上次的目录,类似windows返回 ;
cd /,意思是回到根目录。
8、redis相关操作
a、查询redis安装目录 whereis redis-cli
b、redis 启动 进入到redis安装的bin目录 redis-server
// 502错误 1、启动nginx 2、启动redis 3、启动项目
// 查看nginx是否启动
ps -ef | grep nginx
// 启动nginx
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
// 查看redis安装目录
whereis redis
// 查看redis是否启动
ps -ef | grep redis
// 进入redis安装目录
cd /opt/redis/bin/
// 启动redis,然后新开窗口
./redis-server
// 进入redis安装目录
cd /opt/redis/bin/
// 设置redis密码
redis-cli
// 设置密码
config set requirepass "glh@5...."
// 登录redis
auth glh@5....
// 进入目录
cd /opt/weiliao/daka/
c、查看keys 进入到redis安装的bin目录 redis-cli 然后 keys *
d、设置默认密码
config set requirepass "123456"
e、redis登录
auth 密码
f、redis关闭
ps -ef | grep redis
kill -9 xxx
g、shutdown后退出
exit
9、tomcat启动、重启、关闭
打开终端
cd /www/server/tomcatN/apache-tomcat-8.5.34/bin/
#执行
bin/startup.sh #启动tomcat
bin/shutdown.sh #停止tomcat
tail -f logs/catalina.out #看tomcat的控制台输出;
#看是否已经有tomcat在运行了
ps -ef |grep tomcat
#如果有,用kill;
kill -9 pid #pid 为相应的进程号
例如 ps -ef |grep tomcat 输出如下
sun 5144 1 0 10:21 pts/1 00:00:06 /java/jdk/bin/java -
Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -
Djava.endorsed.dirs=/java/tomcat/common/endorsed -classpath :/java/tomcat/bin/bootstrap.jar:/java/tomcat/bin/commons-logging-api.jar -Dcatalina.base=/java/tomcat-
Dcatalina.home=/java/tomcat -Djava.io.tmpdir=/java/tomcat/temp org.apache.catalina.startup.Bootstrap start
则 5144 就为进程号 pid = 5144
kill -9 5144 就可以彻底杀死tomcat
#直接查看指定端口的进程pid
netstat -anp|grep 9217
#结果为 tcp 0 0 :::9217 :::* LISTEN 26127/java
#则26127为9217这个端口的tomcat进程的pid,然后就可以kill这个进程
kill -9 26127
#然后再启动tomcat即可
10、使用true命令重定向清空文件
[root@localhost logs]# du -h catalina.out
448K catalina.out
[root@localhost logs]# true > catalina.out
[root@localhost logs]# du -h catalina.out
0 catalina.out
如果删除之后,内容仍在,那么直接删除该文件,新建一个
11、进程相关
#查看服务器所有端口
netstat -ntlp
#指定端口,例8080
netstat -ntlp |grep 8080
#查看进程号
ps -aux | grep xxx(进程名)
#查看进程号所属进程所在的目录
ls -l /proc/xxx(进程号)/exe
#杀死进程
kill -9 xxx(进程号)
#删除文件
rm -f xxx(文件名)
12、ps -ef和 ps -aux区别
-ef
是System V展示风格,而aux
是BSD风格。
COMMADN列如果过长,aux
会截断显示,而ef
不会
如果想查看进程的CPU占用率和内存占用率,可以使用aux
如果想查看进程的父进程ID和完整的COMMAND命令,可以使用ef
综合,推荐使用 -ef
13、防火墙相关
#查看防火墙状态
sudo systemctl status firewalld
# 开启防火墙
sudo service firewalld start
# 重启防火墙
sudo service firewalld restart
# 关闭防火墙
sudo service firewalld stop
# 查看开启并激活使用中的端口
netstat -ntlp
#查看已开启端口
sudo firewall-cmd --list-ports
#打开单个端口:
firewall-cmd --zone=public --add-port=80/tcp --permanent
#打开多个端口:-permanent 为永久生效,不加为单次有效(重启失效)
firewall-cmd --zone=public --add-port=20000-29999/tcp --permanent
#查看开启端口:
netstat -ntlp 或:firewall-cmd --list-ports
#关闭端口命令:
firewall-cmd --zone= public --remove-port=80/tcp --permanent
#查看端口是否打开
firewall-cmd --zone= public --query-port=80/tcp
#查看防火墙设置开机自启是否成功:
systemctl is-enabled firewalld.service;echo $?
# 防火墙重启后,需要重启docker docker
systemctl restart docker
13、查看某个端口相关进程,并杀死
netstat -apn|grep XXXX[端口号]
14、mysql 相关
a、查看mysql是否启动
# service mysqld status
或者
# service mysql status
(若出现此问题,找到该文件删除即可)
b、mysql 启动
service mysqld start
15、Permission denied
解决方法:输入命令 sudo chmod -R 777 /工作目录,
例如:sudo chmod -R 777 /home/HDD
16、日志查看 linux查看日志的几种方法 - 石铭 - 博客园
tail、head、 cat、tac、sed、less、echo
1、命令格式: tail [必要参数] [选择参数] [文件]
-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示行数
-q, --quiet, --silent 从不输出给出文件名的首部
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒
tail -n 100 catalina.out 查询日志尾部最后100行的日志;
tail -n +100 catalina.out 查询100行之后的所有日志;
tail -fn 100 catalina.out 循环实时查看最后100行记录(最常用的)
配合着grep用, 例如 : tail -fn 100 catalina.out | grep -- '关键字'
如果一次性查询的数据量太大,可以进行翻页查看,
例如:tail -n 6000 catalina.out |more -100 可以进行多屏显示(ctrl + f 或者 空格键可以快捷键)
17、删除文件
删除文件夹实例:
rm -rf /var/log/httpd/access
将会删除/var/log/httpd/access目录以及其下所有文件、文件夹
删除文件使用实例:
rm -f /var/log/httpd/access.log
将会强制删除/var/log/httpd/access.log这个文件
18、通过pid查看端口号
netstat -nap|grep pid
netstat -anp|grep pid
netstat -nlp|grep pid
19、查看内存
free -h
20、PM2
pm2 list 查看启动的服务列表
pm2 show id号 查看对应id号的详细服务情况
pm2 start name(服务名) 启动服务
pm2 stop name(服务名) 终止服务
pm2 restart name(服务名) 重启服务
pm2 delete name(服务名) 删除服务
pm2 kill name(服务名) 杀死服务
pm2 logs name(服务名) 查看服务执行日志
pm2 logs name(服务名) 查看服务日志