1、总结文本编辑工具vim的使用方法;

vim

    vim:文本编辑器,全屏、模式化的编辑器        vim模式:            编辑模式(命令模式):默认            输入模式            末行模式                    vim模式转换:            1、从编辑模式-->输入模式                i:在当前光标所在字符的前面,转为输入模式                a:在当前光标所在字符的后面,转为输入模式                o:在当前光标所在行的下方新建一行,并转为输入模式                I:在当前光标所在行的行首,转为输入模式                A:在当前光标所在行的行尾,转为输入模式                O:在当前光标所在行的上方新建一行,并转为输入模式                2、从输入模式-->编辑模式                键入esc键。                3、末行模式:必须从编辑模式进入末行模式                键入:即可。                        4、末行模式-->编辑模式                敲esc键,一次或者多次。        vim退出文件:            1、末行模式下关闭文件                w:保存文件                q:退出                wq:保存并退出                q!:不保存并退出                w!:强制保存                wq=x 保存退出            2、编辑模式下退出                大写ZZ:保存退出        vim下移动光标(编辑模式):             1、逐字符移动:                h:向左                l:向右                j:向下                K:向上                #h:移动#(数字)个字符            2、以单词为单位移动                w:移动下一个单词的词首                e:移动到当前单词的词尾或者下一个单词的词尾                b:移动到当前单词的词首或者上一个单词的词首                #w:一次跳#个单词。            3、行内跳转                0:跳到行首(绝对行首)                ^:跳到第一个非空白字符的行首                $:绝对行尾            4、行间跳转                #G:直接跳转至第#行上。                G:直接跳转至最后一行        末行模式下跳转:直接给出行号,回车即可。        vim翻屏:            ctrl+f:向下翻一屏            ctrl+b:向上翻一屏            ctrl+d:向下翻半屏            ctrl+u:向上翻半屏        vim删除字符:            x:删除光标所在处的单个字符            #x:删除光标所在处及向后的共#个字符                vim删除命令:d            d命令与跳转命令结合使用            d$:删除到行尾。            #d跳转符:删除跳转符指定的#个字符            dd:删除当前光标所在行            #dd:删除包括光标所在行之内的#行        末行模式下可以使用:            startADD,ednADDd            1,10d:删除第一行到第十行            .,100:删除当前行到100行。            .表示当前行            $:最后一行            +#:向下的#行            $-10:倒数第10行            vim删除的内容为保存在缓冲中,最后一次删除的内容可以粘贴。        vim粘贴命令:p            p(小写):如果删除的或复制的为正行内容,则粘贴至光标所在含行的下方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的后面                P(大写):如果删除的或复制的为正行内容,则粘贴至光标所在含行的上方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的前面        vim复制命令:y            y的用法同d            yy:复制一行                vim先删除内容,再转换为输入模式:c            c的用法同d命令            cc:删除一行,并进入输入模式。            c$:删除到行尾,并进入输入模式        vim下撤销编辑操作命令:u            u:撤销上一次操作,连续u命令可以撤销此前的n次操作            #u:直接撤销最近#次编辑操作        vim查找替换            /PATTERN:从行首向下查找PATTERN匹配的选项            ?PATTERN:从行尾向上查找PATTERN匹配的选项               vim查找并替换:s            在末行模式下使用s命令            用法与sed一样            ADDR1,ADDR2s@PATTERN@string@gi            g:全局 i:忽略大小写            .,$-1 :当前行到倒数第一行            1,$表示全文               vim下shell交互            :!COMMAND 回车查看,查看完以后再回车,进入vim编辑模式。        vim高级话题            1、显示或取消显示行号                :set nu                :set nonu            2、设定忽略或区分大小写                :set ignorecase                 :set ic 忽略                :set noic            3、设定自动缩进                :set autoindent                :set ai 缩进                :set noai            4、查找到的文本高亮显示或取消高亮显示                :set hlsearch 高亮显示                :set nohlserch 取消            5、语法高亮                :syntax on 开启                :syntax off 关闭

