zoukankan      html  css  js  c++  java
  • 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官方合作媒体,非著名测试开发。

  • 相关阅读:
    CF1454F Array Partition
    leetcode1883 准时抵达会议现场的最小跳过休息次数
    leetcode1871 跳跃游戏 VII
    leetcode1872 石子游戏VIII
    CF1355C Count Triangles
    CF1245D Shichikuji and Power Grid
    CF1368C Even Picture
    CF1368D AND, OR and square sum
    CF1395C Boboniu and Bit Operations
    SpringBoot和开发热部署
  • 原文地址:https://www.cnblogs.com/FunTester/p/14668301.html
Copyright © 2011-2022 走看看