linux运维实战练习-2015年8月30日课程作业
2015-09-07 23:11
429 查看
总结文本编辑工具vim的使用方法
vi:visual interface
vim:visual interface improved
vim是vi的增强版
vim 分三种模式1.命令模式2.插入模式3.编辑模式
从命令模式到插入模式相关按键
a 在光标所在字符后插入
A在光标所在行尾插入语
i在光标所在字符前插入
I在光标所在行首插入
o 在光标下插入新行
O在光标上插入新行
从输入模式切换到编辑模式相关按键: 按下:ESC键 从编辑模式切换到末行模式相关按键: 输入:(冒号) 从末行模式切换到编辑模式相关按键: 按下:ESC键 连续按两下ESC键(快速切换)vim退出格式
编辑命令
⑴字符编辑、删除、粘贴、:
gg:到第一行
G:最后一行
:n 到指定行
x :删除光标所在处字符
nx:删除光标处后n个字符
dd:删除光标所在行
ndd:删除n行
dG:删除光标所在行到文件行尾内容
D:删除光标所在处到行尾内容
n1,n2d :删除指定范围的行
yy:复制当前行
nyy:复制当前行以下n行
dd:剪切当前行
ndd:剪切当前你以下N行
p,P 粘贴在光标所在行下或行上
总结文件查找命令find的使用方法
find[OPTION]... [查找路径] [查找条件] [处理动作] 查找路径:默认为当前路径; 查找条件:指定的查找标准,可以根据文件名、大小、属主属组、类型等进行;默认为找出指定路径下的所有文件; 处理动作:对符合条件的文件做什么操作;默认为输出至屏幕; 查找条件: 根据文件名进行查找: -name "文件名称": 支持使用glob; *,?, [] -iname "文件名称":不区分字符大小写,支持使用glob; -regex "PATTERN":以PATTERN匹配整个文件路径字符串,而不仅仅是文件名称; 根据属主、属组查找: -userUSERNAME: 查找属主为指定用户的文件; -groupGROUPNAME: -uidUserID: 查找文件的属主指定uid的文件; -gidGroupID: -nouser:查找没有属主的文件; -nogroup:查找没有属组的文件;总结bash环境变量的相关内容配置文件,生效范围划分,存在两类:1.全局配置: /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 定义环境变量: exportname=value declare-x name=value 查看:env, printenv, export 撤消变量: unsetname 引用变量: ${name},$name bash中的引用符号: '':强引用,变量替换不会发生 "":弱引用 ``:命令引用 shell登录类型: 交互式登录: 直接通过终端进行的登录; 通过su -l Username命令实现的用户切换; 非交互式登录: 图形界面下打开的命令行窗口; 执行脚本; suUsername; 配置文件作用次序: 交互式登录: /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 总结Linux文件系统上的特殊权限(SUID、SGID、Sticky)的知识点文件权限分为u所属主,g所属组,o其他
进程的安全上下文:
前提:进程有属主(进程以哪个用户的身份运行);文件有属主和属组;
(1) 用户是否能够把某个可执行程序文件启动为进程,取决于用户对程序文件是否拥有执行权限;
(2) 程序启动为进程后,此进程的属主为当前用户,也即进程的发起者;进程所属的组,为发起者的基本组;
(3) 进程拥的访问权限,取决其属主的访问权限:
(a) 进程的属主,同文件属主,则应用文件属主权限;
(b) 进程的属主,属于文件的属组,则应用文件属组权限;
(c) 则应用其它权限; SUID:
(1) 任何一个可执行程序文件能不能启动为进程:取决于发起者对程序文件是否有执行权限;
(2) 启动为进程之后,其属主不是发起者,而程序文件自己的属主;这种机制即为SUID; 权限设定:
chmod u+s FILE...
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...5.linux磁盘和系统管理知识Linux磁盘管理硬盘:机械式硬盘;SSD机械式:tracksector: 512bytescylinder: 分区的基本单位;MBR:Master Boot Record512bytes 446: bootloader 64: filesystem allocation table 16: 标识一个分区 2:55AA磁盘接口类型:IDE (ATA):133MB/s,/dev/hdSCSI: 640MB/sSATA:6GbpsSAS:6GbpsUSB:480MB/s识别硬盘设备:/dev/sdx标记不同的硬盘设备:/dev/sd[a-z]标记同一设备上的不同分区:/dev/sd[a-z][1-]1-4: 主或扩展分区标识5+:逻辑分区标识设备文件:特殊文件设备号:major, minormajor: 设备类型minor: 同一类型下的不同设备“块”:block,随机设备“字符”:character,线性设备分区:分隔存储空间为多个小的空间,每个空间可独立使用文件系统;分区工具:fdisk, parted, sfdiskfdisk工具的使用:最多支持在一块硬盘上的15个分区;fdisk分区管理子命令:p: 显示n: 创建d: 删除t: 修改分区IDl: 列出所有支持ID类型w: 保存退出q: 放弃修改并退出m: 获取帮助创建完成之后,查看内核是否已经识别新的分区:# cat /proc/partitions有三个命令可以让内核重读磁盘分区表:CentOS 5: partprobe [DEVICE]CentOS 6,7: partx kpartxpartx命令:partx DEVICEpartx -a DEVICEpartx -a -n M:N DEVICEMM:分区范围:Nkpartx命令:kpartx -af DEVICEa:添加一个分区Linux文件系统管理文件系统:VFS:Virtual File SystemLinux:ext2, ext3, ext4, reiserfs, xfs, btrfs, swap光盘:iso9660Windows: fat32(vfat), ntfsUnix: ffs, ufs, jfs, jfs2网络文件系统:nfs, cifs集群文件系统:ocfs2, gfs2分布式文件系统:ceph,moosefs, mogilefs, hdfs, gfs, glusterfs(1) 日志型文件系统非日志型文件系统:ext2日志型文件系统:ext3,ext4(2) swap:交换分区创建文件系统:在分区上执行格式化(高级格式化)要使用某种文件系统,满足两个条件:内核中:支持此种文件系统用户空间:有文件系统管理工具创建工具:mkfs (make filesystem)mkfs -t type DEVICEmkfs.type DEVICEext系列文件系统的专用管理工具:mke2fs -t {ext2|ext3|ext4} DEVICE-b BLOCK: 1024, 2048, 4096-L 'LABEL': 设定卷标blkid命令:blkid DEVICELABEL, UUID, TYPE复制/etc/grub.cfg配置文件至/tmp目录,用查找替换命令删除/tmp/grub.cfg文件中的行首的空白字符;
%s/^[[:space:]].//g
%s/^[[:space:]]\+//g
复制/etc/rc.d/init.d/functions文件至/tmp目录,用查找替换命令为/tmp/functions的每行开头为空白字符的行的行首加一个#; 原有空白字符保留; :%s@^\([[:space:]]\)@#\1@ 替换/tmp/functions文件中的/etc/sysconfig/init为/var/log;:%s#/etc/sysconfig/init#/var/log#删除/tmp/functions文件中所有以#开头,且#后面至少跟了一个空白字符的行的行首#;:%s@^#\([[:space:]]\)@\1@ 查找/var目录属主为root,且属组为mail的所有文件;
查找/usr目录下不属于root、bin或hadoop的所有文件 find /usr ! \( -user root -o -user bin -o -user hadoop \) -ls
查找/etc目录下最近一周内其内容修改过,且属主不为root或hadoop的所有文件;find /etc -mtime -7 -a ! \( -user root -o -user hadoop \) -ls
查找当前系统上没有属主或属组,且最近一周内曾被访问过的所有文件;find / -atime -7 -a \( -nouser -o -nogroup \) -ls
find / \( -nouser -o -nogroup \) -a -atime -7 -ls
14、查找/etc目录下大于20k且类型为普通文件的所有文件;find /etc -size +20k -type f -ls
15、查找/etc目录下所有用户都没有写权限的文件;find /etc ! -perm /222 -ls
find /etc ! -perm +222 -ls
16、查找/etc目录下至少有一类用户没有执行权限的文件;find /etc ! -perm -111 -ls
17、查找/etc/init.d目录下,所有用户都有执行权限,且其它用户拥有写权限的文件;find /etc/init.d -perm -113 -ls
18、让普通用户能使用/tmp/cat去查看/etc/shadow文件;chmod u+s /tmp/cat
19、创建目录/test/data,让某组内普通用户对其有写权限,且创建的所有文件的属组为目录所属的组;此外,每个用户仅能删除自己的文件; mkdir -pv /test/data chmod g+rws /test/data chmod o+t /test/data
vi:visual interface
vim:visual interface improved
vim是vi的增强版
vim 分三种模式1.命令模式2.插入模式3.编辑模式
从命令模式到插入模式相关按键
a 在光标所在字符后插入
A在光标所在行尾插入语
i在光标所在字符前插入
I在光标所在行首插入
o 在光标下插入新行
O在光标上插入新行
从输入模式切换到编辑模式相关按键: 按下:ESC键 从编辑模式切换到末行模式相关按键: 输入:(冒号) 从末行模式切换到编辑模式相关按键: 按下:ESC键 连续按两下ESC键(快速切换)vim退出格式
:w | 保存文件并继续编辑 |
:q | 有编辑操作不能退出,没有编辑操作可退出 |
:q! | 不保存强制退出 |
:qw | 保存退出 |
:qw! | 保存强制退出 |
:x | 类似qw! |
:ZZ | 类似qw |
⑴字符编辑、删除、粘贴、:
x | 删除光标所在处的字符,3x表示删除光标所在字符在内的3个字符从左往右 xp:位置调换 |
r | 替换光标所在处的字符 |
d^ | 删除光标所在位置至非绝对词首之间的字符 |
d$ | 删除光标所在位置至非绝对词尾之间的字符 |
d0 | 删除光标所在位置至绝对词首之间的字符 |
dd | 删除光标所在行 |
dw | 删除光标所在单词至后一个单词词首的内容 |
de | 删除光标所在单词至单词词尾的内容 |
db | 删除光标所在单词至单词词首的内容 |
3dd | 删除包括光标所在行内的3行字符 |
p | 完整行:粘贴光标所在行的下一行 非完整行:粘贴光标所在行后面 |
P | 完整行:粘贴光标所在行的上一行 非完整行:粘贴光标所在行前面 |
yy | 复制光标所在行,y+pattern同上 |
c | 改变命令,用法如:cc表示删除光标所在行,等待输入,其它组合同上 |
u | 撤销命令,用法如:3u表示撤销前3次 |
ctrl+r | 恢复撤销操作 |
. | 点号表示重复前一次操作命令功能 |
ctrl+f | 向下翻页 |
ctrl+b | 向上翻页 |
ctrl+d | 向下翻半页 |
ctrl+u | 向上翻半页 |
vimtutor | vim内建教程 |
G:最后一行
:n 到指定行
x :删除光标所在处字符
nx:删除光标处后n个字符
dd:删除光标所在行
ndd:删除n行
dG:删除光标所在行到文件行尾内容
D:删除光标所在处到行尾内容
n1,n2d :删除指定范围的行
yy:复制当前行
nyy:复制当前行以下n行
dd:剪切当前行
ndd:剪切当前你以下N行
p,P 粘贴在光标所在行下或行上
总结文件查找命令find的使用方法
find[OPTION]... [查找路径] [查找条件] [处理动作] 查找路径:默认为当前路径; 查找条件:指定的查找标准,可以根据文件名、大小、属主属组、类型等进行;默认为找出指定路径下的所有文件; 处理动作:对符合条件的文件做什么操作;默认为输出至屏幕; 查找条件: 根据文件名进行查找: -name "文件名称": 支持使用glob; *,?, [] -iname "文件名称":不区分字符大小写,支持使用glob; -regex "PATTERN":以PATTERN匹配整个文件路径字符串,而不仅仅是文件名称; 根据属主、属组查找: -userUSERNAME: 查找属主为指定用户的文件; -groupGROUPNAME: -uidUserID: 查找文件的属主指定uid的文件; -gidGroupID: -nouser:查找没有属主的文件; -nogroup:查找没有属组的文件;总结bash环境变量的相关内容配置文件,生效范围划分,存在两类:1.全局配置: /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 定义环境变量: exportname=value declare-x name=value 查看:env, printenv, export 撤消变量: unsetname 引用变量: ${name},$name bash中的引用符号: '':强引用,变量替换不会发生 "":弱引用 ``:命令引用 shell登录类型: 交互式登录: 直接通过终端进行的登录; 通过su -l Username命令实现的用户切换; 非交互式登录: 图形界面下打开的命令行窗口; 执行脚本; suUsername; 配置文件作用次序: 交互式登录: /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 总结Linux文件系统上的特殊权限(SUID、SGID、Sticky)的知识点文件权限分为u所属主,g所属组,o其他
进程的安全上下文:
前提:进程有属主(进程以哪个用户的身份运行);文件有属主和属组;
(1) 用户是否能够把某个可执行程序文件启动为进程,取决于用户对程序文件是否拥有执行权限;
(2) 程序启动为进程后,此进程的属主为当前用户,也即进程的发起者;进程所属的组,为发起者的基本组;
(3) 进程拥的访问权限,取决其属主的访问权限:
(a) 进程的属主,同文件属主,则应用文件属主权限;
(b) 进程的属主,属于文件的属组,则应用文件属组权限;
(c) 则应用其它权限; SUID:
(1) 任何一个可执行程序文件能不能启动为进程:取决于发起者对程序文件是否有执行权限;
(2) 启动为进程之后,其属主不是发起者,而程序文件自己的属主;这种机制即为SUID; 权限设定:
chmod u+s FILE...
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...5.linux磁盘和系统管理知识Linux磁盘管理硬盘:机械式硬盘;SSD机械式:tracksector: 512bytescylinder: 分区的基本单位;MBR:Master Boot Record512bytes 446: bootloader 64: filesystem allocation table 16: 标识一个分区 2:55AA磁盘接口类型:IDE (ATA):133MB/s,/dev/hdSCSI: 640MB/sSATA:6GbpsSAS:6GbpsUSB:480MB/s识别硬盘设备:/dev/sdx标记不同的硬盘设备:/dev/sd[a-z]标记同一设备上的不同分区:/dev/sd[a-z][1-]1-4: 主或扩展分区标识5+:逻辑分区标识设备文件:特殊文件设备号:major, minormajor: 设备类型minor: 同一类型下的不同设备“块”:block,随机设备“字符”:character,线性设备分区:分隔存储空间为多个小的空间,每个空间可独立使用文件系统;分区工具:fdisk, parted, sfdiskfdisk工具的使用:最多支持在一块硬盘上的15个分区;fdisk分区管理子命令:p: 显示n: 创建d: 删除t: 修改分区IDl: 列出所有支持ID类型w: 保存退出q: 放弃修改并退出m: 获取帮助创建完成之后,查看内核是否已经识别新的分区:# cat /proc/partitions有三个命令可以让内核重读磁盘分区表:CentOS 5: partprobe [DEVICE]CentOS 6,7: partx kpartxpartx命令:partx DEVICEpartx -a DEVICEpartx -a -n M:N DEVICEMM:分区范围:Nkpartx命令:kpartx -af DEVICEa:添加一个分区Linux文件系统管理文件系统:VFS:Virtual File SystemLinux:ext2, ext3, ext4, reiserfs, xfs, btrfs, swap光盘:iso9660Windows: fat32(vfat), ntfsUnix: ffs, ufs, jfs, jfs2网络文件系统:nfs, cifs集群文件系统:ocfs2, gfs2分布式文件系统:ceph,moosefs, mogilefs, hdfs, gfs, glusterfs(1) 日志型文件系统非日志型文件系统:ext2日志型文件系统:ext3,ext4(2) swap:交换分区创建文件系统:在分区上执行格式化(高级格式化)要使用某种文件系统,满足两个条件:内核中:支持此种文件系统用户空间:有文件系统管理工具创建工具:mkfs (make filesystem)mkfs -t type DEVICEmkfs.type DEVICEext系列文件系统的专用管理工具:mke2fs -t {ext2|ext3|ext4} DEVICE-b BLOCK: 1024, 2048, 4096-L 'LABEL': 设定卷标blkid命令:blkid DEVICELABEL, UUID, TYPE复制/etc/grub.cfg配置文件至/tmp目录,用查找替换命令删除/tmp/grub.cfg文件中的行首的空白字符;
%s/^[[:space:]].//g
%s/^[[:space:]]\+//g
复制/etc/rc.d/init.d/functions文件至/tmp目录,用查找替换命令为/tmp/functions的每行开头为空白字符的行的行首加一个#; 原有空白字符保留; :%s@^\([[:space:]]\)@#\1@ 替换/tmp/functions文件中的/etc/sysconfig/init为/var/log;:%s#/etc/sysconfig/init#/var/log#删除/tmp/functions文件中所有以#开头,且#后面至少跟了一个空白字符的行的行首#;:%s@^#\([[:space:]]\)@\1@ 查找/var目录属主为root,且属组为mail的所有文件;
查找/etc目录下最近一周内其内容修改过,且属主不为root或hadoop的所有文件;find /etc -mtime -7 -a ! \( -user root -o -user hadoop \) -ls
查找当前系统上没有属主或属组,且最近一周内曾被访问过的所有文件;find / -atime -7 -a \( -nouser -o -nogroup \) -ls
find / \( -nouser -o -nogroup \) -a -atime -7 -ls
14、查找/etc目录下大于20k且类型为普通文件的所有文件;find /etc -size +20k -type f -ls
15、查找/etc目录下所有用户都没有写权限的文件;find /etc ! -perm /222 -ls
find /etc ! -perm +222 -ls
16、查找/etc目录下至少有一类用户没有执行权限的文件;find /etc ! -perm -111 -ls
17、查找/etc/init.d目录下,所有用户都有执行权限,且其它用户拥有写权限的文件;find /etc/init.d -perm -113 -ls
18、让普通用户能使用/tmp/cat去查看/etc/shadow文件;chmod u+s /tmp/cat
19、创建目录/test/data,让某组内普通用户对其有写权限,且创建的所有文件的属组为目录所属的组;此外,每个用户仅能删除自己的文件; mkdir -pv /test/data chmod g+rws /test/data chmod o+t /test/data
相关文章推荐
- Linux或者mac的文件夹下的转码
- Linux系统上的任务计划(at、crontab)的详细使用方法
- Linux上的任务计划及练习
- linux文件系统
- Linux 系统时间和硬件时间
- centos 目录结构 快捷键 ls命令,alias别名,so:动态库 a:静态库,环境变量PATH,Ctrl+z 暂停命令,Ctrl+a 光标到行首,Ctrl+e 光标到行尾,Ctrl+u 删除光标前所有字符 Ctrl+r 搜索命 hash命令 Ctrl+左箭头/右箭头 cd命令 第三节课
- 在CentOS 6.3中安装拼音输入法
- Linux命令备忘实例(7)——双向重定向与字符操作
- 同一进程中的线程究竟共享哪些资源
- Linux-remote change password (more)
- linux运维实战练习-2015年9月5日课程作业
- Linux计划任务
- Centos7 firewall常用命令总结
- Linux下磁盘常见错误分析与检测工具使用
- Linux内存管理之mmap详解
- linux 下查看硬盘坏道代码(转)
- Centos使用光盘作为本地yum源
- Linux系统安装
- Linux find查找
- linux运维实战练习-2015年8月30日课程作业(2)