Ⅰ . 初始重定向

01 输出重定向 >

在上一节中我们为了方便讲解 head 和 tail 指令,我们用到了 > 去生成了一千行文本。

通过 > 将生成的一千行文本写入到了 large.txt 中……

我们现在来正式介绍一下:

$ echo "内容" > [目标]    

本来应该写入到显示器的内容,把他写入到文件中,我们称之为 输出重定向 。

注意事项: > 会清空原始的文件内容,进行重新写入。

02 追加重定向 >>

输出重定向 > 会清空原始内容,如果你不想清空原始内容呢?

我们可以使用 " 追加重定向 >> " ,可以做到在原有内容后 "追加" :

说明:追加重定向不会清空原始内容,而是在原始文件的结尾进行新增式的写入。

$ echo "内容" >> [目标]

03 输入重定向 <

在这之前我们先来补充一下 cat 后面什么都不加:

$ cat

cat 后面什么都不加,cat 就会默认从键盘(标准输入):

输入重定向:将本来应该从键盘中读取的方式,改成从指定的文件中读取。

04 Linux 下一切皆文件

Linux 操作系统有自己的设计哲学,它认为所有的东西都可以当作文件,

甚至你所看到的键盘、显示器、显卡等外设,都可以当作文件。

现阶段还没有去讲解系统方面的知识,至于底层是如何做到的我们暂时不深入讲解。

我们把磁盘、显示器、网卡、显卡、键盘、鼠标等设备(我们统称之为外设),

都看作文件,以同样的方式看待这些设备。

注意事项:

Linux 是不把 CPU 看成文件的,因为 CPU 是要帮你完成 "一切皆文件" 的设计理念的。

Ⅱ . 时间相关的指令

01 date 指令

在 Linux 中我们可以直接输入 date 去查看当前的时间:

date      # 显示时间

指令功能 : 显示时间

在显示方面,Linux 也是可以设定格式去显示时间的。

date +%Y:%m:%d      # date 指定格式显示时间

date 标记列表:格式设定为一个加号后接数个标记,其中常用的标记列表如下:

  • %H : 小时(00..23)
  • %M : 分钟(00..59)
  • %S : 秒(00..61)
  • %X : 相当于 %H:%M:%S %d : 日 (01..31)
  • %m : 月份 (01..12)
  • %Y : 完整年份 (0000..9999)
  • %F : 相当于 %Y-%m-%d

我们就可以通过这种方式去控制格式,显示我们想要显示的:

02 时间戳

概念:自 1970 年 1 月 1 日午夜开始,到现在为止所累积的秒数,即为时间戳。

date +%s    # 查看当前时间戳

那么问题来了,时间戳有什么用途呢?

它可以作为日志的一部分,如果一个项目比较大,必须得有日志的能力。

因为时间戳是不断递增的,递增值有很强的唯一性,所以在做日志信息归档的时候很方便。

日志我们一般从尾部看,时间 + 错误信息。日志,具有排查错误的能力!

03 cal 指令

在 Linux 中输入 cal 就显示出一个日历:

cal

指令功能 :用于查看日历等时间信息。

如果只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份。

cal [参数][月份][年份]

常用选项:

  • -3  显示系统前一个月,当前月,下一个月的月历

  • -j   显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
  • -y  显示当前年份的日历

思考:Linux 命令的时间和日历存在的意义是什么?

有些语言是基于 Linux 命令组成起来的语言,比如 shell 。因为脚本也是要打日志的,所以脚本也是需要有时间的。现在用命令行看时间的人很少,但是如果把时间倒退到 40 年前,就会有人去拿命令行去查看时间。

Ⅲ . 文件查找

01 find 指令

 find 路径 -[选项]

指令功能 :用于在文件树中查找文件,并作出相应的处理(可能访问磁盘)。

指令介绍:

  • Linux 下 find 命令在目录结构中搜索文件,并执行指定的操作。
  • Linux 下 find 命令提供了相当多的查找条件,功能很强大。由于 find 具有强大的功能,所以它的选项也很 多,其中大部分选项都值得我们花时间来了解一下。
  • 即使系统中含有网络文件系统(NFS),find 命令在该文件系统中同样有效,只要你具有相应的权限。
  • 在运行一个非常消耗资源的 find 命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间 (这里是指30G字节以上的文件系统)

常用选项:

  • name 按照文件名查找文件

用法演示:在家目录下查找所有 .c 文件

