本章节对Linux线下的文件管理、用户管理及磁盘管理做一个总结。
一、文件管理
1、简介:linux是系统一个倒树结构,linux中所有的东西都是文件,这些文件都在系统顶级目录“/” /就是根目录,/目录以下为二级目录这些目录都是系统装机时系统自动建立的。由此看来,在Linux系统下,文件管理显得尤为重要。
2、二级目录介绍:
/bin ##二进制可执行文件也就是系统命令
/sbin ##系统管理命令存放位置
/boot ##启动分区,负责系统启动
/dev ##设备管理文件
/etc ##大多数系统管理文件
/home ##普通用户的家目录
/lib ##32位系统库文件存放位置
/lib64 ##64位系统库文件存放位置
/media ##系统临时设备挂载点
/mnt ##系统临时设备挂载点
/run ##系统临时设备挂载点
/opt ##第三方软件安装位置
/proc ##系统信息
/root ##超级用户家目录
/srv,/var ##系统数据
/sys ##系统管理,主要是关于内核的
/tmp ##系统临时文件存放位置
/usr ##系统用户相关信息数据及用户自定义软件存放位置
3、学习文件管理
利用mkdir创建目录结构,如图
进入test1目录,利用touch创建文件,如图
4、常用的对目录及文件管理的命令
创建目录:mkdir [选项]… 目录…
删除目录:rmdir [选项]… 目录..
-p 递归删除目录,当子目录删除后其父目录为空时,也一同被删除
-v 显示指令执行过程
移动文件或目录:mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE..
-f 不提示并覆盖文件
-n 不覆盖已存在的文件
-b 覆盖之前把原文件做备份,备份的文件在 文件后有一个~符号
-u 只有原文件比覆盖的文件新的时候才可以覆盖文件,旧文件不能覆盖新文件
复制文件或者目录:cp [选项]… [-T] 源 目的
或:cp [选项]… 源… 目录
或:cp [选项]… -t 目录 源..
显示指定磁盘文件的可用空间:df
cat 由第一行开始显示文件内容
tac 由最后一行开始显示文件内容
more 一页一页查看文件内容(不可以向上翻一行,可以前后翻页(Ctrl+b、空格)、向下翻一行{回车键、Ctrl+m} )
less 与more相似,可以往前翻一行(可以前后翻页(空格、pgup键和pgdn键)、向上翻一行、向下翻一行(上下箭头键,回车))
tail 默认查看文件的后十行
head 默认查看文件的前十行
nl 查看文件内容,同时顺便的显示行号
二、用户管理
1、简介:Linux具有相当高的安全机制,不同的用户具备不同的权限操作。
2、用户分类:
UID=0的 是超级用户
UID=500~60000 为普通用户
UID=1~499 是伪用户(与系统和程序服务相关)
3、常用命令:
添加一个用户:useradd [-ugGdsce] 用户名
useradd -g webadmin -G root,web -c 'test suer' bob
-u UID
-g 缺省所属用户组GID
-G 指定用户属于多个组
-d 宿主目录
-s 命令解析器Shell
-c 描述信息
-e 指定用户失效时间
设置密码:passwd 用户名
修改用户信息:
修改用户名: usermod -l 新用户名 旧用户名
添加用户所属组:usermod -G sys bob_fu
删除一个用户:userdel [-r] 用户名 (-r 删除用户的宿主目录)
给组设置密码: gpasswd 组名
gpasswd [-adArR] 用户名 组名
-a 将一个用户添加到某个组
-d 将用户从组中删除
-A 设置用户组管理员
-r 删除用户组密码
-R 禁止用户切换为改组
例如:
gpasswd webadmin
gpasswd -a bob_fu webadmin
gpasswd -A bob_fu webadmin
gpasswd -r webadmin
锁定一个用户:passwd -l jack / usermod -L jack
解锁一个用户:passwd -uf jack / usermod -U jack
切换所属组:newgrp webadmin
查看所属组:groups lisi
添加组:groupadd [-g GID] 组名 (查看: grep webadmin /etc/group)
删除组:groupdel webadmin
组改名:groupmod -n 新名 旧名
4、其他相关命令:
pwck 检测/etc/passwd文件(锁定文件)
vipw 编辑/etc/passwd文件查看(锁定文件)
id 查看用户id和组信息
finger 查看用户详细信息
su 切换用户 (su - 用户名)
passwd -S 查看用户密码状态
who、w 查看当前灯虎用户信息
grpck 用户组配置文件检测
vigr 编辑/etc/group文件(锁定文件)
chage [-lmM] 设置密码(LINUX下可用)
-l 查看用户密码设置 chage -l jack
-m 密码修改的最小天数
-M 密码修改的最大天数
-d 密码最后修改的日期
-I 密码过期后,牟定账号的天数
-E 设置密码过期日期,若为0,表示密码立即过期,若为-1则永不过期
-W 设置密码过期前,开始警告天数
三、磁盘管理
1、简介:要进行磁盘管理,首先我们需要知道磁盘的基本使用状况,使用了多少,还剩多少等等。df命令可以帮助我们看到它。
2、查看磁盘分区使用状况
- df [选项] [文件]
选项:
- -a 全部文件系统列表
- -h 方便阅读方式显示
- -H 等于“-h”,但是计算式,1K=1000,而不是1K=1024
- -l 只显示本地文件系统
- -T 文件系统类型
- -t <文件系统类型> 只显示选定文件系统的磁盘信息
- -x <文件系统类型> 不显示选定文件系统的磁盘信息
- [root@localhost ~]# df -hTl
- Filesystem Type Size Used Avail Use% Mounted on
- /dev/mapper/centos-root xfs 18G 1.1G 17G 6% /
- devtmpfs devtmpfs 479M 0 479M 0% /dev
- tmpfs tmpfs 489M 0 489M 0% /dev/shm
- tmpfs tmpfs 489M 6.7M 483M 2% /run
- tmpfs tmpfs 489M 0 489M 0% /sys/fs/cgroup
- /dev/sda1 xfs 497M 126M 371M 26% /boot
- tmpfs tmpfs 98M 0 98M 0% /run/user/0
如果我们想要看到某个目录下文件的大小,可以使用du命令:
- [root@localhost /]# du -sh /etc/
- 23M /etc/
3、分区
在使用新的硬盘之前,我们必须对其进行分区。也就是在磁盘中存储分区信息,告诉操作系统哪个扇区是哪个分区的,哪个分区用来启动的等等。
分区信息的储存方式有两个标准,MBR和GPT,分区之前,我们必须在两个之中选择一种标准。
GPT是一种新的标准,随着硬盘的不断增大,正在逐渐地取代MBR,但是现在MBR的也是不少的。
你那么MBR和GPT有什么区别呢?
MBR
MBR的意思是“主引导记录”。之所以叫“主引导记录”,是因为它是存在于驱动器开始部分的一个特殊的启动扇区。这个扇区包含了已安装的操作系统的启动加载器和驱动器的逻辑分区信息。所谓启动加载器,是一小段代码,用于加载驱动器上其他分区上更大的加载器。如何MBR被覆盖,操作系统就无法启动了。
MBR支持最大2TB磁盘,它无法处理大于2TB容量的磁盘。MBR还只支持最多4个主分区——如果你想要更多分区,你需要创建所谓“扩展分区”,并在其中创建逻辑分区。
GPT
GPT意为GUID分区表。(GUID意为全局唯一标识符)。这是
一个正逐渐取代MBR的新标准。它和UEFI相辅相成——UEFI用于取代老旧的BIOS,而GPT则取代老旧的MBR。之所以叫作“GUID分区表”,是因为你的驱动器上的每个分区都有一个全局唯一的标识符(globally unique identifier,GUID)——这是一个随机生成的字符串,可以保证为地球上的每一个GPT分区都分配完全唯一的标识符。
在MBR磁盘上,分区和启动信息是保存在一起的。如果这部分数据被覆盖或破坏,事情就麻烦了。相对的,GPT在整个磁盘上保存多个这部分信息的副本,因此它更为健壮,并可以恢复被破坏的这部分信息。
GPT的硬盘大小大得多,几乎没有限制,最大可支持18EB。而主分区的数量也非常多,可以支持多达128个主分区,所以在GPT中没有扩展分区和逻辑分区的概念,都是主分区,当然也是可以创建的,但是没有必要。
但GPT也有缺点,就是不太适合x86,也就是32位的系统。
了解了分区标准之后,我们来进行磁盘的分区。
首先使用MBR进行分区。
博主使用虚拟机,所以可以很方便的进行硬盘的添加。
添加了一块4GB的硬盘。
打开虚拟机,使用fdisk命令进行分区。
- [root@localhost ~]# fdisk
- Usage:
- fdisk [options] <disk> change partition table
- fdisk [options] -l <disk> list partition table(s)
- fdisk -s <partition> give partition size(s) in blocks
- Options:
- -b <size> sector size (512, 1024, 2048 or 4096)
- -c[=<mode>] compatible mode: 'dos' or 'nondos' (default)
- -h print this help text
- -u[=<unit>] display units: 'cylinders' or 'sectors' (default)
- -v print program version
- -C <number> specify the number of cylinders
- -H <number> specify the number of heads
- -S <number> specify the number of sectors per track
- [root@localhost ~]# fdisk -l
- Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
- Units = sectors of 1 * 512 = 512 bytes
- Sector size (logical/physical): 512 bytes / 512 bytes
- I/O size (minimum/optimal): 512 bytes / 512 bytes
- Disk label type: dos
- Disk identifier: 0x0002b2d2
- Device Boot Start End Blocks Id System
- /dev/sda1 * 2048 1026047 512000 83 Linux
- /dev/sda2 1026048 41943039 20458496 8e Linux LVM
- Disk /dev/sdb: 4294 MB, 4294967296 bytes, 8388608 sectors
- Units = sectors of 1 * 512 = 512 bytes
- Sector size (logical/physical): 512 bytes / 512 bytes
- I/O size (minimum/optimal): 512 bytes / 512 bytes
然后使用fdisk /dev/sdb就可以进行分区了。
- [root@localhost ~]# fdisk /dev/sdb
- Welcome to fdisk (util-linux 2.23.2).
- Changes will remain in memory only, until you decide to write them.
- Be careful before using the write command.
- Device does not contain a recognized partition table
- Building a new DOS disklabel with disk identifier 0xf286ed4d.
- Command (m for help):
- Command (m for help): n
- Partition type:
- p primary (0 primary, 0 extended, 4 free)
- e extended
- Select (default p): p
- Partition number (1-4, default 1):
- First sector (2048-8388607, default 2048):
- Using default value 2048
- Last sector, +sectors or +size{K,M,G} (2048-8388607, default 8388607): +1G
- Partition 1 of type Linux and of size 1 GiB is set
再添加一个扩展分区,剩下的空间都给它。
- Command (m for help): n
- Partition type:
- p primary (1 primary, 0 extended, 3 free)
- e extended
- Select (default p): e
- Partition number (2-4, default 2):
- First sector (2099200-8388607, default 2099200):
- Using default value 2099200
- Last sector, +sectors or +size{K,M,G} (2099200-8388607, default 8388607):
- Using default value 8388607
- Partition 2 of type Extended and of size 3 GiB is set
- Command (m for help):
- Command (m for help): p
- Disk /dev/sdb: 4294 MB, 4294967296 bytes, 8388608 sectors
- Units = sectors of 1 * 512 = 512 bytes
- Sector size (logical/physical): 512 bytes / 512 bytes
- I/O size (minimum/optimal): 512 bytes / 512 bytes
- Disk label type: dos
- Disk identifier: 0xf286ed4d
- Device Boot Start End Blocks Id System
- /dev/sdb1 2048 2099199 1048576 83 Linux
- /dev/sdb2 2099200 8388607 3144704 5 Extended
- /dev/sdb5 2101248 6295551 2097152 83 Linux
- /dev/sdb6 6297600 8388607 1045504 83 Linux
这里就直接退出保存了。
使用fdisk查看。确实已经分区好了。
- [root@localhost ~]# fdisk -l
- Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
- Units = sectors of 1 * 512 = 512 bytes
- Sector size (logical/physical): 512 bytes / 512 bytes
- I/O size (minimum/optimal): 512 bytes / 512 bytes
- Disk label type: dos
- Disk identifier: 0x0002b2d2
- Device Boot Start End Blocks Id System
- /dev/sda1 * 2048 1026047 512000 83 Linux
- /dev/sda2 1026048 41943039 20458496 8e Linux LVM
- Disk /dev/sdb: 4294 MB, 4294967296 bytes, 8388608 sectors
- Units = sectors of 1 * 512 = 512 bytes
- Sector size (logical/physical): 512 bytes / 512 bytes
- I/O size (minimum/optimal): 512 bytes / 512 bytes
- Disk label type: dos
- Disk identifier: 0xf286ed4d
- Device Boot Start End Blocks Id System
- /dev/sdb1 2048 2099199 1048576 83 Linux
- /dev/sdb2 2099200 8388607 3144704 5 Extended
- /dev/sdb5 2101248 6295551 2097152 83 Linux
- /dev/sdb6 6297600 8388607 1045504 83 Linux
使用GPT进行分区不能使用fdisk命令,这个命令只能用来进行MBR分区,要进行GPT分区需要使用parted命令。
首先也是增加一个新的硬盘:增加了一个5G的硬盘。
使用parted命令:
- [root@localhost ~]# parted
- GNU Parted 3.1
- Using /dev/sda
- Welcome to GNU Parted! Type 'help' to view a list of commands.
- (parted)
所以我们需要切换成第三块硬盘。
- (parted) select /dev/sdc
- Using /dev/sdc
- (parted) mklabel gpt
- (parted) mkpart
- Partition name? []?
- File system type? [ext2]?
- Start? 1M
- End? 2000M
- (parted) print
- Model: VMware, VMware Virtual S (scsi)
- Disk /dev/sdc: 5369MB
- Sector size (logical/physical): 512B/512B
- Partition Table: gpt
- Disk Flags:
- Number Start End Size File system Name Flags
- 1 1049kB 2000MB 1999MB
- 2 2000MB 2500MB 500MB
- 3 2500MB 3000MB 500MB
- 4 3000MB 4000MB 1000MB
- 5 4000MB 5000MB 999MB
最后直接quit就可以退出并保存了。
- Disk /dev/sdc: 5368 MB, 5368709120 bytes, 10485760 sectors
- Units = sectors of 1 * 512 = 512 bytes
- Sector size (logical/physical): 512 bytes / 512 bytes
- I/O size (minimum/optimal): 512 bytes / 512 bytes
- Disk label type: gpt
- # Start End Size Type Name
- 1 2048 3905535 1.9G Microsoft basic
- 2 3905536 4882431 477M Microsoft basic
- 3 4882432 5859327 477M Microsoft basic
- 4 5859328 7813119 954M Microsoft basic
- 5 7813120 9764863 953M Microsoft basic
- [root@localhost ~]# mkfs -t ext4 /dev/sdc1
- mke2fs 1.42.9 (28-Dec-2013)
- Filesystem label=
- OS type: Linux
- Block size=4096 (log=2)
- Fragment size=4096 (log=2)
- Stride=0 blocks, Stripe width=0 blocks
- 122160 inodes, 487936 blocks
- 24396 blocks (5.00%) reserved for the super user
- First data block=0
- Maximum filesystem blocks=501219328
- 15 block groups
- 32768 blocks per group, 32768 fragments per group
- 8144 inodes per group
- Superblock backups stored on blocks:
- 32768, 98304, 163840, 229376, 294912
- Allocating group tables: done
- Writing inode tables: done
- Creating journal (8192 blocks): done
- Writing superblocks and filesystem accounting information: done
- Using /dev/sdc
- (parted) p
- Model: VMware, VMware Virtual S (scsi)
- Disk /dev/sdc: 5369MB
- Sector size (logical/physical): 512B/512B
- Partition Table: gpt
- Disk Flags:
- Number Start End Size File system Name Flags
- 1 1049kB 2000MB 1999MB ext4
- 2 2000MB 2500MB 500MB
- 3 2500MB 3000MB 500MB
- 4 3000MB 4000MB 1000MB
- 5 4000MB 5000MB 999MB
挂载分区使用mount命令即可:
- [root@localhost ~]# mkdir /mnt/testDisk
- [root@localhost ~]# mount /dev/sdc1/ /mnt/testDisk/
- [root@localhost testDisk]# df -lh
- Filesystem Size Used Avail Use% Mounted on
- /dev/mapper/centos-root 18G 1.1G 17G 6% /
- devtmpfs 479M 0 479M 0% /dev
- tmpfs 489M 0 489M 0% /dev/shm
- tmpfs 489M 6.8M 483M 2% /run
- tmpfs 489M 0 489M 0% /sys/fs/cgroup
- /dev/sda1 497M 126M 371M 26% /boot
- tmpfs 98M 0 98M 0% /run/user/0
- /dev/sdc1 1.9G 5.7M 1.7G 1% /mnt/testDisk
但是使用mount只是临时挂载,如果需要永久挂载,需要对/etc/fstab进行配置。
以上是普通分区,如果需要添加swap分区,在parted地方,需要修改某个分区的16进制编码。
使用mkswap即可修改。
- mkswap /dev/sdc2
——————————————————————————————————————————————
以上就是我们对用户管理、磁盘管理、文件管理的总结。