2、总结文件查找命令find的使用方法;

    

find命令
        

find:实时查找、精确、遍历指定目录中的所有文件完成查找,速度慢、支持众多    查找标准        格式:find 查找路径 查找标准 查找到以后的处理运作        查找路径:默认为当前目录        查找标准:默认为指定路径下的所有文件        处理运作:默认为显示到屏幕    -------------------------------------------------------------------------------------------    匹配标准        -name 'FILENAME':对文件名进行精确匹配              还支持文件名通配符:*:任意长度的任意字符        -iname 'FILENAME':文件名匹配不区分大小写        -regex PATTERN:基于正则表达式进行文件名匹配        -user USERNAME:基于文件所属主进行匹配查找        -group GROUPNAME:基于文件的属组进行查找        -uid UID:基于文件的uid,用户被删了以后id号会保存下来        -gid GID:文件组        -nouser:查找没有属主的文件        -nogroup:查找没有属组的文件        -type :根据文件的类型来查找           f:普通文件           d:目录           p:管道           s:套接字           l:链接           -size:指定文件的大小          [+|-]#K:大于或者小于#k的文件    -------------------------------------------------------------------------------------------    时间戳查找           单位为天           -mtime :修改时间           -atime :访问时间           -ctime:改变时间           支持[+|-]#:              5:五天那一天访问              -5:五天之内              +5:至少五  天之外          单位为分钟          -amin:访问时间          -cmin:修改时间          -tmin:改变时间           文件的权限查找             -perm mode(755):精确查找                  fg:find 路径 -pern 755             -perm /mode : 三位匹配一位就可以                       -perm -mode:文件权限能完全包含此mode才可以显示           执行动作:          -print:默认的,显示            -ls:类似ls -l的形式显示匹配到的每个文件的详细信息            -ok COMMAND {} \;每个操作需要用户确认 执行命令,必须以\;结尾。    {}代表匹配到的文件。                     -exec COMMAND {} \;不需要确认,执行命令,必须以\;结尾。{}代表    匹配到的文件。

3、总结bash环境变量的相关内容;

bash

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 -x name=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                注意:副作用

4、总结Linux文件系统上的特殊权限(SUID、SGID、Sticky)的知识点;

SUID

suid:运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者所属主         添加文件的SUID:                chmod u+s FILE                 chmod u-s FILE         如果FILE本来原来就有执行权限,则SUID显示为s,否则为大S。                 s: 属主原本拥有x权限;                S: 属主原本无x权限;sgid:运行某程序时,相应进程的属组是程序文件自身的属组,而不是启动者所属的基本组        chmod g+s  FILE        chmod g-s  FILE    fg:一个团队,三个用户:hadoop、hbase、hive,一个开发目录/tmp/project,        要求这三个用户可以同时修改同一个文件。查看、编辑、等权限          三个用户同属一个基本组,并要求基本组具有查看、编辑权限。。           groupadd devdeop           chown -R :develop /tmp/projest           usermod -a -G develop hadoop           chmod g+s /tmp/project           然后就可以进行创建、修改、删除同一个文件了。 stickysticky:规定在一个公共目录,每个人都可以创建文件、删除自己的文件,但不能删除别人的文件。        chmod o+t DIR:对目录增加sticky权限        chmod o-t DIR:去掉目录的sticky权限        chmod 1755 /backup/test 表示文件具有sticky权限

5、总结Linux磁盘管理、文件系统相关知识点及其相关命令的使用方法;

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/sd            标记不同的硬盘设备:/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        kpartxpartx命令:        partx DEVICE        partx -a DEVICE        partx -a -n M:N DEVICE            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 DEVICEext系列文件系统的专用管理工具:            mke2fs -t {ext2|ext3|ext4} DEVICE            -b BLOCK: 1024, 2048, 4096            -L 'LABEL': 设定卷标blkid命令:            blkid DEVICE            LABEL, UUID, TYPE

6、复制/etc/grub.cfg配置文件至/tmp目录,用查找替换命令删除/tmp/grub.cfg文件中的行首的空白字符;

