lunix 命令大全: http://man.linuxde.net/
-
复制文件/文件夹
- 复制到本地
- 文件夹:
scp -r work@www.abc.com:/home/work/project /home/work/
- 文件:
scp work@www.abc.com:/home/work/readme.txt /home/work/readme.txt
- 文件夹:
- 复制到远程机
- 文件夹:
scp -r work@www.abc.com:/home/work/project /home/work/
- 文件:
scp work@www.abc.com:/home/work/readme.txt /home/work/readme.txt
- 文件夹:
- 复制到本地
-
hostname与ip互相查询
- hostname -> ip
- ping:
ping www.baidu.com
- host:
host www.baidu.com
- ping:
- ip -> hostname
- nslookup:
nslookup 123.126.56.253
- nslookup:
- hostname -> ip
-
获取端口信息
netstat -anp|grep 51202 //51202为端口信息
输出:可以获取所有相关的端口信息,包含本机,也包含和本机有连接的其他机器的对应端口
示例输出:
tcp 0 0 10.22.36.39:51202 10.25.76.52:8864 ESTABLISHED 28321/java
这里的28321即为端口对应的程序的线程信息 -
获取线程相关信息
ll /proc/28321
-
创建文件连接
- 硬连接:
ln f1 f3 #创建f1的一个连接文件f3
- 软连接:
ln f1 f3 #创建f1的一个符号连接文件f3
- 硬连接:
-
查看log必备工具
- vim
vim a.txt
//vim的详细操作之后专门讲 - less
less a.txt
//不可编辑的工具 - tail
tail -f a.log
//动态写入新文件的必备神器 - grep
grep ‘run to there’ /home/logs/logFile.log
//grep可以对文件内信息进行搜索,当log文件很大时,必须使用grep进行处理。grep命令用好可以解决很多问题
- vim
-
查看某个项目是否已启动
- ps aux|grep:
ps aux|grep redis-server
- ps aux|grep:
-
当ssh连接开发机后,退出前,检查是否有stop的job,及后续操作
-
jobs:
jobs //显示所有未关闭的任务
示例:
-
[1]+ Stopped tail -f project/logs/logFile.2016-09-23.log | grep "BaseImCCmdTask logout..76016..location=1"
```
//这是之前使用tail -f查看日志后,按Crtl+z或c stop掉的任务,事实上并没有关闭。
- jobs -l `jobs -l //显示所有未关闭的任务,且带线程信息`
示例:
```
[1]+ 16051 Stopped tail -f xp-pms/1/logs/logFile.2016-09-23.log
16052 | grep "BaseImCCmdTask logout.*.76016.*.location=1"
```
//有两个线程还在,16051和16052
- fg:`fg tail //fg + 参数, 标识现在仍执行的jobs,可以把stop的job切换到控制台继续执行`
- bg: `bg tail //bg+ 参数,标识现在仍在执行的jobs,可以把job切换到后台继续执行`
- kill -9 `kill -9 16051 //杀死相关线程`
-
查看系统最大进程数、线程数限制(root权限)
- 最大线程数:
cat /proc/sys/kernel/pid_max
- 最大进程数:
cat /proc/sys/kernel/threads-max
- 硬件内存大小:
cat /proc/sys/vm/max_map_count
- 最大线程数:
-
查询已用的线程或进程数
- 进程8080:
pstree -p 8080 | wc -l
注意,pstree查出来的可能是一个进程的线程,也可能是子进程。
一个奇怪的实例:tomcat的进程号为12319,用ps aux|grep tomcat
查到的该tomcat只有一个进程12319,用pstree -p 12319
查到改进程有一堆线程,如31298。有趣的是,用ll /proc/31298
都能查到的信息与线程并无不同,而用ll /proc/12319/task
能查到它的线程与pstree数据基本重复。而用ls /proc/
有查不到31298。因此得出结论,pstree查到的不仅仅是子线程,/proc/目录下的目录也不仅是进程信息,可能有线程信息,只是线程信息不回列在默认的ls中。 - 进程8080:
目前总结部分常用且有用的,之后会陆续补充,而对于vim、grep等重要工具的常用用法会另外说明