跳到主内容

LYRA

Lyra 正在加载

Linux 指令笔记(四)

Linux鬼鬼

查看/编辑文件 操作

ls 显示目录中文件

ls 命令说明
Terminal window
# 显示当前目录下的所有文件
ls -a
# 命令后面加上绝对路径/相对路径就会显示指定文件夹内的所有文件
# 相对路径,当前目录是 /root,欲查看的目录是 /root/bash/log
ls -a bash/log
# 绝对路径,当前目录是 /root,欲查看的目录是 /root/bash/log
ls -a /root/bash/log

更多的命令可以用 ls --help 来查看。


du 查看 文件/文件夹 占用磁盘空间的大小

du 命令说明

参数介绍
  • -h - 以人类易读的方式显示
  • -a - 显示目录占用的磁盘空间大小,并显示其下目录和文件占用磁盘空间的大小
  • -s - 显示目录占用的磁盘空间大小,但不显示其下子目录和文件占用的磁盘空间大小
  • -c - 显示几个目录或文件占用的磁盘空间大小,还要统计它们的总和
  • --apparent-size - 显示目录或文件自身的大小
  • -l - 统计硬链接占用磁盘空间的大小
  • -L - 统计符号链接所指向的文件占用的磁盘空间大小

更多的命令可以用 du --help 来查看。


使用示例
Terminal window
# 假设当前位于 /root 目录下,则显示 /root 文件夹的大小,但不显示其子目录和文件的大小
du -sh
# 假设当前位于 /root 目录下,则显示 /root 文件夹的大小,并显示其子目录和文件的大小
du -ah
# 假设当前位于 /root 目录下,则显示 /root 文件夹下的所有文件夹的大小及其总和
du -lh --max-depth=1

更多的命令可以用 du --help 来查看。


cat 查看文件内容

cat 命令说明

查看文件
Terminal window
# 查看 log.txt 文件的所有内容
cat log.txt
# 查看 log.txt 文件的所有内容,并对所有行编号
cat -n log.txt
# 查看 log.txt 文件的所有内容,并对非空行编号
cat -b log.txt
# 查看 log.txt 文件的所有内容,并对非空行编号,且不输出多行空行
cat -bs log.txt
清空文件
Terminal window
# 清空当前目录中的 log.txt 文件
cat /dev/null > log.txt
# 清空 /var 目录中的 log.txt 文件
cat /dev/null > /var/log.txt
写入文件
Terminal window
# 写入文本到当前目录中的 log.txt 文件中(加入文本到文件内容最后)
# 输入内容后,单独一行写 EOF 结束输入
cat >> log.txt <<-EOF
# 清空文件并写入文本到 /var 目录中的 log.txt 文件中(先清空后写入)
cat > /var/log.txt <<-EOF

更多的命令可以用 cat --help 来查看。


head 查看文件内容(主要用于正查)

head 命令说明
参数介绍
  • -c 数字 - 显示指定文件的前 xx 字节的内容(bytes)
  • -n 数字 - 显示指定文件的前 xx 行的内容
  • -q - 不显示包含指定文件名的文件头(当使用 head 打开多个文件的时候,会在每个文件输出结果的顶部添加一个包含文件名的文件头用于区分)

更多的命令可以用 head --help 来查看。


使用示例
Terminal window
# 查看 log.txt 文件的前 10 行(head 默认只显示前 10 行)
head log.txt
# 查看 log.txt 文件的前 3 字节的内容
head -c 3 log.txt
# 输出示例:dou
# 查看 log.txt 文件的前 2 行的内容
head -n 2 log.txt
# 查看 log.txt 文件的从倒数第 2 行到行首的内容
head -n -2 log.txt
# 查看 log.txt log1.txt log2.txt 文件的前 3 行内容
head -n 3 log.txt log1.txt log2.txt

更多的命令可以用 head --help 来查看。


tail 查看文件内容(主要用于倒查)
查看 tail 命令说明
  • -c 数字 - 如果数字为正数(例如 -c +5),显示指定文件从行首第 xx 字节到最后的内容;如果数字为负数(例如 -c -5),显示指定文件从行尾第 xx 字节到最后内容。
  • -n 数字 - 如果数字为正数(例如 -n +3),显示指定文件从行首第 xx 行到最后的内容;如果数字为负数(例如 -n -3),显示指定文件从行尾第 xx 行到最后的内容。
  • -f - 即时输出文件变化后增加的内容,也就是监视一个文件的内容变化(常用于监视日志输出),使用 Ctrl + C 终止

更多的命令可以用 tail --help 来查看。


使用示例
Terminal window
# 查看 log.txt 文件的最后 10 行(tail 默认只显示后 10 行)
tail log.txt
# 查看 log.txt 文件从行首第 25 字节到最后的内容
tail -c +25 log.txt
# 查看 log.txt 文件从行尾第 4 字节到最前面的内容
tail -c -4 log.txt
# 查看 log.txt 文件的从第 2 行到最后一行的内容
tail -n +2 log.txt
# 查看 log.txt 文件的后 2 行的内容
tail -n -2 log.txt
# 持续查看(监视) log.txt 文件的变化内容(新增加的内容),使用 Ctrl + C 终止
tail -f log.txt
# 查看 log.txt log1.txt log2.txt 文件的最后 3 行内容
tail -n 3 log.txt log1.txt log2.txt

