• Linux文件系统和vim命令


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

    解决方法

    1. sed -i 's/ $//' 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 向上/下匹配关键字
    2. 字符替换
    :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官方合作媒体,非著名测试开发。

  • 相关阅读:
    微信小程序---app.json中设置背景色不生效解决办法
    给网站设置ICO图标
    ajax事件(五)
    ajax关于主流中的异类:应对Opera(四)
    dashboard
    tomcat 清理日志
    jQuery datatable
    php wampserver 80 端口无法开启的解决方法
    mysql 行列转换
    jQuery-2.1.4.min.js:4 Uncaught TypeError: Illegal invocation
  • 原文地址:https://www.cnblogs.com/FunTester/p/14668301.html
Copyright © 2020-2023  润新知