Linux 基础命令 02

news/2025/9/21 0:10:54/文章来源:https://www.cnblogs.com/LnxGuru/p/19103086

一、查看文件内容及内容处理命令

1.1 vi/vim

vi命令 是UNIX操作系统和类UNIX操作系统中最通⽤的全屏幕纯⽂本编辑器。Linux中的vi编辑器叫vim,它是vi的增强版(vi Improved),与vi编辑器完全兼容,⽽且实现了很多增强功能。
vi编辑器⽀持编辑模式和命令模式,编辑模式下可以完成⽂本的编辑功能,命令模式下可以完成对⽂件的操作命令,要正确使⽤vi编辑器就必须熟练掌握着两种模式的切换。默认情况下,打开vi编辑器后⾃动进⼊命令模式。从编辑模式切换到命令模式使⽤“esc”键,从命令模式切换到编辑模式使⽤“A”、“a”、“O”、“o”、“I”、“i”键。
vi编辑器提供了丰富的内置命令,有些内置命令使⽤键盘组合键即可完成,有些内置命令则需要以冒号“:”开头输⼊。常⽤内置命令如下:

Esc:从编辑模式切换到命令模式;
ZZ:命令模式下保存当前⽂件所做的修改后退出vi;
:⾏号:光标跳转到指定⾏的⾏⾸;
:$:光标跳转到最后⼀⾏的⾏⾸;
x或X:删除⼀个字符,x删除光标后的,⽽X删除光标前的;
D:删除从当前光标到光标所在⾏尾的全部字符;
dd:删除光标⾏正⾏内容;
ndd:删除当前⾏及其后n-1⾏;
nyy:将当前⾏及其下n⾏的内容保存到寄存器?中,其中?为⼀个字⺟,n为⼀个数字;
p:粘贴⽂本操作,⽤于将缓存区的内容粘贴到当前光标所在位置的下⽅;
P:粘贴⽂本操作,⽤于将缓存区的内容粘贴到当前光标所在位置的上⽅;
/字符串:⽂本查找操作,⽤于从当前光标所在位置开始向⽂件尾部查找指定字符串的内容,查找的字符串会被加亮显
示;
?字符串:⽂本查找操作,⽤于从当前光标所在位置开始向⽂件头部查找指定字符串的内容,查找的字符串会被加亮显
示;
a,bs/F/T:替换⽂本操作,⽤于在第a⾏到第b⾏之间,将F字符串换成T字符串。其中,“s/”表示进⾏替换操作;
a:在当前字符后添加⽂本;
A:在⾏末添加⽂本;
i:在当前字符前插⼊⽂本;
I:在⾏⾸插⼊⽂本;
o:在当前⾏后⾯插⼊⼀空⾏;
O:在当前⾏前⾯插⼊⼀空⾏;
gg: 跳转到第⼀⾏
Shift+G: 跳转到最后⼀⾏
:wq:在命令模式下,执⾏存盘退出操作;
:w:在命令模式下,执⾏存盘操作;
:w!:在命令模式下,执⾏强制存盘操作;
:q:在命令模式下,执⾏退出vi操作;
:q!:在命令模式下,执⾏强制退出vi操作;
:e⽂件名:在命令模式下,打开并编辑指定名称的⽂件;
:n:在命令模式下,如果同时打开多个⽂件,则继续编辑下⼀个⽂件;
:f:在命令模式下,⽤于显示当前的⽂件名、光标所在⾏的⾏号以及显示⽐例;
:set number:在命令模式下,⽤于在最左端显示⾏号;
:set nonumber:在命令模式下,⽤于在最左端不显示⾏号;

1.2 cat

查看文件内容语法结构:cat file  # 查看文件的内容
参数选项:-n  # 显示文件的行数
# 查看 /etc/hosts 文件
root@prometheus-221:~ 22:51:45 # cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 ubuntu2204# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
root@prometheus-221:~ 23:24:32 #

1.3 head

显示文件开头部分,默认显示 10 行

# 查看文件前 5 行
root@prometheus-221:~ 23:25:30 # head -n 5 /etc/fstab 
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
root@prometheus-221:~ 23:26:46 #

1.4 tail

在屏幕上显示指定⽂件的末尾若⼲⾏,默认后 10 行

tail file #(显示⽂件file的最后10⾏)
tail -n +20 file #(显示⽂件file的内容,从第20⾏⾄⽂件末尾)
tail -c 10 file #(显示⽂件file的最后10个字节)
tail -25 mail.log # 显示 mail.log 最后的 25 ⾏
tail -f mail.log # 等同于--follow=descriptor,根据⽂件描述符进⾏追踪,当⽂件改名或被删除,追踪停
⽌
tail -F mail.log # 等同于--follow=name --retry,根据⽂件名进⾏追踪,并保持重试,即该⽂件被删除或改名后,如果再次创建相同的⽂件名,会继续追踪

1.5 cut