:%s/^ *//g

7、复制/etc/rc.d/init.d/functions文件至/tmp目录,用查找替换命令为/tmp/functions的每行开头为空白字符的行的行首加一个#; 原有空白字符保留;

:%s/^ /#/g

8、替换/tmp/functions文件中的/etc/sysconfig/init为/var/log;

:%s@/etc/sysconfig/init@/var/log@g

9、删除/tmp/functions文件中所以#开头,且#后面至少跟了一个空白字符的行的行首#;

:%s/^# \+//g

10、查找/var目录属主为root,且属组为mail的所有文件;

[root@localhost ~]# find /var/ -user root -group mail -ls50331800    0 drwxrwxr-x   2 root     mail           29 8月 27 11:01 /var/spool/mail

11、查找/usr目录下不属于root、bin或hadoop的所有文件;

[root@localhost ~]# find /usr/ -not  -user root -a -not -user bin -a -not -user hadoop -ls1604969    4 drwx------   2 polkitd  root         4096 8月 27 10:52 /usr/share/polkit-1/rules.d50913788   12 -rwsr-sr-x   1 abrt     abrt        11232 3月 24 11:56 /usr/libexec/abrt-action-install-debuginfo-to-abrt-cache[root@localhost ~]# [root@localhost ~]# find /usr/ -not \( -user root -o -user bin -o -user hadoop \) -ls1604969    4 drwx------   2 polkitd  root         4096 8月 27 10:52 /usr/share/polkit-1/rules.d50913788   12 -rwsr-sr-x   1 abrt     abrt        11232 3月 24 11:56 /usr/libexec/abrt-action-install-debuginfo-to-abrt-cache[root@localhost ~]#

12、查找/etc目录下最近一周内其内容修改过,且属主不为root或hadoop的所有文件;

[root@localhost ~]# find /etc/ -mtime -7 -a -not \( -user root -o -user hadoop \) -ls   134    0 -rw-r--r--   1 duyong   root            0 8月 31 15:51 /etc/tt.txt[root@localhost ~]#

13、查找当前系统上没有属主或属组,且最近一周内曾被访问过的所有文件;

find / -nouser -nogroup -a -mtime -7 -ls

14、查找/etc目录下大于20k且类型为普通文件的所有文件;

