码迷,mamicode.com
首页 > 系统相关 > 详细

linux 学习总结

时间:2015-09-04 22:38:25      阅读:389      评论:0      收藏:0      [点我收藏+]

标签:linux

下列是linux学习的基本知识点梳理:

  Vim编辑器

             vi:visual interface

            模式化:

              编辑模式:命令模式

              输入模式

              末行模式

          编辑模式--》输入模式

               i:insert

               a:append

               o:new line

               I:行首

                A:行尾

                O:新建上方

           编辑模式--》输入模式

                   ESC

            编辑模式--》末行模式

                       :

            末行模式--》编辑模式

                      ESC

        打开Vim

               vim

               vim  /path/to/somewhere

                      +# :#为行号

        关闭vim

                :q  直接退出

                 :q! 强制退出

                  :wq  保存退出  同:x  ;ZZ

           光标跳转

                  h:左

                   j:下

                   k:上

                   l:右

            单词件跳转

                     w:下一个单词词首

                      e:当前或下一个单词词尾

                     b:当前或前一个单词词首

             行内间跳转

                       ^:跳转至行首第一个非空白字符

                       0:跳转至行首

                       $:跳转至行尾

              行间移动:

                       #G:

                            1G  第一行    G:尾行

         编辑命令

                字符编辑

                        x:删除光标所在处的字符

                        r:替换光标所在处的字符

                删除

                         d:删除

                          d^:删除至行首

                         d$:删除至行尾

                         dd:删除整行

                         dw   de   db  

                   删除内容会被vim编辑器保存至缓存区当中

                粘贴

                       p

                        如果此复制或者删除的内容不是一正行

                                        p:粘贴至当前光标所在处后面

                                         P(大写):粘贴至当前光标所在处前面

                         如果复制或者删除的是一整行

                                         p:粘贴至行下方

                                         P:粘贴至行上方

                 复制

                     y 

                      y^      y$      y0

                      yw      ye      yb

                     yy  复制整行

                 改变

                      c

                       同y  d  操作

                撤销此前操作

                        u :undo 

                             撤销此前编辑操作

                           #u

                         Ctrl+r 回复之前撤销操作

                           .:重复前一个编辑操作

                  翻屏操作

                          Ctrl+f  向后翻一屏

                          Ctrl+b  向前翻一屏

                          Ctrl+d  向后翻半屏

                           Ctrl+u  向前翻半屏

                  vim 的末行模式

                        (1)地址  定界

                             :start_pos , end_pos

                                          #:第#行

                                           #,#:#行到#行

                                           #,+#:#行到后面#行

                                                 .:当前行

                                            $:最后一行

                                    %:全文,相当于(1,$)

                                     /part1/ :第一次被此模式匹配到的行

                                     后可跟编辑命令

                                             d  y      w r

                      (2)查找

                              /PATTERN  :向尾部进行

                             ?PATTERN:想首部进行

                                        n:与命令向反方向

                                        N:与命令向同方向

                     (3)查找替换

                                  s:在末行模式下,在地址定界的范围内完成查找替换操作

                                        s/要查找的内容/要替换的内容/修饰符

                                           要查找的内容:可使用模式

                                            要替换的内容:不能使用模式,但可以使用后引用符,以引用前面模式中的分组括号所                                                                           匹配到的内容

                                  &:引用查找的内容匹配到正文中

                                          修饰符

                                                 i:忽略大小写

                                                  g:全局替换

                                  /:用于分割符,所以,要查找的内容或替换的内容中出现此符号,要使用\对其进行转意

                                                 \/

                                           分割符可以替换成其他符号:@  #

                   多文件模式:

                          vim  file1 file2

                                :next  下一个

                                 :first   

                                  :prev

                                   :last 

                                :wqall

                                  :q!all

                        多窗口分割

                               vim  -o | O  file1 file2

                         单文件窗口分割

                                   Ctrl + w  ,s  :水平分割

                                    Ctrl  +w ,v  :垂直分割

                   定制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

                                  :help   获取帮助

                              特性设定的永久生效方式:

                                            全局配置文件:/etc/vimrc

                                           用户个人配置文件:~/.vimrc

例:

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

技术分享

技术分享



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

    技术分享

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

    技术分享

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

