数据操作

数据操作

Linux探索之旅第三章笔记


  1. grep:筛选数据,可以配合正则表达式进行复杂的查找
    用法:grep text file,其中,text表示要查找的文本,file表示供查找的文件
    常用参数:grep -i text file(忽略大小写)
    grep -n text file(显示行号)
    grep -v text file(只显示文本不在的行)
    grep -r text catalog(在所有子目录和子文件中查找)
    grep -E 正则表达式 file(在所有子目录和子文件中查找)
    常用的正则表达式的字符及其含义:
特殊字符含义
.匹配除 “\n” 之外的任何单个字符
^行首(匹配输入字符串的开始位置)
$行尾(匹配输入字符串的结束位置)
[]在中括号中的任意一个字符
?问号前面的元素出现零次或一次
*星号前面的元素可能出现零次,一次或多次
+加号前面的元素必须出现一次以上(包含一次)
一根竖线逻辑或
()表达式的分组(表示范围和优先度)
  1. sort: 为文件排序
    用法:sort file(默认按照首字母的英文字典顺序排序,且不区分大小写,不修改file中的内容,排序结果显示在终端上)
    常用参数:sort -o file_sort file(将排序后的结果存储在file_sort中,原文件file的内容保持不变)
    sort -r file(倒序排序)
    sort -R file(随机排序)
    sort -n file(对数字排序,默认地,仅用sort命令的时候,是不区分首字符是否是数字的,因此还是按照1-9的顺序来排序。例如138会排在25前面,因为1排在2的前面)

  2. wc:文件的统计
    用法:wc file(统计file中的单词数、行数、字节数、字符数)
    返回值:行数 单词数 字节数 file
    常用参数:wc -l file(统计行数)
    wc -w file(统计单词数)
    wc -c file(统计字节数)
    wc -m file(统计字符数)

  3. uniq:删除文件中的重复内容
    用法:uniq file(同sort类似,uniq命令不会改变原文件的内容,只会把处理后的内容显示出来)
    uniq repeat.txt unique.txt(将uniq后的结果存储到unique.txt中,原文件repeat.txt保持不变)
    常用参数:uniq -c repeat.txt(统计重复的行数)
    uniq -d repeat.txt(只显示重复行的值)

  4. cut:剪切文件的一部分内容
    常用参数:cut -c 2-4 name.txt(只保留name.txt中每一行的第2至第4个字符)
    -d参数:用于指定用什么分隔符(比如逗号,分号,双引号等等)
    -f参数:表示剪切下用分隔符分隔的哪一块或哪几块区域
    cut -d , -f 1 notes.csv用,作为分隔符,剪切notes.csv文件的第一部分,输出的结果会显示在屏幕上

  5. >:重定向到新文件
    用法:cut -d , -f 1 notes.csv > students.txt用,作为分隔符,剪切notes.csv文件的第一部分,将cut命令的结果重定向到students.txt文件中,若文件不存在,则创建该文件,如果该文件中有内容,重定向的内容会覆盖原来的内容

  6. >>:重定向到文件末尾
    用法:cut -d , -f 2 notes.csv >> students.txt用,作为分隔符,剪切notes.csv文件的第二部分,将cut命令的结果重定向到students.txt文件中,若文件不存在,则创建该文件,如果该文件中有内容,重定向的内容会追加到文件末尾

  7. stdin,stdout,stderr:标准输入,标准输出,标准错误输出
    用一张图片来说明

文件描述符名字解释
0stdin标准输入
1stdout标准输出
2stderr标准错误输出
  1. 2>:重定向标准错误输出到文件(覆盖)
    用法:cat not_exist_file.csv > results.txt 2> errors.log将标准输出重定向到results.txt文件中,将标准错误输出重定向到errors.log文件中
    2>>:重定向标准错误输出到文件(追加)
    2>&1:将标准输出和标准错误输出都重定向到一个地方
    用法:cat not_exist_file.csv > results.txt 2>&1(覆盖)
    cat not_exist_file.csv >> results.txt 2>&1(追加)
  2. <:从文件中读取
    用法:cat < notes.csvcat命令接受的输入直接是notes.csv这个文件的内容,cat命令只负责将其内容打印。而打开文件并将文件内容传递给cat命令的工作则交给shell程序(也就是控制终端的程序)来完成
    对比cat notes.csv cat命令接受的输入是notes.csv这个文件名,那么它要先打开notes.csv文件,然后打印出文件内容
  3. <<:从键盘读取
    用法:sort -n << END对键盘输入的内容执行sort -n命令,键盘输入以END(也可以是其他任意字符)结束,sort的结果会显示在屏幕上
    sort -n << END > numbers_sorted.txt 2>&1对键盘输入的内容执行sort -n命令,键盘输入以END(也可以是其他任意字符)结束,sort的结果(标准输出和标准错误输出)重定向到numbers_sorted.txt中
  4. |:管道(上一个命令的输出作为下一个命令的输入)
    用法:cut -d , -f 1 notes.csv | sort > sorted_names.txt用,作为分隔符,剪切notes.csv文件的第一部分,输出的结果作为sort的输入,执行sort命令,将sort的结果重定向到sorted_names.txt中
    sudo grep log -Ir /var/log | cut -d : -f 1 | sort | uniq遍历/var/log这个目录及其子目录,列出所有包含log这个关键字的行。-I参数用于排除二进制文件。-r参数用于递归遍历。sudo命令是为了以root身份查找系统文件夹/var/log;从命令1的输出结果中只剪切出文件名那一列(由冒号分隔的第一个区域);将文件名的列以首字母的字典顺序进行排序;去掉重复的文件名
  5. w:都有谁,在做什么
    输出内容:时间,运行时间,负载(从左到右1mins、5mins、15mins以内的平均负载),登录的用户列表(同who命令)
  6. ps:进程的静态列表
    输出内容:PID:进程号;TTY:进程运行所在的终端;TIME:进程运行了多久;CMD:产生这个进程的程序名
    常用参数:ps -ef列出所有进程;ps -efH:以乔木状列出所有进程;ps -u 用户名:列出此用户运行的进程
  7. top:进程的动态列表
  8. Ctrl + C:停止终端中正在运行的进程
  9. kill PID:结束进程号为PID的进程;killall 程序名:结束所有名为find的进程
  10. &符号:在后台运行进程
    用法:命令 &
  11. 进程前后台转换
    1.如果我们运行一个程序,默认情况下,它会成为一个前台运行的进程。我们可以按组合键Ctrl + C来销毁此进程。
    2.我们也可以使此进程在后台运行。假如运行程序时就用&放在命令最后,那么进程就会在后台运行。
    3.假如在进程运行起来后,按Ctrl + Z,则进程会转到后台,并且停止。此时如果运行bg命令,则进程重新运行,并继续在后台。
    4.fg命令可以使进程转到前台,并且运行。
  12. at:延时执行一个程序
    用法:at 17:12在17点12分执行下面输入的命令,Ctrl + D结束输入;at 17:12 tomorrow at 17:12 12/10/15 at now +10 minutes
  13. atq和atrm命令:列出和删除正在等待执行的at任务
    每次我们用at命令指定延时执行的命令,at都会为其分配一个job编号,atq命令可以列出正等待执行的at任务,atrm命令可以删除正在等待执行的at任务,后接at任务的编号
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值