ubuntu学习day2

linux常用命令

3.文件查看及处理命令

3.1查看文件内容

cat+[选项]+[文件]
-b 对非空输出行编号
-E 在每行结束处显示$
-n 对输出的所有行编号
-s 不输出多行空行

标准输入、标准输出和标准错误

在 Linux 中,每个进程默认有三个文件描述符:

  • 标准输入(stdin):文件描述符为 0,用于向程序提供输入。
  • 标准输出(stdout):文件描述符为 1,用于输出正常信息。
  • 标准错误(stderr):文件描述符为 2,用于输出错误信息。
重定向标准输出
cat file1 >file3 #将file1内容复制到file3文件中

注意:重定向标准输出会把原文件内容覆盖掉。

echo helo >file 
cat file #输出hello
echo world >file
cat file #输出world

避免此类问题可以使用添加输出
格式:>>

echo world >>file
重定向标准输入

command < input_file

sort < names.txt #将 names.txt 文件的内容作为 sort 命令的输入,并输出排序结果。
错误重定向

2>错误重定向用于将标准错误输出重定向到文件或与其他输出合并。

grep "error" log.txt 2> error.log#将 grep 命令的错误信息保存到 error.log 文件中。
错误和信息重定向

将标准输出和标准错误同时重定向到同一个文件。
command &> output_file

ls -l * &> all_output.txt
#ls -l * 会列出所有文件,如果某些文件不存在,会产生错误信息。
#&> 将标准错误输出重定向到标准输出,因此错误信息也会被保存到 all_output.txt
linux 中创建空文件的四种方式
  • echo a.txt
  • touch b.txt
  • cat > c.txt(按ctrl+c退出)
  • vi d.txt (:wq 退出)

3.2 显示文件内容的前几行

head - n +行数值+文件名

3.3 显示文件的后几行

tail –n +行数值 +文件名

3.4 单页浏览文件

more或者less(很鸡肋。查看大文件使用)、

3.5 对文件内容进行排序

sort+文件名

3.6 查看文件内容类型

file +文件名 (根据文件内容,判别文件类)

3.7 报告或删除文件中重复的行

uniq +文件名
-c 在输出行前面加上每行在输入文件中出现的次数。
-d 仅显示重复行。
-u 仅显示不重复的行

3.8 统计指定文件中的行数、字数、字节数

wc +文件名
-c 统计字节数。
-l 统计行数。
-m 统计字符数。这个标志不能与 -c 标志一起使用。
-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串

3.9 汉字编码转换

iconv -f+原始编码+-t+目标编码

iconv -f utf-8 -t gb2312 hanzi>hanzi1
#将hanzi文件内容以utf-8编码转化为gb2312编码并保存到hanzi1文件中

3.10 搜索文件内容 grep

grep+[选项]+[关键字或查找模式]+[文件名 1,文件名 2,……]
^ 以什么开头 ,例如 ls –l | grep ^d 显示当前目录下的所有子目录的详细信息。
$ 以什么结尾 。例如 ls –l | grep c$ 显示当前目录下以 c 结尾的文件。

  • 常用的参数:
    -F 每个模式作为固定的字符串对待
    -c 只显示匹配行的数量。
    -i 比较式不区分大小写。
    -n 在输出前加上匹配串所在的行号。
  • grep 通配符
    • .*一个或任意多个字符
    • .一个字符
    • []范围

4. 其他命令

4.1 管道与命令替换

管道:是重定向的一种,就像一个导管一样,将一个程序或命令的输出作为另一个程序或命令的输入

ls -l /etc| wc -l #统计etc目录下个数(原理ls输出该目录下每个文件占一行的详细信息,wc统计有多少行数因此知道有多少个文件)

4.2 文件或目录的创建掩码

umask 是一个掩码值,用于限制新创建的文件和目录的默认权限。它的作用是通过减法的方式,从文件或目录的初始权限中“屏蔽掉”某些权限。

  • 假设当前的 umask 值为 002
    • 文件的初始权限:666
    • 屏蔽的权限:002
    • 最终权限:666 - 002 = 664
  • 对于目录:
    • 目录的初始权限:777
    • 屏蔽的权限:002
    • 最终权限:777 - 072 = 775
  • umask 的作用
    • 安全性:通过限制新文件和目录的默认权限,防止不必要的访问。
    • 一致性:确保所有用户在创建文件和目录时遵循统一的权限规则。

4.3 文档管理