02 grep 命令(行文本过滤工具)

在我们之前形成的有一千行的大文本 large.txt 中,

如果我想把其中的 123 关键字的行拎出来,我们就可以使用 grep 命令:

$ grep '123' large.txt    # 显示large.txt中带有123的行

grep [选项] 搜寻字符串 文件

指令功能 :在文件中搜索字符串,将找到的行打印出来。

常用选项:

  • -i   忽略大小写的不同,所以大小写视为相同。
  • -n  顺便输出行号。
  • -v  反向选择(反选),凡是具有关键字的文本行,去掉并保留没有匹配关键字的行。

注意事项:

① 只要某行存在你要找的关键字,整行都会被保留显示出来,所以称 grep 为行文本过滤工具。

② grep 匹配时是明确大小写的 ,如果想忽略大小写,须加 -i 选项。

操作演示

①  -v 反向选择  |  -iv 忽略大小写并反向选择

②  -n 选项,将查找的结果带上匹配行所在行号

Ⅳ . 打包与压缩

01 zip 指令

为了方便讲解,我们先准备如下操作:

zip [压缩文件.zip] [目录或文件]

指令功能 :将目录或文件压缩成 zip 格式

常用选项:

  • -r  递归处理,将指定目录下的所有文件和子目录一并处理。

操作演示:

02 unzip 指令

那么如何解压呢?

unzip [目标]     # 解压目标文件

操作演示:我们可以使用 zip 指令对应的 unzip 指令对它进行解压操作:

先把之前的 tar_package 移走

此时我们 cd 到 tar_package 文件中,却发现什么都没有

原来我们一开始就压了个寂寞,

只是把目录打包了,里面的 file 文件都没打包进去,相当于你只打包了个文件夹!

注意事项:直接 zip 目录,是打包不了目录里面的东西的!

正确做法是 —— 对于目录的打包,如果你想打包目录里的东西:

$ zip -r [压缩包名称] [压缩对象]    # 递归压缩

操作演示:使用 zip -r 去打包目录

用 unzip 解压:

注意事项:unzip 解压出来的原始数据,都会被放在当前路径下。

如果你想指定解压到指定目录下,可以在 unzip -d 后加上路径。

思考:我为什么要打包压缩?

① 节约空间,压缩一下可以节约空间。

② 我们下载下来的软件是压缩包,曾经提供软件的人,上传的是压缩包。

所有的软件写好之后,不是只有一个文件的!所有的互联网公司后台都是 Linux 系统,开发人员开发的软件,将来都是要部署在 Linux 系统上的,所以所有的软件开发好之后都要打包压缩上载到 Linux 上,进行安装部署。所以 Linux 必须支持解包解压。

03 tar 指令

一般一个压缩包是需要有两个步骤的:① 打包    ② 压缩。

我们还要讲一种压缩方式,这种压缩方式也是 Linux 中最常见的一种 —— tar 指令。

tar [-cxtzjvf] 文件与目录 .... 参数

指令功能 :打包 / 解包(不打开它,直接看内容)

常用选项:

  • -c   建立一个压缩文件的参数指令(create 的意思)。
  • -x   解开一个压缩文件的参数指令!
  • -t    查看 tarfile 里面的文件!
  • -z   是否同时具有 gzip 的属性?以及是否需要用 gzip 压缩?
  • -j    是否同时具有 bzip2 的属性?以及是否需要用 bzip2 压缩?
  • -v   压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
  • -f   使用档名,请留意,在 f 之后要立即接档名!不要再加参数!
  • -C  解压到指定目录。

操作演示:打包 tar czf 和压缩 tar xzf 都可以用 tar 指令去完成:

操作演示:tar zcvf 、tar xzvf 在压缩过程中显示文件

操作演示:-C 选项,解压到指定目录下:

Ⅴ . 其他常见指令

01 bc 指令

Linux 下,我们可以用 bc 命令很方便地进行浮点运算:

echo " [计算内容] " | bc

02 uname -r 指令

不同的平台下对应的指针大小是不一样的,在 VS32 位下指针对应的大小是 4 个字节,

在64位下系统,我们的指针大小就是 8 字节。我们该怎么知道当前系统的体系结构信息呢?

我们可以用 uname -a 查看系统中的很多信息,如果只想看内核版本,可以输 uname -r:

uname [选项]

指令功能 :获取电脑和操作系统的相关信息

