Linux常用命令备忘
- 查看文件个数
查看当前目录下文件个数(单引号/双引号均可)
ls -l | grep '^-' | wc -l
或
ls -l . | grep '^-' | wc -l
或
ls -l . | grep -c '^-' 查看父级目录下文件个数(单引号/双引号均可)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的进程所打开的文件
lsof -t -u oracle | kill -9杀掉所有指定用户所打开文件的进程,-t参数用于获取进程ID
lsof -u oracle -c javaor操作,组合查询指定用户所打开的文件,以及指定进程所打开的文件
lsof -u oracle -c java -aand操作,组合查询由某个指定用户打开并且为指定名称的进程名的文件
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 或 hwclock
从外部同步系统时间
ntpdate 192.168.3.69
同步系统时间至硬件
clock -w 或 hwclock -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
du -h -d 1 | sort -k 1
du -h | sort -h
ls /root | sort -k 5 -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以外的其他文件及目录 -
查看CPU负载情况
方式一:查看load情况
使用top、w、uptime命令均可
查看load average字段,共3个数值,分别表示最近1分钟、5分钟、15分钟内所有CPU核心平均负载值之和
load average / 核心数 = 单核load
当:
单核load < 0.7 系统空闲
0.7 < 单核load < 1.0 系统运行良好
单核load == 1.0 系统繁忙,需要查找原因
单核load > 1.0 系统非常繁忙,进程已产生排队队列
趋势分析:
1分钟单核Load>1,5分钟单核Load<1,15分钟单核Load<1:短期内繁忙,中长期空闲,初步判断是一个“抖动”,或者是“拥塞前兆”
1分钟单核Load>1,5分钟单核Load>1,15分钟单核Load<1:短期内繁忙,中期内紧张,很可能是一个“拥塞的开始”
1分钟单核Load>1,5分钟单核Load>1,15分钟单核Load>1:短、中、长期都繁忙,系统“正在拥塞”
1分钟单核Load<1,5分钟单核Load>1,15分钟单核Load>1:短期内空闲,中、长期繁忙,不用紧张,系统“拥塞正在好转”
方式二:查看run队列
vmstat 2 5
查看第一列r字段(run队列)
如果值超过了CPU数目,就会出现CPU瓶颈 -
查看CPU总核心数
grep "model name" /proc/cpuinfo | wc -l 或
grep -c "model name" /proc/cpuinfo -
将终端输出内容保存到文件
既保存命令执行的记录又同步在终端输出
方法一:
df -h | tee a.txt
方法二:
先开一个终端 df -h >a.txt
再开另一个终端 tail -f a.txt -
查询光纤卡信息
for host in $(ls /sys/class/fc_host/); do
echo "Host: $host"
echo " WWPN: $(cat /sys/class/fc_host/$host/port_name)"
echo " WWNN: $(cat /sys/class/fc_host/$host/node_name)"
echo " State: $(cat /sys/class/fc_host/$host/port_state)"
echo " Speed: $(cat /sys/class/fc_host/$host/speed)"
done
浙公网安备 33010602011771号