• 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
  • 相关阅读:
    TypeScript & JSDoc All In One
    k8s & Docker All In One
    How to custom your own Node.js Docker Image All In One
    rollup & TypeScript & tslib All In One
    Linux file system All In One
    how to use npm delete one history version package All In One
    How to use Web Components in React or Vue All In One
    看了这篇使用 dist 发布 npm 包的文章,我整个人都栓Q 了
    yarn 1.x & yarn 2.x All In One
    python中删除字符串中的指定字符
  • 原文地址:https://www.cnblogs.com/biehongli/p/6964822.html
Copyright © 2020-2023  润新知