tar +[主选项+辅选项] +目标文档源文件或目录
c:创建新的档案文件。
r: 要把存档的文件追加到档案文件的末尾。
x:从档案文件中释放文件。
f:使用档案文件或设备。
v:在归档过程中显示处理的文件。
z:用 gzip 来压缩/解压缩文件,后缀名为.gz,加上该选项后可以将档案文件进行压缩。
需要注意,在linux系统下“打包”与“压缩”是两个操作步骤。

示例 1:创建一个未压缩的归档文件
tar -cvf archive.tar file1 file2 directory1
  • -c:创建归档文件。
  • -v:显示详细信息。
  • -f:指定归档文件的名称为 archive.tar。(需注意第一个是目标文件,后面跟的是打包文件)
  • file1file2directory1:要归档的文件和目录。
    (仅归档不压缩,相当于拿大箱子装了一堆文件,一般来说箱子占内存要略大于总文件和)
示例 2:创建一个 gzip 压缩的归档文件
tar -czvf archive.tar.gz file1 file2 directory1
  • -z:使用 gzip 压缩。
示例 3:解压未压缩的归档文件
tar -xvf archive.tar
  • -x:解压归档文件

示例 4 :解压 gzip 压缩的归档文件

tar -xzvf archive.tar.gz
  • -z:使用 gzip 解压。

4.4 scp 远程 copy 文件命令

scp -r filename username@ip:path
filename:文件名称
username:copy 到的目标主机的用户名
ip:目标主机 IP
path:目标主机路径

scp -r file3 king@192.168.4.52:~/ #从本机 copy 到其他机器
scp -r king@192.168.4.52:~/file3 . #从其他机器 copy 到本机 ,注意最后要加.表示下载当前文件夹

4.5 ssh远程登录

ssh 用户名@IP

4.6 用来查看和配置网络设备

ifconfig 查看网络信息。
ifconfig 网卡名 down关闭网络
ifconfig 网卡名 up开启网络

4.7 查看设置路由

route当网络不通时,通过执行 route 查看路由,查看网关配置是否正确。

5.vim编辑器

5.1 命令状态和编辑状态

vim刚进入时默认为命令状态,键盘对应的按键为命令,需要输入关键命令才能进入编辑状态。
新增:
a 从光标后面开始添加文本。
A 从光标所在行的末尾开始添加文本。
插入:
i 从光标前面开始插入文本。(最常用)
I 从光标所在行的开始处插入文本。
在命令模式中输入 gg=G 可以自动对齐

5.2 删除与修改

x 删除光标处的字符。
dd 删除光标所在的整行。
3dd 删除光标所在行以及下面的两行(删除 3 行)。
D 删除光标到行尾的文本,常用语删除注释语句 (d$)。
yy 复制光标所在的整行。
[n]yy 从光标开始往下复制n行,[n]表示一个整数。
p 将复制后的文本粘贴到光标处。
u 撤销上次操作。

5.3 光标移动

^ 光标移动到行首
$ 光标移动到行尾
Ctrl+d向下翻半页
Ctrl+f 向下翻一页
Ctrl+u向上翻半页
Ctrl+b 向上翻一页
gg 光标定位到文档头
G 光标定位到文档尾
H 光标定位到当前页首
L 光标定位到当前页的最后一行的行首
w 光标往后移一个字
b 光标往前移一个字
[n]+光标向后移动 n 行,[n]表示一个整数 10+
[n]-光标向前移动 n 行,[n]表示一个整数
[n]G10-光标定位到第 n 行行首, [n]表示一个整数 20G

5.4 查找与替换

/[str]查找字符串 str,[str]表示要查找的字符串回车后会加亮显示所有找到的字符串,接着命令 n 移动到下一个找到的字符串。shift+n移动到上一个匹配字符串
:s /[str1]/[str2]把str1字符串替换为str2字符串。 /i忽略大小写 /g 全部匹配

  • 部分替换
    :3,6 s/[src]/[dst]/ig(3-6 行中找src换成dst)
  • 全部替换
    :%s/[src]/[dst]/g 将文档中所有 src 的字符串替换为 dst 字符串
    :%s/^ //g 将文档每一行的行首的空格去掉

5.5 块操作

v可视化块选择状态,选中块之后,可以对块进行删除(d),复制(y),剪切(x),撤销(u)
Ctrl +v 竖向选择模式,主要用于批量注释代码,输入步骤如下:

  • 首先按 ctrl+v,竖选选中要注释的行
  • 输入 I(注意是大写的 I),然后输入//
  • 再输入 esc,就会看到选中的行被注释了。

5.6 文档保存及退出

