美文网首页
linux基础

linux基础

作者: Nickier | 来源:发表于2018-12-09 17:59 被阅读6次

    ---------------

    Nickier

    2018-12-09

    ---------------

    linux基础

    
    

    创建目录/文件夹 -- mkdir

    mkdir [参数] 目录名

    目录切换 -- cd

    cd [目录名]

    目录展示 -- ls

    ls [参数]+[目录]

    创建文本 -- touch

    touch [参数] 新文本名

    文件/目录删除 -- rm

    rm [参数] 文件/目录

    文本/目录复制 -- cp

    cp [参数] 源文件 目标文件

    查看文本 -- less

    less [参数] 目标文件

    编辑文本 -- vim

    vim [参数] 新文本名

    vim进入文件时,首先是进入一种命令行的模式,此时不能输入内容

    先按一下 i ,insert的意思,进入编辑模式,就可以写入内容了

    写完后,按 Esc 键退出编辑模式,然后输入 :wq,保存并退出。

    输出/入文本 -- cat

    cat [参数] 文本

    从头展示文件行数 -- head

    head [参数] 文本

    从尾展示文件行数 -- tail

    tail [参数] 文本

    查看文本 -- more

    more [参数] 文本

    树形展示 -- tree

    tree [参数]+[目录]

    文件/目录 移动 or 更名 -- mv

    mv [参数]+[目录1]+[目录2]

    重定向 -- >
    追加 -- >>
    管道符 -- |

    查看历史命令 -- history

    建立链接 -- ln

    ln [参数]+[目录1/文本1]+ [目录2/文本2]

    ftp下载 -- wget -c link

    查看任务 -- ps -ef |grep userID

    最常用的打包命令 -- tar

    tar [参数] 打包名 文件名

    tar -cvf new.tar *.txt # 打包
    tar -xvf old.tar # 拆tar包
    tar -zcvf new.tar.gz ./# 打包和gunzip压缩
    tar -zxvf old.tar.gz # 解压打包
    tar -jcvf new.tar.bz2 *.jpg # 打包和bzip2压缩
    tar -jxvf old.tar.bz2 # bunzip2解压打包

    文件切割命令 -- cut

    cut [参数] 文本/管道符内容

    按列操作文本 -- paste

    paste [参数] 文本/管道符内容

    寻找 -- find

    find [参数] 目录/文本

    转换或删除文件中的字符 -- tr

    tr [参数] 文本

    排序 -- sort

    sort [参数] 文件名

    去除文件中的重复行 -- uniq

    uniq [参数] 文件名

    行数/字符/文本大小计数 -- wc

    wc [参数] 文本/管道符内容


    常用通配符

    ^ 开头

    $ 结尾

    ? 匹配有无

    +匹配1-n次

    *匹配n次

    .* 任意字符

    .o 以.o结尾 # grep '.o'

    \转义符 # grep '[.o]'

    [abc] 匹配到a或者b或者c模式的 # grep -n '[abc]'

    {2} 匹配次数 # grep -E 'd{2,3}' # grep 'd{2,3}' 默认不转义,加\使其转义能匹配模式

    [0-9]

    [a-z]

    [A-Z]


    grep

    grep(global regular expression print)

    Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。

    参数:

    -E :开启扩展(Extend)的正则表达式。

    -v :反过来(invert),只打印没有匹配的,而匹配的反而不打印。

    -n :显示行号

    -w :被匹配的文本只能是单词,而不能是单词中的某一部分,如文本中有liker,而我搜寻的只是like,就可以使用-w选项来避免匹配liker

    -c :显示总共有多少行被匹配到了,而不是显示被匹配到的内容,注意如果同时使用-cv选项是显示有多少行没有被匹配到。

    -o :只显示被模式匹配到的字符串。

    -I:不区分大 小写(只适用于单字符)。


    sed

    sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。

    sed有参数和动作之分。主要使用的是动作

    参数说明

    1.-e 或者,

    2.-n 搭配动作p,输出行

    动作说明

    • a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)
    • c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
    • d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
    • i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
    • p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
    • s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法。
    # 在第2行的下一行插入drink tea
    nl /etc/passwd | sed '2a drink tea'
    # 删除第3到最后一行
    nl /etc/passwd | sed '3,$d'
    # 输出第5,7行
    nl /etc/passwd | sed -n '5,7p'   
    # 将root替换成####,g指的是全局替换,即每一行的所有root都被替换
    nl /etc/passwd | sed 's/root/####/g'
    # 将root替换成####,或者将vip替换成###
    nl /etc/passwd | sed -e 's/root/####/g' -e 's/vip/###/g'
    

    awk使用方法

    awk是一个非常好用的数据处理工具。相较于sed常常一整行处理,awk则比较倾向于一行当中分成数个“字段”处理。

    使用格式:

    awk [option] '{pattern + action}' {filenames}

    awk [option] 'BEGIN{初始代码} {循环代码} END{最后代码}' filename

    # 输出1 2 3,管道传给awk,然后执行大括号里面的代码,
    echo 1 2 3 |awk '{ print "total pay for", $1, "is", $2 * $3 }'
    
    # -F以':'切割,先执行BEGIN的代码,再循环执行{print $1","$7},最后输出END的代码
    cat /etc/passwd |awk  -F ':'  'BEGIN {print "name,shell"}  {print $1","$7} END {print "blue,/bin/nosh"}'
    

    运算符

    运算符 描述
    = += -= *= /= %= ^= **= 赋值
    ?: C条件表达式
    || 逻辑或
    && 逻辑与
    ~ ~! 匹配正则表达式和不匹配正则表达式
    < <= > >= != == 关系运算符
    空格 连接
    + - 加,减
    * / % 乘,除与求余
    + - ! 一元加,减和逻辑非
    ^ *** 求幂
    ++ -- 增加或减少,作为前缀或后缀
    $ 字段引用
    in 数组成员

    内建变量

    常见变量 描述
    $n 当前记录的第n个字段,字段间由FS分隔
    $0 完整的输入记录
    FS 字段分隔符(默认是任何空格)
    OFS 输出记录分隔符(输出换行符),输出时用指定的符号代替换行符
    NF 一条记录的字段的数目
    NR 已经读出的记录数,就是行号,从1开始
    RS 记录分隔符(默认是一个换行符)
    ORS 输出记录分隔符(默认值是一个换行符)

    相关文章

      网友评论

          本文标题:linux基础

          本文链接:https://www.haomeiwen.com/subject/hvjkhqtx.html