Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,vim通过一些插件可以实现和IDE一样的功能 。
Vim:查看内容、编辑内容、保存内容!
简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方;所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。vim 则可以说是一个程序开发工具而不是文字处理软件。
三种使用模式
基本上 vi/vim 共分为三种模式:
- 命令模式(Command mode)
- 输入模式(Insert mode)
- 底线命令模式(Last line mode)
- 整个流程:
1.2三种模式的作用
命令模式:用户刚刚启动 vi/vim,便进入了命令模式。
i #切换到输入模式,以输入字符 : #切换到底线命令模式,以在最底一行输入命令,如果此时是输入模式,先退到命令模式再: x #删除当前光标所在处的字符 数字+空格 #例如20按下数字后再按空格键,光标会向右移动这一行的 n 个字符 数字+Enter #光标向下移动 n 行 /字符串 #例如/word,光标之下寻找一个名称为word 的字符串 dd #删除游标所在的那一整行 u #复原前一个动作
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
分析:
注意:如果这个moli.txt存在那就是修改这个文件,不存在就是新建文件。如果以后要修改某个文件,结果一进去下面显示是新文件,那么路径一定弄错了。
输入模式:在命令模式下按下 i 就进入了输入模式,按ESC回到命令模式。
HOME/END #移动光标到行首/行尾 Insert #切换光标为输入/替换模式,光标将变成竖线/下划线
底线命令模式:在命令模式下按下 :(英文冒号) 就进入了底线命令模式,按ESC回到命令模式。
q #退出程序 w #保存文件 wq #保存并退出 set nu #显示行号
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
输入wq,返回正常页面:
1.3Vim按键说明 命令模式
光标移动、复制粘贴、搜索替换等。
输入模式
底行命令模式
因为我们在公司中一般用的不是root用户。
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
用户账号的管理:
-
用户账号的添加、删除与修改
-
用户口令的管理
-
用户组的管理
-
用户账号的管理
用户增删改
添加账号 useradd
添加用户账号就是在系统中创建一个新账号,然后为新账号分配用户号、用户组、主目录和登录Shell等资源。
useradd -选项 用户名 -m #自动创建这个用户的主目录/home/moli -c comment #指定一段注释性描述 -d 目录 #指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录 -g 用户组 #指定用户所属的用户组 -G 用户组,用户组 #指定用户所属的附加组 -s Shell文件 #指定用户的登录Shell -u 用户号 #指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号
本质:Linux一切皆文件,这里的添加用户实际上就是往某一个文件(/etc/passwd)中写入用户的信息。
拓展:
-
/etc/passwd参数解释-----用户名:口令(登录密码不可见,所以为X):用户标识号:组标识号:注释性描述:主目录:登录Shell。
-
这个文件夹中每一行都代表这一个用户,我们可以从这里看出这个用户的主目录在哪里,可以看到属于哪一个组。
-
许多Linux 系统(如SVR4)都使用了shadow技术,把真正的加密后的用户口令字存放到 /etc/shadow 文件中,保证密码的安全性。
[root@localhost home]# ls lxt win [root@localhost home]# useradd -m moli [root@localhost home]# ls lxt moli win [root@localhost home]# cat /etc/passwd root:x:0:0:root:/root:/bin/bash moli:x:503:503::/home/moli:/bin/bash
删除帐号 userdel
-r #删除用户的时候连它的目录页一并删除
[root@localhost home]# userdel -r moli [root@localhost home]# ls lxt win
修改用户 usermod
usermod 选项 用户名
[root@localhost home]# usermod -d /home/233 moli [root@localhost home]# cat /etc/passwd moli:x:502:502::/home/233:/bin/bash
常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样。
切换用户
1.切换用户的命令为:su username (username是你的用户名)
2.在终端输入 exit 或logout或使用快捷方式ctrl+d,可以退回到原来用户,其实ctrl+d也是执行的exit命令
3.在切换用户时,如果想在切换用户之后使用新用户的工作环境,可以在su和username之间加-,例如:【su - root】
-
$表示普通用户
-
#表示超级用户,也就是root用户
扩展:查看主机名和修改主机名
[root@localhost home]# hostname localhost [root@localhost home]# hostname moli #控制台重启后主机名就会被修改如下 [root@moli Desktop]# #但是这是临时的,如果重启电脑就没有了
如果你是普通用户
passwd
如果你是超级用户
passwd -选项 用户名 -l #锁定口令,即禁用账号 -u #口令解锁 -d #使账号无口令,也不能再次登陆了,账号也相当于冻结 -f #强迫用户下次登录时修改口令
[root@localhost home]# passwd moli Changing password for user moli. New password: BAD PASSWORD: it is too simplistic/systematic BAD PASSWORD: is too simple Retype new password: passwd: all authentication tokens updated successfully.
用户组增删改
每个用户都有一个用户组,系统可以对一个用户组中所有用户进行集中管理(开发组、运维组、测试组、root)。
Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
[root@localhost home]# groupadd moli groupadd: group 'moli' already exists
本质:用户组的管理涉及用户组的添加、删除和修改实际上是对/etc/group文件的更新。
新增一个用户组 groupadd
groupadd -选项 用户组 -g #指定新用户组的组标识号(GID) -o #一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同
[root@localhost home]# groupadd moli1 [root@localhost home]# cat /etc/group root:x:0: moli:x:502: moli1:x:503: #创建完一个用户组后可以得到一个组id,譬如这个是503,这个id是可以指定的 [root@localhost home]# groupadd -g 520 moli2
删除用户组 groupdel
[root@localhost home]# groupdel moli1 [root@localhost home]# groupdel moli2
修改用户组 groupmod
groupmod -选项 用户组 -g #GID为用户组指定新的组标识号 -o #与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同 -n #将用户组的名字改为新名字
[root@localhost home]# groupmod -g 999 -n newmoli moli
扩展:切换用户组
方式一: # 登上你的用户 $ newgrp root #切换到了root组 方式二: 在创建用户的时候,直接-g添加组别
-
Linux磁盘管理好坏直接关系到整个系统的性能问题
-
Linux磁盘管理常用命令为 df、du
-
df :列出文件系统的整体磁盘使用量,-h参数将字节转为GBytes, MBytes, KBytes 等格式
-
du:检查磁盘空间使用量
-k #以 KBytes 列出容量显示 -m #以 MBytes 列出容量显示 -a #显示隐藏目录和子目录使用量 -s #列出总量而已,而不列出每个各别的目录占用容量
[root@localhost home]# du 4 ./moli/.gnome2 4 ./moli/.mozilla/extensions 4 ./moli/.mozilla/plugins 12 ./moli/.mozilla [root@localhost home]# du -a [root@localhost /]# du -sm /* 检查根目录下每个目录所占用的容量 8 /bin 24 /boot 1 /dev 34 /etc du: cannot access `/proc/3742/task/3742/fd/4': No such file or directory du: cannot access `/proc/3742/task/3742/fdinfo/4': No such file or directory du: cannot access `/proc/3742/fd/4': No such file or directory du: cannot access `/proc/3742/fdinfo/4': No such file or directory 1909 /usr 系统初期最大的目录就是我们usr目录了,我们很多文件和程序都在这里
-
磁盘挂载与卸除
根文件系统之外的其他文件要想能够被访问,都必须通过“关联”至根文件系统上的某个目录来实现,此关联操作即为“挂载”,此目录即为“挂载点”,解除此关联关系的过程称之为“卸载”。
Linux 的磁盘挂载使用mount命令,卸载使用umount命令。
挂载:Mac或者想使用Linux挂载我们的一些本地磁盘或者文件:
mount -选项 装置文件名 挂载点 -t #文件系统 -L #Label名 -o #额外选项 -n
卸载:umount
umount -选项 装置文件名或挂载点 -f #强制卸除!可用在类似网络文件系统 (NFS) 无法读取到的情况下 -n #不升级 /etc/mtab 情况下卸除
- 在Linus中,每一个程序都有自己的进程,每一个进程都有id号pid
- 每一个进程都会有父进程
- 一般服务是后台运行的,基本程序是前台运行的
- ps 命令查看当前系统中正在执行的各种进程信息
-a #显示当前终端运行的所有进程信息 -u #以用户的信息显示进程 -x #显示后台运行的进程的参数 -aux #查看所有进程 -ef #可以查询到父进程的信息 | #管道符,A|B将A的结果作为输出来操作B grep #查找文件中符合条件的字符串 ps -aus|grep mysql 查看与mysql有关的进程 ps -aus|grep redis ps -aus|grep java ps -ef|grep mysql 但是这样查看不是很清晰,我们一般使用目录树查看
查看目录树:
pstree -pu -p #显示父id -u #显示用户组
结束进程:我们平时写一个java代码死循环,可以结束进程
kill -9 进程id
安装软件三种方式:
- rmp:idk在线发布一个springboot项目
- 解压缩:tomcat启动并通过外网访问,发布网站
- yum在线安装:docker直接安装运行跑起来docker就可以(推荐)
我们java程序必须要的环境!
-
下载jdk8 rpm包:https://www.oracle.com/cn/java/technologies/javase/javase8-archive-downloads.html
-
创建存放目录
mkdir /usr/java/
-
使用xftp上传jdk,下载xshell和xftp,连接:使用ifconfig 查看虚拟机系统ip地址(inet addr )。
-
查看和安装
[root@localhost ~]# cd /usr/java [root@localhost java]# ls jdk-linux-i586.rpm [root@localhost java]# java -version 检查是否存在java环境,有就卸载 [root@localhost java]# rpm -qa|grep jdk 检查 jdk1.8.0_131-1.8.0_131-fcs.i586 [root@localhost java]# rpm -e --nodeps jdk1.8.0_131-1.8.0_131-fcs.i586 强制卸载 [root@localhost java]# java -version 再次检查,发现已经卸载 -bash: /usr/bin/java: No such file or directory [root@localhost java]# chmod 777 jdk-linux-i586.rpm 赋予最高权限 [root@localhost java]# rpm -ivh jdk-linux-i586.rpm 安装 Preparing... ########################################### [100%] 1:jdk1.8.0_131 ########################################### [100%] Unpacking JAR files... tools.jar... plugin.jar... javaws.jar... deploy.jar... rt.jar... jsse.jar... charsets.jar... localedata.jar... [root@localhost java]# java -version
5.配置环境变量,vim进入etc/profile下在文件最后增加java配置,在底行命令模式保存并退出。和Windows的配置一样。
[root@localhost java]# vim /etc/profile export JAVA_HOME=/usr/java/jdk-linux-i586.rpm export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar export PATH=$PATH:$JAVA_HOME/bin [root@localhost java]# source /etc/profile 让配置文件生效 [root@localhost java]# java -version java version "1.8.0_131" Java(TM) SE Runtime Environment (build 1.8.0_131-b11) Java HotSpot(TM) Client VM (build 25.131-b11, mixed mode, sharing)
6.打包项目,先在本地cmd跑起来,Java -jar xxxx
7.看开启了哪些端口
firewall-cmd --list-ports #看开启了哪些端口 firewall-cmd --zone=public --add-port=8080/tcp --permanent #开启8080端口 systemctl restart firewalld.service #重启防火墙 firewall-cmd --list-ports #再次查看 java -jar xxx #运行项目
tomcat(解压缩)
war包就需要tomcat。
1.导入tomcat9.tar.gz
startup.sh -->启动tomcat shutdown.sh -->关闭tomcat
[root@localhost ~]# mkdir /usr/tomcat [root@localhost ~]# cd /usr/tomcat [root@localhost tomcat]# ls [root@localhost tomcat]# tar -zxvf apache-tomcat-9.0.62.tar.gz [root@localhost tomcat]# ls apache-tomcat-9.0.62 apache-tomcat-9.0.62.tar.gz [root@localhost tomcat]# cd apache-tomcat-9.0.62 [root@localhost apache-tomcat-9.0.62]# cd bin [root@localhost bin]# ./startup.sh #启动tomcat [root@haodoop100 bin]# firewall-cmd --zone=public --add-port=8080/tcp --permanent success #开启端口 [root@haodoop100 bin]# service firewalld restart #重启防火墙 [root@haodoop100 bin]# firewall-cmd --list-ports #检查端口 8080/tcp
在浏览器中输入http://192.168.198.128:8080/,自己的域名发现安装成功。以后直接购买自己的域名,备案项目就可以发布了。
Docket(推荐yum)
在linux下执行一定要联网,yum(呀木)在线安装
官网安装参考手册:https://docs.docker.com/install/linux/docker-ce/centos/
1.安装准备环境 yum -y install 包名
yum安装gcc相关(需要确保 虚拟机可以上外网 )
cat /etc/redhat-release #检查centos yum -y install gcc gcc-c++ yum install -y yum-utils
2.卸载已经存在的docket
yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine
3.国内的镜像
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4.更新yum软件包索引
yum makecache fast
5.安装Docker CE
yum -y install docker-ce docker-ce-cli containerd.io
6.启动docker
systemctl start docker
7.测试
docker version docker run hello-world docker images
防火墙
# 查看firewall服务状态 systemctl status firewalld # 开启、重启、关闭、firewalld.service服务 # 开启 service firewalld start # 重启 service firewalld restart # 关闭 service firewalld stop # 查看防火墙规则 firewall-cmd --list-all # 查看全部信息 firewall-cmd --list-ports # 只看端口信息 # 开启端口 开端口命令:firewall-cmd --zone=public --add-port=8080/tcp --permanent 重启防火墙:systemctl restart firewalld.service 命令含义: --zone #作用域 --add-port=80/tcp #添加端口,格式为:端口/通讯协议 --permanent #永久生效,没有此参数重启后失效 #老版本开端口(red hat6) iptables -A INPUT -p tcp --dport 8080 -j ACCEPT