[root@localhost ~]# find /etc/ -size +20k -a -type f -exec ls -lh {} \;-r--r--r--. 1 root root 176K 8月  27 10:46 /etc/pki/ca-trust/extracted/java/cacerts-r--r--r--. 1 root root 314K 8月  27 10:46 /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt-r--r--r--. 1 root root 236K 8月  27 10:46 /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem-r--r--r--. 1 root root 188K 8月  27 10:46 /etc/pki/ca-trust/extracted/pem/email-ca-bundle.pem-r--r--r--. 1 root root 188K 8月  27 10:46 /etc/pki/ca-trust/extracted/pem/objsign-ca-bundle.pem-rw-r--r--. 1 root root 64K 3月   6 2015 /etc/pki/nssdb/cert8.db-rw-r--r--. 1 root root 237K 3月   6 2015 /etc/ssh/moduli-r--r--r--. 1 root root 6.1M 8月  27 10:51 /etc/udev/hwdb.bin-rw-r--r--. 1 root root 59K 3月   6 2015 /etc/lvm/lvm.conf-rw-r--r--. 1 root root 51K 6月  10 2014 /etc/gconf/schemas/nautilus-open-terminal.schemas-rw-r--r--. 1 root root 655K 6月   7 2013 /etc/services-rw-r--r--. 1 root root 55K 6月  10 2014 /etc/bash_completion.d/git-rw-r--r--. 1 root root 26K 1月  15 2015 /etc/sysconfig/network-scripts/network-functions-ipv6-rw-r--r--. 1 root root 72K 8月  27 11:24 /etc/ld.so.cache-rwxr-xr-x. 1 root root 42K 8月  27 11:24 /etc/rc.d/init.d/vmware-tools-rw-r--r--. 1 root root 25K 6月  10 2014 /etc/dnsmasq.conf-rw-r--r--. 1 root root 357K 3月   6 2015 /etc/selinux/targeted/contexts/files/file_contexts-rw-r--r--. 1 root root 57K 3月   6 2015 /etc/selinux/targeted/modules/active/base.pp-rw-------. 1 root root 357K 3月   6 2015 /etc/selinux/targeted/modules/active/file_contexts-rw-------. 1 root root 368K 3月   6 2015 /etc/selinux/targeted/modules/active/file_contexts.template-rw-r--r--. 1 root root 24K 3月   6 2015 /etc/selinux/targeted/modules/active/modules/apache.pp-rw-r--r--. 1 root root 28K 3月   6 2015 /etc/selinux/targeted/modules/active/modules/init.pp-rw-r--r--. 1 root root 33K 3月   6 2015 /etc/selinux/targeted/modules/active/modules/staff.pp-rw-r--r--. 1 root root 44K 3月   6 2015 /etc/selinux/targeted/modules/active/modules/sysadm.pp-rw-r--r--. 1 root root 29K 3月   6 2015 /etc/selinux/targeted/modules/active/modules/unprivuser.pp-rw-r--r--. 1 root root 26K 3月   6 2015 /etc/selinux/targeted/modules/active/modules/virt.pp-rw-r--r--. 1 root root 21K 3月   6 2015 /etc/selinux/targeted/modules/active/modules/xguest.pp-rw-r--r--. 1 root root 28K 3月   6 2015 /etc/selinux/targeted/modules/active/modules/xserver.pp-rw-r--r--. 1 root root 3.7M 3月   6 2015 /etc/selinux/targeted/policy/policy.29-rw-r--r--. 1 root root 64K 8月  27 10:47 /etc/openldap/certs/cert8.db-rw-r--r--. 1 root root 365K 8月  27 11:25 /etc/vmware-tools/locations-rwxr-xr-x. 1 root root 31K 8月  27 11:23 /etc/vmware-tools/installer.sh-rw-------. 1 root root 64K 8月  27 10:49 /etc/ipsec.d/cert8.db-rw-r--r--. 1 root root 49K 3月   6 2015 /etc/brltty/fr-abrege.ctb-rw-r--r--. 1 root root 267K 3月   6 2015 /etc/brltty/ko.ctb-rw-r--r--. 1 root root 37K 3月   6 2015 /etc/brltty/de-kurzschrift.ctb-rw-r--r--. 1 root root 54K 3月   6 2015 /etc/brltty/letters-latin.tti-rw-r--r--. 1 root root 21K 3月   6 2015 /etc/brltty/en-nabcc.ttb-rw-r--r--. 1 root root 39K 3月   6 2015 /etc/brltty/en-us-g2.ctb-rw-r--r--. 1 root root 56K 3月   6 2015 /etc/brltty/zh-tw-polyphone.cti-rw-r--r--. 1 root root 392K 3月   6 2015 /etc/brltty/zh-tw-ucb.ctb-rw-r--r--. 1 root root 1.4M 3月   6 2015 /etc/brltty/zh-tw.ctb-rw-r--r--. 1 root root 22K 3月   6 2015 /etc/brltty.conf-rw-r--r--. 1 root root 21K 6月  10 2014 /etc/postfix/access-rw-r--r--. 1 root root 22K 6月  10 2014 /etc/postfix/header_checks-rw-r--r--. 1 root root 27K 6月  10 2014 /etc/postfix/main.cf[root@localhost ~]#

15、查找/etc目录下所有用户都没有写权限的文件;