指令介绍: uname 可显示 Linux 主机所用的操作系统的版本、硬件的名称等基本信息。

常用选项:-a 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称。

03 常用热键

什么是热键?热键即组合键,可以理解为经常使用的按键。

热键有什么用呢?比如下面这些情况。

ctrl + C - 令当前程序暂停(可终止失控程序)

tab - 命令的自动补齐

Ctrl + r - 搜索历史命令

Ctrl + d - 快速退出账户

04 关机

注意事项:如果使用的是云服务器,云服务器是不需要关机的,永远不关机。

shutdown [选项] ** 常见选项: **

指令功能 :关机

常用选项:

  • -h  将系统的服务停掉后,立即关机。
  • -r   在将系统的服务停掉之后就重新启动 -t sec :
  • -t   后面加秒数,为 "过几秒后关机" 的意思

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

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

相关文章

DTH11测量温湿度学习(第十一天)

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;开发者-削好皮的Pineapple! &#x1f468;‍&#x1f4bb; hello 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 削好皮的Pineapple! 原创 &#x1f468;‍&#x1f4…

Go语言初识--标识符 可见性

Go语言初识–标识符 可见性 和C语言相似&#xff0c;go语言的基本组成有&#xff1a; 包声明&#xff0c;编写源文件时&#xff0c;必须在非注释的第一行指明这个文件属于哪个包&#xff0c;如package main。引入包&#xff0c;其实就是告诉Go 编译器这个程序需要使用的包&…

Python实例之画小猪佩奇

效果图&#xff1a;python代码以及解释&#xff0c;没有运用模块。 """ 绘制小猪佩奇 """ from turtle import *def nose(x,y):"""画鼻子"""penup()# 将海龟移动到指定的坐标goto(x,y)pendown()# 设置海龟的方向&…

Unity笔记——事件中心

事件中心是什么事件中心是 Unity 游戏开发中常用的架构设计&#xff0c;它基于观察者模式 或 发布-订阅模式&#xff0c;通过委托和事件构建的一种消息管理系统。主要用于降低代码耦合度&#xff0c;实现模块间的松耦合通信的消息处理系统能大幅提升代码的可维护性和扩展性&…

Java: 反射机制的 ParameterizedType(参数化类型)

在 Java 中&#xff0c;ParameterizedType 是 java.lang.reflect 包下的一个接口&#xff0c;属于反射 API 的一部分&#xff0c;主要用于表示参数化类型&#xff08;即带有类型参数的泛型类型&#xff09;。它是 Java 反射机制中处理泛型类型信息的关键接口之一。 一、什么是参…

OkHttp 与 Retrofit 完美结合:打造高效的 Android 网络请求

前言在现代 Android 开发中&#xff0c;网络请求是几乎每个应用都必不可少的功能。OkHttp 和 Retrofit 作为当前最流行的网络请求库组合&#xff0c;为开发者提供了简洁高效的解决方案。本文将详细介绍如何将这两者结合使用&#xff0c;充分发挥它们的优势。一、OkHttp 和 Retr…

系统辨识建模

系统辨识建模 一、系统辨识建模的作用 1. 建立真实物理系统的数学模型 2. 为后续控制器/强化学习算法提供仿真环境 3. 提高控制精度和安全性 二、本文的系统辨识是怎么做的 1. 实验采集 2. 数学建模 3. 在控制系统中的作用 三、实际用法流程(简化版) 1. 系统辨识阶段 2. 强化…

Android开发:Java与Kotlin深度对比

1. 语言特性与现代性 Java (特别是 Android 主要使用的 Java 8 及之前版本): 相对冗长&#xff1a; 需要编写更多的样板代码&#xff08;如 getter/setter、findViewById 的显式类型转换、匿名内部类等&#xff09;。空指针异常 (NPE)&#xff1a; 类型系统默认允许 null&#…

米家打印机驱动:Wi-Fi 无线打印丝滑顺畅不卡顿,从此告别对打印机干瞪眼

各位小米家居控们&#xff0c;你们有没有过这种经历&#xff0c;新买的打印机回家&#xff0c;结果电脑跟它像俩傲娇的小情侣&#xff0c;死活不搭话&#xff1f;急得你想当场表演一个“打印机抱头痛哭”&#xff1f;别急&#xff0c;今天就给你们安利个神队友——米家打印机驱…

日语学习-日语知识点小记-构建基础-JLPT-N3阶段(7):自動詞 & 他動詞

