zoukankan      html  css  js  c++  java
  • Linux学习笔记(Ubuntu操作系统)之hadoop学习之路

    1:检查虚拟机的ip命令:ifconfig

    2:普通用户切换root用户命令:su

    3:root用户切换普通用户命令:su 用户名

    4:普通用户执行系统执行前面加命令:sudo

    5:查询主机名命令:hostname或uname –n

    6:修改主机名命令:vi /etc/hostname(hostname master立即生效,不用重启,---》exit,---》su即可)

    centos操作系统修改主机名命令:vi /etc/sysconfig/network。

    修改主机名:hostnamectl set-hostname   xxxx(你要的主机名字)
    修改hosts文件,将名字和IP建立联系
    输入命令“vi /etc/hosts”后,在配置文件中加入

    使用sudo hostname 主机名称,修改主机名,当前生效,重启后失效。
    使用vim /etc/sysconfig/network修改主机名称,重启生效。

    7:修改域名和主机名对应关系命令:vi /etc/hosts(修改主机名的意义就是和域名一致,修改之后可以ping一下修改的主机名)

    (补充:vi编辑器三种模式,命令行模式(esc),编辑模式(a,i,o,s),尾行模式(esc :))

    8:vi编辑器中在命令模式中复制一行命令:yy

    9:vi编辑器中在命令模式中粘贴一行命令:p

    10:vi编辑器中在命令模式中剪切一行命令:dd

    vi编辑器里面查询内容:/要查找的内容;查找下一个n,查找上一个N。

    more   somefile     可以翻页查看, 下翻一页(空格)    上翻一页(b)   退出(q)
    less   somefile     可以翻页查看,下翻一页(空格)    上翻一页(b),上翻一行(↑)  下翻一行(↓)  可以搜索关键字(/keyword)

    tail -10  install.log   查看文件尾部的10行
    tail -f install.log    小f跟踪文件的唯一inode号,就算文件改名后,还是跟踪原来这个inode表示的文件
    tail -F install.log    大F按照文件名来跟踪

    head -10  install.log   查看文件头部的10行


    后台服务管理
    service network status   查看指定服务的状态
    service network stop     停止指定服务
    service network start    启动指定服务
    service network restart  重启指定服务
    service --status-all       查看系统中所有的后台服务

    设置后台服务的自启配置
    chkconfig                查看所有服务器自启配置
    chkconfig iptables off   关掉指定服务的自动启动
    chkconfig iptables on    开启指定服务的自动启动

    11:删除文件或者目录命令:rm -rf 文件名

    12:创建一个文件夹命令:mkdir 目录名称(文件夹名

    mkdir -p [目录名称]

    -p递归创建

    命令英文:make directories

    13:创建一个文件命令:touch 文件名

    14:测试是否有网络ping命令:例如ping www.baidu.com

    15:重启linux命令:reboot

    16:清空命令:clear

    17:解压缩命令:tar zxvf 文件名

    18:查看全路径命令:pwd

    19:ubuntu操作系统图形化到命令行:ctrl+alt+f1(减少浪费资源)

    20:ubuntu操作系统命令行到图形化:ctrl+alt+f7(方便操作)

    21:ubuntu启动时即为命令行:vi  /etc/init/rc-sysinit.conf    将env DEFAULT_RUNLEVEL=2改为env DEFAULT_RUNLEVEL=3

    22:修改文件权限的命令:

    sudo chmod 600 ××× (只有所有者有读和写的权限)
    sudo chmod 644 ××× (所有者有读和写的权限,组用户只有读的权限)
    sudo chmod 700 ××× (只有所有者有读和写以及执行的权限)
    sudo chmod 666 ××× (每个人都有读和写的权限)
    sudo chmod 777 ××× (每个人都有读和写以及执行的权限)

     23:查询目录中的内容的命令:ls命令 :ls [选项] [文件或者目录]

    1 选项:-a 显示所有的文件,包括隐藏文件(.开头的是隐藏文件)
    2 
    3 -l 显示详细信息(-list)
    4 
    5 -d查看目录属性
    6 
    7 -h人性化显示文件大小,可显示文件具体大小
    8 
    9 -i显示inode

    24:文件权限的解释:

    如-rw-r--r--

    1 第一个-代表:文件类型(-文件d目录  | 软连接文件)
    2 
    3 第一组:rw- u所有者(user)
    4 
    5 第二组:r-- g所有组(group)
    6 
    7 第三组:r-- o其他人(other)
    8 
    9 解释:r(read)读 w(write)写 x(execute)执行

     25:防火墙的命令:

    #查看防火墙状态
            service iptables status

    #关闭防火墙
            service iptables stop
    #查看防火墙开机启动状态
            chkconfig iptables --list
    #关闭防火墙开机启动
            chkconfig iptables off

     26:解压缩的命令:

    tar  -zxvf  将要解压缩的文件名称  -C 指定的目录       

    27:切换目录的命令:

    cd [目录]

    命令英文原意:change directory

    简化操作:

    cd ~进入当前用户的家目录

    cd - 进入上次目录

    cd .. 进入上一级目录

    cd .进入当前目录

    28:linux清屏操作的命令:clear/ctrl+L

    29:linux的相对路径和绝对路径问题:

    --->相对路径:参照当前所在目录,进行查找,如cd ../usr/local/src/

    --->绝对路径:从根目录开始指定,一级一级递归查找,在任何目录下, 都能进入指定位置,如cd /etc/

    30:显示当前的工作目录的命令:pwd(print working directory执行pwd指令可立刻得知目前所在的工作目录的绝对路径名称。)

    31:自动补全的tab键:神奇的tab键,按一下tab键没反应,再按一下tab键,就会列出该目录下的所有目录,供你选择。

    32:删除空目录rmdir [目录名称]

    ----》命令英文原意:remove empty directories

    33:删除文件或者目录:rm命令

    rm -rf [文件或者目录],命令英文原意:remove

    参数:

    -r   删除目录

    -f   强制删除

    34:复制命令cp

    cp    [参数]      [原文件或者目录]     [目标目录]

    命令英文原意:copy

    参数:

    -r 复制目录

    -p 连带文件属性复制

    -d 若源文件是链接文件,则复制链接属性

    -a 相当于 -pdr

     35:剪切或者改名命令:mv(英文原意move);

    36:linux的目录学习(可以在家目录root或者home目录下面操作,以及tmp目录下随便放内容,其他目录最好不要动):

    / 根目录
    /bin 存放必要的命令
    /boot 存放内核以及启动所需的文件等
    /dev 存放设备文件
    /etc 存放系统的配置文件
    /home 用户文件的主目录,用户数据存放在其主目录中
    /lib 存放必要的运行库
    /mnt 存放临时的映射文件系统,我们常把软驱和光驱挂装在这里的floppy和cdrom子目录下。
    /proc 存放存储进程和系统信息
    /root 超级用户的主目录
    /sbin 存放系统管理程序
    /tmp 存放临时文件的目录
    /usr 包含了一般不需要修改的应用程序,命令程序文件、程序库、手册和其它文档。
    /var 包含系统产生的经常变化的文件

    37:链接命令:ln

    (1)ln -s [原文件---》软链接,原文件一定要写绝对路径哦!] [目标文件]

    命令英文原意:link

    功能描述:生成链接文件

    参数:-s 创建软链接(soft)

    (2)硬链接特征:

    ----》拥有相同的i节点和存储block块,可以看做是同一个文件。

    ----》可通过i节点识别

    ----》不能跨分区

    ----》不能针对目录使用

    (3)软链接特征:

    ----》类似windows快捷方式

    ----》软链接拥有自己的I节点和block块,但是数据块中只保存原文件的文件名和i节点号,并没有实际的文件数据

    ----》lrwxrwxrwx | 软链接,软链接文件权限都为rwxrwxrwx

    ----》修改任意文件,另一个都改变

    ----》删除原文件,软链接不能使用

     38:文件搜索命令:

    ---->文件搜索命令:locate(搜索速度比较快)

      (1)使用方法:locate 文件名,在后台数据库中按文件名搜索,搜索速度更快;

          /var/lib/mlocate ;locate命令所搜索的后台数据库,此数据库不是实施更新的,一天一更新,所以需要手动执行updatedb更新数据库;缺点是只可以按照文件名进行搜索;

    ---->命令搜索命令whereis 与which

      (1)使用用法:whereis  命令名;搜索命令所在路径,即linux已有命令,以及帮助文档所在位置;

          扩展:whoami 查看用户是谁;whatis 命令查看命令;

          参数:-b 只查找可执行文件;

            -m 只查找帮助文件;

      (2)使用用法:which命令搜索命令所在路径以及别名;    

    ---->文件搜索命令find(遍历所有的目标,功能强大,耗时。)

      (1)find [搜索范围] [搜索条件];例如,find / -name 文件名称

      (2)注意:避免大范围搜索,会非常耗费系统资源,find是在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配;

      (3)*代表匹配任意内容,?代表匹配任意一个字符,[]代表匹配任意一个中括号内的字符;

      (4)find /root -iname 文件名称   :   不区分大小写;

          find /root -user root    :    按照所有者搜索;

                    find /root -nouser    :   查找没有所有者的文件

      (5)find /var/log/ -mtine +10 查找10天前修改的文件;

          -10代表10天内修改文件,10代表10天当天修改的文件,+10代表10天前修改的文件;

          atime 文件访问时间(access),ctime改变文件属性(change),mtime修改文件内容(modify);

      (6)find . -size 25k查找文件大小是25kb的文件;(   .   代表当前目录)

         -25k小于25kb的文件,25k等于25k的文件,+25k大于25kb的文件;

         find . -inum 262422查询i节点是262422的文件;

      (7)find /etc -size +20k -a -size -50k 代表查询/etc、目录下,大于20kb并且小于50kb的文件;

         -a 逻辑与(and),两个条件都满足;

         -o 逻辑或(or),两个条件满足一个即可;

      (8)find /etc -size +20k -a -size -50k -exec ls -lh {} ;    查找/etc/目录下,大于20kb并且小于50kb的文件,并且显示详细信息。

          -exec rm  -rf  {} 对搜索结果执行删除操作;

    ---->字符串搜索命令grep

      (1)grep [选项] 字符串 文件名 ,在文件当中匹配符合条件的字符串,例如grep -v 字符串  文件名;

         参数:-i 忽略大小写,-v排除指定的字符串;

    ---->find命令与grep命令的区别?

      (1)find命令,在系统中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配;

      (2)grep命令,在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式是包含匹配;

     39:帮助命令:

    (1):man命令,获取指定命令的帮助(英文manual)

           例如man ls查看ls的帮助;

        注意:q键退出man命令;(2):help命令,命令--help,获取命令选项的帮助;例如,ls --help;

     40:压缩命令:

    常用的压缩格式:.zip    .gz    .bz2   .tar.gz    .tar.bz2

    1:zip格式的压缩和解压缩命令:

      (1)压缩文件的命令:zip 压缩文件名 原文件;

      (2)压缩目录的命令:zip -r 压缩文件名 源目录;

      (3)最常使用的解压缩的命令(解压缩.zip的文件):unzip 压缩文件;

    2:.gz格式压缩

      (1)gzip源文件,压缩为.gz格式的压缩文件,源文件会消失;

      (2)gzip -c 源文件 > 压缩文件,压缩为.gz格式,源文件保留;

      (3)gzip -r 目录,压缩目录下所有的子文件,但是不能压缩目录;

      (4)gzip -d 压缩文件,解压缩文件;

      (5)gunzip 压缩文件,解压缩文件;

      (6)gunzip -r 目录,解压缩目录;

    3:.bz2格式压缩

      (1)bzip2 源文件,压缩为.bz2的格式,不保留源文件;

      (2)bzip2 -k 源文件,压缩之后保留源文件;

         注意:bzip2命令不能压缩目录;

      (3)bzip2 -d 压缩文件,解压缩,-k保留压缩文件;

      (4)bunzip2 压缩文件,解压缩,-k保留压缩文件;

    4:打包命令tar(解决目录不能压缩的方法

      (1)tar -cvf 打包文件名 源文件;

          参数:-c打包,-v显示过程,-f指定打包后的文件名;

      (2)解压缩的命令:

          tar -xvf 打包文件名;

          参数:-x 解打包;

    5:其实.tar.gz格式是先打包为.tar格式,再压缩为.gz格式;

      (1)tar -zcvf 压缩包名.tar.gz 源文件;

        参数:-z压缩为.tar.gz格式;

      (2)最常使用的解压缩命令(解压缩.tar格式的文件):tar -zxvf 压缩包名.tar.gz;

        参数:-x解压缩.tar.gz格式;

    6:.tar.bz2压缩格式

      (1)tar -jcvf 压缩包名.tar.gz2 源文件;

        参数:-j压缩为.tar.gz2格式;

      (2)最常使用的解压缩命令(解压缩.tar格式的文件):tar -jxvf 压缩包名.tar.gz2;

        参数:-x解压缩.tar.gz2格式;

     41:linux中关机和重启命令:

    1:shutdown命令,使用用法:shutdown [选项] 时间

      参数:

        -c:取消前一个关机命令

        -h:关机

        -r:重启

      用法举例:shutdown -r 05:30 &(凌晨五点关机,并且是后台执行)

    2:linux操作系统其他关机命令:halt    poweroff    init 0

    3:linux操作系统的重启命令:reboot;

     42:shell是什么???

      (1)shell是一个命令行解释器,它为用户提供了一个向linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动,挂起,停止,甚至是便携一些程序。

      (2)shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性强。shell是解释执行的脚本语言,在shell中可以直接调用linux系统命令;

    43:echo输出命令:

    1:echo [参数] [输出内容]

      参数:

        -e : 支持反斜线控制的字符转换;

    2:echo可以将内容写到文件里面,如:

      echo 内容 > 文件名称;

    3:echo颜色输出格式:echo -e "e[1;31m你好啊e[0m"                  echo -e "e[1;32m你好啊e[0m"                    echo -e "e[1;33m你好啊e[0m"...... 

     44:linux脚本的好处,可以直接调用linux中shell的命令:

    1:shell脚本的第一行#!/bin/bash这一句(表示这个是linux标准脚本,如果是纯shell则不会报错),如果省去这句话,如果调用其他其他语言就会报错;

    2:shell脚本里面的#表示注释;

    3:书写简单的脚本,如vim hello.sh ,内容如下所示:

      #!/bin/bash
      #the first program

      echo -e "e[1;31mhello wolrde[0m"

    保存:wq退出以后,可以进行运行操作;
    4:运行linux脚本的几种命令:

      (1)赋予执行权限,直接运行
        chmod 755 hello.sh
        ./hello.sh或者./hello.sh start
        (2)通过bash调用执行脚本
        bash hello.sh
          (3)sh hello.sh start直接运行也行;

     45:Bash的基本功能:

    1:命令别名和快捷键

      (1)命令别名:alias,举例说明(起别名必须符合别名规范,不然出错):alias aa='ls -l --color=auto'

        删除别名的命令:unalias aa

      (2)查看系统中所有的命令别名:alias

      (3)设定命令别名:alias 别名= ‘原命令’

      (4)别名永久生效与删除别名:vi ~/.bashrc写入环境变量配置文件,修改过后的文件生效方法:source .bashrc

      (5)删除别名的命令:unalias 别名

      (6)快捷键:

          强制终止的快捷键:ctrl+c;

          清除屏幕的快捷键:ctrl+l;

          光标移动到命令行首:ctrl +a;

          光标移动到命令行尾:ctrl+e;

          从光标所在位置删除到行首:ctrl+u;

          把命令放入后台:ctrl+z;

                    在历史命令中搜索:ctrl+r;

    2:历史命令

      (1)history [选项] [历史命令保存文件]

        选项:-c清空历史命令;

           -w把缓存中的历史命令写入历史命令保存文件~/.bash_history;

      (2)注意:根目录下面,ls -a显示.bash_history文件可以进行查看历史命令;

      (3)历史命令默认会保存1000条,可以在坏境变量配置文件/etc/profile中进行修改;可以去vim /etc/profile里面修改保存的历史命令的条数;

      (4)使用上下箭头调用之前的历史命令;

      (5)命令与文件补全:在Bash中,命令与文件补全是非常方便与常用的功能,我们只要在输入命令或者文件时,按“tab”键就会自动进行补全;

    3:输出重定向

      (1):标准输入输出:

        键盘,设备文件名/dev/stdin,文件描述符0,类型为标准输入;

        显示器,设备文件名/dev/stdout,文件描述符1,类型为标准输出;

        显示器,设备文件名/dev/stderr,文件描述符2,类型为标准错误输出;

      (2):输出重定向:

        标准输出重定向:命令 > 文件 ,以覆盖的方式,把命令的正确输出输出到指定的文件或者设备当中;

                命令 >> 文件,以追加的方式,把命令的正确输出输出到指定的文件或者设备中。

        标准错误输出重定向:错误命令  2 >文件,以覆盖的方式,把命令的错误输出输出到指定的文件或者设备中。

                  错误命令 2 >> 文件,以追加的方式,把命令的错误输出输出到指定的文件或者设备中。

    4:多命令顺序执行(多命令执行符;  && ||)

      (1);  ---->命令1; 命令2  的作用多个命令顺序执行,命令之间没有任何逻辑联系;

      (2)&& ---->命令1 && 命令2 的作用是逻辑与,当命令1正确执行,则命令2 才会执行,当命令1执行不正确,则命令2 不会执行

      (3)||---->命令1 || 命令2的作用是逻辑与,当命令1执行不正确,则命令2才会执行,当命令1正确执行,则命令2不会执行

      (4)管道符,命令格式:命令1 | 命令2的作用是命令1的正确输出作为命令2的操作对象;

      (5)管道符举例说明:ls -l /etc | more将管道符前面正确执行的输出作为管道符后面的操作对象;

    5:通配符

      (1)?匹配一个任意字符;

      (2)*匹配0个或者任意多个任意字符,也就是可以匹配任何内容;

      (3)[]匹配括号中任意一个字符,例如:[abc]代表一定匹配一个字符,或者是a,或者是b,或者是c;

      (4)[-]匹配括号中任意一个字符,-代表一个范围,例如[a-z]代表匹配一个小写字母;

      (5)[^]逻辑非,表示匹配不是中括号内的一个字符,例如:[^0-9]代表匹配一个不是数字的字符;

    6:特殊符号

      (1)''单引号,在单引号中所有的特殊符号,如"$"个“‘”反引号都没有特殊含义;

      (2)""双引号,双引号,在双引号中特殊符合都没有特殊含义,但是“$”,"'"和“”是例外,拥有"调用变量的值","引用命令"和“转义符”的特殊含义;

      (3)#在shell脚本中,#开头的行代表注释;

      (4)$用于调用变量的值,如需要调用变量name的值时,需要用$name的方式得到变量的值;

      (5)转义符,跟在之后的特殊符号将失去特殊含义,变为普通字符,如$将输出"$"符号,而不当作是变量引用;

      (6)$()和反引号作用一样,用来引用系统命令;

      (7)''反引号,反引号括起来的内容是系统命令,在Bash中会执行它,和$()作用一样,不过推荐使用$(),因为反引号非常容易看错;

    46:linux创建新用户的一系列操作如下所示:

    1 Hadoop环境新建用户步骤如下所示:
    2 1:使用useradd 用户名称,添加用户;
    3 2:使用passwd hadoop设置用户密码;
    4 3:给用户赋予使用sudo命令的权限;
    5 4:chmod u+w /etc/sudoers;
    6 5:vim /etc/sudoers
    7 6:在root ALL=(ALL)ALL下面加上一行,用户名称 ALL=(ALL)ALL。
    8 7:chmod u-w /etc/sudoers

    47、如何查找特定的文件,可以使用find指令,语法如下所示:

    答:语法,find path [options] params。

    作用,在指定目录下查找文件。任何位于参数之前的字符串都将被视为预查找的目录名称,如果使用该文件的时候不设置任何参数,则find指定则在当前目录下查找子目录与文件,并且将查找的子目录和文件全部进行显示。

     1 # 此时,不支持路径,执行该指令便会从当前的用户的home目录去递归寻找,最终找到目标文件。
     2 [root@localhost ~]# find -name "apache-tomcat-7.0.47.tar.gz"
     3 
     4 # 此时,指定路径,linux的根目录是/,指定根目录全局搜索。
     5 [root@localhost ~]# find / -name "apache-tomcat-7.0.47.tar.gz"
     6 
     7 # 去查找当前用户的home目录所有以指定字母打头的文件,~是当前目录。模糊查找文件。
     8 [root@localhost ~]# find ~ -name "apache*"
     9 
    10 # 可以找到不论大小写的文件,-iname不区分文件名大小写去查找文件。
    11 [root@localhost ~]# find ~ -iname "apache*"

    48、检索文件内容,可以使用grep指令(grep的全称是Global Regular Expression Print支持正则表达式),语法如下所示:

    答:语法,grep [options] pattern file。

    作用是查找文件里面符合条件的字符串,强大的文本搜索工具,可以使用正则表达式搜索文件,并把匹配的行打印出来。

    1 # 在某文件或者匹配的文件中搜索某字符串内容,只列出目标字符串所在的行。"hello"就是要查找的内容,hello.txt就是搜索的文件,支持正则表达式。
    2 [root@localhost package]# grep "java" hello.txt
    3 
    4 # 如果在指令里面不指定任何文件名称,grep指令会从标准输入设备读取数据。

    49、检索文件内容,管道操作符 | ,语法如下所示:

    答:作用,可以将指令连接起来,前一个指令的输出作为后一个指令的输入。管道操作符仅能处理经由前面一个指令传出的正确输出信息,如果是错误输出信息没有直接处理能力。将前一个传出的正确输出信息传递给下一个指令,作为标准的输入。

    注意:使用管道需要注意的要点,只处理前一个命令正确输出,不处理错误输出。右边命令必须能够接收标准输入流,否则传递过程中数据会被抛弃。常用来接收管道的命令有sed、awk、grep、cut、head、top、less、more、wc、join、sort、split等等。

    1 [root@localhost package]# find / -name "apache-tomcat-7.0.47.tar.gz"
    2 # 使用grep 和管道|的组合可以达到同样的效果。find /递归列出所有的文件和目录。
    3 [root@localhost package]# find / | grep "apache-tomcat-7.0.47.tar.gz"
    4 
    5 # 查询某个进程的情况。可以过滤出和某个服务应用相关的信息,但是执行该指令之后,grep连我们当前的执行指令也列出来了。这是因为当我们执行grep指令的时候,实际上也会生成执行该指令的进程,也会被ps指令所发现,因为也含有某个服务应用的名称。
    6 [root@localhost package]# ps -ef | grep redis
    7 
    8 # 那么如果过滤掉该条grep指令的相关的信息呢,grep -v "grep"排除掉grep的指令。
    9 [root@localhost package]# ps -ef | grep redis | grep -v "grep"

    50、对文件内容做统计,awk指令 ,语法如下所示:

    答:语法,awk [options] 'cmd' file。

    作用,一次读取一行文本,按照输入分隔符进行切片,切成多个组成部分。将切片直接保存在内建的变量中,$1、$2...($0表示行的全部),引用指定的变量可以显示指定的某个切片或者多个切片,如果需要显示全部的,就是用$0。支持对单个切片的判断,支持循环判断,默认分隔符为空格。

     1 # awk筛选内容,获取第一列和第四列的信息,awk默认是按照空间将信息分开开的。
     2 [root@localhost package]# awk '{print $1,$4}' hello.txt
     3 
     4 # 如何筛选指定行指定内容的信息,打印第一列包含tcp,第二列包含2的所有信息。
     5 [root@localhost package]# awk '$1=="tcp" && $2==2 {print $0}' hello.txt
     6 
     7 # NR是內渐变量,表示从awk开始执行后按照记录分隔符读取的数据次数,默认的记录分隔符是换行符,因此默认的就是读取的数据行数。表头是位于第一行NR == 1即可。
     8 [root@localhost package]# awk '($1=="tcp" && $2==2) || NR == 1 {print $0}' hello.txt
     9 
    10 # awk默认是按照空间将信息分开开的。也可以别的符号将列分开。-F表示的是以什么符号作为分隔符去分割行内容。
    11 [root@localhost package]# awk -F "|" '{print $1 $2}' world.txt 
    12 
    13 # awk还支持统计操作功能,方便对数据进行统计。awk是支持管道操作的。
    14 [root@localhost package]# awk -F "|" '{print $1 $2}' world.txt | awk '{javaarr[$1]++}END {for(i in javaarr) print i "	" javaarr[i]}'

    51、批量替换文本内容,sed指令 ,语法如下所示:

    答:sed [option] 'sed command' filename。sed的全名叫做stream editor流编辑器,用程序的方式来编辑文本。

    作用,适合用于对文本的行内容进行处理,擅长用正则表达式对行进行处理并且适合做文本编辑。

     1 # ^hello是将被替换的字符串,^是以某字符串打头的内容,i love是替换的字符串。s字母表示要字符串的操作。
     2 [root@localhost package]# sed 's/^hello/i love/' world.txt
     3 
     4 # 如果想替换的话,需要加上-i参数,否则直接在终端打印显示。
     5 [root@localhost package]# sed -i 's/^hello/i love/' world.txt
     6 
     7 # 如果想要替换结尾的.号,点好和分号是特殊符号需要进行转义。$是以某结尾。
     8 sed -i 's/.$/;/' world.txt
     9 
    10 # 如果想全文替换某个字符串,里面的g是每行匹配到的都进行替换,如果不使用g,只替换每行第一次出现的字符串。
    11 sed -i 's/hello/i love/g' world.txt
    12 
    13 # 依据规则删除某行的作用。^ *之间有空格,表示的是一个空行,d表示要删除符合条件的行。    
    14 [root@localhost package]# sed -i '/^ *$/d' world.txt 
    15 
    16 # 按照内容删除指定的行。
    17 [root@localhost package]# sed -i '/go/d' world.txt
  • 相关阅读:
    d-ary heap实现一个快速的优先级队列(C#)
    分享一道自创面试题
    Hacknet 玩后感
    Unity摄像机围绕物体旋转两种实现方式
    Shuffle Bags让你的随机不那么随机
    松散的四叉树实战
    Lua学习笔记(六)
    Lua学习笔记(五)
    Lua学习笔记(四)
    Lua学习笔记(三)
  • 原文地址:https://www.cnblogs.com/biehongli/p/6964822.html
Copyright © 2011-2022 走看看