vim、find、bash、权限、磁盘管理
2015-09-06 11:03
381 查看
Vim编辑器:全屏幕的编辑器/可视化接口:VIMvim: 模式化: 编辑模式(命令模式): 输入模式: 末行模式: 编辑模式 --> 输入模式: i: insert, a:append, o:new line, I: 行首 A:行尾 O:上方新建行 输入模式 --> 编辑模式:“ESC” 编辑模式 --> 末行模式:“:” 末行模式 --> 编辑模式:"ESC" 打开vim: # vim # vim /PATH/TO/SOMEFILE/目标文件 # vim 加目标文件行号 # vim 加目标文件需要查找的元字符 关闭vim:编辑模式下 :q 退出 :q! 强制退出,对之前的修改不做保留 :wq 保存退出 :x 保存退出,好像通过内核 ZZ:保存退出 光标跳转: 字符间跳转: h: 向左 l:向右 j:向下 k:向上 单词间跳转: w:后单词的词首 e:当前或后一个单词的词尾; b:当前或前一单词的词首; 行内跳转: ^: 跳转至行首的第一个非空白字符; 0:跳转至行首; $: 跳转至行尾; 行间移动: #G: 行号加G 1G, gg-->跳转至行首 G 跳转至行尾 句间移动: )句首 (句尾 段落间移动: }跳至段首 {跳至段尾 编辑命令: 字符编辑: x: 删除光标所在处的字符 #x:删除光标所在处的开始向后#个字符 xp: r: 替换光标所在处的字符; 删除命令: d: 和行内跳转,字符跳转连用 d^:删除光标处至行首间的字符 d$:删除光标处至行尾间的字符 dd:删除光标处一整行的内容 dw, de, db 注意:删除的内容会被vim编辑器保存至缓冲区当中; 粘贴:p (paste, put) 如果此复制或删除的内容不是一个完整行 p:粘贴至当前光标所在处后面; P(大写):粘贴至当前光标所在处前面; 如果复制的内容是完整行(可不止一行) p: 粘贴至当前光标所在行下方; P(大写):行上方; 复制命令:y, yank(用法同删除命令) y y$, y^, y0 ye, yw, yb yy: 复制行改变命令:c, change(用法同删除命令) c$, c^, c0 cb, ce, cw cc: 撤消此前的编辑操作: u: undo 撤消此前编辑操作; #u Ctrl+r: 恢复此前的撤消操作 ".": 重复前一个编辑操作 翻屏操作: Ctrl+f: 向后一屏; Ctrl+b:向前一屏; Ctrl+d: 向后半屏 Ctrl+u: 向前半屏 vim内建教程: vimtutor vim的末行模式 (1) 地址,定界 :start_pos,end_pos #:第#行; #,#:第#行到第#行 #,+#:第#行 .: 当前行 $: 最后一行 %: 全文,相当于1,$ /pat1/:第一次被此模式所匹配到的行; #,/pat1/:第#次被匹配到的行到后面第#行 /pat1/,/pat2/ 后可跟编辑命令: d, y, w, r (2) 查找 /PATTERN:向尾部进行 ?PATTERN:向首部进行 n: 与命令同方向 N:与命令反方向 (3) 查找替换 s: 在末行模式下,在地址定界的范围内完成查找替换操作; s/要查找的内容/替换为的内容/修饰符 要查找的内容:可使用模式 替换为的内容:不能使用模式,但可以使用后向引用符号,以引用前面模式中的分组括号所匹配到的内容; \1, \2, ... &:引用“要找的内容”匹配到的整个内容; 修饰符: i: 忽略大小写 g: 全局替换 /:用于分隔符,所以,要查找的内容或替换为的内容中出现此符号,要使用\对其转义,使用格式:\/ 分隔符可替换为其它字符:例如@,#等;搜索及替换命令
/pattern:从光标开始处向文件尾搜索pattern
?pattern:从光标开始处向文件首搜索pattern
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令
:s/p1/p2/g:将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:将文件中所有p1均用p2替换 多文件模式: vim FILE1 FILE2... :next 下一个打开的文件 :first 第一个打开的文件 :prev 向前一个打开的文件 :last:最后一个打开的文件 :wqall 保存所有 :q!all 强制退出,不保存所有 多文件窗口分割: vim -o|-O FILE1FILE2 ... Ctrl+w, ARROW 单文件窗口分割: Ctrl+w, s: split,水平分割 Ctrl+w, v:vertical, 垂直分割 定制vim的某些工作特性: (1) 行号 显示:set nu 禁用:set nonu (2) 括号匹配 显示:set sm 禁用:set nosm (3) 自动缩进: set ai set noai (4) 高亮搜索 set hlsearch set nohlsearch (5) 语法着色 syntax on syntax off (6) 忽略字符大小写 set ic set noic :help 获取帮助 :help SUBJECT 特性设定的永久生效方式: 全局配置文件:/etc/vimrc 用户个人的配置文件:~/.vimrc FIND(文件查找): 在文件系统上查找符合条件的文件的过程;文件查找:locate, find locate: 非实时查找工具;依赖于事先构建的索引;索引的构建是在系统较为空闲时自动进行(周期性任务);手动更新此数据库(updatedb);查找速度快;模糊查找; find:实时查找;查找速度略慢;精确查找; find命令: find [OPTION]...[查找路径] [查找条件] [处理动作] 查找路径:默认为当前路径; 查找条件:指定的查找标准,可以根据文件名、大小、属主属组、类型等进行;默认为找出指定路径下的所有文件; 处理动作:对符合条件的文件做什么操作;默认为输出至屏幕; 查找条件: 根据文件名进行查找: -name "文件名称": 支持使用glob,*, ?, [] -iname "文件名称":不区分字符大小写,支持使用glob; -regex "PATTERN":以PATTERN匹配整个文件路径字符串,而不仅仅是文件名称; 根据属主、属组查找: -user USERNAME: 查找属主为指定用户的文件; -groupGROUPNAME: 查找属组为指定组的文件 -uid UserID: 查找文件的属主指定uid的文件; -gidGroupID: -nouser: 查找没有属主的文件; -nogroup:查找没有属组的文件; 根据文件类型进行查找: -type TYPE f: 普通文件 d: 目录 l: 符号链接 b: 块设备 c: 字符设备 p: 命名管道 s: 套接字 组合查找条件: 与条件:-a 或条件:-o 非条件:-not, ! !A -o !B = !(A -aB) !A -a !B = !(A -oB) 根据文件大小来查找: -size [+|-]#UNIT 单位:k, M, G #UNIT: (#-1,#] 半开半闭区间 +#UNIT: (#,+oo) 即#<目的值<+oo -#UNIT:[0,#-1] 即0<=#<=#-1 根据时间戳: 以“天”为单位 -atime [+|-]# 查找在指定时间曾被存取过的文件或目录,单位以24小时计算 #:[#,#+1) +#: [#+1,oo] -#: [0,#) -mtime 查找在指定时间曾被更改过的文件或目录,单位以24小时计算 -ctime 查找在指定时间之时被更改的文件或目录,单位以24小时计算 以“分钟”为单位 -amin -mmin -cmin 根据权限: -perm [/|-]MODE MODE: 精确权限匹配 /MODE:任何一类对象(u,g,o)的任何一位权限符合条件即可;隐含或条件; /400 -MODE:为每一类对象指定的每一位权限都必须同时存在方为符合条件;隐含与条件; 处理动作: -print: 默认处理动作 -ls:类似于对查找到的每个文件做"ls -l"的操作; -delete: 删除查找到的文件; -fls/path/to/somefile:查找到的文件的详细路径信息保存至指定文件中; -ok COMMAND {} \; 对每个文件执行指定的命令之前需要用户事先确认; -exec COMMAND {}\; 无需用户确认; bash环境配置: 配置文件,生效范围划分,存在两类: 全局配置: /etc/profile,/etc/profile.d/*.sh /etc/bashrc 个人配置: ~/.bash_profile ~/.bashrc 按功能划分,存在两类: profile类:为交互式登录的shell提供配置 /etc/profile,/etc/profile.d/*.sh ~/.bash_profile 功用: (1) 定义环境变量,例如PATH、PS1 (2) 运行命令或脚本 bashrc类:为非交互式登录shell提供配置 /etc/bashrc ~/.bashrc 功用: (1) 定义命令别名; (2) 定义本地变量; 变量:内存空间,变量名 类型: 环境变量:作用范围当前shell进程及其子进程 本地变量:作用范围当前shell进程 局部变量:作用范围仅为当前shell进程中某代码片断(通常为函数上下文) 位置变量:$1, $2 特殊变量:$? 变量定义方式: bash内置变量:可直接调用,内置了许多环境变量,例如PATH等 自定义变量: 变量赋值:变量名=值 bash弱类型: 变量存储数据时,默认均采用字符形式;任何变量可以不经声明,直接引用; 120:24bits 120: 8bits 定义本地变量: name=value 查看:set 定义环境变量: export name=value declare -xname=value 查看:env, printenv, export 撤消变量: unset name 引用变量: ${name}, $name bash中的引用符号: '': 强引用,变量替换不会发生 "":弱引用 ``: 命令引用 shell登录类型: 交互式登录: 直接通过终端进行的登录; 通过su -l Username命令实现的用户切换; 非交互式登录: 图形界面下打开的命令行窗口; 执行脚本; su Username; 配置文件作用次序: 交互式登录: /etc/profile--> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc -->/etc/bashrc 非交互式登录: ~/.bashrc -->/etc/bashrc --> /etc/profile.d/*.sh 编辑配置文件定义的新配置如何生效? (1) 重新登录; (2) 让当前shell进程去重新读取指定的配置文件; source/PATH/TO/SOMEFILE ./PATH/TO/SOMEFILE 注意:副作用 问题: 1、定义对所有用都生效的别名? 2、如果仅需要PATH环境变量的修改仅对root用户生效,该如何操作? Linux文件系统上的特殊权限 权限模型: u, g, o r, w, x 进程的安全上下文: 前提:进程有属主(进程以哪个用户的身份运行);文件有属主和属组; (1) 用户是否能够把某个可执行程序文件启动为进程,取决于用户对程序文件是否拥有执行权限; (2) 程序启动为进程后,此进程的属主为当前用户,也即进程的发起者;进程所属的组,为发起者的基本组; (3) 进程拥的访问权限,取决其属主的访问权限: (a) 进程的属主,同文件属主,则应用文件属主权限; (b) 进程的属主,属于文件的属组,则应用文件属组权限; (c) 则应用其它权限; SUID: (1) 任何一个可执行程序文件能不能启动为进程:取决于发起者对程序文件是否有执行权限; (2) 启动为进程之后,其属主不是发起者,而程序文件自己的属主;这种机制即为SUID; 权限设定: chmod u+sFILE... chmod u-s FILE... 注意: s: 属主原本拥有x权限; S: 属主原本无x权限; SGID: 默认情况下,用户创建文件时,其属级为此用户所属的基本组; 一旦某目录被设定了SGID权限,则对此目录拥有写权限的用户在此目录中创建的文件所属的组为目录的属组,而非用户的基本组; 权限设定: chmod g+s FILE... chmod g-s FILE... Sticky: 对于一个多人可写的目录,此权限用于限制每个仅能删除自己的文件; 权限设定 chmod o+t FILE... chmod o-t FILE... SUID, SGID,STICKY 000 001 010 011 100 101 110 111 数字修改权限的方法:4 为 SUID
2 为 SGID
1 为 SBIT
chmod 4777 FILE chmod 3755 DIRLinux系统管理
磁盘和文件系统管理;
RAID, LVM; btrfs;
程序包管理:rpm, yum(dnf)
Linux的网络管理;
进程和作业管理:htop, glances, tsar;
sed和awk;
Linux系统的开机启动流程;
内核基础知识,内核定制编译;
系统安装:kickstart, pxe
Linux磁盘管理
硬盘:
机械式硬盘
SSD
机械式:
track
sector: 512bytes
cylinder: 分区的基本单位;
MBR:Master Boot Record
512bytes
446: bootloader
64: filesystem allocation table
16: 标识一个分区
2:55AA
磁盘接口类型:
IDE (ATA):133MB/s,/dev/hd
SCSI: 640MB/s
SATA:6Gbps
SAS:6Gbps
USB:480MB/s
识别硬盘设备:/dev/sdN
标记不同的硬盘设备:/dev/sd[a-z]
标记同一设备上的不同分区:/dev/sd[a-z][1-]
1-4: 主或扩展分区标识
5+:逻辑分区标识
设备文件:特殊文件
设备号:
major, minor
major: 设备类型
minor: 同一类型下的不同设备
“块”:block,随机设备
“字符”:character,线性设备
GPT
分区:分隔存储空间为多个小的空间,每个空间可独立使用文件系统;
分区工具:
fdisk, parted, sfdisk
fdisk工具的使用:
最多支持在一块硬盘上的15个分区;
分区管理子命令:
p: 显示
n: 创建
d: 删除
t: 修改分区ID
l: 列出所有支持ID类型
w: 保存退出
q: 放弃修改并退出
m: 获取帮助
创建完成之后,查看内核是否已经识别新的分区:
# cat /proc/partitions
有三个命令可以让内核重读磁盘分区表:
CentOS 5: partprobe [DEVICE]
CentOS 6,7:
partx
kpartx
partx命令:
partx DEVICE
partx -a DEVICE
partx -a -n M:N DEVICE
M
M:
:N
kpartx命令:
kpartx -af DEVICE
Linux文件系统管理
文件系统:
VFS:Virtual File System
Linux:ext2, ext3, ext4, reiserfs, xfs, btrfs, swap
光盘:iso9660
Windows: fat32(vfat), ntfs
Unix: ffs, ufs, jfs, jfs2
网络文件系统:nfs, cifs
集群文件系统:ocfs2, gfs2
分布式文件系统:ceph,
moosefs, mogilefs, hdfs, gfs, glusterfs
(1) 日志型文件系统
非日志型文件系统:ext2
日志型文件系统:ext3
(2) swap:交换分区
创建文件系统:
在分区上执行格式化(高级格式化)
要使用某种文件系统,满足两个条件:
内核中:支持此种文件系统
用户空间:有文件系统管理工具
创建工具:mkfs (make filesystem)
mkfs -t type DEVICE
mkfs.type DEVICE
ext系列文件系统的专用管理工具:
mke2fs -t {ext2|ext3|ext4} DEVICE
-b BLOCK: 1024, 2048, 4096
-L 'LABEL': 设定卷标
blkid命令:
blkid DEVICE
LABEL, UUID, TYPE
例子:1、复制/etc/grub.cfg配置文件至/tmp目录,用查找替换命令删除/tmp/grub.cfg文件中的行首的空白字符;
2、复制/etc/rc.d/init.d/functions文件至/tmp目录,用查找替换命令为/tmp/functions的每行开头为空白字符的行的行首加一个#; 原有空白字符保留
3、替换/tmp/functions文件中的/etc/sysconfig/init为/var/log;
分隔符可替换为其它字符:例如@,#等;
4、删除/tmp/functions文件中所以#开头,且#后面至少跟了一个空白字符的行的行首#;
18、创建目录/test/data,让某组内普通用户对其有写权限,且创建的所有文件的属组为目录所属的组;此外,每个用户仅能删除自己的文件;
/pattern:从光标开始处向文件尾搜索pattern
?pattern:从光标开始处向文件首搜索pattern
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令
:s/p1/p2/g:将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:将文件中所有p1均用p2替换 多文件模式: vim FILE1 FILE2... :next 下一个打开的文件 :first 第一个打开的文件 :prev 向前一个打开的文件 :last:最后一个打开的文件 :wqall 保存所有 :q!all 强制退出,不保存所有 多文件窗口分割: vim -o|-O FILE1FILE2 ... Ctrl+w, ARROW 单文件窗口分割: Ctrl+w, s: split,水平分割 Ctrl+w, v:vertical, 垂直分割 定制vim的某些工作特性: (1) 行号 显示:set nu 禁用:set nonu (2) 括号匹配 显示:set sm 禁用:set nosm (3) 自动缩进: set ai set noai (4) 高亮搜索 set hlsearch set nohlsearch (5) 语法着色 syntax on syntax off (6) 忽略字符大小写 set ic set noic :help 获取帮助 :help SUBJECT 特性设定的永久生效方式: 全局配置文件:/etc/vimrc 用户个人的配置文件:~/.vimrc FIND(文件查找): 在文件系统上查找符合条件的文件的过程;文件查找:locate, find locate: 非实时查找工具;依赖于事先构建的索引;索引的构建是在系统较为空闲时自动进行(周期性任务);手动更新此数据库(updatedb);查找速度快;模糊查找; find:实时查找;查找速度略慢;精确查找; find命令: find [OPTION]...[查找路径] [查找条件] [处理动作] 查找路径:默认为当前路径; 查找条件:指定的查找标准,可以根据文件名、大小、属主属组、类型等进行;默认为找出指定路径下的所有文件; 处理动作:对符合条件的文件做什么操作;默认为输出至屏幕; 查找条件: 根据文件名进行查找: -name "文件名称": 支持使用glob,*, ?, [] -iname "文件名称":不区分字符大小写,支持使用glob; -regex "PATTERN":以PATTERN匹配整个文件路径字符串,而不仅仅是文件名称; 根据属主、属组查找: -user USERNAME: 查找属主为指定用户的文件; -groupGROUPNAME: 查找属组为指定组的文件 -uid UserID: 查找文件的属主指定uid的文件; -gidGroupID: -nouser: 查找没有属主的文件; -nogroup:查找没有属组的文件; 根据文件类型进行查找: -type TYPE f: 普通文件 d: 目录 l: 符号链接 b: 块设备 c: 字符设备 p: 命名管道 s: 套接字 组合查找条件: 与条件:-a 或条件:-o 非条件:-not, ! !A -o !B = !(A -aB) !A -a !B = !(A -oB) 根据文件大小来查找: -size [+|-]#UNIT 单位:k, M, G #UNIT: (#-1,#] 半开半闭区间 +#UNIT: (#,+oo) 即#<目的值<+oo -#UNIT:[0,#-1] 即0<=#<=#-1 根据时间戳: 以“天”为单位 -atime [+|-]# 查找在指定时间曾被存取过的文件或目录,单位以24小时计算 #:[#,#+1) +#: [#+1,oo] -#: [0,#) -mtime 查找在指定时间曾被更改过的文件或目录,单位以24小时计算 -ctime 查找在指定时间之时被更改的文件或目录,单位以24小时计算 以“分钟”为单位 -amin -mmin -cmin 根据权限: -perm [/|-]MODE MODE: 精确权限匹配 /MODE:任何一类对象(u,g,o)的任何一位权限符合条件即可;隐含或条件; /400 -MODE:为每一类对象指定的每一位权限都必须同时存在方为符合条件;隐含与条件; 处理动作: -print: 默认处理动作 -ls:类似于对查找到的每个文件做"ls -l"的操作; -delete: 删除查找到的文件; -fls/path/to/somefile:查找到的文件的详细路径信息保存至指定文件中; -ok COMMAND {} \; 对每个文件执行指定的命令之前需要用户事先确认; -exec COMMAND {}\; 无需用户确认; bash环境配置: 配置文件,生效范围划分,存在两类: 全局配置: /etc/profile,/etc/profile.d/*.sh /etc/bashrc 个人配置: ~/.bash_profile ~/.bashrc 按功能划分,存在两类: profile类:为交互式登录的shell提供配置 /etc/profile,/etc/profile.d/*.sh ~/.bash_profile 功用: (1) 定义环境变量,例如PATH、PS1 (2) 运行命令或脚本 bashrc类:为非交互式登录shell提供配置 /etc/bashrc ~/.bashrc 功用: (1) 定义命令别名; (2) 定义本地变量; 变量:内存空间,变量名 类型: 环境变量:作用范围当前shell进程及其子进程 本地变量:作用范围当前shell进程 局部变量:作用范围仅为当前shell进程中某代码片断(通常为函数上下文) 位置变量:$1, $2 特殊变量:$? 变量定义方式: bash内置变量:可直接调用,内置了许多环境变量,例如PATH等 自定义变量: 变量赋值:变量名=值 bash弱类型: 变量存储数据时,默认均采用字符形式;任何变量可以不经声明,直接引用; 120:24bits 120: 8bits 定义本地变量: name=value 查看:set 定义环境变量: export name=value declare -xname=value 查看:env, printenv, export 撤消变量: unset name 引用变量: ${name}, $name bash中的引用符号: '': 强引用,变量替换不会发生 "":弱引用 ``: 命令引用 shell登录类型: 交互式登录: 直接通过终端进行的登录; 通过su -l Username命令实现的用户切换; 非交互式登录: 图形界面下打开的命令行窗口; 执行脚本; su Username; 配置文件作用次序: 交互式登录: /etc/profile--> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc -->/etc/bashrc 非交互式登录: ~/.bashrc -->/etc/bashrc --> /etc/profile.d/*.sh 编辑配置文件定义的新配置如何生效? (1) 重新登录; (2) 让当前shell进程去重新读取指定的配置文件; source/PATH/TO/SOMEFILE ./PATH/TO/SOMEFILE 注意:副作用 问题: 1、定义对所有用都生效的别名? 2、如果仅需要PATH环境变量的修改仅对root用户生效,该如何操作? Linux文件系统上的特殊权限 权限模型: u, g, o r, w, x 进程的安全上下文: 前提:进程有属主(进程以哪个用户的身份运行);文件有属主和属组; (1) 用户是否能够把某个可执行程序文件启动为进程,取决于用户对程序文件是否拥有执行权限; (2) 程序启动为进程后,此进程的属主为当前用户,也即进程的发起者;进程所属的组,为发起者的基本组; (3) 进程拥的访问权限,取决其属主的访问权限: (a) 进程的属主,同文件属主,则应用文件属主权限; (b) 进程的属主,属于文件的属组,则应用文件属组权限; (c) 则应用其它权限; SUID: (1) 任何一个可执行程序文件能不能启动为进程:取决于发起者对程序文件是否有执行权限; (2) 启动为进程之后,其属主不是发起者,而程序文件自己的属主;这种机制即为SUID; 权限设定: chmod u+sFILE... chmod u-s FILE... 注意: s: 属主原本拥有x权限; S: 属主原本无x权限; SGID: 默认情况下,用户创建文件时,其属级为此用户所属的基本组; 一旦某目录被设定了SGID权限,则对此目录拥有写权限的用户在此目录中创建的文件所属的组为目录的属组,而非用户的基本组; 权限设定: chmod g+s FILE... chmod g-s FILE... Sticky: 对于一个多人可写的目录,此权限用于限制每个仅能删除自己的文件; 权限设定 chmod o+t FILE... chmod o-t FILE... SUID, SGID,STICKY 000 001 010 011 100 101 110 111 数字修改权限的方法:4 为 SUID
2 为 SGID
1 为 SBIT
chmod 4777 FILE chmod 3755 DIRLinux系统管理
磁盘和文件系统管理;
RAID, LVM; btrfs;
程序包管理:rpm, yum(dnf)
Linux的网络管理;
进程和作业管理:htop, glances, tsar;
sed和awk;
Linux系统的开机启动流程;
内核基础知识,内核定制编译;
系统安装:kickstart, pxe
Linux磁盘管理
硬盘:
机械式硬盘
SSD
机械式:
track
sector: 512bytes
cylinder: 分区的基本单位;
MBR:Master Boot Record
512bytes
446: bootloader
64: filesystem allocation table
16: 标识一个分区
2:55AA
磁盘接口类型:
IDE (ATA):133MB/s,/dev/hd
SCSI: 640MB/s
SATA:6Gbps
SAS:6Gbps
USB:480MB/s
识别硬盘设备:/dev/sdN
标记不同的硬盘设备:/dev/sd[a-z]
标记同一设备上的不同分区:/dev/sd[a-z][1-]
1-4: 主或扩展分区标识
5+:逻辑分区标识
设备文件:特殊文件
设备号:
major, minor
major: 设备类型
minor: 同一类型下的不同设备
“块”:block,随机设备
“字符”:character,线性设备
GPT
分区:分隔存储空间为多个小的空间,每个空间可独立使用文件系统;
分区工具:
fdisk, parted, sfdisk
fdisk工具的使用:
最多支持在一块硬盘上的15个分区;
分区管理子命令:
p: 显示
n: 创建
d: 删除
t: 修改分区ID
l: 列出所有支持ID类型
w: 保存退出
q: 放弃修改并退出
m: 获取帮助
创建完成之后,查看内核是否已经识别新的分区:
# cat /proc/partitions
有三个命令可以让内核重读磁盘分区表:
CentOS 5: partprobe [DEVICE]
CentOS 6,7:
partx
kpartx
partx命令:
partx DEVICE
partx -a DEVICE
partx -a -n M:N DEVICE
M
M:
:N
kpartx命令:
kpartx -af DEVICE
Linux文件系统管理
文件系统:
VFS:Virtual File System
Linux:ext2, ext3, ext4, reiserfs, xfs, btrfs, swap
光盘:iso9660
Windows: fat32(vfat), ntfs
Unix: ffs, ufs, jfs, jfs2
网络文件系统:nfs, cifs
集群文件系统:ocfs2, gfs2
分布式文件系统:ceph,
moosefs, mogilefs, hdfs, gfs, glusterfs
(1) 日志型文件系统
非日志型文件系统:ext2
日志型文件系统:ext3
(2) swap:交换分区
创建文件系统:
在分区上执行格式化(高级格式化)
要使用某种文件系统,满足两个条件:
内核中:支持此种文件系统
用户空间:有文件系统管理工具
创建工具:mkfs (make filesystem)
mkfs -t type DEVICE
mkfs.type DEVICE
ext系列文件系统的专用管理工具:
mke2fs -t {ext2|ext3|ext4} DEVICE
-b BLOCK: 1024, 2048, 4096
-L 'LABEL': 设定卷标
blkid命令:
blkid DEVICE
LABEL, UUID, TYPE
例子:1、复制/etc/grub.cfg配置文件至/tmp目录,用查找替换命令删除/tmp/grub.cfg文件中的行首的空白字符;
2、复制/etc/rc.d/init.d/functions文件至/tmp目录,用查找替换命令为/tmp/functions的每行开头为空白字符的行的行首加一个#; 原有空白字符保留
3、替换/tmp/functions文件中的/etc/sysconfig/init为/var/log;
:%s@/etc/sysconfig/init@/var/init@g/:用于分隔符,所以,要查找的内容或替换为的内容中出现此符号,要使用\对其转义,使用格式:\/
分隔符可替换为其它字符:例如@,#等;
4、删除/tmp/functions文件中所以#开头,且#后面至少跟了一个空白字符的行的行首#;
:%s@^#[[:space:]]\+@@g5、查找/var目录属主为root,且属组为mail的所有文件
[root@test1 tmp]# find /var -user root -group mail -ls 263243 4 drwxrwxr-x 2 root mail 4096 Aug 31 21:47 /var/spool/mail6、查找/usr目录下不属于root、bin或hadoop的所有文件;
[root@test1 ~]# find /usr -not -user root -a -not -user bin -a -not -user hadoop -ls 927677 12 -rwsr-xr-x 1 abrt abrt 10296 Jul 25 00:08 /usr/libexec/abrt-action-install-debuginfo-to-abrt-cache 943670 340 -rwxr-xr-x 1 amandabackup disk 344080 Mar 27 18:26 /usr/lib64/libamanda-2.6.1p2.so 1193578 4 drwxr-xr-x 5 amandabackup disk 4096 Aug 19 21:13 /usr/lib64/perl5/vendor_perl/Amanda 1193580 4 -rw-r--r-- 1 amandabackup disk 2337 Mar 27 18:26 /usr/lib64/perl5/vendor_perl/Amanda/Application.pm 1193594 4 -rw-r--r-- 1 amandabackup disk 2448 Mar 27 18:26 /usr/lib64/perl5/vendor_perl/Amanda/Script.pm 1193599 12 -rw-r--r-- 1 amandabackup disk 11215 Mar 27 18:26 /usr/lib64/perl5/vendor_perl/Amanda/Util.pm 1193584 20 -rw-r--r-- 1 amandabackup disk 17406 Mar 27 18:26 /usr/lib64/perl5/vendor_perl/Amanda/Changer.pm 1193582 12 -rw-r--r-- 1 amandabackup disk 9804 Mar 27 18:26 /usr/lib64/perl5/vendor_perl/Amanda/Archive.pm7、查找/etc目录下最近一周内其内容修改过,且属主不为root或hadoop的所有文件
[root@test1 ~]# find /etc -atime -7 -not -user root -a -not -user hadoop -ls 394361 4 drwxr-xr-x 3 amandabackup disk 4096 Aug 19 21:15 /etc/amanda 394547 4 drwxr-xr-x 3 amandabackup disk 4096 Aug 19 21:15 /etc/amanda/DailySet1 394060 4 drwxr-xr-x 2 amandabackup disk 4096 Aug 19 21:15 /etc/amanda/DailySet1/label-templates8、查找当前系统上没有属主或属组,且最近一周内曾被访问过的所有文件;
[root@test1 ~]# find / -nouser -o -nogroup -a -atime -7 -ls find: `/proc/3989/task/3989/fd/5': No such file or directory find: `/proc/3989/task/3989/fd/5': No such file or directory find: `/proc/3989/task/3989/fdinfo/5': No such file or directory find: `/proc/3989/task/3989/fdinfo/5': No such file or directory find: `/proc/3989/fd/5': No such file or directory find: `/proc/3989/fd/5': No such file or directory find: `/proc/3989/fdinfo/5': No such file or directory find: `/proc/3989/fdinfo/5': No such file or directory9、查找/etc目录下大于20k且类型为普通文件的所有文件;
[root@test1 ~]# find /etc -size 20k -type f -ls 394131 20 -rw-r--r-- 1 root root 20119 Nov 11 2010 /etc/gconf/schemas/compiz-minimize.schemas 395243 20 -rw-r--r-- 1 root root 19483 Nov 11 2010 /etc/gconf/schemas/gnote.schemas 392912 20 -rw-r--r-- 1 root root 20452 Jul 24 20:31 /etc/libreport/events/report_Mailx.xml 393600 20 -rw-r--r-- 1 root root 19579 Feb 20 2014 /etc/postfix/access 393362 20 -rwxr-xr-x 1 root root 20097 Jul 24 16:14 /etc/rc.d/rc.sysinit 393353 20 -rw-r--r-- 1 root root 19697 Apr 10 00:44 /etc/rc.d/init.d/functions 393824 20 -rwxr-xr-x 1 root root 19499 Jul 24 18:04 /etc/rc.d/init.d/kdump 394716 20 -rw------- 1 root root 19638 Aug 19 21:14 /etc/selinux/targeted/modules/active/modules/openshift.pp 394891 20 -rw------- 1 root root 19650 Aug 19 21:14 /etc/selinux/targeted/modules/active/modules/condor.pp [root@test1 ~]#10、查找/etc目录下所有用户都没有写权限的文件;
[root@test1 ~]# find /etc -not -perm /222 -a -type f -ls 392816 4 -r-------- 1 root root 45 Aug 19 21:00 /etc/openldap/certs/password 392483 4 ---------- 1 root root 1517 Aug 31 21:47 /etc/shadow- 396595 4 ---------- 1 root root 921 Sep 5 20:36 /etc/gshadow 392842 264 -r--r--r-- 1 root root 266702 Aug 19 20:59 /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem 392844 208 -r--r--r-- 1 root root 211626 Aug 19 20:59 /etc/pki/ca-trust/extracted/pem/objsign-ca-bundle.pem 392843 216 -r--r--r-- 1 root root 217510 Aug 19 20:59 /etc/pki/ca-trust/extracted/pem/email-ca-bundle.pem 392845 196 -r--r--r-- 1 root root 198453 Aug 19 20:59 /etc/pki/ca-trust/extracted/java/cacerts 392841 352 -r--r--r-- 1 root root 359773 Aug 19 20:59 /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt 393858 4 -r-xr-xr-x 1 root root 1340 Jul 24 12:04 /etc/rc.d/init.d/blk-availability 394261 8 -r-xr-xr-x 1 root root 4433 Jul 24 12:04 /etc/rc.d/init.d/clvmd 393859 4 -r-xr-xr-x 1 root root 2134 Jul 24 12:04 /etc/rc.d/init.d/lvm2-lvmetad 393860 4 -r-xr-xr-x 1 root root 3042 Jul 24 12:04 /etc/rc.d/init.d/lvm2-monitor 395344 4 -r--r----- 1 root root 4002 Mar 2 2012 /etc/sudoers 393854 4 -r--r--r-- 1 root root 2249 Jul 24 12:04 /etc/lvm/profile/command_profile_template.profile 393857 4 -r--r--r-- 1 root root 80 Mar 24 10:00 /etc/lvm/profile/thin-performance.profile 393855 4 -r--r--r-- 1 root root 828 Jul 24 12:04 /etc/lvm/profile/metadata_profile_template.profile 393856 4 -r--r--r-- 1 root root 76 Mar 24 10:00 /etc/lvm/profile/thin-generic.profile 393521 4 -r--r--r-- 1 root root 460 Jul 24 19:09 /etc/dbus-1/system.d/cups.conf 393523 4 -r--r--r-- 1 root root 146 Jul 24 19:09 /etc/pam.d/cups 393341 4 ---------- 1 root root 1642 Sep 5 20:36 /etc/shadow 394613 4 -r--r--r-- 1 root root 324 Jul 24 00:14 /etc/ld.so.conf.d/kernel-2.6.32-573.el6.x86_64.conf 392475 4 ---------- 1 root root 910 Aug 31 21:47 /etc/gshadow-11、查找/etc目录下至少有一类用户没有执行权限的文件;
[root@test1 ~]# find /etc -not -perm +111 -ls 394976 12 -rw------- 1 root root 9843 Aug 19 21:14 /etc/selinux/targeted/modules/active/modules/usernetctl.pp 394977 12 -rw------- 1 root root 9545 Aug 19 21:14 /etc/selinux/targeted/modules/active/modules/sensord.pp 394978 12 -rw------- 1 root root 8513 Aug 19 21:14 /etc/selinux/targeted/modules/active/modules/openct.pp 394979 12 -rw------- 1 root root 8775 Aug 19 21:14 /etc/selinux/targeted/modules/active/modules/sysadm_secadm.pp 394980 12 -rw------- 1 root root 9716 Aug 19 21:14 /etc/selinux/targeted/modules/active/modules/tmpreaper.pp 394981 16 -rw------- 1 root root 13033 Aug 19 21:14 /etc/selinux/targeted/modules/active/modules/smokeping.pp 394982 16 -rw------- 1 root root 15224 Aug 19 21:14 /etc/selinux/targeted/modules/active/modules/nut.pp 394983 16 -rw------- 1 root root 14063 Aug 19 21:14 /etc/selinux/targeted/modules/active/modules/rlogin.pp 394984 12 -rw------- 1 root root 9771 Aug 19 21:14 /etc/selinux/targeted/modules/active/modules/rhgb.pp 394985 12 -rw------- 1 root root 8218 Aug 19 21:14 /etc/selinux/targeted/modules/active/modules/mip6d.pp 394986 16 -rw------- 1 root root 13041 Aug 19 21:14 /etc/selinux/targeted/modules/active/modules/java.pp 394987 16 -rw------- 1 root root 13959 Aug 19 21:14 /etc/selinux/targeted/modules/active/modules/qmail.pp 394988 12 -rw------- 1 root root 11491 Aug 19 21:14 /etc/selinux/targeted/modules/active/modules/lsm.pp 394989 24 -rw------- 1 root root 21070 Aug 19 21:14 /etc/selinux/targeted/modules/active/modules/cups.pp 394990 12 -rw------- 1 root root 10222 Aug 19 21:14 /etc/selinux/targeted/modules/active/modules/rwho.pp 394991 20 -rw------- 1 root root 17630 Aug 19 21:14 /etc/selinux/targeted/modules/active/modules/policykit.pp 394992 20 -rw------- 1 root root 17622 Aug 19 21:14 /etc/selinux/targeted/modules/active/modules/hal.pp 394993 4 -rw------- 1 root root 106 Aug 19 21:14 /etc/selinux/targeted/modules/active/seusers.final 394994 4 -rw------- 1 root root 101 Aug 19 21:14 /etc/selinux/targeted/modules/active/users_extra 394995 4 -rw------- 1 root root 32 Aug 19 21:14 /etc/selinux/targeted/modules/active/commit_num 394996 296 -rw------- 1 root root 299700 Aug 19 21:14 /etc/selinux/targeted/modules/active/file_contexts.template 394997 8 -rw------- 1 root root 5631 Aug 19 21:14 /etc/selinux/targeted/modules/active/homedir_template 394998 8312 -rw-r--r-- 1 root root 8507399 Aug 19 21:14 /etc/selinux/targeted/modules/active/policy.kern 394999 0 -rw------- 1 root root 0 Aug 19 21:14 /etc/selinux/targeted/modules/active/netfilter_contexts 395000 288 -rw------- 1 root root 294069 Aug 19 21:14 /etc/selinux/targeted/modules/active/file_contexts 393731 0 -rw-r--r-- 1 root root 0 Jul 24 21:05 /etc/selinux/targeted/modules/semanage.read.LOCK 393713 4 -rw-r--r-- 1 root root 30 Jul 24 21:05 /etc/selinux/targeted/contexts/initrc_context 393707 4 -rw-r--r-- 1 root root 195 Jul 24 21:05 /etc/selinux/targeted/contexts/dbus_contexts 393710 4 -rw-r--r-- 1 root root 29 Jul 24 21:05 /etc/selinux/targeted/contexts/failsafe_context 394337 8 -rw-r--r-- 1 root root 6405 Aug 19 21:14 /etc/selinux/targeted/contexts/files/file_contexts.homedirs 393712 4 -rw-r--r-- 1 root root 139 Jul 24 21:05 /etc/selinux/targeted/contexts/files/media 394034 288 -rw-r--r-- 1 root root 294069 Aug 19 21:14 /etc/selinux/targeted/contexts/files/file_contexts 393717 4 -rw-r--r-- 1 root root 35 Jul 24 21:05 /etc/selinux/targeted/contexts/userhelper_context 393714 4 -rw-r--r-- 1 root root 33 Jul 24 21:05 /etc/selinux/targeted/contexts/removable_context 393727 4 -rw-r--r-- 1 root root 2920 Jul 24 21:05 /etc/selinux/targeted/contexts/x_contexts 393709 4 -rw-r--r-- 1 root root 148 Jul 24 21:05 /etc/selinux/targeted/contexts/default_type 393706 4 -rw-r--r-- 1 root root 214 Jul 24 21:05 /etc/selinux/targeted/contexts/customizable_types 393715 4 -rw-r--r-- 1 root root 74 Jul 24 21:05 /etc/selinux/targeted/contexts/securetty_types 393726 4 -rw-r--r-- 1 root root 71 Jul 24 21:05 /etc/selinux/targeted/contexts/virtual_image_context 393724 4 -rw-r--r-- 1 root root 307 Jul 24 21:05 /etc/selinux/targeted/contexts/users/xguest_u 393723 4 -rw-r--r-- 1 root root 353 Jul 24 21:05 /etc/selinux/targeted/contexts/users/user_u 393722 4 -rw-r--r-- 1 root root 578 Jul 24 21:05 /etc/selinux/targeted/contexts/users/unconfined_u 393719 4 -rw-r--r-- 1 root root 253 Jul 24 21:05 /etc/selinux/targeted/contexts/users/guest_u 393720 4 -rw-r--r-- 1 root root 389 Jul 24 21:05 /etc/selinux/targeted/contexts/users/root 393721 4 -rw-r--r-- 1 root root 514 Jul 24 21:05 /etc/selinux/targeted/contexts/users/staff_u 393716 4 -rw-r--r-- 1 root root 1170 Jul 24 21:05 /etc/selinux/targeted/contexts/sepgsql_contexts 393725 4 -rw-r--r-- 1 root root 29 Jul 24 21:05 /etc/selinux/targeted/contexts/virtual_domain_context 393708 4 -rw-r--r-- 1 root root 254 Jul 24 21:05 /etc/selinux/targeted/contexts/default_contexts 394036 0 -rw-r--r-- 1 root root 0 Aug 19 21:14 /etc/selinux/targeted/contexts/netfilter_contexts 394035 4 -rw-r--r-- 1 root root 106 Aug 19 21:14 /etc/selinux/targeted/seusers 393187 4 -rw-r--r-- 1 root root 2271 Jul 24 09:38 /etc/selinux/semanage.conf 392633 8 -rw-r--r-- 1 root root 4113 Jul 16 2014 /etc/DIR_COLORS.lightbgcolor 395365 4 -rw-r----- 1 root root 373 Oct 15 2014 /etc/audit/rules.d/audit.rules 395363 4 -rw-r----- 1 root root 701 Oct 15 2014 /etc/audit/auditd.conf 395368 4 -rw-r----- 1 root root 373 Aug 19 21:20 /etc/audit/audit.rules 392470 4 -rw-r--r-- 1 root root 1602 Oct 2 2013 /etc/csh.cshrc 393327 4 -rw-r--r-- 1 root root 45 Sep 5 21:35 /etc/adjtime 394525 4 -rw-r--r-- 1 root root 104 Apr 23 2014 /etc/ppp/pppoe-server-options 392772 4 -rw------- 1 root root 78 Mar 16 16:51 /etc/ppp/chap-secrets 395323 4 -rw------- 1 root daemon 30 Aug 20 2010 /etc/ppp/peers/wvdial 392774 4 -rw------- 1 root root 77 Mar 16 16:51 /etc/ppp/pap-secrets 392773 4 -rw-r--r-- 1 root root 5 Mar 16 16:51 /etc/ppp/options 394395 4 -rw-r--r-- 1 root root 259 Jul 24 02:14 /etc/quotatab 396570 4 -rw-r--r-- 1 root root 283 Sep 6 09:19 /etc/mtab16、查找/etc/init.d目录下,所有用户都有执行权限,且其它用户拥有写权限的文件
[root@test1 ~]# find /etc/init.d -perm -113 -ls 392544 0 lrwxrwxrwx 1 root root 11 Aug 19 20:57 /etc/init.d -> rc.d/init.d [root@test1 ~]#17、让普通用户能使用/tmp/cat去查看/etc/shadow文件;
18、创建目录/test/data,让某组内普通用户对其有写权限,且创建的所有文件的属组为目录所属的组;此外,每个用户仅能删除自己的文件;
[root@test1 test]# chmod 3777 data/ [root@test1 test]# ll total 4 drwxrwsrwt. 2 root root 4096 Sep 6 10:59 data [root@test1 test]# [centos@test1 data]$ cd [centos@test1 ~]$ cd /test/data/ [centos@test1 data]$ touch cc [centos@test1 data]$ ll total 0 -rw-r--r--. 1 root root 0 Sep 6 10:40 aa.txt -rw-rw-r--. 1 centos centos 0 Sep 6 10:58 bb -rw-rw-r--. 1 centos root 0 Sep 6 10:59 cc [centos@test1 data]$ [basher@test1 data]$ ll total 0 -rw-r--r--. 1 root root 0 Sep 6 10:40 aa.txt -rw-rw-r--. 1 centos centos 0 Sep 6 10:58 bb -rw-rw-r--. 1 centos root 0 Sep 6 10:59 cc [basher@test1 data]$ rm cc rm: remove write-protected regular empty file `cc'? y rm: cannot remove `cc': Operation not permitted [basher@test1 data]$
相关文章推荐
- Xshell中输入rz提示:-bash: rz: command not found
- Linux之图形化shell------dialog
- Linux_shell——第8章 当个好管家
- Linux_shell——第7章 无网不利
- Linux_shell——第6章 B计划
- Linux_shell——第5章 一团乱麻?没这回事
- Linux_shell——第4章 让文本飞
- 你可能不知道的Shell
- Linux_shell——第3章 以文件之名
- Linux_shell——第2章 命令之乐
- Linux_shell——第1章 牛刀小试
- shell编程(条件判断与流程控制)学习笔记
- xshell下利用SFTP传输文件
- 8月30日 vim的使用方法;
- 设计一个Shell程序,在/userdata目录下建立50个目录,即user1~user50,
- linux bash基础
- Linux shell基本运算需要注意空格
- 使用PowerShell简化我的工作
- 【Linux】【Shell】Ubuntu apt-get
- 【Linux】【Shell】Ubuntu apt-get