当前位置: 首页 > news >正文

linux常用命令简介

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

linux命令总结:
cut切分字段
cut -c list [file...]
cut -f [-d delim] list [file...]
-c list 以字符为主,剪切,list为字符编号或一段范围的列表,以逗号隔开
-d delim 与-f选项一起使用,指定定界符,默认定界符为制表符
-f以字段为主,剪切,list为字段编号或一段范围列表,以逗号隔开
输入为文件或标准输入
cut -d : -f 1,5 /etc/passwd

sed文本替换
sed [-n] 'editing command' [file...]
sed [-n] -e 'editing command'... [file...]
sed [-n] -f script-file... [file...]
-e 'editing command'当有多个命令需要应用时,以-e连接
-f script-file从文件中读取命令
-n不是显示修改后的结果,而是显示指定行
editing command是
sed 's/:.*//' /etc/passwd将:以后的替换成空,命令以s开头,/代表分界符,可以是任意的,然后是匹配正则,然后是替换文本


grep文本查找
grep [options] pattern [file...]
-E使用扩展正则表达式匹配
-F使用固定字符串匹配
-f file从文件里读取匹配表达式
-i忽略大小写匹配
who | grep -F 'zhanghuan'

grep -C 5 foo file  显示file文件中匹配foo字串那行以及上下5行
grep -B 5 foo file  显示foo及前5行
grep -A 5 foo file  显示foo及后5行

join文本连接
join [options...] file1 file2
-1 filed
-2 filed
标明连接的键值,-1是从文件1中读出的,-2是从文件2中读出的
-o file.filed
指定每个文件要输出的字段,使用多个-o输出多个字段
-t separator
指定文件分隔符,也作为输出字段的分隔符
-a FILENUM
除了显示匹配好的行另外将指定序号(1或2)文件里不匹配的行显示出来
-e EMPTY
将须要显示可是文件里不存在的域用此选项指定的字符取代
-i 
忽略大写和小写
join -o 1.1 -o 1.2 -o 1.3 -o 2.1 -o 2.2 -o 2.3 -e 'empty' -a 1 file1.txt file2.txt 

sort排序
sort [options...] [file]
-b忽略开头的空白
-c检查是否已排序,未排序则输出非零值,否则输出为空
-d字典顺序
-g浮点数比较
-f忽略大小写
-k指定排序键,紧跟在k后面
-n整数比较
-o file指定输出文件
-r反序输出,默认是由小到大
-t使用单个字符为分隔符,默认为空白字符
-u去除具有相同键的行
sort -k2 -n -r deomo3.txt
sort -n -k 2.2,3.1 facebook.txt
以第二个域的第二个字符开始到第三个域的第一个字符结束的部分进行排序。

read读取一个或多个数据
read [-r] variable...
-r原始读取,不做任何处理,不将结尾的反斜杠解释为续航字节
以IFS分割输入数据
while IFS=: read name num sex
do
...
done

日志输出重定向

>/dev/null 输出到空设备,表示丢掉输出信息
2 > &1 将输出到标准错误的信息输出到标准输出设备(通常是屏幕) 有3个默认的i/o
0 是标准输入,一般是键盘 
1 是标准输出,一般是屏幕了 
2 是标准错误,有时候屏幕上可以看到,但是重定向的文件中看不到的就是它了
将标准输出和标准错误信息记录下来,我们通过如下形式办到:somescript.sh > log 2>&1 

find查找文件
find [file-or-directories] [options...]
-name 'pattern'
选定名称与匹配模式匹配的
-type t
指定类型,t可以使d或f,d为目录,f为文件
-user u
选定用户u的文件
find test -name 'demo*'

df显示文件系统使用情况
df [options...] [file-or-directories]
-i显示inode计数,而非空间
-k显示空间时以KB为单位
-l仅显示本地文件系统
-h显示空间,比较友好

du显示一个或多个目录的空间使用率
-k空间显示,以KB为单位
-s为每个参数仅显示单行摘要

