一、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\ngege"
echo -e "jing\n \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"

一、Vim编辑器 二、用户和组管理 三、软件的安装(jdk,mysql) 四、Shell编程的更多相关文章

  1. 第五天、vim,重定向,用户和组管理

    第五天.vim,重定向,用户和组管理 vim vi:Visual editor,文本编辑器 行编辑器:sed 全屏编辑器:vim,vi,nano 其他编辑器gedit,gvim 定义别名让vi等于vi ...

  2. linux基础之用户和组管理及权限

    一.用户和组管理 相关配置文件 /etc/passwd: 用户名 : 密码占位符 : UID : GID : COMMENTS : 家目录 :默认shell /etc/group: 组名 : 组密码占 ...

  3. linux系统用户和组管理

    用户和组管理 Linux是多用户多任务的网络操作系统,作为网络管理员,掌握用户的组的创建与管理至关重要. 学习要点: 了解用户和组的群的配置文件. 熟悉掌握Linux下用户的创建和维护管理. 熟悉掌握 ...

  4. (转)Centos 7.3 用户和组管理

    Centos 7.3 用户和组管理 原文:http://blog.csdn.net/github_39069288/article/details/73306489 3.1 用户和密码配置文件 pas ...

  5. linux学习16 Linux用户和组管理命令演练和实战应用

    一.上集回顾 1.bash globing,IO重定向及管道 glob:*,?,[],[^] IO重定向: >,>>, 2>,2>> &>,& ...

  6. Day03_破解Windows7系统密码&用户与组管理&服务器远程管理

    破解Windows系统密码 一.利用5次shift漏洞破解win7密码 1.1 漏洞 1.在未登录系统时,连续按5次shift键,弹出程序c:\windows\system32\sethc.exe 2 ...

  7. Solaris用户管理(一):用户与组管理

    Solaris用户管理(一):用户与组管理  2008-07-01 09:19 用户管理是系统管理的基础.Solaris中不但支持传统Unix所支持的用户和组的概念,还从Solaris 8开始引入了基 ...

  8. 总结描述用户和组管理类命令的使用方法,系统用户相关信息,取出主机IP地址

    1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可. [root@db146 ~]# who|cut -f1 -d' ' |sort -u root 2.取出最后 ...

  9. Linux 用户和组管理

    这是用户和组管理的知识点,不想看文字就看视频吧,还是视频为主,文字为备忘录 视频链接: 项目1用户管理 1.创建一个新用户user01,设置其主目录为/home/user01: #useradd –d ...

随机推荐

  1. ABP学习入门系列(四)(创建Service)

    一,一些相关解释 Service 在应用服务层也就是application层.应用服务用于将领域(业务)逻辑暴露给展现层.展现层通过传入DTO(数据传输对象)参数来调用应用服务,而应用服务通过领域对象 ...

  2. eclipse/myEclipse 代码提示和快捷键

    一.设置自动提示 设置eclipse/myEclipse代码提示可以方便开发者,不用在记住拉杂的单词,只用打出首字母,就会出现提示代码菜单. 1.菜单window->Preferences-&g ...

  3. [javaSE] 集合框架(共性方法)

    Collection接口的常用方法 add(),添加一个元素 addAll(),添加一组元素 clear(),清空 remove(),移除一个 removeAll(),移除一组 size(),元素个数 ...

  4. 请整体描述Java异常体系

    java把异常当做对象来处理,并定义一个基类Throwable作为所有异常的超类.在java API中已经定义了许多异常的类,这些异常分为两大类,错误Error和异常Exception.其中异常Exc ...

  5. Freemarker详解一

    1 截取字符串有的时候我们在页面中不需要显示那么长的字符串,比如新闻标题,这样用下面的例子就可以自定义显示的长度<#if title.content?length lt 8>        ...

  6. Spring Security 安全框架

    一 简介:Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架.它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spr ...

  7. hdu 1023 卡特兰数《 大数》java

    Train Problem II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  8. Java 中 List 和 数组之间的转换

    前言:在 java 开发过程中,经常会遇到数组和 list 互转的情况,这里记录一下,免得以后又去到处百度. 一.数组转为 LIST 这里转自 https://www.cnblogs.com/lius ...

  9. vue的v-html插值样式问题

    content使用html插入文本和图片 使用scoped样式,渲染失败. 原因: 解决方案: 采用全局样式 或另外再加style标签单独渲染

  10. 洛谷P4783 【模板】矩阵求逆(高斯消元)

    题意 题目链接 Sol 首先在原矩阵的右侧放一个单位矩阵 对左侧的矩阵高斯消元 右侧的矩阵即为逆矩阵 // luogu-judger-enable-o2 #include<bits/stdc++ ...