组的增 删 改 查 实际上就是对/etc/group文件的更新
创建一个用户组: groupadd
groupadd haixin
cat /etc/group
创建完成,查看可以看到一个组的id.这个id可以指定.不指定就是自增
groupadd -g 666 haixin2
删除用户组
groupdel haixin1
修改用户组的id和名字
groupmod -g 777 -n newhaixin haixin
用户要切换用户组
一般创建用户的时候就会给他分配到一个用户组
useradd -m -G 666 username
管理员登录到要切换的账号
#登录当前账户 haixin
$ newgrp root 执行这个命令,成功则进入
拓展:文件的查看
/etc/passwd
展示每条内容为
用户名:口令(就是密码,这里不直接实现,用一个字母或者符号代替):用户标识号:组标识号:注释性描述:主目录:登录Shell
每一行都代表一个用户
口令:把真正的 加密后的用户口令字存放到/etc/shadow文件中
可以cat /etc/shadow 查看,但是都是加密过的
df(列出文件系统整体的磁盘使用量) du(检查磁盘空间的使用量)
df (这个磁盘大小展示的是以字节为单位)
[haixin2@haixin root]$ df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 877760 0 877760 0% /dev
tmpfs 888120 0 888120 0% /dev/shm
tmpfs 888120 528 887592 1% /run
tmpfs 888120 0 888120 0% /sys/fs/cgroup
/dev/vda1 41152812 6179448 33069656 16% /
tmpfs 177628 0 177628 0% /run/user/0
df -h (这磁盘打下 size 是以m为单位)
[haixin2@haixin root]$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 858M 0 858M 0% /dev
tmpfs 868M 0 868M 0% /dev/shm
tmpfs 868M 528K 867M 1% /run
tmpfs 868M 0 868M 0% /sys/fs/cgroup
/dev/vda1 40G 5.9G 32G 16% /
tmpfs 174M 0 174M 0% /run/user/0
du (检查磁盘空间的使用量,查看空间的具体使用)
cd /home
du
du -a (将子目录 以及隐藏目录也一并展示)
du -sm /* 检查根目录下每个目录所占用的用量
[root@haixin ~]# du -sm /*
0 /bin
146 /boot
0 /dev
38 /etc
350 /home
0 /lib
0 /lib64
1 /lost+found
1 /media
1 /mnt
136 /opt
1 /patch
du: cannot access ‘/proc/31995/task/31995/fd/4’: No such file or directory
du: cannot access ‘/proc/31995/task/31995/fdinfo/4’: No such file or directory
du: cannot access ‘/proc/31995/fd/4’: No such file or directory
du: cannot access ‘/proc/31995/fdinfo/4’: No such file or directory
0 /proc
1 /root
1 /run
0 /sbin
1 /srv
0 /sys
77 /tmp
2346 /usr
473 /var
2309 /www
系统初期最大的就是我们的用户目录,因为很多文件和程序都在这里面
Mac或者使用Linux挂载我们的一些本地磁盘或者文件!
mount 外部设备所在目录 /mut/设备目录
卸载: umount -f [挂载位置] 强制卸载
除此之外,我们以后安装了jdk,也可以使用java的一些命令来查看
linux中一切皆文件(文件:读写执行,权限(用户,用户组),系统(磁盘,进程),)
基本概念
命令
ps 查看当前系统中正在执行的各种进程信息
ps -xx
[root@haixin ~]# ps
PID TTY TIME CMD
32460 pts/0 00:00:00 bash
32530 pts/0 00:00:00 ps
#ps -aux 查看所有进程
ps -aux | grep mysql
# | 管道符, A|B 把A命令的结果作为输出来操作B命令
# grep 查找文件中符合条件的字符
[root@haixin ~]# ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 51712 3512 ? Ss Mar10 1:28 /usr/li
root 2 0.0 0.0 0 0 ? S Mar10 0:00 [kthrea
root 4 0.0 0.0 0 0 ? S< Mar10 0:00 [kworke
root 6 0.0 0.0 0 0 ? S Mar10 0:01 [ksofti
root 7 0.0 0.0 0 0 ? S Mar10 0:01 [migrat
root 8 0.0 0.0 0 0 ? S Mar10 0:00 [rcu_bh
root 9 0.0 0.0 0 0 ? S Mar10 6:21 [rcu_sc
root 10 0.0 0.0 0 0 ? S< Mar10 0:00 [lru-ad
root 11 0.0 0.0 0 0 ? S Mar10 0:03 [watchd
root 12 0.0 0.0 0 0 ? S Mar10 0:02 [watchd
...
[root@haixin ~]# ps -aux | grep mysql
root 26439 0.0 0.0 113424 1632 ? S Mar10 0:00 /bin/sh /www/server/mysql/bin/mysqld_safe --datadir=/www/server/data --pid-file=/www/server/data/iZ8vb5yl5m390bo5rw0r8cZ.pid
mysql 27085 0.0 9.7 1104884 173224 ? Sl Mar10 5:13 /www/server/mysql/bin/mysqld --basedir=/www/server/mysql --datadir=/www/server/data --plugin-dir=/www/server/mysql/lib/plugin --user=mysql --log-error=iZ8vb5yl5m390bo5rw0r8cZ.err --open-files-limit=65535 --pid-file=/www/server/data/iZ8vb5yl5m390bo5rw0r8cZ.pid --socket=/tmp/mysql.sock --port=3306
root 32686 0.0 0.0 112816 972 pts/0 S+ 10:42 0:00 grep --color=auto mysql
ps -ef:可以查看到父进程的信息
ps -ef | grep mysql # 看父进程我们一般可以通过目录数结构来查看
pstree -pu
-p 显示父id
-u 显示用户组
[root@haixin ~]# ps -ef |grep mysql
root 354 32460 0 10:43 pts/0 00:00:00 grep --color=auto mysql
root 26439 1 0 Mar10 ? 00:00:00 /bin/sh /www/server/mysql/bin/mysqld_safe --datadir=/www/server/data --pid-file=/www/server/data/iZ8vb5yl5m390bo5rw0r8cZ.pid
mysql 27085 26439 0 Mar10 ? 00:05:13 /www/server/mysql/bin/mysqld --basedir=/www/server/mysql --datadir=/www/server/data --plugin-dir=/www/server/mysql/lib/plugin --user=mysql --log-error=iZ8vb5yl5m390bo5rw0r8cZ.err --open-files-limit=65535 --pid-file=/www/server/data/iZ8vb5yl5m390bo5rw0r8cZ.pid --socket=/tmp/mysql.sock --port=3306
[root@haixin ~]# pstree -pu
systemd(1)─┬─AliYunDun(1072)─┬─{AliYunDun}(1073)
│ ├─{AliYunDun}(1074)
│ ├─{AliYunDun}(1086)
│ ├─{AliYunDun}(1087)
│ ├─{AliYunDun}(1088)
│ ├─{AliYunDun}(1089)
│ ├─{AliYunDun}(1090)
│ ├─{AliYunDun}(1091)
│ ├─{AliYunDun}(1092)
│ ├─{AliYunDun}(1093)
│ ├─{AliYunDun}(1094)
│ ├─{AliYunDun}(1095)
│ ├─{AliYunDun}(1096)
│ ├─{AliYunDun}(1097)
│ ├─{AliYunDun}(1098)
│ ├─{AliYunDun}(1099)
│ ├─{AliYunDun}(1100)
│ ├─{AliYunDun}(1101)
│ ├─{AliYunDun}(1102)
│ ├─{AliYunDun}(1103)
│ ├─{AliYunDun}(1104)
│ └─{AliYunDun}(1105)
├─AliYunDunUpdate(1023)─┬─{AliYunDunUpdate}(1024)
│ ├─{AliYunDunUpdate}(1025)
│ └─{AliYunDunUpdate}(1026)
├─BT-Panel(2247)───{BT-Panel}(2248)
├─BT-Task(2269)─┬─{BT-Task}(2270)
│ ├─{BT-Task}(2271)
│ ├─{BT-Task}(2272)
│ ├─{BT-Task}(2273)
│ ├─{BT-Task}(2274)
│ ├─{BT-Task}(2275)
│ ├─{BT-Task}(2276)
│ └─{BT-Task}(2277)
...
杀死进程
kill -9 进程id
表示强制结束该进程
到这里,结合上一篇文章,基本命令就讲完了.下面就是环境安装,以及项目的发布了.马上就学发布项目是不是很兴奋
安装软件一般有三种方式:
rpm(jdk:在线发布一个springboot项目)
解压缩(tomcat,启动并通过外网访问,发布网站),
yum在线安装(docker:直接运行跑起来) 我会用这三种方式演示
#检测系统是否存在java环境 java-version
#如果有就需要先卸载自带的环境
#rpm -qa | grep jdk #检测JDK版本信息
# rpm -e --nodeps jdk_版本号
#卸载完成之后即可安装jdk
#rpm -ivh rpm包
[root@haixin home]# ls
apache-tomcat-9.0.38 apache-tomcat-9.0.38.zip haixin2 jdk1.8.0_20 jdk-8u281-linux-x64.rpm redis www
[root@haixin home]# rpm -ivh jdk-8u281-linux-x64.rpm
warning: jdk-8u281-linux-x64.rpm: Header V3 RSA/SHA256 Signature, key ID ec551f03: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:jdk1.8-2000:1.8.0_281-fcs ################################# [100%]Unpacking JAR files...
tools.jar...
plugin.jar...
javaws.jar...
deploy.jar...
rt.jar...
jsse.jar...
charsets.jar...
localedata.jar...
[root@haixin home]#
[root@haixin etc]# java -version
java version "1.8.0_281"
Java(TM) SE Runtime Environment (build 1.8.0_281-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.281-b09, mixed mode)
# 配置环境变量
#配置环境变量:/etc/profile
vim /etc/profile
i 进入编辑模式
在最下面输入一下信息.第一个为jdk安装的路径.一般默认是在这个位置
JAVA_HOME=/usr/java/jdk1.8.0_221-amd64
JRE_HOME=$JAVA_HOME/jre
CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export JAVA_HOME JRE_HOME CLASSPATH PATH
如果保存不成功,:wq! 来强制保存
我这里后来出现失灵ls cd等命令不可用(因为配置文件写错了)解决方法参考:https://blog.csdn.net/moonmoonroc/article/details/106590642
让配置生效:source /etc/profile
我们来发布一个网站(下面的操作,强烈建议大家手动操作一下,看似简单,有时会遇到许多意想不到的麻烦.我也是没有经验,弄了两个小时)
在本地打包一个项目jar包 (无需连接数据库的,)在本地测试是否可以正常访问 (项目最好不用8080,之前我们装过tomcat,不知道是不是这个原因,反正我的8080端口被占用了.)
端口被占用,我修改了端口号,准备重新打一个jar包.但是不知道哪里出了问题,一直出错,根据以往经验,我决定把项目中的target文件夹删除.
在删除时,一直显示本地的jdk运行了原来的jar包导致无法删除.我用了最直接的办法,重启电脑.然后获得了我想要的jar包
然后cd到 jar包所在目录,输入 java -jar xxx.jar 运行
然后访问 ,访问到了项目
通过xftp上传到云服务器(我放到了home目录下的自建文件夹中)
(查看项目需要访问的端口是否开启, 就是你上面的端口
开启端口:
firewall-cmd --zone=public --add-port=80/tcp --permanent
如果是阿里云服务器还需要在安全组里开启(不懂的可以看我之前关于服务器配置的文章)
重启防火墙:
systemctl restart firewalld.service
查看端口:
firewall-cmd --list-ports
)
cd到jar包目录
java -jar xx.jar
就OK了
伴随着我第一个项目的上市(哈哈,其实就是个项目壳壳),这一篇文章也落幕了.欢迎留言评论.喜欢就给个关注吧! 完结散花