[root@localhost tmp]# find /etc/ -not -perm /222 -ls33554600  176 -r--r--r--   1 root     root       179212 8月 27 10:46 /etc/pki/ca-trust/extracted/java/cacerts67170471  316 -r--r--r--   1 root     root       321332 8月 27 10:46 /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt100663452  236 -r--r--r--   1 root     root       240762 8月 27 10:46 /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem100663453  188 -r--r--r--   1 root     root       191741 8月 27 10:46 /etc/pki/ca-trust/extracted/pem/email-ca-bundle.pem100663454  188 -r--r--r--   1 root     root       191772 8月 27 10:46 /etc/pki/ca-trust/extracted/pem/objsign-ca-bundle.pem33559425    4 -r--r--r--   1 root     root          460 3月  6  2015 /etc/dbus-1/system.d/cups.conf 31853    4 ----------   1 root     root          695 9月  6 14:50 /etc/gshadow100692543 6228 -r--r--r--   1 root     root      6376691 8月 27 10:51 /etc/udev/hwdb.bin33556807    4 -r--r--r--   1 root     root         2231 3月  6  2015 /etc/lvm/profile/command_profile_template.profile33556808    4 -r--r--r--   1 root     root          827 3月  6  2015 /etc/lvm/profile/metadata_profile_template.profile33556809    4 -r--r--r--   1 root     root           76 1月 21  2015 /etc/lvm/profile/thin-generic.profile33556810    4 -r--r--r--   1 root     root           80 1月 21  2015 /etc/lvm/profile/thin-performance.profile 10408    4 -r--r--r--   1 root     root           33 8月 27 10:48 /etc/machine-id   173    4 ----------   1 root     root         1176 8月 27 11:01 /etc/shadow- 31511    4 ----------   1 root     root         1205 9月  6 14:50 /etc/shadow 11644    4 -r--r--r--   1 root     root           63 3月  6  2015 /etc/ld.so.conf.d/kernel-3.10.0-229.el7.x86_64.conf67178778    4 -r--r--r--   1 root     root          146 3月  6  2015 /etc/pam.d/cups   165    4 ----------   1 root     root          684 8月 27 11:01 /etc/gshadow-33554623    4 -r--------   1 root     root           45 8月 27 10:47 /etc/openldap/certs/password 31507    4 -r--r-----   1 root     root         4000 3月  6  2015 /etc/sudoers[root@localhost tmp]#

16、查找/etc目录下至少有一类用户没有执行权限的文件;

find . -not -perm -111 -ls

17、查找/etc/init.d目录下,所有用户都有执行权限,且其它用户拥有写权限的文件;

find . -perm -a=x -a -perm -o+w -ls

18、让普通用户能使用/tmp/cat去查看/etc/shadow文件;

[root@localhost tmp]# chmod +s /tmp/cat[root@localhost tmp]# su - duyong上一次登录:日 9月  6 18:42:27 CST 2015pts/0 上[duyong@localhost ~]$ /tmp/cat /etc/shadow

19、创建目录/test/data,让某组内普通用户对其有写权限,且创建的所有文件的属组为目录所属的组;此外,每个用户仅能删除自己的文件;

[root@localhost test]# chmod o+w /test/data/[root@localhost test]# chmod g+s /test/data/[root@localhost test]# chmod +t /test/data/[root@localhost test]# lldrwxr-srwt. 2 duyong duyong 14 9月   6 18:55 data[root@localhost test]# su - hadoop[hadoop@localhost ~]$ touch /test/data/1[hadoop@localhost ~]$ ll /test/data/-rw-rw-r--. 1 hadoop duyong 0 9月   6 18:58 1[hadoop@localhost ~]$[root@localhost test]# su - centos[centos@localhost ~]$ cd /test/data/[centos@localhost data]$ ll-rw-rw-r--. 1 hadoop duyong 0 9月   6 18:58 1[centos@localhost data]$ touch 2[centos@localhost data]$ ll-rw-rw-r--. 1 hadoop duyong 0 9月   6 18:58 1-rw-rw-r--. 1 centos duyong 0 9月   6 19:00 2[centos@localhost data]$ rm -rf 1rm: 无法删除"1": 不允许的操作[centos@localhost data]$ rm -rf 2[centos@localhost data]$ ll-rw-rw-r--. 1 hadoop duyong 0 9月   6 18:58 1[centos@localhost data]$