Linux----vim、账号管理、进程管理、磁盘管理、java环境安装

编程知识 更新时间:2023-04-17 00:38:47

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程序必须要的环境!

  1. 下载jdk8 rpm包:https://www.oracle/cn/java/technologies/javase/javase8-archive-downloads.html

  2. 创建存放目录

    mkdir /usr/java/
    
  3. 使用xftp上传jdk,下载xshell和xftp,连接:使用ifconfig 查看虚拟机系统ip地址(inet addr )。

  4. 查看和安装

    [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环境安装

本文发布于:2023-04-13 15:16:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/d2ec19cf007bb77d579a404aa1e812f6.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:磁盘   账号   进程   环境   Linux

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 72934文章数
  • 14阅读数
  • 0评论数