日语学习-日语知识点小记-构建基础-JLPT-N3阶段&#xff08;7&#xff09;&#xff1a;自動詞 &#xff06; 他動詞1、前言&#xff08;1&#xff09;情况说明&#xff08;2&#xff09;工程师的信仰2、知识点&#xff08;&#xff11;&#xff09;自動詞 &#xff06; 他動…

深入理解设计模式:访问者模式详解

在软件开发中&#xff0c;我们经常会遇到需要对一个复杂对象结构进行操作的情况。随着需求的不断变化&#xff0c;我们可能需要在这个对象结构上添加各种新的操作。如果直接在对象结构中添加这些操作&#xff0c;会导致类的职责过重&#xff0c;且每次添加新操作都需要修改原有…

Linux timerfd 定时器封装

使用 timerfd epoll() 实现&#xff0c;简洁精确。没定义 MU_ERROR 宏的话替换为 printf 即可。mu_timer.h:#ifndef _MU_TIMER_H_ #define _MU_TIMER_H_#ifdef __cplusplus extern "C" { #endif#include <stdint.h> #include <time.h> #include <pth…

【样式效果】Vue3实现仿制iOS按钮动态效果

iOS开关效果定义变量&#xff1a; <style scoped lang"scss">.layout {// 按钮宽度$button-width: 500px;// 按钮高度$button-height: 250px;// 按钮里面圆形直径$circle-diameter: 200px;// 按钮背景与里面圆形间距$button-circle-offset:calc(($button-he…

京东疯狂投资具身智能:众擎机器人+千寻智能+逐际动力 | AI早报

每日分享全球最新AI资讯【应用商业八卦技术】&#xff0c;&#x1f30f;&#xff1a;未来世界2099应用 1、马斯克推出儿童AI"Baby Grok"引热议&#xff1a;安全性能否经受考验&#xff1f; 2、蚂蚁AQ健康应用霸榜苹果商店&#xff0c;或将联手Apple Watch打造智能健康…

Jiasou TideFlow AIGC SEO Agent:全自动外链构建技术重构智能营销新标准

AI时代SEO技术革命&#xff1a;企业如何突破流量增长瓶颈&#xff1f;随着Google算法升级至MUM模型&#xff0c;传统SEO工具已难以应对多模态内容优化需求。在搜索引擎日均处理120亿次查询的生态中&#xff0c;企业官网平均自然流量转化周期长达6-8个月&#xff0c;因此诸如Jia…

Docker-compose:服务编排

Docker-compose 介绍 服务编排:按照一定的业务规则批量管理容器 在微服务架构的应用系统中,一般包含 N 个微服务,且每个微服务一般都会部署多个实例。此时,如果每个微服务都要手动启停,维护的工作量会很大。 要从 Dockerfile build image 或者去 docker hub 拉取 image …

异地服务器备份Mysql数据

前言异地服务器备份Mysql数据即Mysql的server端与备份服务器不是同一个。Mysql服务端安装在192.168.3.36中&#xff0c;现在需要在IP为192.168.209.129的服务器中使用mysqldump命令备份指定数据库数据;192.168.209.129没有装过Mysql客户端;1.安装Mysql客户端不安装Mysql客户端就…

NGINX 高级配置解析:`proxy_request_buffering` 使用详解

在使用 NGINX 作为反向代理服务器时&#xff0c;处理客户端请求体&#xff08;如上传文件或大体积 POST 请求&#xff09;的方式会直接影响应用性能与资源使用。其中&#xff0c;proxy_request_buffering 是一个非常关键但容易被忽略的配置项。 本文将详细介绍该指令的作用、典…

增加交叉验证和超参数调优

前文中&#xff0c;只是给了基础模型&#xff1a; PyTorch 实现 CIFAR-10 图像分类&#xff1a;从数据预处理到模型训练与评估-CSDN博客 今天我们增加交叉验证和超参数调优&#xff0c; 先看运行结果&#xff1a; 在测试集上评估最终模型 最终模型在测试集上的准确率&…

解决pip指令超时问题

用pip指令&#xff0c;在安装Django3.2时报错&#xff0c;询问ChatGpt后得到的解决方案pip 下载超时 —— 是 当前网络连接到 PyPI 官方源太慢或不稳定&#xff0c;甚至可能连不上了&#xff0c;而 pip 默认的超时时间又太短&#xff0c;就导致了中途失败&#xff1a;ReadTimeo…