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 {} \;
  • 使用find命令查找文件内容
    find /etc/sysconfig/ -type f -name "*" | xargs grep "192.168."

  • 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

  • 设置时间
    查询系统时间
    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

  • 查找文件
    从根目录开始查找名为config.json的文件
    find / -name config.json
    从当前目录开始查找包含config.json字段的文件
    find -name *config.json*

  • 检查对端端口是否通
    ssh -v -p 8200 administrator@192.168.1.111
    说明:
    -v 调试模式(会打印日志)
    -p 指定端口
    username:远程主机的登录用户
    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: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

  • 使用which查找某个命令的绝对路径
    which sqlplus

  • 查询内存参数
    dmidecode --type memory

posted on 2021-03-02 15:30  越野兔  阅读(110)  评论(0编辑  收藏  举报

导航