zoukankan      html  css  js  c++  java
  • Linux shell入门基础(二)

    二、shell对文本的操作
    01.查看文本的命令
    #cat /etc/passwd(并非对文本文件操作)
    #tail -5 /etc/passwd(查看末尾5行)
    #tail -f /var/log/messages(对日志文件监视)
    02.使用正则表达式的命令
    #cat 
    sdkjfalkdsjf
    sdkjfalkdsjf
    ieakjnhgalkdsjlk
    ieakjnhgalkdsjlk
    #grep aaaa  (具有筛选的作用)
    ald;sjflkajds
    asdkjflajsdf
    sadfa
    aaaasdfadffds
    aaaasdfadffds
    #grep -R -l
    #grep byf /etc/passwd
    byf:……:…:…
    byf123:……:…:…
    #grep '<byf>' /etc/passwd(筛选)
    byf:……:…:…
    #cut -d: -f1 /etc/passwd | grep byf(截断)
    byf
    byf123
    #grep byf /etc/passwd | cut -d : -f7(截断+筛选)
    /bin/bash
    /bin/bash
    #cut -d: -f7 /etc/passwd(查看所有用户的主目录)
    #sort -t: +2(从第二列开始) -n(ASCII码值排列) /etc/passwd
    (按照这个要求保存?否)
    #sort -t: +2(从第二列开始) -n(ASCII码值排列) -r(反向排序) /etc/passwd
    #sort -t: +2(从第二列开始) -n(ASCII码值排列) /etc/passwd > /tmp/a
    #cat /tmp/a(在a这个文件中排列好)
    #du(显示文件属性) | sort
    1172
    1198
    12
    123
    13 
    #du(显示文件属性) | sort -n -r 
    降序排列
    #du | sort | -n -r |head -n 3 |cut -f2 (显示文件属性,降序排列,头3条,第二列内容)
    #grep -R (对文件以及子文件筛选)
    #grep -R -l(只显示文件名) ‘文件名’
    #grep -v(不包含改文件名的查找出来) -l -R -c(行号) -A2 -D2
    #cut -d: -f2-4 -c1-5
    #sort -n -r -t +2
    #grep -A5(显示下文的5行) -B5(显示上文的5行) byf /etc/passwd
    #wc /etc/passwd
    42 67 1925 /etc/passwd
    #wc -l(行) /etc/passwd
    42 /etc/passwd
    #wc -w(单词) /etc/passwd
    67 /etc/passwd
    #wc -c(字符) /etc/passwd
    1925 /etc/passwd
    #cut -d: -f7 /etc/passwd
    (把大家的shell显示出来)
    #cut -d: -f7 /etc/passwd |uniq(每种shell只显示一种)
    #cut -d: -f7 /etc/passwd |sort|uniq(排序+只显示一种)
    #cut -d: -f7 /etc/passwd |uniq|wc -l(显示行号)
    #diff a.txt b.txt(比较a和b文件的区别)
    文件版本不同时:
    uniq
    diff
    patch -p0 < patch.2.6.20
    #locate -r "正则表达式"
    #grep 'byf' /etc/passwd
    #echo *  (是一个文件名)
    #echo '*'
    *
    #grep 's.*k'(包含s,k中间任意多个字符)
    #grep 'sherk$' a (以sherk结尾的字符串)
    #grep '^sherk' a (以sherk开头的字符串)
    匹配单个字符 ‘.’,'*'
    匹配一个单词 '<s..k>'
    匹配以aaa开头的单词 '<aaa'
    匹配18个a开头的单词 'a{18}'
    #vi /usr/shre/dict/words
    #grep '.{40,}'  name  (四十个字符以上的单词)
    #grep '^i.{18}n$'
    #vi /etc/squid/squid.conf(配置信息)
    #grep -v(不包含) '^#' /etc/squid/squid.conf | grep -v '^$'(去掉空格)| wc -l(显示行号)
    #%s/byf/tttttt/g(替换全文的byf为tttttt)
    #%s/byf/tttttt/g
    #locate -r '正则表达式'
    #grep '^[abc]' /etc/passwd(以a或b或c开头的单词)
    #grep '^[^a-c]' /etc/passwd (不是以a,b,c开头的单词)
    .
    .*
    ^a
    a$
    <good
    Sh>
    [abc]
    [^abc]
    a*表示空、a,aa,aaa,……
    a?表示一个或零个单独的a
    a+表示a,aa,aaa,……
    a{n} 表示重复了n次的a
  • 相关阅读:
    自习任我行第二阶段个人总结5
    自习任我行第二阶段个人总结4
    自习任我行第二阶段个人总结3
    自习任我行第二阶段个人总结2
    自习任我行第二阶段个人每日总结1
    bootstrap table
    log4j2 的使用
    新版本MySQL Server 5.7的免安装版本设置
    工作随笔 2016-5-19
    在windows 下安装启动redis
  • 原文地址:https://www.cnblogs.com/baiyifan/p/5253688.html
Copyright © 2011-2022 走看看