Linux命令简单操作

一、 awk

命令格式:

awk ‘BEGIN{commands} pattern {commands} END{commands}’file

工作方式:

1.执行BEGIN{commands}语句块中语句,可选的语句块

2.从文件或者stdin中读取一行,然后执行{commands},重复这个过程,直到文件全部被读取完

3.当读至输入流末尾是,执行END{commands}语句块

特殊变量:

FILENAME:awk浏览的文件名

NR:记录数量,执行过程中对应于当前行号

NF:字段数量,执行过程中对应于当前行的字段数

FS:设置分隔符,命令行 -F

$0:执行过程中当前行的文本内容

$1:第一个字段的文本内容

$2:第二个字段的文本内容,以此类推

print&printf打印输出的函数

  print的参数是以逗号进行分隔时,参数打印时则以空格作为定界符,awk的print语句中,双引号是被当做拼接操作符使用的  

  printf函数,其用法和c语言中printf基本相似,可以格式化字符串,输出复杂时,printf更加好用,代码更易懂。

流程控制语句

  if(condition)else{}

  while(){}

  do{}while()

  for(;;)等

内建字符串控制函数:

1.length(string):返回字符串的长度

2.index(string,search_string):返回search_string在字符串中出现的位置

3.substr(string,start_pos,end-pos):在字符串中从start-pos开始到end-pos位置,生成子串

4.split(string,array,delimiter):用delimiter生成一个字符串列表,并将该列表存入数组,delimiter默认使用当前FS值。

5.sub(regex,replace_str,string):将正则表达式匹配到的第一处内容替换成replace_str

6.gsub(regex,replace_str,string):替换正则表达式匹配到所有的内容

7.match(regex,string):检测正则表达式是否能够匹配字符串

应用:

  1.从文件或者stdin中读取一行,循环执行{commands},直到读完

  echo "aXbX cXdXe a;b;cX d;e" | awk -F"[X|;| ]+" ‘BEGIN{print "begin:"} {for(i=1;i<=NF;++i){++S[$i];printf("$%d=%s\n",i,$i)}} END {print "end:"; for(i in S) print i, S[i]}‘

  2.split函数

  

二、sed

sed语法格式:

sed[options ]‘command’ file(s)

sed常用选项:

-n:只有经过sed 特殊处理的那一行(或者动作)才会被列出来

-e:组合多个sed命令

-f:执行 filename 内的sed 动作

-r:sed 的动作支援的是延伸型正规表示法的语法

-i:直接修改读取的文件内容,而不是屏幕输出

sed常用命令:

a:追加  sed ‘a xxx’ file 每一行后面都追加xxxx    sed‘$a xxx’file 最后一行追加

i:插入  sed ‘i xxx’file 每一行前面插入xxx

c:取代  sed ‘2c xxx’file 第二行用xxx取代

d:删除  sed ‘/^$/d’file  删除空白行   sed ‘1,5d’file 删除第1-5行

s:替换  sed ‘s/pattern/replace_str/g’file   /g意味sed会替换每一处匹配,否则是第一处匹配

&:标记匹配样式的字符串,可以在替换字符串时使用已匹配的内容

\1 or \2:第1个or第2个匹配的字符串

应用:

  1.&:标记匹配样式的字符串,可以在替换字符串时使用已匹配的内容

  2.\1 or \2:第1个or第2个匹配的字符串,\(pattern\)用于匹配子串,模式被包括在使用斜线转义过的()中

  3.使用管道组合多个sed命令

  sed  ‘expression’ | sed ‘expression’

  sed ‘expression;expressiong’

  sed -e ‘expression’ -e ‘expression’

三、tr---translate转换

tr语法格式:

tr [options] set1 set2

原理:通过集合映射的概念,将set1映射成set2

-常用参数

-d:指定需要被删除的字符集合

-c:使用集合的补集

tr –c set1 set2  使用set1的补集,即不包含set1的所有字符

