「原创声明:保留所有权利,禁止转载」
本文由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/bashM: bad interpreter: No such file or directory
根本原因如下
windows下每一行的结尾是\n\r,而在linux下文件的结尾是\n,这样window写编辑的shell脚本拷贝到linux下时,每一行的结尾就会多出来一个字符\r,这个\r字符会被显示为^M,
同样原理使用MobaTextEditor读取从windows传到linux下文件会乱码
解决方法
- sed -i 's/\r$//' filename #flename 即 shell 脚本文件名
- 使用 dos2unix,执行相关命令 dos2unix xxx.sh
vim 命令
vim 有三种模式
- 命令行模式(光标定位)
- hjkl //上下左右
- 0 $ //行首行尾
- gg G //页首页尾
- 3G //进入第三行
- u //撤销恢复
- yy //复制一整行
- dd //删除一整行
- p c //粘贴 剪切
- 文本输入模式
- 末行模式(也叫退出模式)
工作模式设定
- :set //指定信息
- :set nu //添加行数
- :set noun // 去掉行数
- :set cursorline // 添加下划线
字符替换和查找
- 字符查找
- /关键字 参数 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
- ctrl + w 上 光标进入上边文件窗口
- 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 官方合作媒体,非著名测试开发。
TesterHome 为用户提供「保留所有权利,禁止转载」的选项。
除非获得原作者的单独授权,任何第三方不得转载标注了「原创声明:保留所有权利,禁止转载」的内容,否则均视为侵权。
具体请参见TesterHome 知识产权保护协议。
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
暂无回复。