Linux 常用命令

Linux 命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
$ curl cip.cc  # 查看公网IP

$ curl http://ifconfig.me

$ lsb_release -a #查看Linux版本

$ lsof | grep deleted #查看删除进程

$ df -h #查看磁盘空间

$ du -h --max-depth=2 | sort -n | head -12 #查找排在前12的大文件夹

$ scp -P 22 ./xxx.txt root@127.0.0.1:/home/xxx #SCP上传文件到指定服务器

$ scp -P 22 -r ./xxx root@127.0.0.1:/home/xxx #SCP上传文件夹到指定服务器

$ scp -P 22 -r root@127.0.0.1:/home/xxx /home/xxx #SCP下载服务器文件夹到本地

$ scp -P 22 root@127.0.0.1:/home/xxx.txt /home/xxx #SCP下载服务器文件到本地

$ netstat -tunlp |grep 8443 #查看端口占用

$ chmod 777 xxx.sh #赋予脚本执行权

$ ps -aux | sort -rnk 3 | head -20 #找出当前系统CPU使用量较高的进程

$ ps -aux|grep java //查看java进程

$ ps -aux //查看所有进程

$ tree a -L 2 //以树状格式列出目录 -L n n表示只显示到第几层

$ wget http://file.tgz //文件下载

$ curl http://file.tgz //请求URL

$ ping www.just-ping.com //网络检测

$ tar -czf test.tar.gz /test1 /test2 //列出压缩文件列表

$ tar -tzf test.tar.gz //解压文件

$ tar -xvzf test.tar.gz //解压文件

$ head -n 10 example.txt //查看文件前10行

$ tail -n 10 example.txt //查看文件后10行

$ tail -f exmaple.log //查看日志最近更新

$ netstat -tunlp | grep 8080 查看端口8080的使用情况 //查看端口占用情况

$ lsof -i :8080 //查看端口属于哪个进程

$ chmod 777 file.java file.java的权限-rwxrwxrwx,r表示读、w表示写、x表示可执行
##赋予执行权

$ chmod 777 xxx.sh

$ grep -H 'spring' *.xml //查找所以有的包含spring的xml文件

$ ls -l | grep '.jar' //查找当前目录中的所有jar文件

$ grep 'test' d* //显示所有以d开头的文件中包含test的行

$ grep 'test' aa bb cc //显示在aa,bb,cc文件中匹配test的行

$ grep '[a-z]\{5\}' aa #显示所有包含每个字符串至少有5个连续小写字符的字符串的行

$ ps –ef|grep tomcat //查看所有有关tomcat的进程

$ ps -ef|grep --color java //高亮要查询的关键字

$ kill -9 19979 //终止线程号位19979的进程

Linux 限制Root 指定IP登陆

1
2
3
4
$ vim /etc/ssh/sshd_config     //编辑ssh的配置文件默认 /etc/ssh/sshd_config,在文件最后面另起一行添加
AllowUsers root@183.21.89.249

$ service sshd restart //保存并退出,再重启一下ssh服务

Linux 修改SSH端口

1
2
3
$ vim /etc/ssh/sshd_config     //找到#Port 22字段 删掉#,将22改为其他不被使用的端口
Port 22
$ service sshd restart //保存并退出,再重启一下ssh服务

find(查找文件)

1
2
3
4
5
6
7
8
9
10
11
12
13
$ find / -name  *sync-huobi*

$ find / -name filename.txt //根据名称查找/目录下的filename.txt文件。

$ find . -name "*.xml" //递归查找所有的xml文件

$ find . -name "*" |xargs grep "hello" //递归查找所有文件内容中包含hello world的xml文件

$ find . -type f -size +100M -print0 | xargs -0 du -h | sort -nr //(https://www.cnblogs.com/kerrycode/p/4391859.html) #查找大文件

$ find ./ -size 0 | xargs rm -f & //删除文件大小为零的文件

$ find / -name *.conf -type f -print | xargs tar cjf test.tar.gz #tar命令将找出的文件直接打包

用户命令

1
2
3
4
5
6
7
8
 
$ sudo rm a.txt 使用管理员身份删除文件

$ userdel -r xxx 完全删除用户

$ chown -R ubuntu /var/lib/mysql //给指定用户加权限

$ chown -R ubuntu:root /home/ubuntu //给指定用户加权限

Redis (查看大Key)

1
redis-cli -h IP -p 6379 -a password --bigkeys

启动SpringBoot Jar

1
nohup java -jar exchange-announcement-0.0.1-SNAPSHOT.jar > /home/logs/xxx.log & //后台启动一个Jar包 输出日志到指定文件

安装反编译工具 反编译python

1
2
pip install uncompyle 安装反编译工具 反编译python
uncompyle6 upload_photo.pyc upload_photo.py

阿里云挂载磁盘

1
2
3
4
5
6
$ mount /dev/vdb1 /clouddisk  ##将云盘进行挂载
(vdb是快照对应的盘符,需要到系统内确认是不是vdb1,挂载到 clouddisk目录)

$ fuser -mv /clouddisk/ ##先杀死使用该目录的所有进程

$ umount /dev/vdb1 ##在阿里云卸载云盘之前执行卸载操作

Vim 批量替换

1
$ %s#abc#123#g  abc 替换为 123  //命令行