ITPub博客

首页 > 数据库 > 数据库开发技术 > Linux文件系统和vim命令

Linux文件系统和vim命令

原创 数据库开发技术 作者:FunTester 时间:2021-04-16 10:12:24 0 删除 编辑

本文由FunTester学习社区小伙伴输出,后续还会有各路学习笔记分享,欢迎大家关注支持。

文件系统

  • /bin    (/usr/bin、/usr/local/bin)
    • 这个目录存放着经常使用的命令
  • /sbin   (/usr/sbin、/usr/local/sbin)
    • 系统管理员使用的系统管理程序
  • /home
    • 存放普通用户的主目录,一个用户一个子目录
  • /root
    • 该目录为系统管理员,也称作超级权限者的用户主目录
  • /lib
    • 系统开机所需要的动态连接共享库,类似windows的DLL文件
  • /lost+found
    • 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件
  • /etc
    • 所有的系统管理所需的配置文件和子目录
  • /usr
    • 这是一个非常重要的目录了,这个目录下有很多应用程序和文件
    • 类似windows下的program file目录
  • /boot
    • 这里存放的是启动linux的核心文件,包括一些连接以及镜像文件
  • /proc
    • 这个目录是一个虚拟的目录,他是系统内存的映射,可以通过直接访问这个目录来获取系统信息
  • /srv
    • service缩写,该目录存放一些服务启动之后所需提取的数据
  • /sys
    • 2.6内核新文件系统sysfs
  • /tmp
    • 存放临时文件
  • /dev
    • 类似windows的设备管理器,所有硬件用文件的形式存储
  • /media (centos6)
    • linux会把识别的设备挂载到这个目录下
  • /run
    • 进程产生的临时文件
  • /mnt
    • 用户临时挂载别的文件系统,如u盘挂载
  • /opt
    • 主机安装额外软件目录
  • /usr/local
    • 编译源码方式安装的程序
  • /var
    • 日志和经常修改的东西

Linux工作问题解决办法

MobaTextEditor乱码解决

  • 同类错误  /bin/bash^M: bad interpreter: No such file or directory

根本原因如下

windows下每一行的结尾是\n\r,而在linux下文件的结尾是\n,这样window写编辑的shell脚本拷贝到linux下时,每一行的结尾就会多出来一个字符\r,这个\r字符会被显示为^M,
同样原理使用MobaTextEditor读取从windows传到linux下文件会乱码

解决方法

  1. sed -i 's/\r$//' filename  #flename即shell脚本文件名
  2. 使用dos2unix,执行相关命令dos2unix  xxx.sh

vim命令

vim有三种模式

  1. 命令行模式(光标定位)
    1. hjkl        //上下左右
    2. 0 $         //行首行尾
    3. gg G     //页首页尾
    4. 3G        //进入第三行
    5. u           //撤销恢复
    6. yy          //复制一整行
    7. dd         //删除一整行
    8. p  c        //粘贴 剪切
  2. 文本输入模式
  3. 末行模式(也叫退出模式)

工作模式设定

  1. :set                       //指定信息
  2. :set nu                 //添加行数
  3. :set   noun          // 去掉行数
  4. :set cursorline   // 添加下划线

字符替换和查找

  1. 字符查找
  • /关键字    参数n/ N                      向上/下匹配关键字
  • 字符替换
  • :s/aa/bb    # 将光标所在行第一个 aa 替换为 bb
    :s/aa/bb/g    # 将光标所在行所有 aa 替换为 bb
    :%s/aa/bb/g    # 全文执行替换 aa 替换为 bb
    :3,10s/aa/bb/g   # 将第3行到第10行 aa 替换为 bb
    :%s/\\/\//g    # 全文\替换为/ (特殊字符:^、$、*、/、\和.都需要转义,前面加上\)
    :%s,\\,/,g    # 或用逗号分割(/可以不用转义)
    :%s,aa,bb,gic   # 全文 aa(忽略大小写) 替换为bb,每次替换提示是否替换

    同时编辑多个文件

    :sp filename

    1. ctrl + w   上           光标进入上边文件窗口
    2. ctrl + w   下           光标进入下边文件窗口

    附上用到的shell脚本

    #!/bin/bash
    ## 
    ## 构造琐碎文件并计算MD5值
    ## author: brh
    ## date:   2020-10-09
    ##

    case $1 in
    "-h")
     echo "1: ./xxx.sh touch_file num"
     echo "2: ./xxx.sh touch_md5_file num"
     echo "3: ./xxx.sh check_md5_file num"

    ;;

    "touch_file")
     ## 生成琐碎文件
     for((i=1;i<=$2;i++));
     do
      echo $i > $i.txt
     done
    ;;
    "touch_md5_file")
     ## 计算琐碎文件MD5并保存
     for((i=1;i<=$2;i++));
     do
      md5sum $i.txt > $i.txt.md5
     done
    ;;
    "check_md5_file")
     ## 比对琐碎文件MD5是否一致
     for((i=1;i<=$2;i++));
     do
      md5num1=`md5sum $i.txt`
      md5num2=`cat $i.txt.md5`
      if [ "$md5num1"x = "$md5num2"x ]; then
       echo "$i.txt MD5 数据一致"
      else 
       echo "$i.txt MD5 数据不一致"
      fi
     done
    ;;
    esac


    FunTester,腾讯云年度作者、Boss直聘签约作者,GDevOps官方合作媒体,非著名测试开发。


    原文作者:FunTester;如有侵权,请联系管理员删除。

    请登录后发表评论 登录
    全部评论

    注册时间:2019-07-07

    • 博文量
      1037
    • 访问量
      420913