设为首页 收藏本站
查看: 188|回复: 0

[经验分享] Linux系统中vim、find、bash环境变量、文件系统权限及磁盘管理相关命令

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-9-6 08:50:01 | 显示全部楼层 |阅读模式
一、总结文本编辑工具vim的使用方法

1、模式转换

    编辑模式--》 输入模式
            i: 在当前光标所在字符的前面,转为输入模式;
            a: 在当前光标所在字符的后面,转为输入模式;
            o: 在当前光标所在行的下方,新建一行,并转为输入模式;

            I:在当前光标所在行的行首,转换为输入模式
            A:在当前光标所在行的行尾,转换为输入模式
            O:在当前光标所在行的上方,新建一行,并转为输入模式;
     输入模式--》编辑模式
            ESC按键
    编辑模式--》末行模式
               :
     末行模式--》编辑模式
           ESC按键
2、vim打开:默认处于编辑模式
   vim +# :打开文件,并定位于第#行
   vim +  :打开文件,定位至最后一行
   vim +/PATTERN:打开文件,定位至第一次被PATTERN匹配到的行的行首
3、关闭vim
  (1)末行模式关闭文件
       :q 退出
       :wq 保存并退出
       :q! 不保存并退出
       :w 保存
       :w!强制保存
       :wq -->:x
  (2)编辑模式下退出
       ZZ:保存并退出