结束编辑:
:q 在未修改文档的情况下退出
:q! 放弃文档的修改,强行退出
:w 文档存盘
:wq 文档存盘退出
其他:
:help查看该命令的帮助提示(不常用,当不小心按 F1时,通过:q 进行退出)
ctrl+s锁死vim面板,需要按ctrl+q来恢复。

6.sed

sed: 管道查找替换程序
s/旧内容/新内容/选项

  • -i 选项表示直接修改文件内容,而不是将结果输出到标准输出(如终端)。如果没有 -ised 会将结果输出到终端,而不会修改文件。
  • s 表示替换操作。
  • g 表示全局替换
cat a.txt | sed 's/aa/bb/' > b.txt
#将 a.txt 中的 aa 替换成 bb 并重定向输出到 b.txt 中。
sed -i "s/printf/puts/g" *.c
#对当前目录下所有以 .c 结尾的文件进行批量替换操作
find . -name "*.c" |xargs sed -i "s/puts/printf/g"
# 递归查找当前目录及其子目录中所有以 .c 结尾的文件,并将这些文件中的 puts 替换为 printf,同时直接修改文件内容。

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

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

相关文章

项目中引入 Redis 及 常用五种数据类型

在平常的开发过程中&#xff0c;我们经常会用到缓存的技术。比如&#xff0c;验证码60秒后过期、计数器的实现、商品信息存储在缓存中快速展示等。那么&#xff0c;项目中经常会使用到的便是 redis 缓存。redis 在内存中操作&#xff0c;读写快。Redis 常用的数据类型有五种&am…

Spark-SQL简介及核心编程

Spark-SQL概述&#xff1a;是Spark用于结构化数据处理的模块&#xff0c;前身是Shark。Shark基于Hive开发&#xff0c;使SQL-on-Hadoop性能大幅提升&#xff0c;但对Hive依赖制约了Spark发展。SparkSQL汲取Shark优点并重新开发&#xff0c;在数据兼容、性能优化和组件扩展上优势…

奇趣点播系统测试报告

1.项目简介 本项目旨在搭建一个视频共享点播系统&#xff0c;服务器支持用户通过前端浏览器访问服务器&#xff0c;获取展示与观看和操作的界面&#xff0c;最终实现视频的上传以及观看和删改查等基础管理功能。让用户拥有良好的观看体验和分享视频的快捷方式&#xff0c;此外…

【Web API系列】WebSocketStream API 深度实践:构建高吞吐量实时应用的流式通信方案

前言 在当今的 Web 开发领域&#xff0c;实时通信已成为许多应用的核心需求。无论是即时聊天、实时数据仪表盘&#xff0c;还是在线游戏和金融交易系统&#xff0c;都需要高效的双向数据传输能力。传统的 WebSocket API 为此提供了基础支持&#xff0c;但在处理大规模数据流、…

基于LangGraph的智能报告生成平台项目分析

前言 不知道你是否知道或者了解OpenAI and Gemini Deep Research。他们是一种能够根据输入问题进行规划、结合网络搜索获取信息并最终呈现结果的研究工具或技术。那这样research是如何实现的呢?最近刚好看到一个实现类似功能的开源项目: open_deep_search。本文将基于该项目进…

Redis 常见的集群架构

Redis 常见的集群架构 以下是 Redis 常见的集群架构及其核心模式详解&#xff0c;结合其设计原理、适用场景和优缺点进行综合说明&#xff1a; 一、主从复制模式 架构原理 角色划分&#xff1a;包含一个主节点&#xff08;Master&#xff09;和多个从节点&#xff08;Slave&…

面试宝典(C++基础)-01

文章目录 1. C++基础1.1 C++特点1.2 说说C语言和C++的区别1.3 说说 C++中 struct 和 class 的区别1.4 include头文件的顺序以及双引号""和尖括号<>的区别1.5 说说C++结构体和C结构体的区别1.6 导入C函数的关键字是什么,C++编译时和C有什么不同?1.7 C++从代码…

快速获得ecovadis认证的方法,如何提升ecovadis认证分数,有效期是多久

快速获得EcoVadis认证的方法 EcoVadis认证是企业社会责任&#xff08;CSR&#xff09;和可持续发展能力的国际评估标准&#xff0c;被广泛应用于供应链管理&#xff08;如苹果、微软、联合利华等巨头要求供应商通过EcoVadis评估&#xff09;。以下是快速获得认证的关键步骤&am…

ubuntu 安装samba

ubuntu 版本&#xff1a;Ubuntu 24.04.2 LTS 1. 保证连网 2. 安装samba sudo apt install samba 在安装结束以后&#xff0c;我们可以使用下面的命令来查看安装&#xff1a; apt list | grep samba freeipa-client-samba/noble 4.11.1-2 amd64 ldb-tools/noble 2:2.8.0samba…

