备忘的命令、脚本(方便干活,怕忘了,随时查)

Linux替换文件中的内容

sed -i 's/Search_String/Replacement_String/g' Input_File

-i:此选项直接对输入文件进行替换更新(若无此选项,默认情况下sed 打印结果到标准输出)

Search_String:搜索一个给定的字符串或正则表达式(注意可能需要转义)
Replacement_String:替换的字符串(注意可能需要转义)

Linux上批量卸载包含XXX名字的软件

rpm -qa |grep XXX |xargs rpm -e --nodeps

Linux通过名词,查询得到进程号。  (可配合kill命令)

ps -ef | grep XXX | grep -v grep | awk '{print $2}' 

ps -ef | grep XXX | grep -v grep | awk '{print $2}' | xargs kill -9

Linux查看进程打开的文件句柄(根据进程号查看打开的socket)

ls -l /proc/进程号/fd -l
ls -l /proc/1465/fd |grep socket

Linux查看进程使用的端口,或者通过端口号查看使用的进程

#注意,执行的用户应该有权限看到该进程及其端口信息
netstat -anp |grep 进程号

#或者直接使用进程名关键字(netstat只显示的进程名,ps -ef 还可以显示启动的CMD)
netstat -anp |grep 进程名

 Linux实时查看网卡流量

#实时查看Linux网卡流量。每一秒钟取1次值,取100次
#  -n选项取值:
#    DEV显示网络接口信息。
#    EDEV显示关于网络错误的统计数据。
#    NFS统计活动的NFS客户端的信息。
#    NFSD统计NFS服务器的信息
#    SOCK显示套接字信息
#    ALL显示所有5个开关
sar -n DEV 1 100

输出:
IFACE:LAN接口
rxpck/s:每秒钟接收的数据包
txpck/s:每秒钟发送的数据包
rxbyt/s:每秒钟接收的字节数
txbyt/s:每秒钟发送的字节数
rxcmp/s:每秒钟接收的压缩数据包
txcmp/s:每秒钟发送的压缩数据包
rxmcst/s:每秒钟接收的多播数据包
rxerr/s:每秒钟接收的坏数据包
txerr/s:每秒钟发送的坏数据包
coll/s:每秒冲突数
rxdrop/s:因为缓冲充满,每秒钟丢弃的已接收数据包数
txdrop/s:因为缓冲充满,每秒钟丢弃的已发送数据包数
txcarr/s:发送数据包时,每秒载波错误数
rxfram/s:每秒接收数据包的帧对齐错误数
rxfifo/s:接收的数据包每秒FIFO过速的错误数
txfifo/s:发送的数据包每秒FIFO过速的错误数

另:还可以通过命令: watch -n 1 cat /proc/net/dev,自动每秒查看网络设备传输的总字节数和总包数(不是每秒字节数和包数)。

find常见用法

# 找出当前目录以rpm结尾的所用文件,并安装
# {}代表了已找到的每个文件,  "\;"(转义后的;)终止了exec命令列表
#    若【 -exec 命令 {} \; 】形式    其中{}表示找到的每个结果,每个结果分别作为命令的参数,所以命令会被执行多次
#    若【 | xargs 命令 】形式       则xargs会把找到的结果先拼装成完整参数,再一次性交给命令执行
find . -name "*rpm" -exec rpm -ivh {} \;	
# 查找属于某个用户的文件
find /dev -user "root"   	# 查找/dev下,用户为root的文件

# 查找不属于某个用户的所用文件,显示出来,并修改其属主
find /home/peter -nouser -exec ls -l {} \; -ok chown peter:peter {} \;  # -ok类似与-exec,但执行前会询问

find . -size +500c -name "*"   查找大于500字节的文件
find . -size -500c -name "*"    查找小于500字节的文件

# 查找最近8分钟内修改的文件
find . -mmin -8  -name "*"

# 查找最近5天内修改的文件
find . -ctime -5  -name "*"
find . -mtime -5  -name "*"

# 查找最近10天之前修改的文件
find . -ctime +10  -name "*"
find . -mtime +10  -name "*"

# 查找新于等于2021-01-01, 且旧于2021-03-03(不含)的文件
find . -newergt '2021-01-01' ! -newergt '2021-03-03' -name "*"
find . -newermt '2021-01-01' ! -newermt '2021-03-03' -name "*"
# 查找新于等于2021-01-01 12:11:12, 且旧于2021-03-03 15:33:44(不含)的文件
find . -newermt '2021-01-01 12:11:12' ! -newermt '2021-03-03 15:33:44' -name "*"

# 对查找到结果集按大小,从小到大排序
find . -iname "*.log" |xargs ls -lrS

# 对查找到结果集,求所有文件的总大小、个数、平均大小(单位字节)
find . -iname "*.log" -exec ls -l {} \; | awk '{sum+=$5} END {print "\t TotalSize =", sum, "\t FileCount =", NR, "\t AvgSize =", sum/NR}'

