Linux常用命令

文件查找

  1. 按文件名查找文件
# /root是查找起点 name是按文件名查找 “*.git”是文件名以.git结尾
find /root -name "*.git"
find $PWD | xargs ls -ld | grep abc
  1. 按文件内容查找

在单个文件中查找文件内容

grep 'panic' global.log

在多个文件中查找文件内容并输出到另一个文件里

zgrep -a 'job_0' `ls -tr global.log*` > x
zgrep -a 'Exception' global.log.{30..1} > x
# 查看行数
cat x | wc -l

在整个目录下查找文件内容

# -n是显示行号number -r是recursive在整个目录下查找
grep -nr "/bin/bash" ./
  1. 看文件前几行/后几行
cat filename head -n 100
cat filename | tail -n 100

文件查看

  1. cat
# 适合打印较少的文件内容
cat file1
# 把多个文件的内容和并输出
cat file1 file2 > x
# 压缩文件合并
zcat Sample_test_1.R1.fastq.gz Sample_test_2.R2.fastq.gz -> test.fastq
  1. more:支持翻页打开文件
ps -al | more
  1. less:支持翻页打开文件,b是向上翻一页,空格是向下翻一页
less log2013.log
ps -ef |less
  1. vim:支持编辑文件
# 只读格式打开文件
vim -r file1
# 不显示行号,在打开文件后执行
:set nonumber
# 删除每行time之前的字符,替换成空字符
:%s/.*time//
# 删除第一行到当前行
dgg
# 删除当前行到最后一行
dG
# 删除包含特定字符的行
:g/pattern/d(全局范围内)
:1,20g/pattern/d(删除1~20行内匹配的行)
# 删除不匹配的行
:v/pattern/d
:g!/pattern/d
# 从文件开始删除到当前行,$是最后一行,.是当前行,1是第一行
:.,1d
:3,5d
# 删除行尾多个空格
:%s/\s\+$//g
# 删除行首多个空格 
:%s/^ \+//g
# 查看文件目录
Esc模式下先按1
ctrl + G
# 把第一行到第五行复制到同一目录下的163文件
:1,5 w ./163.txt
:1,5 w >> ./163.txt
# 按数字数序排序
1, 12!sort -r -n -k 4.1,5
-r 是降序排序
-n 是按数字大小排序
-k,表示根据那个字段排序,4.1,表示第4列第一个字符开始 ,5表示到第5个字段为结束
# 复制粘题
v进入视图模式
"+y   复制
"+p   粘贴
# 删除每行前10个字符,%表示全局
:%s/^.\{10\}//
# 删除每行后10个字符
:%s/.\{10\}$//
# 用字符串 str2 替换行中首次出现的字符串 str1
:s/str1/str2/       
# 用字符串 str2 替换行中所有出现的字符串 str1
:s/str1/str2/g      
# 用字符串 str2 替换正文当前行到末尾所有出现的字符串 str1
:.,$ s/str1/str2/g  
# 用字符串 str2 替换正文中所有出现的字符串 str1
:1,$ s/str1/str2/g  
# 功能同上
:g/str1/s//str2/g   
  1. gunzip: 文件解压 ;gzip:文件压缩
# 解压
gunzip FileName.gz
  1. 去重
# fail是文件名
sort fail | uniq
# 统计每行重复的数量
sort fail | uniq -c

文件比较

# 打patch
# -N 在比较目录时如果某个文件只出现了一次,那么在比较不同时会默认和空文件比较
# -a 将所有的文件都作为普通text(之比较文本文件)
# -u 以合并的方式显示文件内容的不同
# -r 如果是文件夹则进行递归进行比较
diff -Naur test1.txt test2.txt > test.patch

# 使用patch
# 这里没有说要往哪里打,因为刚刚打patch的时候比较的是test1和test2的区别,所以默认就是往test1打,-p0表示就在当前目录找test1,-p1就是该层目录往上一层找test1
patch -p0 < test.patch

# 撤销打patch
patch -RE < test.patch

文件复制

# -d可以复制文件的各种属性,-r复制目录
cp -dr

xargs

xargs 命令教程

awk

awk命令

# 将每行数字加起来求平均
awk '{ sum += $0; count++ } END { avg = sum / count; print "Average: ", avg }' reduce_construct_initByAm_time
# NF是倒数第1列,NF-2是倒数第3列,-F '_2022'是按照'_2022'分割,print $1是取第一列,sort是排序,uniq -c是去重,并在每行开头增加重复次数
awk '{print $(NF-2)}' {file名} | awk -F '_2022' '{print $1}' | sort | uniq -c
# 将num和min都作为分隔符
awk -F 'num|min' '{print $2}' vertexstat 

系统监控

free:显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer

# -g 以GB为单位显示
free -g

du:查看文件或目录所占磁盘容量

# -h 以KB,MB,GB的方式显示容量大
du -h /home/test
du -h --max-depth=1

ps:打印进程的相关信息

ps -a              # 打印所有进程
ps -al | less      # 打印所有进程的详细信息
ps 276654          # 打印某个进程
ps -ef | grep test_sever | grep -v grep | wc -l # -v表示取反,不要打印包括grep的进程
### stat状态:
# D :无法中断的休眠状态(通常 IO 的进程);
# R :正在运行可中在队列中可过行的;
# S :处于休眠状态;
# T :停止或被追踪;
# W :进入内存交换 (从内核2.6开始无效);
# X :死掉的进程 (基本很少見);
# Z :僵尸进程;
# < :优先级高的进程
# N : 优先级较低的进程
# L :有些页被锁进内存;
# s :进程的领导者(在它之下有子进程);
# l  :多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads);
# + :位于后台的进程组;

perf record:记录一段时间内系统/进程的性能时间

# -F是打印频率,-a打印所有cpu,-p是指定进程,sleep 120线程睡2分钟
sudo perf record -F 99 -a -g -- sleep 120 -p 245688

netstat:显示路由表、实际的网络连接以及每一个网络接口设备的状态信息

# -t仅显示tcp相关选项 
# -p显示建立相关链接的程序名 
# -l仅列出有在Listen(监听)的服务状态
# -n 拒绝显示别名,能显示数字的全部转化成数字
netstat -tnpl | grep 38549

正则表达式

字符描述
[ABC]A或B或C都匹配
[^ABC]除了A或B或C,其他都匹配
[A-C]A或B或C都匹配
.除了\n \r都匹配
\w匹配所有字母、数字和下划线


\

字符描述
()子表达式
*匹配前面子表达式零次或多次
+匹配前面子表达式一次或多次
?匹配前面子表达式零次或一次
{n}匹配前面子表达式n次
{n,}匹配前面子表达式至少n次
{n,m}匹配前面子表达式n-m次

编译命令

C++:

g++ -std=c++11 -o readFile readFile.cpp

JAVA:

# 编译
javac readFile.java
# 运行
java readFile

系统命令

# 看内核版本
uname -r
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值