-s:压缩输入中重复的字符,将连续重复的字符合并为一个字符

应用:

1.加密解密 

2.数字文件相加

将文件中的\n转换成+,利用$[ operation ]执行算术运算

3.tr集合列表

tr [:class:]  [:class:]

alnum:字母和数字    alpha:字母

digit:数字  cntrl:控制(非打印)字符

lower:小写字母  upper:大写字母

graph:图形字符  punct:标点符号

space:空白字符  xdigit:十六进制字符

四、find

find:沿着文件层次结构向下遍历,匹配符合条件的文件,执行相应操作

常用参数

-print:打印出批判文件的文件名(路径),\n是输出文件的分割符

-print0:\0(null)作为输出文件的分割符,xargs -0

-name:文件名必需匹配的字符串,\(-name“xx”-o -name“xx”\) 匹配多个字符串

-iname:忽略字母大小写

-path:匹配文件路径

-type:文件类型过滤

-size:文件大小搜索

-delete:删除查找到的文件

-perm:匹配具有特定权限值的文件

-newer:指定一个用于比较时间戳的参考文件,匹配出参考文件更新的所有文件

-user:制定某用户文件

-exec:借助-exec与其他命令进行结合,命令格式为:command {} \; 注意{}和\之间的空格

-ok:和-exec的作用相同,只是在安全模式下进行操作,按y键yes,按n键no

-atime:访问时间,用户最近一次访问文件的时间,单位:天  -amin 单位:分

-mtime:修改时间,文件内容最后一次被修改的时间,单位:天 –mmin 单位:分

-ctime:文件(例如权限或所有权)最后一次改变的时间,单位:天 –cmin单位:分

-表示小于(最近) +表示大于(超过) 没有- 或+ 表示数字当天

!:表示不匹配规则的文件

应用:

  1.-exec:借助-exec与其他命令进行结合,命令格式为:command {} \; 注意{}和\之间的空格

五、xargs

xargs:构造命令行参数并运行命令

同管道的区别

  管道是实现将前面的标准输出作为后面的标准输入

  xargs是实现将标准输入作为命令的参数

   xargs的默认命令是echo,默认定界符是空格(空白字符)

  这意味着传递给xargs的输入如果包含换行和空白字符,通过xargs的处理,换行和空白将被空格取代,因此xargs是构建单行命令的重要组件之一

常用参数

-n number :多行输出,多个参数

-d X:自定义定界符

-I | -i replace_str:在xargs扩展时replace_str会被替换为从标准输入的每一行参数

-L number :标准输入读取非空number行作为参数,-L 1 等价于-I

-p:询问是否运行

-t:启用跟踪方式

-s size:设置命令行的最大字节数

-x:如果有任何 命令行大于 -s Size 标志指定的字节数,停止运行 xargs 命令

应用:

  1.-n number:设置命令的参数个数

2.-I replace_str:命令参数替换

3.xargs和find算是一对死党

find的-print0和xargs的-0

ps:只要是把find的输出结果作为xargs的输入,就必须将-print0与find结合使用,以字符null(\0)来分割,同时,xargs -0将null作为定界符

时间: 2024-10-23 19:41:42

Linux命令简单操作的相关文章

Linux awk命令简单操作

AWK Command: 一 : print print item1,item2,.......... 要点: 1.各项目之间使用逗号隔开,而输入时则以空白字符分隔 2.输出的item可以为字符串或树枝,当前记录的字段(如$1).变来那个或awk的表达式,树枝会转换成字符串 3.print命令后面的item可以省略,此时其功能相当于print $0,以此,如果想输出空白行,则需要print "" 例子: 1.awk 'BEGIN { pring "line one\n lin

Linux命令高效操作(2)-妙用历史命令

