# 1.增:新增用户
useradd 用户名 # root用户在/root目录下, 普通用户在 /home/用户名下.
# 创建用户的时候, 如果不指定分组,
# 则默认会创建1个和该用户名一模一样的组.
# 然后把该用户放到这个组中...
# 2.改:修改用户的密码
passwd 用户名 # 来源于: password单词
# 3.删:删除用户
userdel [-r] 用户名 # 除了删除用户外, 还会删除 /home目录下,
# 该用户所有的内容.
# 如果该用户的主组是随着用户一起创建的,
# 则删除用户时, 该组也会被同步删除.
# 查:查询所有的用户.
cat /etc/passwd # 查询所有的用户
getent passwd # 效果同上, 来源于: get environment, 获取环境
# 查看用户信息, 格式如下:
zhangsan:x:1000:1000::/home/zhangsan:/bin/bash
# 格式解释:
用户名:密码(无):用户组id:用户id:描述信息(无):账号的家目录:使用何种Shell解析器
# 切换用户
su 用户名 # 切换到指定的用户, 如果是root => 其它账号,
# 无需输入密码, 否则都需要录入密码.
# 登出, 例如: root => zhangsan, 登出后, 就又回到了 root账号
ctrl + d # 快捷键
# (临时. 默认5分钟)借调权限
sudo 你要指定的命令
# 问: root如何给普通账号配置权限?
# 答: 在root账号下, 输入: vim /etc/sudoers 去其中进行设置, 在第100行.
# 增:新增用户组
groupadd 用户组名
# 删:删除用户组
groupdel 用户组名 # 删除用户组,
# 注: 如果没有用户用该组作为主组, 就可以删除该组.
# 查:查询所有的用户组.
cat /etc/group
getent group # 效果同上, 来源于: get environment, 获取环境
# 查看用户组信息, 格式如下:
zhangsan:x:1000
# 格式解释:
用户组名:无密码:组id
# 查看用户的具体信息
id 用户名
# 创建新用户的时候, 直接指定分组
useradd 用户名 -g 组名 # 新增用户, 并添加到指定的组.
# 设置已经存在的账号到指定的分组中.
usermod -aG 用户组名 用户名 # modify: 修改, append group: 添加分组
# 设置权限
chmod 777 1.txt # 万金油命令, 满权限.
chmod +x 1.txt # 给所有用户设置 执行权.
chmod u=rx,g=w,o=x # 设置属主权限为:读,可执行,
# 属组权限为:只写, 其它用户权限为:可执行.
# 注意多个权限之间, 没有空格.
# user(属主), group(属组), other(其它)
chmod [-R] 777 目录路径 # 设置目录及其所有的子级为满权限.
# 设置拥有者, 即: 属主, 属组
chown [-R] [用户][:][用户组] 文件或者目录路径 # owner: 拥有者
chown zhangsan 1.txt # 改变1.txt文件的 属主为: zhangsan
chown itcast 1.txt # 改变1.txt文件的 属主为: itcast
chown :itcast 1.txt # 改变1.txt文件的 属组为: itcast
chown lisi:itcast 1.txt # 改变1.txt文件的 属主lisi, 属组为: itcast
方式1: 手动安装.
自己去官网下载安装包, 即: *.tar.gz, 然后上传到Linux系统中, 手动进行安装配置即可.
tarball: 压缩包, gzip: 压缩协议.
例如: JDK, Zookeeper, Hadoop, Hive…
方式2: rpm方式
RedHat Package Manager, 小红包的包管理器, 可以自动联网进行下载, 并安装程序.
但是不能自动解决依赖问题, 例如: 装A需要依赖B和C, 则需要手动先装B和C, 才能装A.
例如: 安装MySQL
方式3: yum方式
yellow dog updater modified, 黄狗更新程序, 基于RPM的, 可以自动解决依赖.
例如: tree命令, lrzsz命令, wget命令…
# 格式
yum [-y] install | remove | search 包名 # -y意思是: 统一输入yes
# install: 安装, remove: 卸载, search: 查找并安装.
# 示例
yum -y install lrzsz
# 命令格式, systemctl来源于: system control, 系统控制
systemctl status | start | stop | restart | enable | disable 服务名
# 常用的服务
NetWorkManager 主网络服务
network 副网络服务
firewalld 防火墙
sshd 远程连接服务(协议)
# 示例
systemctl restart network # 重启网络服务.
# 格式:
ln -s 要被连接的文件或者目录路径 软连接方式 # 加-s是软连接, 相当于创建了快捷方式.
# 示例
ln -s /etc/sysconfig/network-scripts/ifcfg-ens33 ip
# 注: 如果不加 -s 创建出来的是 硬链接, 目的: 提高容错率.
ln 1.txt 2.txt # 两个硬链接文件, 内容会自动同步.
# date命令, 查看时间.
date [-d] [+日期格式]
# 指定时间格式 %Y 4位数字的年,
# 例如: 2024 %y: 2位数字的年, 例如: 24
# %m 月 %d 日 %H 小时 %M 分钟 %S 秒
date '+%Y-%m-%d'
# 修改时间.
date -d '1 day' '+%Y/%m/%d' # 正数往后加, 负数往前推. 今天时间, 往后加一天.
date -d '-1 day' '+%Y/%m/%d' # 正数往后加, 负数往前推. 今天时间, 往后加一天.
date -d '1 days ago' '+%Y/%m/%d' # 效果同上.
date -d '1 year ago' '+%Y/%m/%d' # 往前推1年
date -d '-1 day ago' '+%y-%m-%d' # 负负得正, 往后推一天, 了解即可, 没人写.
# 查看本机ip地址
ifconfig
# 查看本机主机名
hostname
# 修改主机名
hostnamectl set-hostname 主机名 # 立即修改.
vim /etc/hostname # 改完之后记得重启虚拟机生效.
# 如何修改虚拟机固定的ip
vim /etc/sysconfig/network-scripts/ifcfg-ens33
# ping命令, 测试网络是否通畅.
ping [-c 数字] 目标ip # 循环发包, 测试网络连接, 不指定次数, 就一直发送.
# wget 命令, 文件下载器, 可以根据URL下载数据
wget https://pic4.zhimg.com/v2-1d05d325d397080b921de6306dcf46d5_1440w.jpg
# curl 命令, 模拟浏览器, 向URL发出请求, 获取响应信息(html页面)
curl https://python.itcast.cn/?pythonzly # 结果打印到终端.
curl https://python.itcast.cn/?pythonzly >> my.txt # 结果保存到文件
# IP介绍: 设备在网络中的唯一标识.
# 端口号介绍: 程序在设备上的唯一标识. 范围: 0 ~ 65535, 其中0~1023已经被用作保留端口了, 尽量规避.
# 协议: 通信规则.
netstat -anp | grep 具体的端口号 # all network port, 所有网络端口
# 查看本机运行的所有进程
ps -ef
# 查看指定的进程信息
ps -ef | grep ssh
# 强制关闭指定的进程
kill -9 进程的pid
# 进程解释: 指的是可执行程序, 文件, 例如: *.exe
# 查看内存使用情况
free -h # -h 人性化的方式展示
# 查看磁盘使用情况
df -h # 来源于: disk free