awk处理数据
awk pattern {action} 如果模式匹配则执行操作
awk pattern 如果模式匹配则打印记录
awk  {action} 针对每条记录执行操作
awk 'BEGIN{ commands } pattern{ commands } END{ commands }'
第一步:执行BEGIN{ commands }语句块中的语句; 
第二步:从文件或标准输入(stdin)读取一行,然后执行pattern{ commands }语句块,它逐行扫描文件,从第一行到最后一行重复这个过程,直到文件全部被读取完毕。 
第三步:当读至输入流末尾时,执行END{ commands }语句块。 
BEGIN语句块在awk开始从输入流中读取行之前被执行,这是一个可选的语句块,比如变量初始化、打印输出表格的表头等语句通常可以写在BEGIN语句块中。 
END语句块在awk从输入流中读取完所有的行之后即被执行,比如打印所有行的分析结果这类信息汇总都是在END语句块中完成,它也是一个可选语句块。 
pattern语句块中的通用命令是最重要的部分,它也是可选的。如果没有提供pattern语句块,则默认执行{ print },即打印每一个读取到的行,awk读取的每一行都会执行该语句块。
-F fs fs指定输入分隔符,fs可以是字符串或正则表达式,如-F: 
-v var=value   赋值一个用户定义变量,将外部变量传递给awk 
-f scripfile  从脚本文件中读取awk命令
awk 'BEGIN{a=11;if(a >= 9){print "ok";}}'
awk 'NR%2==1{next}{print NR,$0;}' text.txt
echo | awk '{printf("hello word!n") > "datafile"}'
awk -F: '{ print $NF }' /etc/passwd 或 awk 'BEGIN{ FS=":" } { print $NF }' /etc/passwd

awk中的字符串函数
length(string)返回字符串的长度
substr(string,start,length)子字符串提取,字符编号从1开始
tolower/toupper(string)字符串大小转换
index(string,find)查找string中是否有字符串find,返回string里find字符串的起始位置,找不到则返回0
match(string,regex)将string与正则表达式regex匹配,如果匹配,则返回匹配string的索引,不匹配则返回0
sub(regex,replacement,target)字符串替换功能,gsub函数替换所有
split(string,array,regex)将字符串按regex切分,如果省略regex,则按FS切分,切分结果存到数组array里


 

转载于:https://my.oschina.net/u/2000675/blog/734256

相关文章:

  • 云平台统计人员在线数的办法
  • Timesten常用命令
  • 后台dubug有值且sql也打印出来执行了但是前台就是查不到数据
  • HBase 常用Shell命令
  • 单例模式(Singleton Pattern)
  • HDU(2485),最小割最大流
  • iOS 对模型对象进行归档
  • TopN算法与排行榜
  • Servlet 生命周期、工作原理
  • POJ 2375
  • 关于SQL镜像配置报错
  • 共享库
  • Oracle 函数返回表实例2种写法实例
  • 重走java--Step 2
  • 高并发系统之队列术
  • 2017前端实习生面试总结
  • Android开源项目规范总结
  • HTTP--网络协议分层,http历史(二)
  • JavaScript的使用你知道几种?(上)
  • Laravel 实践之路: 数据库迁移与数据填充
  • Python - 闭包Closure
  • SpingCloudBus整合RabbitMQ
  • 半理解系列--Promise的进化史
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 前端面试之闭包
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 数据仓库的几种建模方法
  • 一份游戏开发学习路线
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • ​第20课 在Android Native开发中加入新的C++类
  • #HarmonyOS:基础语法
  • #大学#套接字
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (26)4.7 字符函数和字符串函数
  • (C语言)fread与fwrite详解
  • (pojstep1.1.2)2654(直叙式模拟)
  • (多级缓存)多级缓存
  • (强烈推荐)移动端音视频从零到上手(下)
  • (五)MySQL的备份及恢复
  • (一)基于IDEA的JAVA基础10
  • (一一四)第九章编程练习
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • .NET使用存储过程实现对数据库的增删改查
  • ??myeclipse+tomcat
  • @autowired注解作用_Spring Boot进阶教程——注解大全(建议收藏!)
  • [ C++ ] STL---string类的模拟实现
  • [ 第一章] JavaScript 简史
  • [2669]2-2 Time类的定义
  • [AIGC] 如何建立和优化你的工作流?