shell 常用命令整理记录

Linux 常用操作

【cat】
	cat log.txt|head -n 100  只显示前面100行内容
	cat log.txt|tail -n 100  只显示最后100行内容
	cat log.txt|tail -n +100 显示100行之后的内容

【find】 --文件查找
	1、-name  按照文件名查找
		find  /dirpath   -name 'exp'
		-i 忽略大小写  find . -name -i '*exp*'
		可以用绝对路径/path 也可以用相对路径 .
		
	2、-type 按照类型查找
		f: 普通文件
		d: 目录文件
		l: 符号链接文件
		s: 套接字文件
		b: 块设备文件
		c: 字符设备文件
		p: 管道文件
		
    3、根据关系从属查找
		-user 用户名  查找属主指定用户的文件
		-group 组名 查找数组为指定组的文件
		-uidUserID 查找属主id为指定的文件
		
	4、-size  根据文件大小查找
		单位k,M,G,C
		-size +6k   --(6k,∞]
		-size -6k   --[0,5k]
		-size 6k    --(5k,6k]
	
	5、根据时间查找
		-atime 以访问时间
		-mtime 以数据修改时间
		-ctime 以元数据修改时间

【grep】 --用于内容查找,文本过滤
	cat log.txt | grep 'Error' -A 5 多显示error之后的5行
	cat log.txt | grep 'Error' -B 5 多显示error之前的5行
	cat log.txt | grep 'Error' -C 5 多显示error前后的5行
	-e 多条件查询
	
	grep -rn 'stream' . --include='*.cpp'
	在当前路径下查找包含指定内容'stream'的文件
	-r  递归查找
	-n  显示行号
	--include=  glob语法,限制文件类型是cpp
	-i 忽略大小写
	-e 实现多个选项之间的逻辑关系
	-w 匹配整个单词
	
【vi】
	--查找
	vi 中找下一个相同的词
	/word   n 向前找
			N 向后找

【$】
	会把$后面的命令执行结果当做下一条命令的参数
	cd $(ls |grep $(date \'+%Y%m%d\'))

【seq】
	seq 1 5 连续输出1-5的数字
	seq 1 2 10 连续输出1-10之间以2为步长的数字 
	seq -f '%03g' 1 5 按照指定格式输出 联合mkdir生成一系列文件夹或者文件..

【awk】--取列
	awk 可以将一些文本整理成我们需要的样子.
	基本语法
	awk [options] 'program' file1,file2,...
	其中program又可以分为pattern,action
	eg1:
		echo ddd>test;awk '{print}' test 直接打印文本内容
	
	以列输出
	eg2:
		df | awk '{print $5}' df显示本机磁盘的详细信息,awk打印出来第5列信息
		默认文本以空格符进行分割,如果需要以指定字符分割需要加参数-F
		df | awk -F',' '{print $5,$6}' 以,分割文本列
	
		可以一次输出多列,多列以,隔开
		df | awk '{print $5,$6}' df显示本机磁盘的详细信息,awk打印出来第5列信息
	eg3:
		可以添加自己的字段
		df | awk '{print $5,"self"}'
		df | awk '{print $5,"self"$6}'  无缝拼接
		df | awk '{print $5,"self:"$6}' 以:拼接
	
	pattern
		BEGIN -- 模式指定了处理文本之前需要执行的操作
		END -- 处理文本之后需要处理的操作
	eg4
		awk 'BEGIN{print "aaa","bbb"} {print $1,$2} END{print "ccc","ddd"}' srcFile
		在执行print $1,$2之前先打印 aaa,bbb,源文件可以为空
	【awk分隔符】
		awk默认分隔符是空格,awk的分隔符分两种,[#输入分隔符]和[#输出分隔符]
		空格是默认的输入分隔符。
		
		--#输入分隔符
		eg5
			awk -F# '{print $1,$2}' test
		以上使用#作为分隔符,将test每一行都通过#来进行分割。
		同时,awk支持设置内部变量的方式来指定分割符,在使用变量的时候需要用到-v选项
		eg6
			awk -v FS='#' '{print $1,$2}' test 
			作用同eg5
【输出分隔符】
		我们在使用awk输出每一列的对话,会默认使用空格来进行分隔,当我们在处理完文本进行输出的时候,以什么文本或者符号进行分隔符。
		我们可以使用awk的内置变量OFS来设置awk的输出分隔符,同样使用变量的时候需要配合使用-v选项
		eg7
			awk -v OFS="++" '{print $1,$2}' test
		我们可以同时指定输入和输出分割符
		eg8
			awk -v FS = "++"   -v OFS="--" '{print $1,$2}' test		
		如果想要输出项不进行分割,那么可以使用如下格式
		eg9
			awk '{print $1 $2}' test
		print 之后不使用,分割项。
	【awk 变量】
			awk的变量分为[内置变量]和[自定义变量],输入分隔符FS和暑促分隔符OFS都属于内置变量。
			awk常用内置变量
			FS 输入分隔符,默认为空白字符
			OFS 输出分隔符 默认空白字符
			RS 输入记录分隔符
			ORS 输出记录分隔符
			NF 当前行的分割字段的个数,字段数量
			NR 行号,当前 处理的文本行行号
			FNR 各文件分别计数的行号
			FILENAME 当前文件名
			ARGC 命令行参数个数
			ARGV 数组,保存的是命令行所给定的各参数

【wget】
		wget https://download.oracle.com/otn_software/nt/instantclient/19500/instantclient-basic-windows.x64-19.5.0.0.0dbru.zip --no-check-certificate  --user=tingtings324@163.com --password=Qjysqjy@324
添加账号密码 不检测证书

【sed】--取行,替换
		sed 是一种流编辑器,它一次处理一行内容,处理时会把当前处理的行存储在临时缓冲区,称为"模式空间",接着用sed命令处理缓冲区中的内容,处理完成会把缓冲区的内容发送到屏幕,然后读入下一行,如果没有使用-‘D’的特殊命令,那么他会在两个循环之间清空模式空间,但不会清空保留空间,这样一直重复直到文件末尾。

	编辑
	1、d 删除模式空间的匹配行,并立即启用下一行
	2、p 打印当前模式空间内容,追加大默认输出之后
	3、a [\]text1  在指定行后面追加文本,支持使用\n实现多行追加
	4、i[\]text 在行前面插入文本
	5、a[\] text 替换行为单行或多行文本
	6、w /path/somefile 保存模式匹配的行到指定的文件
	7、r /path/somefile 读取指定文件的文本至模式空间中匹配到的行后
	8、= 为模式空间中的行打印行号
	9、 !模式空间中匹配行取反
	10、s///: 查找替换
			g 行内替换
			p 显示替换成功的行
			w /path/to/somefile 将替换成功的行保存到文件中
	将文件中root 全部替换成abc
	#sed -i 's/root/abc/g'  file
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值