课程第二天


day02_linux基础

目标

  • linux操作命令

  • vi / vim 编辑器

  • 数据库介绍

  • mysql数据库安装和使用

  • datagrip安装和连接mysql

linux 操作命令

  • 查找文件或者文件夹的命令

    # 查找某个文件或文件夹的命令 比如 张三 文件夹
    find / -name 'zhangsan*'
    find /root/ -name 'zhangsan'
    # 查找文件大于500M的文件
    # find 查找命令, type 类型 f:普通文件 d:文件夹 size 大小
    find / -type f -size +500M
    # 查找文件详情
    ll -h /usr/sbin/mysqld
  • 查找某个文件中的字符串命令

    # 比如查找 helloworld 文件中的 flink
    grep flink helloworld
  • 查找可执行文件的命令

    # 比如查找 java 的可执行文件的位置
    which java
  • 系统管理命令

    # ps 查看当前的进程
    # 显示系统中所有的进程和线程
    ps -ef
    # 查找指定的进程
    ps -ef | grep java
  • 如何杀掉某个进程命令

    # 杀掉 firefox 程序的进程
    #1.查找 firefox 进程
    ps -ef | grep firefox
    #2.杀掉 firefox 进程
    kill -9 pid
  • 管道命令       

    管道是Linux命令中重要的一个概念,其作用是将一个命令的输出用作另一个命令的输入。

    # 比如在文本中 helloworld 文中查找 flink 文本的个数据
    cat helloworld | grep -o -w flink | wc -w
    # 查询所有进程中指定的命令 awk cut
    ps -ef | grep java
  • 用户创建和密码设置 (并不常用)

    # 创建 itheima 普通用户
    useradd itheima
    # 指定 itheima 密码
    passwd itheima
  • 删除用户

    # 删除用户
    userdel -r itheima

文件权限概述

Linux操作系统是多任务多用户操作系统,每当我们使用用户名登录操作系统时,Linux都会对该用户进行认证、授权审计等操作。操作系统为了识别每个用户,会给每个用户定义一个ID,就是UID。用户组就相当于多个用户的容器;在Linux系统中,用户组也有一个ID,GID。

在Linux操作系统中,root的权限是最高的,相当于windows的administrator,拥有最高权限,能执行任何命令和操作,而其他用户都是普通用户。

Linux对文件创建者(所属用户),所属用户组,其他用户都赋予不同的权限。

 

r: 对文件是指可读取内容 对目录是可以ls

w: 对文件是指可修改文件内容,对目录 是指可以在其中创建或删除子节点(目录或文件) mkdir -p或者 rm -r

x: 对文件是指是否可以运行这个文件,对目录是指是否可以cd进入这个目录 cd

  • chmod 赋权命令

    # 指定文件或者文件夹赋予 宿主可读可写 组内可读 其他无权限
    # 1.可以通过将 u g o直接 + - 权限r w x
    # 案例 让其他用户无权限
    chmod o-r helloworld
    # 案例 让宿主用户有可执行权限
    chmod u+x helloworld
    # 案例 让宿主用户可执行,组内和其他用户可读
    chmod u+x,g+r,o+r helloworld
    # 2.数字赋权
    chmod 777 helloworld
    # 案例 让宿主用户可读可写可执行,组内用户可读可写,其他用户可执行
    chmod 761 helloworld
    # 3.赋值赋权
    chmod u=rwx,g=rw,o=x helloworld
  • 应用场景

    在程序开发完需要测试执行的时候,需要进行赋权操作

    chmod u+x test.sh

    chown

网络和服务管理

  • 查询网络 ip mac

    # 获取当前机器的 ip 地址
    ifconfig
    # ip addr 获取mac 地址
    ip addr ether后面的东西
  • 查询的主机名

    # 查询主机名
    hostname
  • 设置主机名(了解)

    # 设置主机名
    hostnamectl set-hostname node1
  • service 服务

    # 开启mysql 后台服务
    service mysql start
    # 关闭mysql 后台服务器
    service mysql stop
    # 查询mysql 后台服务状态
    service mysql status
    # 重启mysql 网络
    service network restart

其他命令

  • 软连接 ln   必须从根路径开始

    # hadoop conf
    /export/server/hadoop-2.7.5/etc/hadoop/
    core-site.xml hdfs-site.xml
    # hive conf
    ln -s /export/server/hadoop-2.7.5/etc/hadoop/core-site.xml /export/server/hive-2.0.0/conf/core-site.xml
    # kudu conf
    ln -s /export/server/hadoop-2.7.5/etc/hadoop/core-site.xml /export/server/kudu/conf/core-site.xml
  • 清屏命令

    clear
    # ctrl + l

