admin管理员组文章数量:1122851
1.Vim
1.1简介
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按键说明
命令模式
光标移动、复制粘贴、搜索替换等。
输入模式
底行命令模式
2.账号管理
因为我们在公司中一般用的不是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添加组别
3.磁盘管理
df、du
-
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 情况下卸除
4.进程管理
- 在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
5.环境安装
安装软件三种方式:
- rmp:idk在线发布一个springboot项目
- 解压缩:tomcat启动并通过外网访问,发布网站
- yum在线安装:docker直接安装运行跑起来docker就可以(推荐)
jdk(rpm)
我们java程序必须要的环境!
-
下载jdk8 rpm包:https://www.oracle/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/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/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
Mysql
下载地址:https://downloads.mysql/archives/community/
1.检查是否安装了mysql
rpm -qa #检查安装的所有软件
[root@haodoop100 /]# rpm -qa|grep mysql #检查是否有带mysql的软件
[root@haodoop100 /]# rpm -qa|grep mariadb #检查是否有带mariadb的软件,我是有的,但是这个与数据库冲突,需要卸载
mariadb-libs-5.5.68-1.el7.x86_64
#卸载: rpm -e --nodeps 名称
[root@haodoop100 /]# rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64 #卸载
[root@haodoop100 /]# rpm -qa|grep mariadb #再次检查
2.创建mysql用户组
#检查用户组是否存在,没有就创建
cat /etc/group | grep mysql
cat /etc/passwd | grep mysql
#创建
groupadd mysql
useradd -r -g mysql mysql
3.更改mysql目录下所有文件的用户组、用户和权限
chown -R mysql:mysql /usr/java/mysql/mysql-5.7.16-linux-glibc2.5-x86_64/
chmod -R 755 /usr/java/mysql/mysql-5.7.16-linux-glibc2.5-x86_64/
4.进入mysql/bin目录,编译安装mysql,并初始化。
[root@haodoop100 mysql]# cd mysql-5.7.16-linux-glibc2.5-x86_64
[root@haodoop100 mysql-5.7.16-linux-glibc2.5-x86_64]# cd bin
[root@haodoop100 bin]# ./mysqld --initialize --user=mysql --datadir=/usr/java/mysql/mysql-data --basedir=/usr/java/mysql/mysql-5.7.16-linux-glibc2.5-x86_64
2022-08-06T04:36:23.268390Z 1 [Note] A temporary password is generated for root@localhost: (rB4INA>q9?h
#这句话是编译出来的最后一行,我的密码就是(rB4INA>q9?h
这里会拿到初始密码,复制出来保存好,后面要用。
5.编写etc目录下的myf文件,并授予myf文件775权限
[root@haodoop100 bin]# vi /etc/myf
[mysqld]
datadir=/usr/java/mysql/mysql-data
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=400
innodb_file_per_table=1
#表名大小写不明感,敏感为
lower_case_table_names=1
[root@haodoop100 bin]# chmod -R 775 /etc/myf
6.修改/support-files/mysql.server文件
[root@haodoop100 mysql-5.7.16-linux-glibc2.5-x86_64]# cd support-files/
[root@haodoop100 support-files]# ls
magic my-defaultf mysqld_multi.server mysql-log-rotate mysql.server
[root@haodoop100 support-files]# vi mysql.server
7.启动mysql
#查询mysql
[root@haodoop100 support-files]# ps -ef|grep mysql
root 3664 2603 0 13:26 pts/1 00:00:00 grep --color=auto mysql
[root@haodoop100 support-files]# ps -ef|grep mysqld
root 3667 2603 0 13:26 pts/1 00:00:00 grep --color=auto mysqld
#启动
[root@haodoop100 support-files]# /usr/java/mysql/mysql-5.7.16-linux-glibc2.5-x86_64/support-files/mysql.server start
Starting MySQL.. SUCCESS!
#添加软链接
ln -s /usr/java/mysql/mysql-5.7.16-linux-glibc2.5-x86_64/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/java/mysql/mysql-5.7.16-linux-glibc2.5-x86_64/bin/mysql /usr/bin/mysql
#重启mysql
[root@haodoop100 support-files]# service mysql restart
Shutting down MySQL.. SUCCESS!
Starting MySQL. SUCCESS!
8.登录mysql,密码是刚才的初始化密码,修改密码为root
#登录
mysql -u root -p
#修改密码
set password for root@localhost = password('root');
#看是否能正常工作
mysql> show databases;
我们一般不给root用户开放远程链接,所以重新创建一个mysql用户:h为用户名,happy为密码。
mysql> create user 'h'@'localhost'
-> identified by 'happy';
查询mysql所有用户信息
use mysql;
select user,host from user;
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select user,host from user;
+-----------+-----------+
| user | host |
+-----------+-----------+
| h | localhost |
| mysql.sys | localhost |
| root | localhost |
+-----------+-----------+
3 rows in set (0.01 sec)
现在,让happy用户可以远程链接,给happy用户赋予所有主机的所有权限
update user set host='%' where user='happy';
#赋予happay用户所有权限
grant all on *.* to 'happy'@'%';
#刷新权限
flush privileges;
9.如果系统开启了防火墙,则需要开放3306端口
//开放3306端口命令
firewall-cmd --zone=public --add-port=3306/tcp --permanent
//配置立即生效
firewall-cmd --reload
10.设置开机启动
//将服务文件拷贝到init.d下,并重命名为mysqld
cp /usr/java/mysql/mysql-5.7.16-linux-glibc2.5-x86_64/support-files/mysql.server /etc/init.d/mysqld
//赋予可执行权限
chmod +x /etc/init.d/mysqld
//添加服务
chkconfig --add mysqld
//显示服务列表
chkconfig --list
lrzsz(文件传输)
#查看是否存在lrzsz
[root@haodoop100 /]# yum list | grep lrzsz
lrzsz.x86_64 0.12.20-36.el7 @anaconda
[root@haodoop100 /]# yum install lrzsz.x86_64
命令:
rz #文件传输
sz 名称 #文件下载
防火墙
# 查看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
版权声明:本文标题:Linux----vim、账号管理、进程管理、磁盘管理、java环境安装 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/biancheng/1726710814a1152943.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论