本希望把Linux高效操作这一个系列文章命名为unix-like命令高效操作,但是后来发现本人并没有在多数的unix-like平台实践过.本着实践第一的精神,就不把话题扯那么大了,决定更名为"linux命令高效操作",哈哈.废话不多说,我的实验系统:Linux之centos7. 今天我想聊的是每个用过Linux命令操作的同学或许都知道的一个存在:历史命令.什么是历史命令呢?通俗简单的说,就是你执行过的命令的历史.大家最常见的用处就是使用上下方向键进行命令的切换喽!刚接触命令行操作的同学

Linux的简单操作

du -h --max-depth=1 work/testing   查看文件的大小 df -h 查看硬盘的大小和使用情况 df   大概情况同上 rm -f 强制删除 rm -rf 强制递归删除 cp -rp ./top/* ./sharm/   递归复制 mysql -u 数据库名 -p 数据库名 >site.sql   复制数据库 chmod -R 777 添加权限 chown -R admin chgrp -R admin 用户及用户组管理命令 1.useradd命令 useradd l

github linux 命令行操作实例

继续整理一下linux 下面使用命令行操作实例 首先创建文件目录 然后 执行 git clone 操作 [email protected]:~/桌面$ cd test/ [email protected]:~/桌面/test$ git clone https://github.com/timelessz/TESTDEMO.git正克隆到 'TESTDEMO'...remote: Counting objects: 3, done.remote: Total 3 (delta 0), reused

LINUX命令行操作

Linux 命令行快捷键 7条回复 涉及在linux命令行下进行快速移动光标.命令编辑.编辑后执行历史命令.Bang(!)命令.控制命令等.让basher更有效率. 说明 Ctrl – k: 先按住 Ctrl 键,然后再按 k 键: CAlt – k: 先按住 Alt 键,然后再按 k 键: M – k:先单击 Esc 键,然后再按 k 键. 移动光标 Ctrl – a :移到行首 Ctrl – e :移到行尾 Ctrl – b :往回(左)移动一个字符 Ctrl – f :往后(右)移动一个字

【转帖】Linux命令行操作json神器jq

https://www.cnblogs.com/chenqionghe/p/11736942.html jq类似一个awk或grep一样的神器,可以方便地在命令行操作json 这里我使用海南万宁的天气接口做演示,地址:http://t.weather.sojson.com/api/weather/city/101310215 一.安装 官网:https://stedolan.github.io/jq/download/基本就是brew install.apt install.yum instal

Linux的awk命令简单操作

awk是一个编程工具,他有完整的语法和命令.在bash中,awk更多的用于处理列内容(我是这么认为的,仅供参考) awk程序的执行逻辑 首先将文本内容读入到内存中,根据字段分隔符,在读取文本内容的过程中把读入的内容分段,第一个字段对应$1,第二个字段对应$2,依次类推,$0代表所有的字段. 注意: 1.在awk程序中,变量的使用不需要带$符号,因为$符号表示字段. 2.整个执行语句必须被'{}'包裹. 3.awk程序,在处理文本的时候是一次处理一行内容. 先简单演示一下 这个例子中,awk程序将

Linux下netstat命令简单操作

netstat -t :TCP协议 -u :UDP协议 -l :监听 -r :路由 -n :显示IP地址和端口号 常用: netstat -tlun 查看本机监听的端口 netstat -an 查看本机所有的网络连接 netstat -rn 查看本机路由表 DHCP 自动分配或者自动获取的服务 RedHat重启网络服务 service network restart Ubuntu重启网络服务 service network-manager restartUbuntu关闭网络服务 service

linux 一些简单操作

vim   ----三种模式 1.命令模式           2.输出模式       3.底线命令模式 w(e) 移动光标到下一个单词 b 移动到光标上一个单词 数字0 移动到本行开头 $ 移动光标到本行结尾 H 移动光标到屏幕首行 M 移动到光标到屏幕的中间一行 L 移动光标到屏幕的尾行 gg 移动光标到文档的首行 G 移动光标到文档尾行 ctrl + f 下一页 ctrl + b 上一页 `. 移动光标到上一次的修改行 /chaoge 在整篇文档中搜索chaoge字符串,向下查找 ?ch