目录
1、根据进程名查看该进程打开的所有文件信息
lsof -c app_name
2、由fd查看其对应的文件名及打开该文件的进程信息
lsof -d fd
3、查看某路径下文件正在被哪些进程打开使用
lsof +d path
4、递归查看打开某目录及其子目录下文件的所有进程信息
lsof +D path
比如,查询/var目录下文件被哪些进程打开,可以看到/var/log/下文件及/var/spool/下文件都能查询到:
5、查看指定pid打开的所有文件信息
lsof -p pid
6、查看打开指定tcp端口的进程信息
[root@localhost ~]# lsof -i :22
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 1542 root 3u IPv4 21828 0t0 TCP *:ssh (LISTEN)
sshd 1542 root 4u IPv6 21830 0t0 TCP *:ssh (LISTEN)
sshd 2312 root 3u IPv4 23747 0t0 TCP localhost.localdomain:ssh->192.168.61.55:vrtl-vmf-sa (ESTABLISHED)
sshd 8859 root 3u IPv4 55684 0t0 TCP localhost.localdomain:ssh->192.168.61.52:5211 (ESTABLISHED)
7、由pid查看进程启动的详细时间点:
ps -p pid -o lstart
[root@localhost ~]# ps -p 856 -o lstart
STARTED
Mon Jan 11 09:15:28 2021
8、命令历史中增加命令执行的ip及时间信息
打开并编辑/etc/profile文件,在文件末尾增添以下命令:
USER_IP=`who -u am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g'`
if [ "$USER_IP" = "" ]
then
USER_IP=`hostname`
fi
export HISTTIMEFORMAT="%F %T $USER_IP `whoami` "
shopt -s histappend
export PROMPT_COMMAND="history -a"
保存后,执行source /etc/profile使改动生效。
source /etc/profile
9、查看系统当前内存占用前10的进程信息
ps aux --sort -pmem | head -10
[root@rac2 test_code]# ps aux --sort -pmem | head -10
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
oracle 11858 0.3 21.1 3396080 1671276 ? Ss 2020 87:33 ora_m004_ora19c2
oracle 8322 0.3 18.1 3346876 1431328 ? Ss 2020 52:51 ora_m003_ora19c2
oracle 4824 0.9 16.6 3413764 1312976 ? Ssl 2020 962:46 ora_lms0_ora19c2
oracle 17683 0.3 16.1 3297416 1278848 ? Ss Jan02 36:24 ora_m002_ora19c2
oracle 4845 0.0 15.5 3195300 1228404 ? Ss 2020 49:22 ora_dbw0_ora19c2
oracle 4889 0.1 14.8 3221636 1172508 ? Ss 2020 162:54 ora_mmon_ora19c2
oracle 15667 0.3 10.4 3281108 822084 ? Ss Jan09 7:12 ora_m006_ora19c2
oracle 4774 0.2 9.9 3199532 788460 ? Ss 2020 269:25 ora_dbrm_ora19c2
oracle 4863 0.0 8.9 3201740 705096 ? Ss 2020 19:20 ora_smon_ora19c2
10、查看系统当前cpu占用前10的进程信息
ps aux --sort -pcpu | head -10
[root@rac2 test_code]# ps aux --sort -pcpu | head -10
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2900 5.6 2.2 1196888 176184 ? SLsl 2020 5686:50 /oracle/grid/crs_1/bin/osysmond.bin
grid 3307 3.5 0.1 1556700 15172 ? Ss 2020 3527:46 asm_vktm_+ASM2
oracle 4720 3.5 0.0 3181844 6072 ? Ss 2020 3584:13 ora_vktm_ora19c2
grid 3004 3.2 3.1 1247368 245904 ? SLsl 2020 3230:50 /oracle/grid/crs_1/bin/ocssd.bin
grid 3517 2.9 0.7 1458760 60680 ? Ssl 2020 2939:47 /oracle/grid/crs_1/bin/oraagent.bin
root 3527 2.9 0.7 1431088 60172 ? Ssl 2020 3017:01 /oracle/grid/crs_1/bin/orarootagent.bin
root 30565 2.3 0.0 116780 4860 pts/2 Ss Jan08 94:23 -bash
root 2328 2.0 3.1 1553840 250816 ? Ssl 2020 2080:04 /oracle/grid/crs_1/bin/ohasd.bin reboot
root 3407 2.0 1.7 1438172 141416 ? Ssl 2020 2099:22 /oracle/grid/crs_1/bin/crsd.bin reboot
11、给history历史命令加上命令执行的具体时间
export HISTTIMEFORMAT='%F %T '
yg-net-static:~ # export HISTTIMEFORMAT='%F %T '
yg-net-static:~ #
yg-net-static:~ #
yg-net-static:~ # history | head
1 2021-03-26 18:09:14 whoami
2 2021-03-26 18:11:11 zppyer se -s 'kernel*'
3 2021-03-26 18:11:32 zypper se -s 'kernel*'
4 2021-03-26 18:12:30 zypper search-packages 'kernel*'
5 2021-03-26 18:12:39 zypper search-packages kernel
6 2021-03-26 18:14:08 zypper search-packages kernel-default
7 2021-03-26 18:15:19 zypper in kernel-default-devel
8 2021-03-26 18:16:21 yast
9 2021-03-26 18:26:56 zypper in -t pattern Basis-Devel
10 2021-03-27 08:39:49 ps -ef |grep yast
yg-net-static:~ #
取消显示时间的话,export HISTTIMEFORMAT='' 即可:
yg-net-static:~ # export HISTTIMEFORMAT=''
yg-net-static:~ # history | head
1 whoami
2 zppyer se -s 'kernel*'
3 zypper se -s 'kernel*'
4 zypper search-packages 'kernel*'
5 zypper search-packages kernel
6 zypper search-packages kernel-default
7 zypper in kernel-default-devel
8 yast
9 zypper in -t pattern Basis-Devel
10 ps -ef |grep yast
不想让某个知道命令在history中显示的话,可以如下过滤:
export HISTIGNORE='ls -l:pwd:date:'
这里设置后,history中不会显示ls -l,pwd,date的历史命令
export设置后只是本次生效,系统重启后失效,要永久生效,在~/.bash_profile文件中添加如下:
yg-net-static:~ # vi .bash_profile
HISTSIZE=500
HISTTIMEFORMAT='%F %T '
yg-net-static:~ #
yg-net-static:~ # source .bash_profile
yg-net-static:~ #
12、创建目录,并切换到该目录
在~/.bashrc中添加如下代码:
md () { mkdir -p "$@" && cd "$1"; }
然后,source ~/.bashrc使其生效,
之后就可以使用md来创建目录并同时可以切换到该目录下:
[root@localhost ~]# md aaaa
[root@localhost aaaa]#
[root@localhost aaaa]# ls
[root@localhost aaaa]#
欢迎关注我的微信公众号【大胖聊编程】,我的公众号中有更多文章分享,也可以在公众号中联系到我,加好友一起交流学习。