zoukankan      html  css  js  c++  java
  • Linux命令强基

      Hello,一只爱学习的鱼

      本期带来linux命令强基,对于ls/pwd/chmod等基础命令,操作简单就略过,下面是我在学习linux命令汇总,命令在Ubuntu 20.4 lts虚拟机中可执行。

      概述

      1. grep/awk/sed

      2. ps/top

      1. grep/awk/sed

      grep/awk/sed 可以对应 查找/分段/修改

      在讲解命令时,我会以选项+命令+说明形式呈现

      grep使用方法:[options] pattern file

    	-An	grep -A2 var abc.txt	显示var一行及其后两行
    	-Cn	grep -C2 var abc.txt/grep -2 var abc.txt	显示var一行及其前后两行
    	-Bn	grep -B2 var abc.txt	显示var一行及其前两行	 
    	-c	grep -c var abc.txt		var在abc.txt中出现的次数
    	-o	grep -o var abc.txt		只查找var并单行输出
    	-E 	grep -E 'var|bin' abc.txt	使用扩展正则表达式,在abc.txt文件中匹配var或bin,相当于执行egrep
    	-z	grep -o var -z abc.tar	先解包再搜索
    	-v	grep -v var abc.txt		反向搜索
    	-R	grep var -R --exclude='text.txt'	在当前目录下递归查询除text.txt的文件,内容含var
    	--exclude
    	--include	grep var --include='abc.txt'		在当前目录下查询abc.txt文件,内容含var
    	-L	grep var -R -L	仅打印除含var文件的文件
    	-l(小写l)	grep var -R -l	仅打印含var文件的文件
    	-I(大写i)	grep var -RI 	忽略二进制
    	-mn	grep var -R -n -m2	仅显示前2个结果
    	-b	grep -b var abc.txt		显示var第一个字符在文件中的编号
    	-r	grep -r var /home/zhao -l	递归查询/home/zhao下含var的文件
    	-i	grep -i "v" abc.txt		忽略大小写

      awk使用方法:[options] 'pattern{action}' file

    	$0(内建变量)	完整的输入记录
    	$n(内建变量) 	当前记录的第n个字段,字段右FS分隔,第一个FS前是$1
    	FS(内建变量)	字段分隔符,默认是任意空格
    	RS(内建变量)	记录分隔符,默认是一个换行符
    	-F	awk -F '/' '{print $1,$2}' abc.txt		文件abc.txt中每行以字符/分隔,输出第一,第二字段(若要分隔符为\,则选项为 -F\\)
    		awk -F'[/:]' '{print $1,$2}' abc.txt	多分隔符,文件abc.txt中每行以字符/或字符:分隔,输出第一,第二字段
    	-v	awk -va=1 '{print $1, $(1+a)}' abc.txt		定义一个变量a=1
    	==	awk '$1 == "bin" {print $1, $2}' abc.txt		过滤第一列等于bin的行,输出第一字段和第二字段	
    	BEGIN		初始化代码块,在对每一行进行处理之前,初始化代码,主要是引用全局变量,设置FS分隔符
    	FILENAME	当前文件名
    	FNR	各文件分别计数的行号
    	FS	字段分隔符(默认是任何空格)
    	NF	一条记录的字段的数目,最后一个变量
    	NR	已经读出的记录数,就是行号,从1开始
    	OFS	输出字段分隔符,默认值与输入字段分隔符一致。
    	ORS	输出记录分隔符(默认值是一个换行符)
    	ARGC	命令行参数的数目
    		awk 'BEGIN{printf "%4s %4s %4s %4s %4s %4s %4s %4s %4s\n","FILENAME","ARGC","FNR","FS","NF","NR","OFS","ORS","RS";\
                >printf "---------------------------------------------\n"}\
                >{printf "%4s %4s %4s %4s %4s %4s %4s %4s %4s\n",FILENAME,ARGC,FNR,FS,NF,NR,OFS,ORS,RS}' abc.txt // awk '$1 ~ /re/ {print $2, $3}' abc.txt    awk精准查询,空格作为分隔符,第一个变量是re IGNORECASE awk 'BEGIN{IGNORECASE=1} /this/' abc.txt 忽略大小写 ! awk '$2 !~ /th/ {print $2,$4}' log.txt 模式取反 -f awk -f cal.awk score.txt    执行cal.awk脚本,查找score.txt

      sed [options] 'command' file(s)

    	-e	sed -e 4a\newLine abc.txt 		以选项中指定的script来处理输入的文本文件。
    	d	sed '2,5d'	 abc.txt		将 abc.txt 的内容列出并且列印行号,同时,请将第 2~5 行删除!
    	a	sed '2a hhhhhhh' abc.txt 		在文件abc.txt第二行后,亦即第三行加上hhhhhhh
    	i	sed '2i hhhhhhh' abc.txt	在文件abc.txt第二行前,亦即第二行加上hhhhhhh
    	c	sed '1,5c adfafsf' abc.txt	将文件1-5行的内容取代为adfafsf
    	p	sed '1,5p' abc.txt		列出文件1-5行
    	/p	sed '/var/p' abc.txt		搜索文件中关键字var的行
    	-n	sed -n '/bin/p' abc.txt		仅显示包含bin的行
    	/d	sed '/bin/d' abc.txt		搜索并删除
    	/s	sed -n '/bin/{s/bin/sbin/;p;q}' abc.txt		搜索bin,并将bin替换成sbin
    	s///g	sed 's/^.*var://g' abc.txt	搜索var并替换为空
    	-e	sed - e '3,/4d' -e 's/bin/blue/g' abc.txt 		多点编辑,删除第三行,包括第三行后的内容,将剩余的,bin替换为blue
    	-i 	sed -i 's/\.$/\!/g' abc.txt	每一行以.结尾则转!,直接修改源文件
    		sed -i '$a This is a test' abc.txt	$代表最后一行,文件最后新增This is a test
    	
    

      2. ps/top

      ps:report a snapshot of the current processes.将当前进程做一个“快照”并显示

      使用方法:ps目前有三个选项UNIX\BSD\GNU

      ps axu【不建议使用ps -aux,因为它混淆了两个不同的标准,官方文档里有说明】

      ps -ef  可以结合grep选择性查看某个进程信息

      top:display Linux processes.显示linux进程

      动态显示,类似Win下的任务管理器。界面可以输入交互命令,非常强大

      按f键,然后可以选择要显示的字段

      按c键,查看完整的命令字段COMMAND

      按s键,设置界面刷新时间,默认3s

      等等字段意思,文档也有说明,非常详细

      ps和top命令,我在分享资料里有解说。其中top文档虽然基本上全是英文,但是它里面的交互命令占篇幅53%左右,不用慌

      关注我的公众号(一只爱学习的鲤鱼)

            

      回复:1226。即可获取“1226linux命令强基”的分享资料

             

      最后,你的关注是我更新的最大动力,我们下期再见。

  • 相关阅读:
    ACM XXX1
    最大公约数算法
    struct和typedef struct
    PKU 1012
    素数算法3种
    ZOJ 1088
    学习ios开发计划书
    iphone系统架构以及各层提供的主要服务
    iOS 界面元素尺寸
    开发手机版网站有哪些前端框架?
  • 原文地址:https://www.cnblogs.com/carp/p/15732618.html
Copyright © 2011-2022 走看看