账号管理
账号:
Linux系统是一个多用户多任务。
任何一个系统的资源,对于不同的用户,都是不一样的!
用户:
- 添加修改删除
- 密码管理
- 用户组管理
添加用户
[root@shiqi ~]# man useradd
# 创建一个用户alan,并且生成用户的默认目录, /home/用户名
[root@shiqi ~]# useradd -m alan
[root@shiqi ~]# cd /home
[root@shiqi home]# ls
alan data f3 logs mysql
本质就是文件中添加了对应的用户
删除
# userdel 删除用户 -r 删除用户所有的目录文件
[root@shiqi home]# userdel -r alan
[root@shiqi home]# ls
data f3 logs mysql
[root@shiqi home]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-bus-proxy:x:999:998:systemd Bus Proxy:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:998:997:User for polkitd:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:997:995::/var/lib/chrony:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
nscd:x:28:28:NSCD Daemon:/:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
mysql:x:1000:1000::/home/mysql:/bin/bash
用户设置密码
passwd
# 如果是超级用户,可以给任何一个账号制定它的密码!
[root@shiqi home]# passwd coding
Changing password for user coding.
New password:
BAD PASSWORD: The password fails the dictionary check - it is too simplistic/systematic
Retype new password:
passwd: all authentication tokens updated successfully.
[root@shiqi home]#
y.
# 如果是当前用户,则直接输入passwd 来修改密码
# 这个用户密码置为空
passwd -d 用户名
# 将这个用户锁定
passwd -l 用户名
用户组管理
groupadd
groupdel
groupmod
[root@shiqi ~]# cat /etc/group
coding 可以将用户切换组!
# 当前登录的用户切换用户组 newgrp 用户组名即可!
[root@shiqi ~]# man newgrp
[root@shiqi ~]# newgrp root
etc/passwd
所有用户操作本质都是在对这个配置文件进行修改!
# 随便取一个用户的记录
coding:x:1001:1001::/home/coding:/bin/bash
# 用户名:口令:用户组:组的标识:描述用户的注释:用户的主目录:登录的shell
/etc/shadow
# 取出一条记录
coding:$6$JBrZaiIV$XcGT9lCgXgvlWITSO48CZ33RUQvAeJHfF1rVGvaY.hPefRtOe5csahtyLg7FLnbsNB9sofm.B5SrEIO4zFoqm1:18392:0:99999:7:::
# 登录名:加密密码:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
# 登录名就是和 etc/passwd 对应的用户账号
# 加密密码,如果为空,则对应用户是没有口令的,登录不需要密码,如果有密码,则会加密
# 最后一次修改时间
# 最小时间间隔, 两次密码修改所需的最小天数!
# 最大时间间隔, 密码保持有效的最大天数!
/etc/group
# 随便取出一个用户组
coding:x:1001:
# 组名:组的口令(一般Linux系统的用户组都没有口令):标识号:用户信息
# 组名:标识号:用户信息
只要记住一点:在Linux中的用户和用户组管理,核心就是对于配合文件的操作!
然后基本的命令记住以下几个即可:
- 添加一个用户 useradd
- 删除一个用户 userdel
- 设置密码 passwd
- 添加用户组 groupadd
- 切换用户组 newgrp
三个文件需要彻底记住:/etc/passwd /etc/shadow /etc/group
进程管理
在Linux中,每个程序都是一个进程,每个进程都有一个id号!
每个进程也都会有一个父进程!
进程存在的两种方式:前台进程,后台进程,一般我们会将一些服务使用后台进程方式启动!
ps命令
查看当前系统中正在执行的进程的信息
[root@shiqi ~]# ps -a
# 参数
-a 显示当前终端的所有进程信息
-u 以用户的形式显示进程信息
-x 显示后台进程运行的参数
ps -aux|grep mysql # 查看某个服务的进程
grep命令用于查找文件中符合条件的字符
管道符: 命令A | 命令B 将命令A的最后输入左右命令B操作对象
ps -ef 可以查看父进程
-e 显示所有的进程 -f 格式化!
UID:用户id
PID:进程的id
# 查看特定进程信息
ps -ef|grep docker
杀进程
kill 指令, 就是相当于 windows结束任务
kill 进程号
kill 进程名称
# 强制结束进程
kill -9 PID
进程树查看 pstree
-p 显示进程PID
-u 显示这个进程所属的用户
使用pstree 方便我们查看进程之间的关系!
安装环境
环境变量
安装的三种方式!
- rpm安装
- 解压缩
- 在线安装
JDK安装(RPM安装)
1、下载jdk的rpm安装包!
2、将我们本地安装包,放到我们的服务器上!SSH22 远程连接xshell FTP21文件管理 xftp
4、先查看一下本地是否有JDK!
[root@shiqi home]# rpm -qa|grep jdk
jdk1.8-1.8.0_221-fcs.x86_64
[root@shiqi home]# rpm -e --nodeps jdk1.8-1.8.0_221-fcs.x86_64
[root@shiqi home]# java -version # 删除掉本地默认jdk
-bash: /usr/bin/java: No such file or directory
5、安装jdk
# rpm -ivh rpm的包!
[root@shiqi home]# ll
total 175304
drwx------ 2 coding coding 4096 May 10 20:06 coding
-rw-r--r-- 1 root root 179505388 May 10 21:07 jdk-8u221-linux-x64.rpm
[root@shiqi home]# rpm -ivh jdk-8u221-linux-x64.rpm
warning: jdk-8u221-linux-x64.rpm: Header V3 RSA/SHA256 Signature, key ID
ec551f03: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:jdk1.8-2000:1.8.0_221-fcs ################################# [100%]
Unpacking JAR files...
tools.jar...
plugin.jar...
javaws.jar...
deploy.jar...
rt.jar...
jsse.jar...
charsets.jar...
6、配置环境变量 /etc/profile
AVA_HOME=/usr/java/jdk1.8.0_221-amd64
CLASSPATH=%JAVA_HOME%/lib:%JAVA_HOME%/jre/lib
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export CLASSPATH JAVA_HOME PATH
# 保存退出
7、需要让新的配置生效
[root@shiqi home]# source /etc/profile
[root@shiqi home]# java -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)
注意:Java默认安装目录!
[root@shiqi home]# cd /usr
[root@shiqi usr]# ls
bin etc games include java lib lib64 libexec local sbin share src
tmp