4、光标跳转(编辑模式下)
  (1)字符间跳转:左(h)右(l)上(j)下(k) #h表示向左移动#个字符
  (2)单词间跳转:
                w:移动至下一个单词的词首
                e:跳至当前或下一个单词的词尾
                b:跳至当前或前一个单词的词首
  (3)行内跳转:
               0:绝对行首
               ^:行首的第一个非空白字符
               $:绝对行尾
  (4)行间跳转:
               #G:跳转至第#行(1G=gg)
                G:最后一行
  (5)句间移动:)(
  (6)段落间移动:}{
5、编辑命令
  (1)字符编辑

      x: 删除光标所在处的单个字符
     #x:删除光标所在处及向后的共#个字符
      r:4rg(当前字符到后面3个字符变更成g)
      R:直接进入替换模式
  (2)删除命令
      d命令可跟跳转命令组合使用
      #dw,#de,#db
      d^,d0,d$
      dd:删除当前光标所在行
     #dd:删除包括当前光标所在行在内的#行
     注意:删除的内容会被vim编辑器保存至缓冲区当中;不会立即删除
  (3)粘贴命令

      p:如果删除或复制为整行内容,则粘贴至光标所在行的下方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的后面;
      P:如果删除或复制为整行内容,则粘贴至光标所在行的上方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的前面;
  (4)复制命令
      yy:复制当前行
     #yy:复制当前光标内的#行(光标下的#行)
  (5)修改命令c
       cc:删除当前行内容,同时进入输入模式
      #cc:
6、撤销此前的编辑操作

  u:撤销前一次的编辑操作

    连续u命令可撤销此前N次编辑
#u:直接撤销最近#次编辑操作
  Ctrl+r :恢复此前的撤销操作
  .:重复前一个编辑操作
7、翻屏操作


   Ctrl+f: 向下翻一屏
   Ctrl+b: 向上翻一屏
   Ctrl+d: 向下翻半屏
   Ctrl+u: 向上翻半屏
8、末行模式
  (1)地址、定界

   :start_pos,end_pos
        #:第#行
        #,+#:第#行到往后加#行
             .:当前行
             $:最后一行
        %:全文,相当于1,$
       /part1/:第一次被模式匹配到的行;
        #,/part1/:第#行到第一次被模式匹配到的行
     后可跟的编辑命令:
        d:删除所选择或匹配到的行(比如:1,3d)
        w:将选择或匹配到的行保存至另外一个文件(比如:1,$w /tmp/vim.text)

        y:表示复制

        r:将另外一个文件的内容填充在当前文件中(光标的后面)
  (2)查找
      /PATTERN:向尾部进行

     ?PATTERN:向首部进行
          n:与命令同方向
          N:与命令反方向
  (3)查找替换

      s:在末行模式下,在地址定界的范围内完成查找替换操作
         s/要查找的内容/替换为的内容/修饰符
           要查找的内容:可使用模式
           替换为的内容:不能使用模式,但能使用后向引用符号,已引用前面模式中的分组括号所匹配到的内容
                如: \1,\2,.....
                &:引用"要查找的内容"匹配到的整个内容:
           修饰符:
                i:忽略大小写
                g:全局替换
           /:用于分隔符,查找或替换的内容中用到此符号时,需要使用\对其转义:\/

             也可使用其他分隔符,如:@,#
9、多文件模式
   vim FILE1 FILE2 .....

      :next 切换至下一个文件
      :prev 切换至前一个文件
      :last 切换至最后一个文件
      :first 切换至第一个文件
   
      :wqall 保存所有
      :q!all 退出所有
10、多文件窗口分割

      vim -o FILE1 FILE2 :水平分割显示

      vim -O FILE1 FILE2 :垂直分割显示
      Ctrl+w,ARROW :窗口间切换光标
11、单文件窗口分割
       Ctrl+w, s: split, 水平分割
      Ctrl+w, v: vertical, 垂直分割
12、订制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
13、配置文件(可设定特性永久生效)
    全局配置文件:/etc/vimrc
    用户个人的配置文件:~/.vimrc
二、总结文件查找命令find的使用方法

1、文件查找工具locate,find

locate:非实时查找工具;依赖于事先构建的索引;索引的构建是在系统较为空闲时自动进行(周期性任务);手动更新此数据库(updatedb);查找速度快;模糊查找;
find:通过遍历指定的目标目录,实时查找符合指定属性的文件,实时查找;查找速度略慢;精确查找
2、find命令使用规范:

  查找路径:默认为当前路径;
  查找条件:指定的查找标准,可以根据文件名、大小、属主属组、类型等进行;默认为找出指定路径下的所有文件;
  处理动作:对符合条件的文件做什么操作;默认为输出至屏幕;
3、find命令的查找条件
   (1)根据文件名进行查找
      -name “文件名”:文件名支持globbing(*,?,[])
      -iname “文件名”:不区分文件名大小写,支持使用glob
      -regex   PATTERN :基于正则表达式进行文件名匹配
   (2)根据属主、属组查找
      -user USERNAME: 查找属主为指定用户的文件
      -group GROUPNAME:查找属组为指定用户的文件
      -uid UserID: 查找文件的属主为指定uid的文件;
      -gid GroupID: 查找文件的属组为指定gid的文件
      -nouser: 查找没有属主的文件;
      -nogroup:查找没有属组的文件;
   (3)根据文件类型进行查找
        -type TYPE
            f: 普通文件
            d: 目录
            l: 符号链接
            b: 块设备
            c: 字符设备
            p: 命名管道
            s: 套接字
   (4)组合查找条件

         与条件:-a ,查找条件1 -a 查找条件2 -a ..... (所有条件必须同时满足)
         或条件:-o ,超找条件1 -o 查找条件2 -o .....(所有条件满足一个即可)
         非条件:-not,!(条件取反后满足的)
   (5)根据文件大小来查找

         -size (单位可以为k,M,G)
               2k:表示 1k<x<=2k(1.1   1.9)
              +2k:表示 >2k
              -2k:表示<=1k (0.9k,1k)
   (6)根据时间戳查找
       以“天”为单位

         -atime [+|-]#
              3天: 3<=x<4
              3天以内:x<3
              3天之前:x>=4
         -mtime   
         -ctime     
       以“分钟”为单位
         -amin[+|-]#
              刚好5分钟:5<=x<6
              5分钟内:x<5
              5分钟前:x>=5
         -mmin
         -cmin
   (7)根据权限查找
         -perm [+|-]MODE
       MODE: 精确权限匹配
      /MODE:任何一类对象(u,g,o)的任何一位权限符合条件即可;隐含或条件
              -MODE:为每一类对象指定的每一位权限都必须同时存在方为符合条件;
4、处理动作
     -print: 默认处理动作
          -ls:类似于对查找到的每个文件做"ls -l"的操作;
          -delete: 删除查找到的文件;
          -fls /path/to/somefile:查找到的文件的详细路径信息保存至指定文件中;
         -ok COMMAND {} \;

      对每个文件执行指定的命令之前需要用户事先确认;
          -exec COMMAND {} \;
        无需用户确认;
三、总结bash环境变量的相关内容
1、bash配置文件分类
   profile类:为交互式登入shell提供配置文件
      全局配置:

            /etc/profile  /etc/profile.d/*sh
      用户配置:
            ~/.bash_profile
      功用:
          (1)设定环境变量,如:PATH、等
          (2)运行命令或脚本
   bashrc类:为非交互式登入shell提供配置文件
      全局配置:
           /etc/bashrc
      用户配置:
           ~/.bashrc
      功用:
          (1)设定本地变量
          (2)定义命令别名
2、变量意义、类型与定义方式
      本地变量:只对当前shell进程有效的变量,对其他shell进程无效(包含当前shell的子shell)
           VAR_NAME=VALUE
           变量赋值:向变量的存储空间保存数据
           变量引用:
                    "": 弱引用,可以实现变量替换
                    '': 强引用,不完成变量替换,直接输出引号内内容
      环境变量:对当前shell进程及其子shell有效,对其他的shell进程无效

           用户可自定义环境变量,bash有许多内置的环境变量
                      PATH:命令搜索路径
                      HISTSIZE: 命令历史缓冲区大小
               定义:export VAR_NAME=VALUE(declare -x name=value)
               导出:export VAR_NAME(将本地变量变成环境变量)
               撤销变量:unset VAR_NAME   
               只读变量: readonly VAR_NAME
      局部变量:作用范围仅为当前shell进程中某代码片断(通常为函数上下文)
            local VAR_NAME=VALUE
      位置变量:$1,$2.....${10}
      特殊变量:$?
查看当前shell进程中的所有变量:set
查看当前shell进程中的所有环境变量: export ,printenv,env
3、shell登入类型及其配置文件作用次序
   (1)交互式登入
          直接通过终端进行的登录;
          通过su -l Username命令实现的用户切换;
      配置文件作用次序:
      /etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc
   (2)非交互式登入
          图形界面下打开的命令行窗口;
  执行脚本;
  su Username;
       配置文件作用次序:
      ~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh

4、编辑配置文件定义的新配置如何生效
    (1)重新登入
    (2)让当前shell进程去重新读取指定的配置文件;
         source file
         . file
四、总结Linux文件系统上的特殊权限(SUID,SGID,Sticky)的知识点
1、Linux系统的权限模型

     u       g        o
  (rwx) (rwx)  (rwx)
2、进程的安全上下文
   前提:进程有属主(进程以哪个用户的身份运行);文件有属主和属组;

   (1)用户是否能够把某个可执行程序文件启动为进程,取决于用户对程序文件是否拥有执行权限;
  (2)程序启动为进程后,此进程的属主为当前用户,也即进程的发起者;进程所属的组,为发起者的基本组;
   (3)进程拥的访问权限,取决其属主的访问权限:
       (a) 进程的属主,同文件属主,则应用文件属主权限;
       (b) 进程的属主,属于文件的属组,则应用文件属组权限;
       (c) 则应用其它权限;
3、特殊权限位使用说明
   (1)SUID:运行某程序时,相应进程的属主是程序文件自身的属主,而不是发起者用户
      权限设定:
chmod u+s FILE...
chmod u-s FILE...
      注意:
s: 属主原本拥有x权限;
S: 属主原本无x权限;
   (2)SGID:行某程序时,相应进程的属组是程序文件自身的属组,而不是启动者所属的基本组     
      权限设定:
chmod g+s FILE...
chmod g-s FILE...
   (3)Sticky:在一个公共目录,每个都可以创建文件,删除自己的文件,但不能删除别人的文件
      权限设定:
chmod o+t FILE...
chmod o-t FILE...
   (4)sst位权限设置方法

       000
        001
        010
        011
        100
        101
        110
        110
       chmod 6664 file (设置ss位)
       chmod 1775 dir  (设置t位)
五、总结Linux磁盘管理、文件系统相关知识点及其相关命令的使用方法




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-109917-1-1.html 上篇帖子: CentOS程序包管理 下篇帖子: 使用busybox制作微Linux系统 Linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表