• 一、Vim编辑器 二、用户和组管理 三、软件的安装(jdk,mysql) 四、Shell编程


    一、Vim编辑器的使用
    1. vim编辑器的运行模式
    编辑模式:等待用户编辑命令的输入
    插入模式:编辑文本内容
    命令模式:执行命令

    2. 使用 :vim 文件名
    3. 查看当前vim编辑器介绍:vim 回车
    4. 操作
    4.1 创建文本文件:vi hello.java 回车(直接进入编辑模式,无法直接插入新的数据)
    4.2 在编辑模式下,按i键,进入的插入模式,修改数据
    4.3 在插入模式下,按esc键,返回到编辑模式(使用编辑命令,修改文本内容)
    4.4 在编辑模式下,按 ':' ,进入命令模式,执行一些退出或者保存修改的命令

    5. 在命令模式下:
    :q 直接退出vim
    :wq 保存修改后退出vim
    :q! 强制退出vim
    :w 新的文件名称 ,类似于另存为
    :set number/set nu ,显示行号
    :set nonumber ,取消显示行号
    :n ,移动到第几行


    查找和替换:
    查找:/需要查找的内容
    例如:/java
    n:下一条
    N:上一条

    替换:起始行号,终止行号s/旧的数据/新的数据/g
    起始行号和终止行号可以使用%,表示全文替换

    例如:2,10s/安装/install/g
    %s/安装/install/g


    注释:起始行号,终止行号s/^/#/g
    取消注释:起始行号,终止行号s/^#//g
    例如:2,10s/^/#/g
    2,10s/^#//g

    6. 在编辑模式下:
    gg:移动到文件开头
    GG:移动到文件末尾
    x:删除单个字符
    nx:删除多个字符 , 5n

    dd:删除当前行
    ndd:删除多行 , 3dd

    yy:复制当前行
    nyy:复制多行

    p/P:粘贴
    np/P:粘贴多行

    u:撤销
    ctrl+r:反撤销

    shift +zz :快速的退出vim


    # 二、Linux中的用户和组管理
    Linux多用户的操作系统 ,严格的权限管理。
    通过账户名称区分每个用户的文件,进程,任务等等

    ###<1>账户管理
    普通用户账户:进行普通操作
    超级用户账户:对普通用户和整个系统进行管理

    私有组:当创建一个用户时,没有指定属于哪个组,Linux会创建一个和用户名同名的私有组
    标准组:创建一个用户时,指定一个标准组

    ###<2>账户系统文件
    2.1 /etc/passwd 配置文件 (账户信息)
    root:x:0:0:root:/root:/bin/bash
    用户名,口令,用户标识,组标识,描述信息,家目录,shell的类型

    jinggege:x:500:500::/home/jinggege:/bin/bash

    2.2 /etc/shadow (密码信息)
    root:$6$Sy6K/Us80q1Bt.Ox$k5hZlF5RfCVoaMP7zolZEigCfdq5lBTRPfv6UGVvV7K/6dJT4LHOduah8nMNf0bcKtR8zNRkpB4gBN/d9yUqt1:17637:0:99999:7:::

    用户名,使用某种加密算法加密的密码


    2.3 /etc/group (组信息)
    组名,组口令,组id,组成员


    2.4 使用命令操作用户和组
    创建用户:useradd 用户名
    -g 组名
    -d 设置用户家目录

    例如:useradd laowang
    passwd laowang
    touch laowangfile

    删除用户:userdel -r 用户名:
    userdel laowang

    useradd -g gebi laowang

    创建组:groupadd 组名
    groupadd gebi
    useradd -g gebi laowang
    passwd laowang

    groupdel 组名

    将用户添加到组中: gpasswd -a 用户名 组名
    gpasswd -a laowang gebi


    # 三、软件安装
    ###1.JDK的安装
    1. 安装包拷贝到系统中(U盘,光盘,WinSCP)
    2. 挂载,拷贝
    3. 解压jdk
    4. 配置环境变量
    编辑/etc/profile文件
    添加配置:
    export JAVA_HOME=/usr/local/jdk
    export PATH=$PATH:$JAVA_HOME/bin

    5. 刷新配置
    source /etc/profile

    ###2.安装的方式
    ####2.1 软件包的分类
    <1>源码包
    通常以.gz格式的形式存在。先解压然后编译,使用C语言编写,可以查看源码。

    特点:开源,自由定制,效率更高,卸载方便。
    自行编译,步骤较复杂。
    报错不容易解决

    <2>rpm二进制包(red package manager)
    通常以.rpm格式的形式存在。

    特点:安装速度快,操作简单。
    定制性差,依赖性强(a--->b---->cde)

    <3>脚本程序
    把复杂的软件包安装过程写成脚本程序,一键安装

    ###2.2 rpm安装方式(增强版:yum安装)
    http://版本 发布次数 适合linux系统 .rpm

    语法格式:rpm -ivh 软件包名称(绝对路径)
    -i:安装
    -h:安装进度
    -v:显示安装的信息
    -nodeps:不检测依赖的安装
    -e:卸载软件

    www.rpmfind.net查看依赖



    ###2.3 MySQL数据库
    1. 将mysql数据库的安装包拷贝到linux中
    winscp
    2. 解压和拆包
    tar -xvf MySQL_install.xxx.rpm
    3. 需要查看是否已经安装了mysql
    rpm -qa | grep mysql
    跳转到卸载操作

    rpm -e --nodeps 软件名称

    4. 安装mysql
    rpm -ivh MySQL-server.xxxx.rpm
    rpm -ivh MySQL-client.xxxx.rpm

    5. 启动MySQL
    service mysql start

    6. 将MySQL添加到系统服务中,并开机自启
    chkconfig --add mysql
    chkconfig mysql on

    7. 登陆mysql
    cat /root/.mysql_secret
    mysql -uroot -p密码

    8. 修改密码
    set password=password('新的密码');

    9. 开启MySQL的root用户的远程访问权限
    grant all privileges on *.* to 'root'@'%' identified by '管理员的密码';

    10. 使用第三方工具访问mysql

    11. 卸载
    关闭服务:
    service mysql stop
    ps -aux | grep mysql
    kill -9 pid

    删除组件
    rpm -e MySQL-serverxxxxx
    rpm -e MySQL-clientxxxxx

    删除残留文件
    find / -name mysql
    rm -rf 残留的文件

    # 四、Shell编程
    ###<1>编写一个shell脚本
    Linux:内核+shell+文件系统+应用程序

    shell语言是一门强大的编程语言,易编写,易调试,灵活性强。
    是解释执行的脚本语言。

    1.1 常看当前shell版本:echo $SHELL

    1.2 编写shell脚本
    echo -e "jing gege"
    echo -e "jing e[1;30m修饰的数据e[0m"

    1.3 步骤
    <1>创建一个脚本文件
    vi hello.sh

    <2>#我的第一个脚本文件
    #!/bin/bash
    echo -e "e[1;30mhello world!e[0m"

    <3>执行脚本
    方式一:通过bash 执行脚本 (使用bash解释命令)
    bash hello.sh

    方式二:直接运行脚本文件(建议)
    chmod 755 hello.sh (赋予脚本文件可执行权限)
    ./hello.sh


    <4>将脚本文件移动到path下
    /bin
    /usr/local/bin
    /usr/local/sbin

    ###<2>Bash变量
    2.1 分类
    用户自定义变量:
    用户自己定义的变量,可以随便的更改

    环境变量:
    有一部分环境变量被系统赋予特定的含义并被系统使用

    预定义变量:
    完全不能由用户定义的变量

    2.2 自定义变量
    格式:变量名称=值
    age=128
    name="jinggege"

    调用方式:使用$符号
    echo $age
    echo $name

    age=$age+$age

    查看变量:
    set 回车
    set |grep 某一个变量

    删除变量:
    unset 变量名称 (变名称不需要添加$符号)


    2.3 环境变量
    全局的变量,在shell中,和shell的所有子shell中都生效。

    格式:export 变量名=变量值

    变量名=变量值
    export 变量名

    例如:
    export myhome="/root"


    调用方式:使用$符号
    echo $age
    echo $name

    age=$age+$age

    查看变量:
    set 回车
    set |grep 某一个变量

    删除变量:
    unset 变量名称 (变名称不需要添加$符号)

    2.4 常用的环境变量
    SHELL: 当前使用的shell版本
    PATH:存放的系统环境变量
    HOSTNAME:主机名
    USER:当前登陆的用户名称

    <1>PATH环境变量
    echo $PATH
    PATH= $PATH:新的路径 (更改环境变量时,一定要将原数据保留,使用:拼接)


    <2>PSI环境变量:修改命令提示符
    命令提示符:
    u:用户名
    $:用户身份
    h:主机名
    W:所在路径的最后一级
    w:全路径
    A:时间

    PS1='[u@A w]$'


    <3>位置参数变量
    $n : 表示形参 ,n由1-9 ,超过九个实参,${10}
    $* : 命令行中的所有参数,$*将所有参数看成一个整体(需要将此变量添加到引号中)
    $@ : 命令行中的所有参数,$@不将所有参数看成一个整体
    $# : 命令行中的参数个数

    2.5 预定义变量
    $? :用户上一次执行命令返回的状态,非0命令执行失败
    $$ :当前进程的进程号pid
    $! :后台运行的最后一个进程进程号pid


    2.5 接收用户键盘输入的变量
    语法格式:read - 参数
    -p 提示用户输入信息 ,在等待用户输入
    -t 秒数 ,read命令会等待用户输入,等待指定的时间
    -s : 隐藏输入的数据,适用于输入密码


    #!/bin/bash
    read -p "input your data:" data
    echo $data

    read -p "input your data:" -t 5 data
    echo $data

    read -p "input your pwd:" -s pwd
    echo $pwd


    ###<3>分支和循环结构
    分支结构语法格式:
    if[ 条件];then
    分支语句
    elif [条件];then
    分支语句
    else
    分支语句

    fi


    -eq :等于
    -gt :大于
    -ge :大于等于
    -lt :小于
    -le :小于等于

    #!/bin/bash
    #测试分支语句
    if [ $1 -lt 60 ] ;then
    echo "恭喜重修通过"
    else
    echo "恭喜毕业"

    fi

    循环结构语法格式:
    for 变量名称 in {1,2,3,4,5}
    do
    循环体
    done

    for (( num=1;num<=10;num++ ))
    do
    循环体
    done

    #!/bin/bash
    #循环测试
    sum=0
    for(( i = 1; i<=100 ; i++ ))
    do
    sum=$[sum+i]
    done

    echo "sum=$sum"

    不忘初心,方得始终! 坚持!坚持!坚持!!
  • 相关阅读:
    ABP WebApi的请求类型
    对服务器的文件或文件夹压缩
    VS运行遇到的那些坑
    asp.net core Api集成Swagger
    通过文件路径获取文件名
    读取服务器或者本地的文件夹下面的文件
    计算出 3 至 1000 范围内最大的十个素数,放入数组中,并计算出其累加和。
    LINUX 无法登入系统(2017-1-16)
    zynq里面的AXI总线(2017-1-11)
    学习随笔(2017-1-10)
  • 原文地址:https://www.cnblogs.com/sumboy/p/9058632.html
Copyright © 2020-2023  润新知