一:端口查看
lsof -i-----查看所有进程占用情况
lsof -i:端口号-----查看端口被那个进程占用
netstat -tunlp-----查看所有端口占用情况
netstat -tunlp | grep 端口号-----查看端口被那个进程占用
netstat -ano | findstr 端口号-----查看端口被那个进程占用(windows)
taskkill /pid 对应PID /f-----杀进程(windows),-f强制
二:java查看进程情况
top-----查看系统资源情况(可查出占用cpu最高的进程PID)
top -H -p pid-----找出占用cpu高(或执行时间长)的线程tid(此线程tid需16进制转换,命令:printf "%x " pid)
jps [-l] [-v]-----查看本机java进程pid(v可输出jvm启动参数)
jstack -l pid-----查看进程下线程详细信息
jstack 进程pid | grep 线程tid-----查看进程下线程的运行情况
jinfo -flag <参数名> <pid>-----查询虚拟机运行参数值
jstat <option> <pid> [interval] [count]-----对进程PID间隔interval时间执行count次操作,jstat -gc 14007 200 5,对14007查看gc状态每隔200秒查5次
jmap <option> <pid>-----内存映像工具,如 jmap -dump:format=b,file=xxx.bin 14007生成14007的内存快照
jmap -histo <pid>-----显示进程pid中对象统计信息,包括类,实例数,合计容量
jhat xxx.bin-----把内存快照文件生成网页,方便查看
三:java查看进程情况
1.帮助命令
[root@bogon ~]# ls -help-----查看命令帮助 [root@bogon ~]# man 1 ls-----查看命令文档,数字代表第几个文档,q退出
2.文件磁盘等命令
[root@bogon ~]# ls > test.txt-----重定向符号 > (>如果不存在,则创建,存在则覆盖其内容,>> 追加) [root@bogon ~]# more 100 test.txt-----分屏显示 [root@bogon ~]# ls -a | more----使用管道结合使用 [root@bogon ~]# touch test.txt-----创建文件 [root@bogon ~]# mkdir aaa-----创建文件夹 [root@bogon ~]# rm test.txt-----删除文件或文件夹(-f不提示删除,-r删除文件夹,递归删除) [root@bogon ~]# rmdir aaa-----删除文件夹(只能删除空文件夹) [root@bogon ~]# ln -s test.txt test.txt-----ln -s 源文件 链接文件(-s代表创建软链接) [root@bogon ~]# grep -v "内容" test.txt-----文本搜索(-v不包含,-i不区分大小写,-n显示行号) [root@bogon ~]# mv 11 22-----移动文件或文件夹(不在同一路径为移动,在同意路径则为重命名) [root@bogon ~]# cp 11 22-----拷贝文件或文件夹(文件夹加-r) [root@bogon ~]# tar -cvf 22.tar [文件] -C 指定文件夹-----压缩或解压文件(-c打包,-x解解包,-z压缩方式gz,文件需加.gz,如22.tar.gz,-j压缩方式bz2),tar只打包,并未压缩
3.系统命令
[root@bogon ~]# cal -y 2010-----日历 [root@bogon ~]# date-----时间 [root@bogon ~]# ps -aux-----查看进程的详细状况(-a显示终端上的所有进程,-u详细状态,-x没有控制终端的进程) [root@bogon ~]# top-----动态显示运行中的进程(q退出) [root@bogon ~]# htop-----动态显示运行中的进程,比top更友好(q退出) [root@bogon ~]# kill -9 PID-----杀进程(信号值从0到15,其中9为绝对终止) [root@bogon ~]# reboot-----重新启动操作系统 [root@bogon ~]# shutdown –r now-----重新启动操作系统,会给别的用户提示 [root@bogon ~]# shutdown -h now-----立刻关机,其中now相当于时间为0的状态[root@bogon ~]# shutdown -h 20:25-----系统在今天的20:25 会关机 [root@bogon ~]# shutdown -h +10-----系统再过十分钟后自动关机 [root@bogon ~]# init 0-----关机 [root@bogon ~]# init 6-----重启
4.权限命令
[root@localhost etc]# cat /etc/passwd-----查看系统全部用户 root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin
- 登陆用户名
- 用户密码
- 用户账户的UID(数字形式)
- 用户账户的组ID(GID)(数字形式)
- 用户账户的文本描述(成为备注字段)
- 用户home目录的位置
- 用户的默认shell
[root@localhost etc]# cat /etc/shadow-----系统用户密码情况 root:$6$T5vLcomV5SDm5jCe$JgUkU6PM0xQF37Sp4rDwVjXUZxFtTQbkJhkdL9lEjGqVJMmG6bnHu/tP2fR1zlT6tRGfQ7q.jq14gc7OfdIXy.::0:99999:7::: bin:*:17632:0:99999:7:::
- 与/etc/passwd文件中的登陆名对应的字段
- 加密后的密码
- 自上次修改密码后过去的天数(自1970年1月1日开始计算)
- 多少天后才能更改密码
- 多少天后必须更改密码
- 密码过期前提前多少天提醒用户更改密码
- 密码过期后多少天禁用账户
- 用户账户被禁用的日期(自1970年1月1日开始计算)
- 预留字段给将来使用
[root@localhost etc]# useradd -D-----查看添加用户时用户的默认设置 GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=yes
- 新用户将被添加到GID为100的公共组
- 新用户的HOME目录将会位于/home/
- 新用户账户未被设置过期时间
- 新用户账户将bash shell作为默认shell
- 系统将会/etc/skel目录下的内容复制到用户的HOME目录下
- 系统为该用户在/var/spool/mail目录下创建一个用于接收邮件的的文件
[root@localhost etc]# useradd -m test-----添加新用户
[root@localhost etc]# passwd test-----膝盖用户密码
[root@localhost etc]# userdel -r test-----删除用户
- -m命令会使其创建HOME目录
- -r命令会在删除用户时删除其HOME目录
[root@localhost etc]# cat /etc/group-----系统组情况 root:x:0:oracle,arms bin:x:1: daemon:x:2:
- 组名
- 组密码
- GID
- 属于该组的用户列表
[root@localhost etc]# groupadd shared-----添加用户组 [root@localhost etc]# usermod -G shared arms-----将用户添加进某个组内 [root@localhost etc]# groupmod -n sharing shared-----修改组名 [root@localhost etc]# groupmod -g 188 shared-----修改组GID
- -g修改用户的GID
- -n修改用户的组名
[root@localhost etc]# ll-----查看文件 总用量 1204 drwxr-xr-x. 3 root root 101 7月 16 09:14 abrt -rw-r--r--. 1 root root 16 7月 12 13:44 adjtime -rw-r--r--. 1 root root 1518 6月 7 2013 aliases -rw-r--r--. 1 root root 12288 7月 16 09:15 aliases.db
- 第一组字段第一个字符
- -代表文件
- d代表目录
- l代表连接
- c代表字符型设备
- b代表块设备
- n代表网络设备
- 第一组字段后九个字符
- 每三个一组,一次代表:所属用户,所属组,其他组的权限
- r代表读
- w代表写
- x代表执行
- 第二组字段:
- 第三组字段:文件所属用户
- 第四组字段:文件所属组
- 第五组字段:文件大小
- 第六组字段:文件日期
- 第七组字段:文件名
[root@localhost etc]# chown 760 file-----修改文件权限 [root@localhost etc]# chown arms file-----修改文件所属用户 [root@localhost etc]# chown arms.root file-----修改文件所属用户和组 [root@localhost etc]# chown .root file-----修改文件所属组
- 760:三个数字文件权限,如760代表rwxrw----
[root@localhost etc]# chmod u+w file-----修改文件权限
- u代表用户
- g代表组
- o代表其他
- a代表上述所有
5.vim命令
- q!不保存强制退出
- wq保存强制退出
- q不保存退出
- x保存退出
- w保存不退出
6.安全命令
[root@localhost sbin]# systemctl status firewalld-----查看防火状态 [root@localhost sbin]# service iptables status [root@localhost sbin]# systemctl stop firewalld-----暂时关闭防火墙 [root@localhost sbin]# service iptables stop [root@localhost sbin]# systemctl disable firewalld-----永久关闭防火墙 [root@localhost sbin]# chkconfig iptables off [root@localhost sbin]# systemctl enable firewalld-----重启防火墙 [root@localhost sbin]# service iptables restart
7.shell脚本
- 定时任务
[root@localhost root]# crontab -l-----查看当前用户的定时任务表 17 * * * * /home/root/test.sh [root@localhost root]# crontab -e-----编辑当前用户的定时任务表
8.磁盘查看
[root@localhost home]# df -h-----查看磁盘空间占用情况 [root@localhost home]# du -h-----查看目录占用情况
9.shell种类
[root@localhost ~]# sh ./test.sh-----将脚本作为参数交给系统shell执行,系统会使用脚本第一行指定的shell种类执行 [root@localhost ~]# ./test.sh-----使用系统默认shell执行
#!/bin/sh是指此脚本使用/bin/sh来解释执行.
#!/bin/bash是指此脚本使用/bin/bash来解释执行.
Linux操作系统中的/bin/sh本是bash (Bourne-Again Shell) 的符号链接,但鉴于bash过于复杂,有人把bash从NetBSD移植到Linux并更名为dash (Debian Almquist Shell),并建议将/bin/sh指向它,以获得更快的脚本执行速度。
10.后台运行
[root@localhost ~]# nohup sh ./test.sh &-----后台执行,并输出日志到nohup文件
&后台运行程序:
- 结果会输出到终端
- 使用Ctrl + C发送SIGINT信号,程序免疫
-
关闭session发送SIGHUP信号,程序关闭
nohup运行程序:
-
结果默认会输出到nohup.out
-
使用Ctrl + C发送SIGINT信号,程序关闭
-
关闭session发送SIGHUP信号,程序免疫
nohup和&运行程序:
-
同时免疫SIGINT和SIGHUP信号