大数据学习(1)---- Linux基础(1)

1. 提前准备

  1. CentOS6.5 虚拟机 或者 CentOS7.x 云主机

  2. Xshell软件、CRT、PUTTY 进行远程登录(Mac用户使用自带命令行)

  3. 使用ssh进行远程登录

    ssh root@10.211.55.5
    登录linux虚拟机
    

2. 常用Linux命令

  1. pwd

    查看当前光标所在的目录
    显示从根目录/开始 绝对路径
    
  2. 用户窥探

    root 超级管理员  123456      /root
    zth 普通用户  界面创建   			/home/zth
    lyj                        /home/lyj
    xxx                        /home/xxx
    默认系统是在/home目录下 除非指定用户的home目录为其他目录
    
    • Linux系统的目录是从根目录开始 /
  3. ls: 查看

    ls / 只显示该目录下的文件或文件夹的名称
    ls -l / 显示该目录下的文件或文件夹的明细信息
    
    [root@hadoop001 zth]# ls -l /home
    总用量 20
    drwx------.  2 root root 16384 12月 10 17:28 lost+found
    drwx------. 28 zth  zth   4096 12月 10 17:40 zth
    权限          用户    用户组      时间         名称
    
  4. cd: 切换目录

    cd /home
    
    cd    		切家目录  
    cd ~  		切家目录 ~标识
    cd /root  用户的家目录的绝对路径
    
    cd -    	回到上一次目录
    cd ../  	回退上一层目录
    
    cd ../../ 回退2个目录
    
  5. 路径

    绝对路径 /根目录开始
    相对路径 不以/开始
    [root@hadoop001 ~]# ls
    anaconda-ks.cfg  Downloads           Music     Templates
    Desktop          install.log         Pictures  Videos
    Documents        install.log.syslog  Public
    [root@hadoop001 ~]# cd Desktop/   相对
    [root@hadoop001 Desktop]# 
    
    [root@hadoop001 ~]# cd /root/Desktop/ 绝对
    [root@hadoop001 Desktop]# 
    
  6. clear: 清空屏幕

  7. 再讲 ls

    • ls 命令简写(只有在linux中才行)

      ls -l ==> ll
      
    • 查看文件大小

      ll -h
      
    • 查看文件夹或者文件的大小

      du -sh Desktop/
      du -sh install.log
      
    • 找出最新的文件或者文件夹

      ll -rt
      ll -rt == ls -l -r -t == ls -lrt
      
    • 查看隐藏文件或文件夹(隐藏是以 . 开头的文件或文件夹)

      ll -a
      
  8. 创建文件夹

    mkdir bigdata 只能创建1个
    mkdir -p bigdata/1/2 级联创建文件夹 串行
    mkdir 4 5 6 并行
    
  9. 创建文件

    • touch的形式创建

      touch zth.log 创建空文件
      
    • vi 的形式创建

      vi zth.log 创建文件 重要!!
      1. 命令行模式 按 i 进入编辑模式
      2. esc 回退到命令行模式
      3. shift+:尾行模式  wq 保存退出
      
  10. cp: 拷贝 2 份,原有的还在

    cp zth.log bigdata/
    cp -r 7 6/         文件夹拷贝 需要-r参数
    
  11. mv: 移动 1 份,即原有的移动到新位置

    mv zth1.log 6                移动文件到新的地方 名称不变
    mv zth2.log  6/zth123.log    移动文件到新的地方 改变zth2.log名称为zth123.log   
    mv 8 6  移动文件夹
    
  12. 第一种命令帮助

    [root@hadoop001 ~]# ls --help
    Usage: ls [OPTION]... [FILE]...
    []代表可以省略
    ls
    ls jepson.log jepson.log可以省略
    ls -r -t			-r -t 就属于option
    
  13. 离线查看文件内容

    • cat

      cat 文件内容一下子全部显示 适用字节内容较少
      
    • more

      more 文件内容一页一页的往下翻 按空格键往下 
      回退不了 按q退出   适用字节内容稍多的 
      
    • less

      less 文件内容 一行行 按箭头上下滚动  按q退出
      
    • | 管道符

      • 前面的shell脚本的输出 作为后面命令的输入
    • grep过滤

      grep -C 10 拿到前后上下文共 20 行
      
      > 重定向输出到文件  如果文件中有内容则覆盖
      > > 追加
      
    • 对文件的内容ERROR 定位错误

      假如文件假如100m+
      cat install.log | grep -C 10 "ERROR"
      
      假如 ERROR赛选的结果 特多 将结果保存到 error.log 中
      cat install.log | grep -C 10 "ERROR" > error.log
      
  14. 实时查看

    1. 主要使用 tail 命令
    打开实时窗口查看log日志
    tail -f tail1.log
    tail -F tail2.log
    -F = -f + retry
    
    • 试验一下
    [root@hadoop001 ~]# echo "123" >> tail1.log 
    [root@hadoop001 ~]# echo "123" >> tail2.log 
    [root@hadoop001 ~]# echo "4" >> tail1.log 
    [root@hadoop001 ~]# echo "4" >> tail2.log 
    此时tail1.log 与 tail2.log都可以正常输出
    
    • 生产上 xxxx.log日志大小 100m 一般保留10份

    • 如果将xxx.log 日志中内容移到xxx.log1中,此时 xxx.log 已经不存在

    • 而 -f 打开的tail1.log 并不能检测到 log 文件的发生的变化

    • 但是使用 -F 打开的tail2.log 文件 因为有 retry 可以检测文件发生的变化

      tail: 'tail2.log' has become inaccessible: No such file or directory
      tail: 'tail2.log' has appeared;  following end of new file
      
    • 说明-f 不够强大 文件只要被移走 就算新的一模一样 也不会实时监控
      反之-F 强大 实时监控

    • flume踩坑案例:tail -f
      http://flume.apache.org/releases/content/1.9.0/FlumeUserGuide.html#exec-source

    • 特别需求: 查看倒数 50 行 只能用 f 不能用 F

      tail -50f xxx.log