Linux常用命令备忘
- 查看文件个数
查看当前目录下文件个数(单引号/双引号均可)
ls -l | grep '^-' | wc -l
或
ls -l . | grep '^-' | wc -l
查看父级目录下文件个数(单引号/双引号均可)
ls -l .. | grep '^-' | wc -l
查看指定目录下文件个数(单引号/双引号均可)
ls -l /back_oracle/back_oracle | grep '^-' | wc -l
查看目录下含子目录的所有文件个数(区分当前目录/父级目录/指定目录的方法同上)
ls -lR | grep '^-' | wc -l
设置别名,简易使用
alias count='ls -l | grep '^-' | wc -l' alias countR='ls -lR | grep '^-' | wc -l'
- 使用find命令查找文件并删除
crontab中设置脚本,定时清理指定目录下oracle的trace文件
类型为普通文件,时间大于10天,文件名以.tr..结尾,执行删除动作,如果没有扩展名,直接使用*即可
sh脚本代码
#!/bin/bash find /oracle/app/oracle/diag/rdbms/erpln/erpln2/trace -type f -mtime +11 -name "*.tr*" -exec rm {} \;
-iname 不区分大小写(-name区分大小写)
-type f指定普通文件,-type d指定文件夹
-
使用find命令查找文件内容
find /etc/sysconfig/ -type f -name "*" | xargs grep "192.168."
-
使用find命令查找文件并执行其他动作
find命令查找相关文件
-exec指定执行后续需要执行的动作
{}代表当前找到的文件
;表示-exec结束符
例1:查找文件后复制到其他目录
find /tmp1 -type f -name "*.dbf" -exec cp {} /tmp2 \;
例2:查找文件后移动到其他目录
find /tmp1 -type f -name "*.dbf" -exec mv {} /tmp2 \;
例3:查找文件后删除这些文件
find /tmp1 -type f -name "*.dbf" -exec rm {} \;
-
lsof命令显示系统中由各种进程打开的文件
常用关键字:
+d 查看目录,不递归
+D 查看目录,递归子目录
-t 仅获取进程ID号
-c 指定进程名称
-u 指定用户
-p 指定进程ID
+r 重复模式,当找不到打开的文件时结束查找,可以找到打开的文件时一直持续
-r 重复模式,无论是否找到打开的文件,都一直持续查找
-i 列出所有打开的网络连接
-a and操作,不写默认为or操作
示例:
lsof | grep /home
过滤包含关键字/home路径
lsof /var/log/maillog
查看某个具体文件的打开情况
lsof +d /var/log
查看某个目录/挂载点下文件的打开情况,不递归
lsof +D /var/log
查看某个目录下文件的打开情况,递归子目录
lsof -c java -c ssh
根据进程名列出打开的文件
lsof -u oracle
查询特定用户所打开的文件
lsof -u ^root
查询所有用户打开的所有文件,除了某个特定用户
lsof -p 3752
查看特定ID的进程所打开的文件
kill -9 `lsof -t -u oracle` kill掉所有指定用户所打开文件的进程,-t参数用于获取进程ID
lsof -u oracle -c java
or操作,组合查询指定用户所打开的文件,以及指定进程所打开的文件
lsof -u oracle -c java -a
and操作,组合查询由某个指定用户打开并且为指定名称的进程名的文件
lsof -r4 /tmp/1.txt
每隔4秒,以重复模式持续查找某个指定文件的打开情况
lsof -i
列出网络连接状况
lsof -a -i -c ssh
列出指定进程的网络连接状况
lsof -i :1521
列出指定端口号的进程 -
查询设备正在被哪个进程使用
fuser -m -v /dev/mapper/VolGroup-lv_home
-
查询指定进程的工作目录
pwdx 3368 -
设置时间
查询系统时间
date -R
手动设置系统时间
date -s "20221104 13:22:00"
查询硬件时间
clock
从外部同步系统时间
ntpdate 192.168.3.69
同步系统时间至硬件
clock -w
crontab设置时间同步
00 5 * * * /usr/sbin/ntpdate 192.168.1.11
-
查看各硬盘的使用类型:blkid
blkid
-
监控命令的执行状态/结果
watch -n 10 -d ls -lh
使用watch监控du -sh命令的执行,-n设置间隔时间秒,-d高亮显示不同信息 -
对文件内容进行排序
读取密码文件,对用户ID列按升序排序
sort -t ":" -k 3 -n /etc/passwd
-t 分隔符
-k 按照第几列(某个字段)进行比较
-h 以人类可读性方式进行排序
-n 以纯数字方式进行排序 -
查看各目录的大小并排序
du -h --max-depth=1 | sort -k 1 -h
-
检查对端端口是否通
方式一
ssh -v -p 8200 administrator@192.168.1.111
说明:
-v 调试模式(会打印日志)
-p 指定端口
username:远程主机的登录用户
ip:远程主机
如果远程主机开通了相应的端口,会有建立成功的提示
方式二,使用nc命令
nc -v 192.168.1.111 8200
使用nc默认方式测试对端1.111的端口8200的连通性
nc -v -p 30000 192.168.1.111 8200
-p指定本机端口
nc -v -s 192.168.1.100 -p 30000 192.168.1.111 8200
-s指定使用本机的哪个IP -
tar命令
常用参数
-c 打包文件
-C 指定路径,后面跟路径
-x 解压文件
-v 显示操作过程
-f 指定文件名,后面跟文件名
-p 解包时保留原权限
--exclude=目录路径 打包时排除某个目录(待排除的路径后面不要带/)
将test11.tar文件解压到指定目录/tmp下
tar -xvf /home/oracle/test11.tar -C /tmp
将oracle目录打包成文件test1.tar
tar -cvf /tmp/123/test1.tar /oracle/app/oracle
将oracle目录打包成文件test1.tar,不包含oracle目录下的dir1、dir2两个目录
tar -cvf /tmp/123/test1.tar --exclude=/oracle/app/oracle/dir1 --exclude=/oracle/app/oracle/dir2 /oracle/app/oracle
-
sar命令
查看系统性能
帮助命令sar -h
常用命令:sar -u 2 2
查看CPU使用情况,主要看%iowait和%idle,%iowait过高表示存在I/O瓶颈,即磁盘IO无法满足业务需求,如果%idle过低表示CPU使用率比较严重,需要结合内存使用等情况判断CPU是否瓶颈
常用命令:sar -n DEV 2 1
查看当前网络传输活动状况 -
查看磁盘读写情况
方式1:iostat命令
iostat #或iostat -d,显示磁盘读写状态
iostat -x #显示扩展信息
iostat 3 2 #每3秒采样一次,持续显示2次
tps 每秒传输数
%util 磁盘的使用率,接近100%表示磁盘繁忙
方式2:vmstat命令
vmstat -d #显示磁盘读写状态
vmstat -d 3 2 #每3秒采样一次,持续显示2次
bi 块设备读(block in)
bo 块设备写(block out)
wa CPU处于等待I/O的时间百分比
方式3:sar命令
sar -h #获取帮助
sar -b #获取I/O状态的历史记录
sar -b 3 2 #每3秒采样一次,持续显示2次
sar -d #获取块设备读写状态
sar -d 3 2 #每3秒采样一次,持续显示2次
tps 每秒传输数(读写数总和)
bread/s 每秒读块数
bwrtn/s 每秒写块数 -
查看文件系统类型
方式1:lsblk -f
方式2:df -hT 仅能查看已挂载分区的类型 -
在同一行中执行多条命令
使用&&符号进行连接,前一个命令执行成功,才执行后一个命令
例如cd /tmp && rm -f a.txt
使用||符号进行连接,前一个命令执行失败,才会执行后一个命令
例如cd a || cd b
使用;符号进行连接,代表执行多个命令,不管执行成功与否,都会依次执行
例如ls -l ; du -sh
-
更改时区
timedatectl set-timezone 'Asia/Shanghai'
-
查看crontab任务执行状态
ps -ef | grep cron -
后台运行命令
断开终端连接后仍可继续运行
使用命令:nohup command &
例如
nohup /usr/local/node/bin/node /www/im/chat.js >> /usr/local/node/output.log 2>&1 &
rman target / cmdfile=/home/dgerp/restore.rman log=/home/dgerp/rman.log &
命令后面加&符号表示程序在后台执行
命令前面加nohup表示即使关闭当前终端(退出当前账户)程序仍然执行(nohup = no hang up) -
查找后台运行的命令
命令在后台执行时的查找方式
方法一:jobs命令 jobs -l
方法二:ps命令 ps aux | grep ora -
开机自动挂载硬盘
vi /etc/fstab
/dev/vg_abctest/lv_abctest /abctest ext4 defaults 0 0
-
防止终端超时退出
tmout=0
-
挂载ISO镜像文件
挂载:mount -t iso9660 -o loop /soft/rhel-server-7.4-x86_64-dvd.iso /mnt/isodir
取消挂载:umount /mnt/isodir
-
解压zip文件
unzip -d /data/testdir /tmp/test.zip
-d 目录名 将压缩文件解压到指定目录下。
-q 解压时不显示执行过程。
-l 在不解压的情况下查看压缩文件内的文件。
-n 解压时并不覆盖已经存在的文件。
-o 解压时覆盖已经存在的文件,并且无需用户确认。
-v 查看压缩文件的详细信息,包括压缩文件中包含的文件大小、文件名以及压缩比等,但并不做解压操作。
-t 测试压缩文件有无损坏,但并不解压。
-x 文件列表 解压文件,但不包含文件列表中指定的文件。 -
彻底删除文件
shred -u -z [ filename ]
-u 删除文件
-z 给文件内容置0 -
rose启动命令
hcc -
compgen命令
-u 列出系统所有的用户
-g 列出系统所有的组
-d 列出当前目录下所有目录
-f 列出当前目录所有文件 -
查看磁盘UUID
cd /dev/disk/by-uuid
ls -l -
查看磁盘详细信息
udevadm info --query all --name /dev/sda -
使用which查找某个命令的绝对路径
which sqlplus -
查询内存参数
dmidecode --type memory -
一块网卡添加多个IP地址
方法一
cd /etc/sysconfig/network-scripts/
cp ifcfg-eth0 ifcfg-eth0:1 #复制一个新配置文件
vi ifcfg-eth0:1 #编辑新配置文件,更改IP和掩码
DEVICE=eth0:1
NAME=eth0:1
IPADDR=192.168.137.201 #使用原字段IPADDR
PREFIX=24
systemctl restart network.service #重启网络服务
方法二
cd /etc/sysconfig/network-scripts/
vi ifcfg-eth0 #在原配置文件中直接新增IP和掩码
IPADDR1=192.168.137.201 #使用新字段IPADDR1
PREFIX=24
systemctl restart network.service #重启网络服务
方法三
UI界面找到网卡设置,直接添加IP掩码 -
排除某个目录
cp -a !(test) test #在当前目录下操作,复制test以外的其他文件及目录
cp -a !(test|test1) test #在当前目录下操作,复制test、test1以外的其他文件及目录
mv !(test|test1) test #在当前目录下操作,移动test、test1以外的其他文件及目录
rm -rf !(test|test1) #在当前目录下操作,删除test、test1以外的其他文件及目录
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~