文章目录
前言
文章里的命令选项只是常用的选项,还有更多的选项可自行去学习。
参考视频:Linux 达人养成计划 II
参考网站:菜鸟教程
Linux基础(一)的笔记的地址:Linux基础(一)的笔记
一. VIM文本编辑器
1.VIM文本编辑器的概述
(1)VI编辑器的介绍
- VI的英文全称为:Visual Interface
- 可视化接口
- 类似windows中的记事本
- VI相对于记事本强大的不是一星半点
(2)VIM与VI相比有哪些提升
- VIM支持多级撤销
- VIM可以跨平台运行
- VIM支持语法高亮
- VIM支持图形界面
2.VIM编辑器的操作模式
(1)操作模式
- 命令模式(Command mode)
- 输入模式(Insert mode)
- 底线命令模式(Last line mode)
(2)作用
- 命令模式
- 用于输入用户等待的模式,比如撤销、剪切、复制等等命令
- 默认启动就是命令模式
- 输入模式
- 用于输入文本的模式,也就是往文本打字的模式
- 按esc可以退出输入模式
- 底行模式(行尾,末行)
- 可以输入一些指令,比如保存、退出等指令
(3)命令模式的示例
- vim + 文件名 可以把光标移到最后一行位置;vim +n 文件名 可以把光标移到第n行,如果大于文件的最大行则定位到最后一行;vim +/xxx 文件名 可以定位到“xxx”第一次出现的行,按“n”可以向下移动,“N”可以向上移动
- vim aa bb cc 可以一次性打开多个文件或者创建多个文件,按“:n”然后回车可以切换到下一个文件,按“:N” 然后回车切换到上一个文件,当是最后一个文件时切换到下一个文件会提示“无法切换,已是最后一个文件”
(4)输入模式
按键 | 作用 |
---|---|
字符按键以及Shift组合 | 输入字符 |
ENTER | 回车键,换行 |
BACKSPACE | 退格键,删除光标前一个字符 |
DEL | 删除键,删除光标后一个字符 |
方向键 | 在文本中移动光标 |
HOME/END | 移动光标到行首/行尾 |
Page Up/Page Down | 上/下翻页 |
Insert | 切换光标为输入/替换模式,光标将变成竖线/下划线 |
ESC | 退出输入模式,切换到命令模式 |
(5)底行模式常用指令
指令 | 作用 |
---|---|
:w | 保存 |
:q | 退出 |
:! | 强制执行 |
:ls | 列出当前打开的所有文件 |
:n | 切换到下一个文件 |
:15 | 光标定位到15行 |
/xxx | 光标位置向后搜索“xxx”字符串 |
?xxx | 光标位置向前搜索“xxx”字符串 |
:set nu | 显示行号,设定之后,会在每一行的前缀显示该行的行号 |
:set nonu | 与 set nu 相反,为取消行号! |
:1,$s/word1/word2/g 或 :%s/word1/word2/g | 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2,如果后面加上“c”的话会有一个确认是否取代 |
:n1,n2s/word1/word2/g | n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 |
(6)命令模式常用指令
指令 | 作用 |
---|---|
h 或 向左箭头键(←) | 光标向左移动一个字符 |
j 或 向下箭头键(↓) | 光标向下移动一个字符 |
k 或 向上箭头键(↑) | 光标向上移动一个字符 |
l 或 向右箭头键(→) | 光标向右移动一个字符 |
ctrl + f | 屏幕『向下』移动一页,相当于 [Page Down]按键 (front) |
ctrl + b | 屏幕『向上』移动一页,相当于 [Page Up] 按键 (back) |
ctrl + d | 屏幕『向下』移动半页(down) |
ctrl + u | 屏幕『向上』移动半页(up) |
dd | 删除游标所在的那一整行,如果前面加上数字n则删除n行 |
o | 在目前光标所在的下一行处输入新的一行 |
yy | 复制游标所在的那一行,如果前面加上数字n则复制n行 |
p | 将已复制的数据在光标下一行贴上 |
P | 将已复制的数据在光标上一行贴上 |
x, X | 在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] ,如果前面加上数字n则删除n个字符 |
u | 复原前一个动作 |
ctrl + r | 重做上一个动作 |
d+ G | 清空文件内容 |
(7)VIM/VI工作模式图
(8)vim 键盘图
二.磁盘管理
1.Linux磁盘管理常用命令
(1)Linux磁盘管理常用三个命令为df、du和fdisk
- df:列出文件系统的整体磁盘使用量
- du:检查磁盘空间使用量
- fdisk:用于磁盘分区
(2)df命令
df [选项] [目录或文件名]
选项:
-l 仅显示本地磁盘(默认)
-a 列出所有的文件系统,包括系统特有的 /proc 等文件系统
-k 以 KBytes 的容量显示各文件系统
-h 以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示
-H 以 M=1000K 取代 M=1024K 的进位方式
-T 显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出
-t 显示指定类型文件系统的磁盘分区
-i 不用硬盘容量,而以 inode 的数量来显示
-x 不显示指定类型文件系统的磁盘分区
英文全称:Disk free
[root@localhost test]# df -ha
文件系统 容量 已用 可用 已用% 挂载点
sysfs 0 0 0 - /sys
proc 0 0 0 - /proc
devtmpfs 909M 0 909M 0% /dev
securityfs 0 0 0 - /sys/kernel/security
tmpfs 919M 0 919M 0% /dev/shm
devpts 0 0 0 - /dev/pts
tmpfs 919M 8.6M 911M 1% /run
tmpfs 919M 0 919M 0% /sys/fs/cgroup
cgroup 0 0 0 - /sys/fs/cgroup/systemd
pstore 0 0 0 - /sys/fs/pstore
cgroup 0 0 0 - /sys/fs/cgroup/cpu,cpuacct
cgroup 0 0 0 - /sys/fs/cgroup/memory
cgroup 0 0 0 - /sys/fs/cgroup/perf_event
cgroup 0 0 0 - /sys/fs/cgroup/net_cls,net_prio
cgroup 0 0 0 - /sys/fs/cgroup/hugetlb
cgroup 0 0 0 - /sys/fs/cgroup/cpuset
cgroup 0 0 0 - /sys/fs/cgroup/devices
cgroup 0 0 0 - /sys/fs/cgroup/freezer
cgroup 0 0 0 - /sys/fs/cgroup/blkio
cgroup 0 0 0 - /sys/fs/cgroup/pids
configfs 0 0 0 - /sys/kernel/config
/dev/sda3 18G 1.8G 17G 10% /
selinuxfs 0 0 0 - /sys/fs/selinux
systemd-1 - - - - /proc/sys/fs/binfmt_misc
hugetlbfs 0 0 0 - /dev/hugepages
mqueue 0 0 0 - /dev/mqueue
debugfs 0 0 0 - /sys/kernel/debug
/dev/sda1 1014M 182M 833M 18% /boot
www 183G 111G 73G 61% /var/www
tmpfs 184M 0 184M 0% /run/user/0
binfmt_misc 0 0 0 - /proc/sys/fs/binfmt_misc
(3)du命令
du命令是对文件和目录磁盘使用的空间的查看,与df是有一些区别的
du [选项] 文件或目录名称
选项:
-a 列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已
-h 以人们较易读的容量格式 (G/M) 显示
-s 列出总量而已,而不列出每个各别的目录占用容量
-S 不包括子目录下的总计,与 -s 有点差别
-k 以 KBytes 列出容量显示
-m 以 MBytes 列出容量显示
-b 以byte为单位统计文件
英文全称:Disk usage
[root@localhost test]# du -ah
0 ./ziptest/tsts.txt
0 ./ziptest/tsts2.txt
0 ./ziptest
4.0K ./test.txt
4.0K .
2.Linux硬盘分区和格式化概述
(1)为什么重新提分区
- 主分区和扩展分区总数不能超过4个
- 扩展分区最多只能有一个
- 扩展分区不能直接存取数据
- 硬盘空间有限
- 数据迁移有风险
3.Virtual box 添加硬盘
(1)先关掉虚拟机
(2)创建虚拟硬盘
进入创建虚拟硬盘
选择和创建虚拟盘
别忘了点击OK
4.MBR分区
(1)须知知识
- Linux系统中的硬件设备都是以文件形式存放在/dev目录下
- 硬件设备都是由Linux系统自动识别的
- 必须对硬盘进行分区、格式化、挂载后才能使用
(2)fdisk命令
fdisk [选项] 装置名称
选项:
-b 指定每个分区的大小
-l 列出指定的外围设备的分区表状况
-s 将指定的分区大小输出到标准输出上,单位为区块
-u 搭配”-l”参数列表,会用分区数目取代柱面数目,来表示每个分区的起始地址
-v 显示版本信息
[root@localhost ~]# fdisk -l
磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000d1271
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 4196351 1048576 82 Linux swap / Solaris
/dev/sda3 4196352 41943039 18873344 83 Linux
磁盘 /dev/sdb:8589 MB, 8589934592 字节,16777216 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
/dev/sdb就是刚才添加的新硬盘
(3)进入/dev/sdb的分区模式
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x1474e190 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):
(4)进行分区
输入“m”查看帮助
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x1474e190 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):m
命令操作
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
创建一个主分区
查看已创建的分区
创建一个扩展分区
创建一个逻辑分区
再创建一个逻辑分区的步骤同上
当前分区情况
删除逻辑分区
再创建一个主分区同上操作
创建一个扩展分区同上操作
创建两个逻辑分区同上操作
最后分区情况
写入分区
fdisk命令查看分区情况
5.GPT分区
(1)分区模式
- MBR分区模式
- 主分区不能超过4个
- 单个分区容量最大2TB
- GPT分区模式
- 主分区个数“几乎”没有限制(最大支持128个主分区)
- 单个分区容量“几乎”没有限制(大小达到18EB)
- 不适合安装X86架构的系统
(2) fdisk命令与parted命令差异
- fdisk命令只适合MBR分区
- parted命令两种分区模式都适合
(3)再添加一块硬盘
步骤同上,但注意硬盘名称不要与之前的同名
(4)使用parted命令进行GPT分区
启动parted工具,默认使用第一块硬盘(/dev/sda)
[root@localhost ~]# parted
GNU Parted 3.1
使用 /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)
查看帮助
切换硬盘和选择分区模式
parted有两种工作模式
- 命令行模式(一步到位,但需要记住一些命令的参数)
- 交互模式(提示的方式,如同fdisk一样)
parted交互模式分区
parted命令行模式分区
与已有分区位置重叠的情况
删除分区
验证GPT格式是否能突破4个分区
修改默认单位
退出parted
使用parted来进行MBR分区在mklabel哪里选择msdos,提示不一样而已
6.格式化
(1)parted格式化支持的文件系统有限;通常使用mkfs进行格式化,MRB和GPT都可以使用mkfs格式化
mkfs [选项] [-t <类型>] [文件系统选项] <设备> [<大小>]
选项:
-t, --type=<类型> 文件系统类型;若不指定,将使用 ext2
fs-options 实际文件系统构建程序的参数
<设备> 要使用设备的路径
<大小> 要使用设备上的块数
-V, --verbose 解释正在进行的操作;
多次指定 -V 将导致空运行(dry-run)
-V, --version 显示版本信息并退出
将 -V 作为 --version 选项时必须是惟一选项
-h, --help 显示此帮助并退出
英文全称:Make file system
(2)查看/dev/sdb各个分区的设备名称
(3)使用mkfs进行格式化 /dev/sdb1的文件系统为ext3(方法一)
[root@localhost ~]# mkfs.ext3 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 524288 blocks
26214 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (16384 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
(4)使用mkfs进行格式化 /dev/sdb2的文件系统为ext4(方法二)
[root@localhost ~]# mkfs -t ext4 /dev/sdb2
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 524288 blocks
26214 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (16384 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
(5)注意:MBR分区只有主分区和逻辑分区才能格式化,GPT分区表的硬盘的文件系统类型使用fdisk命令是查看不了的,只有启动parted指令才能
7.挂载分区
(1)格式化完成后还不能存储数据,必须要挂载;理论上可以挂载到系统的任意地方,但是系统为我们提供了默认挂载的目录/mnt目录,如果没有特殊需求的话就挂载到这里,挂载点必须存在
1.挂载就是将设备文件中的顶级目录连接到 Linux 根目录下的某一目录(最好是空目录),而该目录被称为挂载点,访问此目录就等同于访问设备文件,也就是说这个目录就是它的入口;
2.挂载到有数据的目录,之前的数据还是在之前的位置的,但是在挂载新的分区之后,旧的数据会看不到的了,解除挂载之后才能看到原来的数据
3.挂载的原则:必须是目录,最好不要有数据
(2)挂载/dev/sdb1到/mnt/test目录和卸载
#如果目录不存在则创建
[root@localhost ~]# mkdir -p /mnt/test
#挂载到/mnt/test目录
[root@localhost ~]# mount /dev/sdb1 /mnt/test
#取消挂载
[root@localhost ~]# umount /mnt/test
注:使用mount命令挂载不是永久性的
(3)永久挂载
进入修改
[root@localhost ~]# vim /etc/fstab
修改/etc/fstab文件实现永久挂载,保存退出
8.swap分区
(1)步骤
- 建立一个普通的Linux分区
- 修改分区类型的16进制编码
- 格式化交换分区
- 启用交换分区
(2)实现
修改分区类型的16进制编码
格式化分区
[root@localhost ~]# mkswap /dev/sdb6
正在设置交换空间版本 1,大小 = 2094076 KiB
无标签,UUID=c5f0d1c6-da4b-4c86-8cd2-1e685ba90279
启用swap分区
[root@localhost ~]# swapon /dev/sdb6
free命令查看内存状况
[root@localhost ~]# free
total used free shared buff/cache available
Mem: 1882092 154676 1514828 8808 212588 1575160
Swap: 3142648 0 3142648
关闭swap分区
[root@localhost ~]# swapoff /dev/sdb6
三.用户管理
1.用户和用户组的概念
(1)概念
- 用户:使用操作系统的人
- 用户组:具有相同系统权限的一组用户
2. 相关配置文件
(1)/etc/group存储当前系统中所有用户组的信息
[root@localhost ~]# cat /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mem:x:8:
kmem:x:9:
wheel:x:10:
cdrom:x:11:
mail:x:12:postfix
man:x:15:
dialout:x:18:
floppy:x:19:
games:x:20:
tape:x:33:
video:x:39:
ftp:x:50:
lock:x:54:
audio:x:63:
nobody:x:99:
users:x:100:
utmp:x:22:
utempter:x:35:
input:x:999:
systemd-journal:x:190:
systemd-network:x:192:
dbus:x:81:
polkitd:x:998:
libstoragemgmt:x:997:
ssh_keys:x:996:
abrt:x:173:
rpc:x:32:
sshd:x:74:
slocate:x:21:
postdrop:x:90:
postfix:x:89:
ntp:x:38:
chrony:x:995:
tcpdump:x:72:
stapusr:x:156:
stapsys:x:157:
stapdev:x:158:
vboxsf:x:994:
www:x:1000:
注意:root超级用户组的组id固定为0;1~499为系统预留;组中用户名列表为空,并不一定就没有用户,当用户名与组名相同时可以省略;大于等于500的组id是用户手动创建的;组名码都是使用“x”代替
(1)/etc/gshadow存储当前系统中用户组的密码信息
[root@localhost ~]# cat /etc/gshadow
root:::
bin:::
daemon:::
sys:::
adm:::
tty:::
disk:::
lp:::
mem:::
kmem:::
wheel:::
cdrom:::
mail:::postfix
man:::
dialout:::
floppy:::
games:::
tape:::
video:::
ftp:::
lock:::
audio:::
nobody:::
users:::
utmp:!::
utempter:!::
input:!::
systemd-journal:!::
systemd-network:!::
dbus:!::
polkitd:!::
libstoragemgmt:!::
ssh_keys:!::
abrt:!::
rpc:!::
sshd:!::
slocate:!::
postdrop:!::
postfix:!::
ntp:!::
chrony:!::
tcpdump:!::
stapusr:!::
stapsys:!::
stapdev:!::
vboxsf:!::
www:!::
/etc/group文件多少行,/etc/gshadow文件就有多少行,一一对应;组密码为空、“*”或者“!”表示组的密码为空;组管理者表示谁能管理这个组,一般情况下是空的;组管理者为空表示组内所有用户都可以管理这个组;组中用户列表跟/etc/group文件一样
(3)/etc/passwd存储当前系统中所有用户的信息
[root@localhost ~]# 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-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
libstoragemgmt:x:998:997:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
chrony:x:997:995::/var/lib/chrony:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
vboxadd:x:996:1::/var/run/vboxadd:/bin/false
www:x:1000:1000::/home/www:/bin/bash
创建用户时不指定用户家目录,就默认在/home目录下创建与用户名相同的目录;用户注释信息就是对这个用户做注释;shell类型表示该用户能使用那些shell;通常用户标识号的取值范围是0~65 535;0是超级用户root的标识号,1~99由系统保留,作为管理账号,普通用户的标识号从100开始;在Linux系统中,这个界限是500;
(3)/etc/shadow存储当前系统中所有用户的密码信息
[root@localhost ~]# 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-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
libstoragemgmt:x:998:997:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
chrony:x:997:995::/var/lib/chrony:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
vboxadd:x:996:1::/var/run/vboxadd:/bin/false
www:x:1000:1000::/home/www:/bin/bash
[root@localhost ~]# cat /etc/shadow
root:$6$iHv2D7x3$1sCvNPvQT9pllr7.OrxcOUB2k/xiBXWVE33hpKrBvPY62ycLWe6YjkmeIorZ4LyRwp.m00NRrCJ488TJ4IwGT1:18427:0:99999:7:::
bin:*:17834:0:99999:7:::
daemon:*:17834:0:99999:7:::
adm:*:17834:0:99999:7:::
lp:*:17834:0:99999:7:::
sync:*:17834:0:99999:7:::
shutdown:*:17834:0:99999:7:::
halt:*:17834:0:99999:7:::
mail:*:17834:0:99999:7:::
operator:*:17834:0:99999:7:::
games:*:17834:0:99999:7:::
ftp:*:17834:0:99999:7:::
nobody:*:17834:0:99999:7:::
systemd-network:!!:18427::::::
dbus:!!:18427::::::
polkitd:!!:18427::::::
libstoragemgmt:!!:18427::::::
abrt:!!:18427::::::
rpc:!!:18427:0:99999:7:::
sshd:!!:18427::::::
postfix:!!:18427::::::
ntp:!!:18427::::::
chrony:!!:18427::::::
tcpdump:!!:18427::::::
vboxadd:!!:18427::::::
www:$6$1g9h4pbo$2bYszH2B.xHoOiwAe9WHWGptLW3td/qed2so7scGqCNa6HL9BkeReLdr9Xf2y/k9NlYSMAFBddGLKWC4oa0be.:18429:0:99999:7:::
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
(4)为什么分开来
- 安全性
- 用户信息经常被读取,而密码不经常被读取
3.用户组的基本命令
(1)新增用户组命令:groupadd命令
groupadd [选项] 用户组
选项:
-g GID 指定新用户组的组标识号(GID)
-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同
[root@localhost ~]# groupadd test
(2)修改用户组的属性命令:groupmod命令
groupmod 选项 用户组
选项:
-g GID 为用户组指定新的组标识号
-o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同
-n新用户组 将用户组的名字改为新名字
#将组名修改为 new_test
[root@localhost ~]# groupmod -n new_test test
#将组编号修改为 668
[root@localhost ~]# groupmod -g 668 new_test
(3)删除用户组命令:groupdel命令
groupdel 用户组
#删除用户组
[root@localhost ~]# groupdel new_test
删除用户组之前,必须先删除用户组里的用户,否则处在这个用户组的用户的配置文件当中关于组的信息无法跟组对应上,就让他们变成了系统黑户口,在后续的使用上权限受到影响
4.用户的基本命令
(1)添加用户命令:useradd命令
useradd [选项] 用户名
选项:
-c comment 指定一段注释性描述
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录
-g 用户组 指定用户所属的用户组
-G 用户组,用户组 指定用户所属的附加组
-s Shell文件 指定用户的登录Shell
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号
#不加选项
[root@localhost ~]# useradd test
#指定用户组
[root@localhost ~]# useradd -g test test1
#指定用户家目录
[root@localhost ~]# useradd -d /home/xxx test233
(2)修改用户命令:usermod命令
usermod 选项 用户名
选项:
-c 修改注释
-d 用户的新主目录
-g 强制使用 GROUP 为新主组
-m 将家目录内容移至新位置 (仅于 -d 一起使用)
-l 新的登录名称
-L 锁住用户
-G 新的附加组列表 GROUPS
-s 修改用户帐号的新登录shell
-u 修改用户帐号的UID
-U 解锁用户
#修改用户名,把test用户名改为test_new
[root@localhost ~]# usermod -l test_new test
#用户的新主目录
[root@localhost ~]# usermod -d /home/test_new test_new
(3)删除用户命令:userdel命令
userdel [选项] 用户名
选项:
-r 用户的主目录一起删除
#也把用户的目录删除
[root@localhost ~]# userdel -r test
(4)禁止普通用户登录
#创建这个文件就可以禁止普通用户登录
[root@localhost ~]# touch /etc/nologin
5.用户和用户组的进阶命令
(1)用户口令管理命令:passwd命令
passwd 选项 用户名
选项:
-l 锁定口令,即禁用账号。
-u 口令解锁
-d 使账号无口令
-f 强迫用户下次登录时修改口令
#设置或修改用户密码
[root@localhost ~]# passwd test1
#锁定用户
[root@localhost ~]# passwd -l test1
#解锁用户
[root@localhost ~]# passwd -u test1
(2)主要组和附属组
- 一个主要组
- 多个附属组
(3)工作组文件 /etc/group 和 /etc/gshadow 管理工具:gpasswd命令
gpasswd [选项] 组
选项:
-a, --add USER 向组 GROUP 中添加用户 USER
-d, --delete USER 从组 GROUP 中添加或删除用户
-h, --help 显示此帮助信息并推出
-Q, --root CHROOT_DIR 要 chroot 进的目录
-r, --delete-password remove the GROUP's password
-R, --restrict 向其成员限制访问组 GROUP
-M, --members USER,... 设置组 GROUP 的成员列表
-A, --administrators ADMIN,... 设置组的管理员列表
除非使用 -A 或 -M 选项,不能结合使用这些选项。
#将test233用户添加到user_test组中
[root@localhost ~]# gpasswd -a test233 user_test
正在将用户“test233”加入到“user_test”组中
#删除用户的附属组
[root@localhost ~]# gpasswd -d test233 user_test
正在将用户“test233”从“user_test”组中删除
#给用户组添加密码
[root@localhost ~]# gpasswd user_test
正在修改 user_test 组的密码
新密码:
用于将一个用户添加到组或者从组中删除,这是附属组
(3)用于登入另一个群组:newgrp命令
newgrp [-] [组]
#切换到附属组
[test233@localhost ~]$ newgrp user_test
必须是该群组的用户,否则将无法登入指定的群组;如果设有组密码则需要输入组密码
6.用户管理其它命令
(1)切换用户身份命令:su命令
su [选项] [-] [USER [参数]...]
将有效用户 id 和组 id 更改为 USER 的 id。
单个 - 视为 -l。如果未指定 USER,将假定为 root。
选项:
-m, -p, --preserve-environment 不重置环境变量
-g, --group <组> 指定主组
-G, --supp-group <组> 指定一个辅助组
-, -l, --login 使 shell 成为登录 shell
-c, --command <命令> 使用 -c 向 shell 传递一条命令
--session-command <命令> 使用 -c 向 shell 传递一条命令
而不创建新会话
-f, --fast 向shell 传递 -f 选项(csh 或 tcsh)
-s, --shell <shell> 若 /etc/shells 允许,则运行 shell
-h, --help 显示此帮助并退出
-V, --version 输出版本信息并退出
#切换到root身份
[test233@localhost ~]$ su root
密码:
[root@localhost xxx]#
root切换到普通用户不需要密码,普通用户切换用户需要密码;su 后面不加用户名则默认是切换到root身份
(2)用于显示自身用户名称:whoami命令
[root@localhost xxx]# whoami
root
(3)用于显示用户的ID,以及所属群组的ID命令:id命令
id 用户名
[root@localhost xxx]# id root
uid=0(root) gid=0(root) 组=0(root)
(4)查看用户所在的所有组命令:groups命令
groups 用户名
[root@localhost xxx]# groups root
root : root
(5)设置用户资料命令:chfn命令
chfn [选项] [用户名]
选项:
-f, --full-name <全名> 真实姓名
-o, --office <办公> 办公号码
-p, --office-phone <电话> 办公电话
-h, --home-phone <电话> 住宅电话
英文全称:change your finger information
[root@localhost xxx]# chfn root
Changing finger information for root.
名称 [root]: 我^H
chfn: control characters are not allowed
名称 [root]: 我
办公 []: 是
办公电话 []: 110
住宅电话 []: 120
Finger information changed.
(6)显示用户详细资料命令:finger命令
finger 用户名
[root@localhost xxx]# finger root
Login: root Name: 我
Directory: /root Shell: /bin/bash
Office: 是, 110 Home Phone: 120
On since 日 6月 21 16:24 (CST) on pts/0 from 192.168.8.207
14 minutes 53 seconds idle
Last login 日 6月 21 17:01 (CST) on pts/1
No mail.
No Plan.
如果没有这个命令,执行 “yum -y install finger” 进行安装