vi 编辑器

  • vi 编辑器的特点:

    1.只能是编辑文本内容, 不能对字体段落进行排版

    2.不支持鼠标操作

    3.没有菜单

    4.只有命令

  • vi 编辑器的三种模式:

    1. 命令模式

    - 打开文件首先进入命令模式, 是使用vi的入口

    - 通过 命令 对文件进行常规的编辑操作, 例如 定位 翻页 复制 粘贴 删除

    - 在其他图形编辑器下, 通过 快捷键 或者 鼠标 实现的操作, 都在 命令模式 下实现

    1. 末行模式 -- 执行 保存 退出等操作

    - 要退出 vi 返回到控制台, 需要在莫行模式下输入命令

    - 末行模式 是 vi 的出口

    1. 编辑模式 -- 正常的编辑文字

  • 命令行模式常用命令

    命令功能
    o 在当前行后面插入一空行
    O 在当前行前面插入一空行
    dd 删除光标所在行
    ndd 从光标位置向下连续删除 n 行
    yy 复制光标所在行
    nyy 从光标位置向下连续复制n行
    p 粘贴
    u 撤销上一次命令
    gg 回到文件顶部
    G 回到文件末尾
    /str 查找str
  • 编辑模式

    在命令模式下输入 i 或 insert 或者 a 都可以切换到 编辑模式

  • 末行模式

    在编辑模式下需要做两步

    1. esc 退出当前编辑模式

    2. 末行模式命令

  • 末行模式

    命令功能
    :w 文件 另存为,如果保存的文件已存在。:w! 路径/文件 强制覆盖已存在文件(了解)
    :w 保存(ctrl + s)
    :q 退出, 如果没有保存,不允许退出
    :q! 强行退出, 不保存退出
    :wq 保存并退出
    ZZ 保存并退出
    :x 保存并退出
    :set nu 设置行号
    :%s/旧文本/新文本/g 文本替换

mysql 数据库

  • 数据库原理

    数据库就是存储数据的文件系统,便于有效的存储和快速的查询工具。

  • 使用数据库可以高效的有条理的储存数据:

  1. 可以结构化存储大量的数据,

  2. 可以有效的保持数据的一致性、完整性。

数据的存储方式:

  1. 结构化数据,固定的列

  2. 半结构化数据,看似有结构,实则列不固定

  3. 非结构化数据,文本、图片、数据流

  • 常用的数据库主要分为关系型数据库和菲关系型数据库

    数据库类型数据库介绍
    关系型数据库 MYSQL 开源免费的数据库,中型的数据库.已经被Oracle收购了.MySQL8.x版本也开始收费。
    Oracle 收费的大型数据库,Oracle公司的产品。Oracle收购SUN公司,收购MYSQL。  
    DB2 IBM公司的数据库产品,收费的。常应用在银行系统中.  
    SQLServer MicroSoft 公司收费的中型的数据库。C#、.net等语言常使用。  
    SQLite 嵌入式的小型数据库,应用在手机端。  
    非关系型数据库 Redis 是一个小而美的数据库,主要用在key-value 的内存缓存,读写性能极佳
    HBase HBase是列式数据库,目标是高效存储大量数据  
    MongoDB MongoDB是文档型数据库,非常接近关系型数据库的。  
  • 常用数据库:MYSQL,Oracle,Redis,Hbase

mysql的安装和使用

mysql 的安装

  • 可以快照当前环境,然后根据 mysql 安装文档一步一步操作,如果出现问题可以恢复快照操作。

mysql 的使用

  • 登录mysql

    # 登录本机mysql 
    mysql -uroot -p
    # 登录其他服务器的mysql 需要指定对应的host(ip 或者 主机名)
    mysql --host node1 -uroot -p
    mysql --host 192.168.88.100 -uroot -p
  • 查询数据库和表

    # 查询当前数据库下的所有的数据库名称
    show databases;
    # 使用某个数据库比如mysql
    use mysql;
    # 查询当前数据库下的所有表
    show tables;

     

mysql的图形化工具——datagrip

  1. 创建项目

  1. 添加数据源

 

 

  1. 自定义驱动设置

  1. 自定义 mysql_jdbc_java_5.1.47.jar

  1. 查询数据库

问题集锦

  • 管道,wc

    # 查找匹配上flink 的行内的所有单词数,包括非flink字符串的单词
    [root@node1 ~]# cat text |grep flink|wc -w
    8
    [root@node1 ~]# cat text
    helloworld helloflink flink1 flink0
    flink
    hadoop
    oozie
    hue flink
    flink
    hadoop
    [root@node1 ~]# cat text |grep flink
    helloworld helloflink flink1 flink0
    flink
    hue flink
    flink
    # 查找出来只要包含flink的字符串的单词统计个数
    [root@node1 ~]# cat text |grep -o flink |wc -w
    6
    # 查找出来只有 flink 这个单词的统计个数
    [root@node1 ~]# cat text |grep -o -w flink |wc -w
    3
    [root@node1 ~]#
  • ln -s 软链接

    # ln 创建链接,默认情况下,创建硬链接
    # ln -s 创建的软链接
  • 如何查看命令的帮助

    # 查看命令的帮助文档 manual
    man 命令  

     

  •  

原文地址:https://www.cnblogs.com/shan13936/p/13693191.html