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

时间:2023-03-08 18:31:27
一、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\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"