技术分享

   find 命令

                find [OPTIONS].....【查找路径】【查找条件】【处理动作】

                    查找路径:默认为当前路径

                     查找条件:指定的查找标准   可以根据文件名  大小 属主属组  类型等进行;默认找出当前路径的所有文件

                     处理动作:对符合条件的文件做什么动作;默认为输出屏幕

              查找条件:

                     根据文件名查找

                               -name  “文件名称” 支持glob

                     -iname “文件名称”不区分文件大小写

                                -regex    “PATTERN” 

                        根据属主属组查找

                                 -user username  查找属主为指定用户的文件

                                 -group  groupname   查找属组为指定用户的文件

                                -uid   userid   查找文件属主为指定uID的文件

                                 -gid  groupid  查找文件属组为指定uid的文件

                                 -nouser:查找没有属主的文件

                                  -nogroup :查找没有属组的文件

                       根据文件类型查找

                                   -type  type 

                                               f:普通文件

                                                d:目录文件

                                               l:符号链接

                                               b:块设备

                                               c:字符设备

                                              p:命名管道

                                               s:套接字

                           组合查找条件

                                     与条件:-a

                                      或条件:-o 

                                      非条件:-not   !

                                       !a -o !b =!(a -a  b)

                   根据文件大小查询:、

                                -size 【+|-】#unit

                                            单位为:k,M,G

                   根据时间戳:

                                以天为单位

                                         -atime

                                         -mtime

                                          -ctime 

                                   以分钟为单位

                                           -amin

                                            -mmin

                                            -cmin

                   根据权限

                          -perm  【/|-】 MODE

                                   MODE :精确匹配

                                   /mode:任何一类对象的任何一位权限符合条件即可

                                  -mode  :为每一个对象指定的每一位权限都必须同时存在符合条件

                     处理动作

                            -print  默认处理动作

                             -ls     类似查找文件“ls -l”操作

                            -delete   删除查找到的文件、

                            -fls   /path/to/somefile  将查到的文件的详细路径信息保存到指定的文件中

                            -exec COMMAND {}\ 无需用户确认  执行

例:

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

    技术分享

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

          技术分享  

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

   技术分享

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

技术分享

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

技术分享

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

技术分享

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

技术分享

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

技术分享

     bash环境变量

         配置文件,生效范围划分,分为两类

           全局配置

                 /etc/profile,/etc/profile.d/*.sh

                 /etc/bashrc

            个人配置

                 ~/.bash_profile

                 ~/.bashrc                          

        按照功能划分,分为两类:

                   profile类   为交互式shell提供配置文件

                       /etc/profile   /etc/profile.d/*.sh

                       ~/.bash_profile

                              定义环境变量    运行命令或者脚本

                   bashrc类   为非交互式shell提供配置文件                            

                            /etc/bashrc

                           ~/.bashrc

                           定义命令别名   定义本地变量

    变量:

          类型:

              环境变量:作用范围为当前shell 及其子进程

              本地变量:作用范围为当前shell进程

              局部变量:作用范围为当前shell进程中某代码片段

              位置变量:$1  $2

              特殊变量: $?

   

        变量定义方式:

                BASH 内置变量:可以直接调用,内置许多环境变量

                 自定义变量:     变量赋值:变量名=值

        定义本地变量:

                    name = value

                       set 查看

        定义环境变量:

                   export name=value

                    declare -x name =value

            查看:env   printenv export

      撤销变量:

           unset name 

      引用变量:

           $name ,${name}

       bash中的引用符号

               “”    弱引用                                      

                 ‘’  强引用

                   ··      命令引用

     配置文件作用次序

            交互式:

                /etc/profile    >    /etc/profile.d/*.sh   >   ~/.bash_profile   >   ~/.bashrc   >  /etc/bashrc

            非交互式:       

               ~ /.bashrc      >    /etc/bashrc      >  /etc/pfofile.d/*.sh 

     

  linux文件系统上的特殊权限

          权限模型:u  g   o 

                                         r   w  x 

            进程的安全上下文

                    前提:进程有属主;文件有属主和属组

                  (1)用户是否能够把某个可执行程序文件启动为进程,取决于用户对程序文件是否 拥有执行权限

                  (2)程序启动为进程之后。此进程的属主为当前用户,也是进程的发起者,进程所属组,及用户的基本组

                  (3)进程拥有访问权限,取决其属主的访问权限

                                  进程的属主,同文件的属主,则应用文件属主权限

                                   进程的属主,属于文件的属组,则应用文件属组权限

                                  否则应用其他权限

            SUID 

                 任何一个文件能否启动为进程,取决于发起者对程序文件是否有执行权限

                   启动为进程后,其属主不是发起者,而是文件自己的属主,这种机制SUID

                     chmod  u + s  file

                     chmod   u - s  file 

                            注意:s:属主原本拥有x权限

                                      S:属主原本不拥有X权限

             SGID

                 默认情况下,用户创建文件时,其属组为次用户的基本组

                 一旦某目录被设定为SGID权限,则对此目录拥有写权限的用户在次目录创建的文件所属的组为目录的基本                       组,而非用户的基本组

             Sticky

                 对于一个多人可行的目录,此权限用于限定每个用户仅能删除自己的文件

                     chmod o+t file

                     chmod o-t file


   例

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

           技术分享


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

                技术分享






linux 学习总结

标签:linux

原文地址:http://10498794.blog.51cto.com/10488794/1691372

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!