第1章 磁盘管理
1.1 必须要了解的。
1.1.1 ps aux 命令中 RSS 与VSZ的含义
rss 进程占用的物理内存的大小 单位:kb ;
vsz 进程占用的虚拟的内存大小(物理内存+swap)
1.1.2 top命令的参数
M 按照内存使用率排序
P 按照cpu的使用率排序
1.1.3 htop 命令的安装方法
要配置 epel源
http://mirrors.aliyun.com
1.2 磁盘分区之parted + gpt
1.2.1 fdisk 与 parted 的区别
fdisk mbr 分区表 硬盘容量小于2TB
parted gpt 分区表 硬盘容量大于2TB
1.2.2 查看下帮助信息
[root@znix ~]# parted /dev/sdc
GNU Parted 2.1
Using /dev/sdc
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) h
mklabel,mktable LABEL-TYPE create a new disklabel (partition table)
创建分区表
mkpart PART-TYPE [FS-TYPE] START END make a partition
创建一个分区
mkpartfs PART-TYPE FS-TYPE START END make a partition with a file system
创建一个分区 分区带着文件系统
print [devices|free|list,all|NUMBER] display the partition table, available
devices, free space, all found partitions, or a particular partition
显示分区信息
rm NUMBER delete partition NUMBER
删除一个分区
1.2.3 创建分区表
[root@znix ~]# parted /dev/sdc
GNU Parted 2.1
Using /dev/sdc
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt #创建GPT分区表
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 107MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1.2.4 mkpart 可以使用的PART-TYPE类型
GPT 格式可以创建N个主分区,所以类型都选为主分区即可。
(parted) help mkpart
mkpart PART-TYPE [FS-TYPE] START END make a partition
PART-TYPE is one of: primary, logical, extended
主分区 ,逻辑分区 ,扩展分区
1.2.5 对磁盘进行分区
(parted) mkpart primary 0 10
Warning: The resulting partition is not properly aligned for best performance.
提示分区没有对齐,这个错误无视即可。
Ignore/Cancel? I 忽略/取消
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 107MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 17.4kB 10.0MB 9983kB primary
1.2.6 再创建一个分区
(parted) mkpart primary 10 20
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 107MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 17.4kB 10.0MB 9983kB primary
2 10.5MB 19.9MB 9437kB primary
⚠注意:parted 创建分区实时生效,比较危险。
1.3 使用parted命令非交互式创建分区
[root@znix ~]# parted /dev/sdc mkpart primary 50 100
Information: You may need to update /etc/fstab.
[root@znix ~]# parted /dev/sdc print #显示磁盘的格式
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 107MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 17.4kB 50.0MB 50.0MB primary
2 50.3MB 99.6MB 49.3MB primary
1.4 创建swap分区及使用
【JAVA环境常见】linux内存不够用,会使用swap分区。
1.4.1 手动添加swap空间,创建一个文件
使用dd 命令创建一个块文件。
[root@znix ~]# dd if=/dev/zero of=/tmp/100M bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 2.96654 s, 35.3 MB/s
[root@znix ~]# ll -h /tmp/100M
-rw-r--r-- 1 root root 100M Sep 18 10:01 /tmp/100M
1.4.2 查看创建出来的文件的类型
现在的类型为data 数据块。
[root@znix ~]# file /tmp/100M
/tmp/100M: data
1.4.3 将这个文件变成swap
mkswap命令将文件类型格式化成swap格式
[root@znix ~]# mkswap /tmp/100M
mkswap: /tmp/100M: warning: don't erase bootbits sectors
on whole disk. Use -f to force.
Setting up swapspace version 1, size = 102396 KiB
no label, UUID=81fa08be-a18f-4bc6-b950-fa3d90f969a1
1.4.4 修改之后的文件类型:
[root@znix ~]# file /tmp/100M
/tmp/100M: Linux/i386 swap file (new style) 1 (4K pages) size 25599 pages
1.4.5 让这个文件起作用,将swap空间添加到系统中
实例1-1 查看swap的所使用情况
[root@znix ~]# free -h
total used free shared buffers cached
Mem: 474M 465M 8.8M 252K 15M 357M
-/+ buffers/cache: 93M 381M
Swap: 767M 0B 767M
实例1-2 使用swap命令将swap文件,添加到系统中。
[root@znix ~]# swapon /tmp/100M
实例1-3 现在查看 swap的使用情况
[root@znix ~]# free -h
total used free shared buffers cached
Mem: 474M 465M 8.7M 252K 15M 357M
-/+ buffers/cache: 93M 381M
Swap: 867M 0B 867M
实例1-4 查看swap的详细信息,使用 swap -s 。
[root@znix ~]# swapon -s
Filename Type Size Used Priority
/dev/sda2 partition 786428 0 -1
/tmp/100M file 102396 0 -2
1.4.6 如何让添加的swap文件永久生效
1)把命令放入/etc/rc.local 开机自启动文件中。
a) swapon /tmp/100M 命令
2)写入/etc/fstab 文件中
/tmp/100M swap swap defaults 0 0
第5列 dump备份
第6列 磁盘检查
1.5 文件系统
1.5.1 文件系统的作用:
文件系统决定文件在磁盘上是怎么存放的
1.5.2 文件系统的组成:
超级块 super block· dumpe2fs -h /dev/sdb1 显示超级快中的信息。
[root@znix ~]# dumpe2fs -h /dev/sdb1
dumpe2fs 1.41.12 (17-May-2010)
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem UUID: 7101630b-b325-49d1-92b9-0a500c2a07f6
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 25896
Block count: 103424
Reserved block count: 5171
Free blocks: 94502
Free inodes: 25885
First block: 1
Block size: 1024 # block的大小
Fragment size: 1024
Reserved GDT blocks: 256
Blocks per group: 8192
Fragments per group: 8192
Inodes per group: 1992
Inode blocks per group: 249
Flex block group size: 16
Filesystem created: Fri Sep 15 12:01:27 2017
Last mount time: Fri Sep 15 12:02:37 2017
Last write time: Fri Sep 15 16:38:30 2017
Mount count: 1 #挂载的次数
Maximum mount count: -1
……
1.6 常用的文件系统
opensuse linux 默认文件系统 ReiserFS
Centos7 采用 XFS 文件系统
Centos6 采用ext4 文件系统
Centos5 采用ext3 文件系统
IBM 的 AIX使用JFS 日志文件系统。
1.6.1 查看系统中的文件系统
df -T 参数,显示的是分区的文件类型 type 。
[root@znix ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda3 ext4 8.8G 2.1G 6.3G 26% /
tmpfs tmpfs 238M 0 238M 0% /dev/shm
/dev/sda1 ext4 190M 40M 141M 22% /boot
tmpfs 是临时文件系统,速度较快。
1.6.2 文件系统使用范围
ReiserFS 适用于大量小文件的
xfs 适合数据库
ext4 使用较广,适用于大多数的用途。
ext2 没有日志的功能 (速度较快)
1.7 测试磁盘的读写速度
1.7.1 测试写入速度 dd 命令
[root@znix ~]# dd if=/dev/zero of=/tmp/100M bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 2.96654 s, 35.3 MB/s
[root@znix ~]# ll -h /tmp/100M
-rw-r--r-- 1 root root 100M Sep 18 10:01 /tmp/100M
1.7.2 测试读取速度 hdparm
[root@znix ~]# hdparm -t /dev/sdb
/dev/sdb:
Timing buffered disk reads: 102 MB in 0.81 seconds = 125.23 MB/sec
第2章 sed命令详解
2.1 sed 命令的作用
sed 取某一行 查找替换。
增加 删除 修改 查询
sed == stream editor 字符流编辑器
sed命令的格式:
sed '找谁干啥' files
pattern space 模式空间
hold space 保留空间
2.2 sed常用命令的功能
2.2.1 环境准备
[root@znix ~]# cat person.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
2.3 查询过程
2.3.1 指定行号
[root@znix ~]# sed -n '3p' person.txt
103,Alex,COO
2.3.2 指定内容,p显示
[root@znix ~]# sed -n '/yy/p' person.txt
104,yy,CFO
2.3.3 查找连续的行(指定行号)
[root@znix ~]# sed -n '1,5p' person.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
2.3.4 从包含101的行,到包含103的行
[root@znix ~]# sed -n '/101/,/103/p' person.txt
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
2.3.5 从某一行到最后一行
$在sed中表示最后一行。
[root@znix ~]# sed -n '$p' person.txt
105,feixue,CIO
[root@znix ~]# sed -n '2,$p' person.txt
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
2.3.6 找第1,4,5行
一行中有多个命令用;分隔。
[root@znix ~]# sed '1p;4p;5p' -n person.txt
101,oldboy,CEO
104,yy,CFO
105,feixue,CIO
2.4 sed的删除测试
d 删除
2.4.1 删除第一行
加上-i 参数,删除文件的内容
[root@znix ~]# sed '1d' person.txt
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
2.4.2 显示不包含oldboy的行
!表示取反
[root@znix ~]# sed '/oldboy/d' person.txt
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
105,feixue,CIO
[root@znix ~]# sed -n '/oldboy/!p' person.txt
102,zhangyao,CTO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
2.5 插入
2.5.1 i 插入到文件的行的上一行 insert
[root@znix ~]# sed '3i 100,znix,OOO' person.txt #i之后的空格就可以不些
101,oldboy,CEO
102,zhangyao,CTO
100,znix,OOO
103,Alex,COO
104,yy,CFO
105,feixue,CIO
2.5.2 a 追加到文件的行的下一行 append
[root@znix ~]# sed '3a 100,znix,OOO' person.txt #a之后的空格就可以不些
101,oldboy,CEO
102,zhangyao,CTO
103,Alex,COO
100,znix,OOO
104,yy,CFO
105,feixue,CIO
第3章 linux里面与windows互相传文件
3.1 使用 lrzsz ,需要yum 安装
[root@znix ~]# yum install lrzsz
rz 把文件上传到linux (直接把windows文件拖到xshell窗口即可)
sz 把linux的文件下载到windows中.
3.2 把文件打包,压缩。
打包格式要在linux和windows 中都可以使用,可以选择zip格式。
[root@znix ~]# zip -r /tmp/etc_$(date +%F).zip /etc/
adding: etc/ (stored 0%)
adding: etc/passwd (deflated 61%)
adding: etc/ltrace.conf (deflated 73%)
adding: etc/filesystems (deflated 16%)
……
3.3 下载文件
[root@znix ~]# sz /tmp/ser_2017-09-08_16.tar.gz
3.4 长传文件
[root@znix ~]# rz