注:
  -iname "*.XXX"            -iname表示后面匹配项不区分大小写。 

追踪用户进程的系统调用情况

strace -tt -T -v -f -e trace=%file -o /data/log/strace.log -s 1024 -p 23489
  -tt 在每行输出的前面,显示毫秒级别的时间
  -T 显示每次系统调用所花费的时间
  -v 对于某些相关调用,把完整的环境变量,文件stat结构等打出来。
  -f 追踪目标进程,以及目标进程创建的所有子进程
  -e 控制要追踪哪些事件和行为(参数指定格式trace=XXX)
  -o 把strace的输出单独写到指定的文件
  -s 当系统调用的某个参数是字符串时,最多输出指定长度的内容,默认是32个字节
  -p 指定要追踪的进程pid, 要同时跟踪多个pid, 重复多次-p选项即可

当前目录占用的总空间大小

du -sh  

没有安装telnet软件,探测端口连通性

# 注意IP不能写127.0.0.1,可以写localhost
curl -vv telnet://IP:Port

执行后结果类似如下(出现Connected 既已经成功连接) 

* About to connect() to localhost port 3389 (#0)
*   Trying ::1...
* Connection refused
*   Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 3389 (#0)

rpm

rpm -ivh Package_Name   安装软件至本机
rpm -qa | grep XXXX  从本机已安装列表中查找某个软件
rpm -e Package_Name   从本机卸载软件(会检查使用存在依赖于本软件的其他软件)
rpm -e --nodeps Package_Name   从本机卸载软件(不检查使用存在依赖于本软件的其他软件)

yum

yum list   列出在缓存在本地的仓库软件列表(包括已安装及未安装的)
yum list installed  列出本机已安装的软件
yum list XXX  在缓存在本地的仓库软件列表,搜索名字包含指定字符串的软件(需要星号通配符)

yum search  XXX  在缓存在本地的仓库软件列表,搜索名字包含指定字符串的软件(不需要星号通配符)。
yum info Package_Name 列出某个软件的详细信息

-----------------
yum install Package_Name 安装指定软件名至本机
yum localinstall rpmfile1 安装本地rpm文件至本机
yum upgrade Package_Name 将本机已经安装的软件升级至最新(不指定软件,则全部软件都升级)
yum remove Package_Name  从本机卸载软件(关联的依赖一并卸载)

yum repo仓的配置

  • /etc/yum.repos.d目录下的多个后缀为repo的配置文件。 (其中enabled=0表示不启用。 enabled=1表示启用,默认启用)
  • yum repolist all查看全部repo仓。       yum repolist 命令查看已经启用的repo仓。 
  • repo源仓在本地的缓存为:/var/cache/yum/    (具体由yum.conf配置)。 cache包括即有从repo仓的软件列表,也有本地已经安装的软件列表。
  • yum clean all 清空缓存。yum makecache重建缓存 (其他如list等,也会自动判断是否重建缓存)

vim有用的设置(建议配置在/etc/vimrc中,或者在当前用户~/.vimrc中)

set tabstop=4
set softtabstop=4
set shiftwidth=4
set expandtab
set autoindent
set paste
set cursorline
set hlsearch
syntax enable
  • tabstop 设TAB宽度为4个空格的等价宽度。
  • softtabstop 表示在编辑模式的时候按退格键的时候退回缩进的长度,当使用 expandtab 时特别有用。
  • shiftwidth  表示每一级缩进的长度,一般设置成跟 softtabstop 一样。
  • expandtab 表示缩进用空格来表示,noexpandtab 则是用制表符表示一个缩进。
  • autoindent  自动缩进
  • paste 允许粘贴模式
  • set cursorline 光标当前行高亮显示
  • set hlsearch 对查找搜索结果高亮显示
  • syntax enable 激活语法高亮

另建议:在Linux中设置环境变量:TERM=linux (或xterm-256color),以通过合适的终端设置开启彩色等显示。

把一个cpio文件解压出来

cpio -idmv XXXX.cpio

Oracle数据库中flashback 一张表

alter table CSTB_XXX enable row movement
flashback table CSTB_XXX TO TIMESTAMP TO_TIMESTAMP('2010-11-11 13:30:15', 'yyyy-mm-dd hh24:mi:ss');
flashback table CSTB_XXX TO TIMESTAMP (SYSTIMESTAMP - 1/24);

Select * from CSTB_XXX  as of TIMESTAMP (SYSTIMESTAMP - 1/24) where A = B;

在PL/SQL中进行查看调用/错误信息栈

dbms_output.put_line('无字数限制的错误信息:'|| dbms_utility.format_error_stack);
dbms_output.put_line('返回程序中异常是在什么位置被抛出的:'||dbms_utility.format_error_backtrace);
dbms_output.put_line('PL/SQL中程序调用栈的顺序:'||dbms_utility.format_call_stack);
可以参考:
DBG('Error infomation: ' || SQLERRM || '.  And trace infomation: ' || dbms_utility.format_error_backtrace);

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值