语法
cut(选项)(参数)
#选项
-b:仅显示⾏中指定直接范围的内容;
-c:仅显示⾏中指定范围的字符;
-d:指定字段的分隔符,默认的字段分隔符为“TAB”;
-f:显示指定字段的内容;
-n:与“-b”选项连⽤,不分割多字节字符;
--complement:补⾜被选择的字节、字符或字段;
--out-delimiter= 字段分隔符:指定输出内容是的字段分割符;
--help:显示指令的帮助信息;
--version:显示指令的版本信息。

示例

# 准备测试文件
root@ubuntu2204:~/test 23:29:17 # cat test.txt
01 tom 45 21
02 jack 66 99
03 jerry 98 78# 取出第一列,通过 -d 参数指定分隔符
root@ubuntu2204:~/test 23:33:09 # cut -d " " -f  1 test.txt 
No
01
02
03
root@ubuntu2204:~/test 23:33:15 # cut -d " " -f2,3  test.txt 
Name Math
tom 45
jack 66
jerry 98

1.6 sort

[root@180-143 test]# netstat -ant | awk '{print $NF}' | sort | uniq -c| sort -nrk 1
74 ESTABLISHED
25 LISTEN
1 TIME_WAIT
1 State
1 established)
1 CLOSE_WAIT
[root@180-143 test]# seq 100 | sort -nr | head -n 10
100
99
98
97
96
95
94
93
92
91

1.7 uniq

显示或忽略重复的⾏

语法:
uniq [OPTION]... [INPUT [OUTPUT]]
-c, --count 在每⾏开头增加重复次数。
[root@180-143 test]# cat test
1 2 3
1 2 3
[root@180-143 test]# uniq test
1 2 3

1.8 wc

统计⽂件的字节数、字数、⾏数

wc(选项)(参数)
wc [选项]... [⽂件]...
wc [选项]... --files0-from=F
root@ubuntu2204:~/test 23:45:11 # wc -l /etc/passwd
34 /etc/passwd
root@ubuntu2204:~/test 00:05:30 #

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/908632.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RabbitMQ核心模型简介,Hello World的发送与消费

本文目标理解AMQP模型中的核心概念:Connection, Channel, Producer, Consumer, Queue。创建一个.NET项目并添加RabbitMQ客户端库。使用C#编写代码发送一条消息("Hello World")。使用C#编写代码接收并处理…

Proxy 库解析(三)

ptrs template <class F> struct converter {explicit converter(F f) noexcept : f_(std::move(f)) {}converter(const converter&) = delete;template <class T>operator T() && noexcept(s…

软工个人项目 - Helen

论文查重系统设计与实现 GitHub作业链接: https://github.com/Playerhh/playerhh/tree/main/3223004773这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/Class34Grade23ComputerScience/这个作业要求在哪里…

记录 | 心理行动机制模型

你說: 在学校操场跑步,然后拉了十个单杠,想着要不再做个俯卧撑吧,但想着累了,不做了,但又想了想,还不如去想,就算做一个也是做,那还不如做试试,于是一个变成两个,两个变成五个,五个变成十个,十个在上25个…

ENSP模拟搭建典型中小型企业网架构

小型公司网络 网络拓扑图规划 vlan 销售 vlan 10 市场 vlan 20 产品 vlan 30 服务器 vlan 40 DMZ vlan 50 老板位 vlan 88 配置vlan SW3 [SW3]vlan 10 //创建vlan [SW3-vlan10]description xiaoshou //描述[SW3-vl…

【Java】ArrayList讲解

基础操作 创建实例

【Java】HashMap讲解

基础操作 创建实例

图解15:DNS工作原理

最近工作经常处理域名解析,SSL证书配置

图解16:数据和信息流的9大架构模式

本人ETL最近比较少用,之前使用都是处理数据平台入湖、数据同步、数仓

图解12:软件开发8大模型

本人基本都是使用增量和迭代

2025年9月15灯塔arl安装部署教程_2025-09-20

灯塔是什么 灯塔 ARL 是网络安全领域受青睐的自动化互联网资产侦察与安全风险评估工具,既能通过 DNS 解析、证书透明度日志、搜索引擎语法梳理域名资产,结合域名反向映射 IP、扫描 IP 段及 ASN 归属分析明确网络基础…

WINUI/WPF——自定义ListView

需求概述 首先明确我们要做什么:一个包含4个关注点的配置系统,每个关注点包含​​名称、颜色、半径、启用状态​​四个可配置属性。所有配置需持久化到数据库,并能实时反馈到UI显示上。​​核心功能点​​:关注点属…

用 Rust 实现英文数字验证码识别

一、安装必要的工具 安装 Rust: 可以通过 Rust 官方网站来安装 Rust: https://www.rust-lang.org/tools/install 安装完成后,可以通过以下命令确认 Rust 是否安装成功: rustc --version 更多内容访问ttocr.com或联系…

图解11:API和SDK区别

平常除了封装公共组件能力给外部系统使用和调用阿里云的能力,SDK比较少用

短暂的初中OI学习记录

短暂的初中OI学习记录个人学习方面 本人现JS初三,弱校自学的蒟蒻,今年初赛暂感觉不稳。 刚刚过去的暑假,我听学长的建议,在洛谷上初赛的课。每天练习完都非常的崩溃,不过崩溃完我就耐心去看错了什么,然后再练。我…