基于SpringBoot的宠物健康咨询系统(源码+数据库+万字文档)

502基于SpringBoot的宠物健康咨询系统&#xff0c;系统包含三种角色&#xff1a;管理员、用户&#xff0c;顾问主要功能如下。 【用户功能】 1. 首页&#xff1a;查看系统主要信息和最新动态。 2. 公告&#xff1a;浏览系统发布的公告信息。 3. 顾问&#xff1a;浏览可提供咨询…

人工智能驱动的科研新范式及学科应用研究

人工智能&#xff08;AI&#xff09;驱动的科研新范式通过数据、算力、算法的深度耦合深度嵌入科学研究的全过程&#xff0c;引发科研流程、思考逻辑和组织模式的深刻变革。文章系统总结了AI驱动科研新范式的主要特征与形式&#xff0c;提出AI驱动科研新范式的演化方向由“科研…

代码生成工具explain的高级用法

修改 explain.cpp 中的模板部分&#xff1a; // 添加自定义头文件 cout << "#include \"CustomLib.h\"\n"; 生成支持日志的记录代码&#xff1a; cout << "Logger::init();\n"; // 自动插入初始化代码其他汇总 Magnet 多线程控制…

Vue3+elementPlus中 树形控件封装

1.组件 <template><div class"selection"><el-select placeholder"请选择" v-model"nameList" clearable clear"handleClear" ref"selectUpResId" style"width: 100%"><el-option hidden :…

辉视监狱广播对讲系统:SIP协议赋能智慧监管新生态

一、全域互联&#xff1a;构建监狱安防设备协同生态 基于SIP协议的辉视广播对讲系统&#xff0c;以"通信中枢"角色打破设备壁垒。其强大的兼容性可无缝对接监狱现有监控、门禁、报警等异构设备&#xff0c;支持GB/T 28181国标协议&#xff0c;实现跨品牌、跨系统的数…

信息系统项目管理师-工具名词解释(上)

本文章记录学习过程中,重要的知识点,是否为重点的依据,来源于官方教材和历年考题,持续更新共勉 本文章记录学习过程中,重要的知识点,是否为重点的依据,来源于官方教材和历年考题,持续更新共勉 数据收集 头脑风暴 在短时间内获得大量创意,适用于团队环境,需要引导者…

C++之二叉搜索树

目录 ⼆叉搜索树的概念 二叉搜索数的性能分析 二叉搜索树的模拟实现 定义二叉树节点结构 二叉搜索树的插入 二叉搜索树的查找 二叉搜索树的删除 中序遍历 全部代码 二叉搜索树key和key/value使用场景 key搜索场景&#xff1a; key/value搜索场景&#xff1a; key/value…

数据结构——哈希详解

数据结构——哈希详解 目录 一、哈希的定义 二、六种哈希函数的构造方法 2.1 除留取余法 2.2 平方取中法 2.3 随机数法 2.4 折叠法 2.5 数字分析法 2.6 直接定值法 三、四种解决哈希冲突的方法 3.1 开放地址法 3.1.1 线性探测法 3.1.2 二次探测法 3.2 链地址法 3…

使用U盘安装 ubuntu 系统

1. 准备U 盘制作镜像 1.1 下载 ubuntu iso https://ubuntu.com/download/ 这里有多个版本以供下载&#xff0c;本文选择桌面版。 1.2 下载rufus https://rufus.ie/downloads/ 1.3 以管理员身份运行 rufus 设备选择你用来制作启动项的U盘&#xff0c;不能选错了&#xff1b;点…

RadioMaster POCKET遥控器进入ExpressLRS界面一直显示Loading的问题解决方法

RadioMaster POCKET遥控器进入ExpressLRS界面一直显示Loading的问题解决方法 问题描述解决方法 问题描述 有一天我发现我的 RadioMaster POCKET 遥控器进入 ExpressLRS 设置界面时&#xff0c;界面却一直停留在 “Loading” 状态&#xff0c;完全无法进入设置界面。 我并没有…

计算机网络 - 三次握手相关问题

通过一些问题来讨论 TCP 协议中的三次握手机制 说一下三次握手的大致过程&#xff1f;为什么需要三次握手&#xff1f;2 次不可以吗&#xff1f;第三次握手&#xff0c;可以携带数据吗&#xff1f;第二次呢&#xff1f;三次握手连接阶段&#xff0c;最后一次ACK包丢失&#xf…