磁盘,文件,目录相关操作

大彬大约 2 分钟

磁盘,文件,目录相关操作

vim操作

#normal模式下 g表示全局, x表示查找的内容, y表示替换后的内容
:%s/x/y/g

#normal模式下
0  #光标移到行首(数字0)
$  #光标移至行尾
shift + g #跳到文件最后
gg #跳到文件头

#显示行号
:set nu

#去除行号
:set nonu

#检索
/xxx(检索内容)  #从头检索, 按n查找下一个
?xxx(检索内容)  #从尾部检索

打开只读文件,修改后需要保存时(不用切换用户即可保存的方式)

#在normal模式下
:w !sudo tee %

查看磁盘, 文件目录基本信息

#查看磁盘挂载情况
mount

#查看磁盘分区信息
df

#查看目录及子目录大小
du -H -h

#查看当前目录下各个文件, 文件夹占了多少空间, 不会递归
du -sh *

wc命令

#查看文件里有多少行
wc -l filename

#看文件里有多少个word
wc -w filename

#文件里最长的那一行是多少个字
wc -L filename

#统计字节数
wc -c

常用压缩, 解压缩命令

压缩命令

tar czvf xxx.tar 压缩目录

zip -r xxx.zip 压缩目录

解压缩命令

tar zxvf xxx.tar

#解压到指定文件夹
tar zxvf xxx.tar -C /xxx/yyy/

unzip xxx.zip

变更文件所属用户, 用户组

chown eagleye.eagleye xxx.log

cp, scp, mkdir

#复制
cp xxx.log

#复制并强制覆盖同名文件
cp -f xxx.log

#复制文件夹
cp -r xxx(源文件夹) yyy(目标文件夹)

#远程复制
scp -P ssh端口 username@10.10.10.101:/home/username/xxx /home/xxx

#级联创建目录
mkdir -p /xxx/yyy/zzz

#批量创建文件夹, 会在test,main下都创建java, resources文件夹
mkdir -p src/{test,main}/{java,resources}

比较两个文件

diff -u 1.txt 2.txt

日志输出的字节数,可以用作性能测试

#如果做性能测试, 可以每执行一次, 往日志里面输出 “.” , 这样日志中的字节数就是实际的性能测试运行的次数, 还可以看见实时速率.
tail -f xxx.log | pv -bt

查看, 去除特殊字符

#查看特殊字符
cat -v xxx.sh

#去除特殊字符
sed -i 's/^M//g’ env.sh  去除文件的特殊字符, 比如^M:  需要这样输入: ctrl+v+enter

处理因系统原因引起的文件中特殊字符的问题

#可以转换为该系统下的文件格式
cat file.sh > file.sh_bak

#先将file.sh中文件内容复制下来然后运行, 然后粘贴内容, 最后ctrl + d 保存退出
cat > file1.sh

#在vim中通过如下设置文件编码和文件格式
:set fileencodings=utf-8 ,然后 w (存盘)一下即可转化为 utf8 格式,
:set fileformat=unix

#在mac下使用dos2unix进行文件格式化
find . -name "*.sh" | xargs dos2unix

tee, 重定向的同时输出到屏幕

awk ‘{print $0}’ xxx.log | tee test.log
Loading...