一、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. java.sql.SQLException: Access denied for user 'root '@'localhost' (using password: YES) 最蠢

    我犯了七年前的错误,一个空格,昨天就想到的,还对比了一下密码有没有空格 问题原因1:多写空格 在datasource.properties 中的username 的值root后面多写了一个空格, jd ...

  2. ASP.NET MVC 获得 view 中的HTML并将其中的内容自动转换成繁体中文。

    一.思路 1.获得 asp.net mvc 输出的 html 的字符串. 2.将拿到的 html 字符串中的简体中文转换成繁体中文. 3.输出 html. 二.实现 1.扩展 RazorView 视图 ...

  3. Xshell 6 免费版本安装过程

    下载 官网下载:https://www.netsarang.com/ 点击download 注册 填写下方红色方框标注的注册信息,注册类型填写“home or school use”,名字,邮箱.最后 ...

  4. 360手机新品牌5月6日公布 周鸿祎席地而坐谈AK47

    今年年初,周鸿祎又做了一个艰难的决定,南下做手机!经过好一番折腾终于搞出点动静,奔驰S600L也卖了(炒作的味道很浓重),一款代号为AK47的产品被确认,就连邀请函也充分的体现了周鸿祎的老兵情节.最近 ...

  5. GDC NEC单机自动化设置

    GDC NEC 单机自动化设置 进入播放列表   进入设置,进入登陆,请选择维修员登陆,输入密码257910   选择“一般选项”中的“自动化” 在进入的新菜单中选择“设备”,添加一个新的名称,默认的 ...

  6. [javaSE] 网络编程(TCP,UDP,Socket特点)

    UDP特点: 面向无连接,把数据打包发过去,收不收得到我不管 数据大小有限制,一次不能超过64k,可以分成多个包 这是个不可靠的协议 速度很快 视频直播,凌波客户端,feiQ都是UDP协议 TCP特点 ...

  7. 手动实现一个简单的ArrayList

    import org.omg.CORBA.PUBLIC_MEMBER; import java.io.Serializable; import java.util.*; import java.uti ...

  8. 350-两个阵列的交叉点II

    给定两个数组,编写一个函数来计算它们的交集. 例1: 输入: nums1 = [1,2,2,1],nums2 = [2,2]  输出:[2,2] 例2: 输入: nums1 = [4,9,5],,nu ...

  9. Asp.net MVC流程简述

    先上个图 步骤一 IIS   当请求到达我们的服务器时,在asp.net取得控制之前,windows操作系统的核心组件 HTTP.SYS一直在监听请求端口,  接下来asp.net会通知所有注册的ht ...

  10. string.replace替换

    var str = 'abcadeacf'; var str1 = str.replace('a', 'o'); alert(str1); // 打印结果: obcadeacf var str2 = ...