更多的命令可以用 tail --help 来查看。


sed 查看/编辑文件内容

查看 sed 命令说明

参数介绍
  • -i - 操作后应用保存到原文件(如果不加这个参数,那么任何修改都不会影响原文件里的内容,只会把结果输出)
  • -e - 指定处理脚本,需要多个 sed 命令时可以用多个 -e 依次传入(「只输出处理结果」靠的是 -n 配合 p

更多的命令可以用 sed --help 来查看。


使用示例

Terminal window
# 查看 log.txt 第 3 行的内容
sed -n '3p' log.txt
# 查看 log.txt 第 2-8 行的内容
sed -n '2,8p' log.txt
# 删除 log.txt 第 1 行(首行)
sed -i '1d' log.txt
# 删除 log.txt 第 3-7 行
sed -i '3,7d' log.txt
# 删除 log.txt 最后 1 行(尾行)
sed -i '$d' log.txt
# 删除 log.txt 中所有空白行
sed -i '/^$/d' log.txt
# 删除 log.txt 开头是 temp 的行
sed -i '/^temp/d' log.txt
# 删除 log.txt 结尾是 temp 的行
sed -i '/temp$/d' log.txt
# 删除 log.txt 文件中所有包含 233 内容的行
sed -i '/233/d' log.txt
# 删除 log.txt 文件中第一个 233 文本
sed -i 's/233//' log.txt
# 删除 log.txt 文件中所有 233 文本(g 代表操作所有匹配规则的文本)
sed -i 's/233//g' log.txt
# 删除 log.txt 文件中所有第 5 个 233 文本(5g 代表第五个匹配规则的文本)
sed -i 's/233//5g' log.txt
# 替换 log.txt 文件中第一个 233 为 666
sed -i 's/233/666/' log.txt
# 替换 log.txt 文件中所有 233 为 666(g 代表操作所有匹配规则的文本)
sed -i 's/233/666/g' log.txt
# 替换 log.txt 文件中所有 /ver 为 temp/,因为有斜杠,所以需要使用 \ 转义,但是单引号会导致无法转义,所以要改成双引号。
sed -i "s/\\/ver/temp\\/" log.txt
# 显示 log.txt 文件中的奇数行或偶数行
sed -n 'p;n' log.txt # 奇数行
sed -n 'n;p' log.txt # 偶数行

更多的命令可以用 sed --help 来查看。


VI、VIM、Nano 编辑文件内容

vi vim 命令说明

VI 介绍

VI 是 Linux 很棒的一个文本编辑器,不过也存在一些缺点,比如操作麻烦。而 vim 就相当于 VI 的加强版,主要介绍 VIM。

VIM 介绍

使用教程:Linux 文本编辑器 VIM 简单使用教程

Terminal window
# 打开当前目录下的 log.txt 文件,如果没有那么会新建 log.txt 文件(安装 vim 后,使用 vi 和 vim 打开文件没区别)
vi log.txt
vim log.txt
在命令行模式下,直接输入以下符号和字母(区分大小写)
Terminal window
# 进入编辑模式(插入模式,按 Esc 键 即可返回命令行模式)
i
# 删除光标当前所在的一行
dd
# 删除文件内所有内容(先跳到第一行,再删到最后一行;也可以直接用 :%d)
ggdG
# 复制光标当前所在的一行
yy
# 粘贴刚才复制的一行内容
p
# 撤销上个操作(误操作可以用这个恢复)
u
# 保存当前文件( : 是英文的冒号)
:w
# 另存当前文件内容为 log2.txt
:w log2.txt
# 退出当前文件
:q
# 不保存 并强制退出当前文件
:q!
# 保存并退出当前文件
:wq

更多的命令可以用 vi --help / vim --help 来查看。


Nano 介绍

使用教程:Linux 更适合新手的文本编辑器

Terminal window
# 打开当前目录下的 log.txt 文件,如果没有那么会新建 log.txt 文件
nano log.txt
# 进入后直接就可以输入修改文本内容了,修改后我们可以使用这个按键保存内容
Ctrl+O
# 如果不需要编辑了,那么可以用这个按键退出当前文件
Ctrl+X
# 如果你在退出前已经修改但没有保存,那么会提醒你是否保存,如果保存就输入 y,不保存输入 n
# 然后就会让你输入要保存的文件名(默认原文件名,所以直接按 Enter 回车即可,除非你要另存为其他文件名)
Enter

更多的命令可以在 nano 编辑界面中按 F1 键查看。

版权许可

本文采用 CC BY-SA 4.0 协议授权

保留署名与相同方式共享即可转载、引用或再创作。转载时请注明出处并附上本文链接。

评论

留言系统基于 Disqus,发言前可查看 评论规则。部分网络环境可能无法正常加载。