【Linux系统】—— 基本指令(二)
【Linux系统】—— 基本指令(二)
- 1 「alias」命令
- 1.1 「ll」命令
- 1.2 「alias」命令
- 2 「rmdir」指令与「rm」指令
- 2.1 「rmdir」
- 2.2 「rm」
- 2.2.1 「rm」 删除普通文件
- 2.2.2 「rm」 删除目录
- 2.2.3 『 * 』 通配符
- 3 「man」 指令
- 4 「cp」 指令
- 4.1 拷贝普通文件
- 4.2 拷贝目录
- 5 「mv」 指令
- 5.1 普通文件
- 5.2 目录
- 6 nano 编辑器
- 7 echo
- 8 「cat」 指令
- 8.1 初识 「cat」
- 8.2 命令行选项
- 8.3 「tac」命令
- 9 时间相关指令
- 9.1 显示时间
- 9.2 时间戳
- 9.3 「cal」 指令
1 「alias」命令
1.1 「ll」命令
在讲 「alias」命令之前,我们先来看下 「ll」命令
我们来看下「ll」命令有什么效果
我们发现「ll」命令也是显示当前目录的各个文件,它的效果与 「ls -l -a」
相同
1.2 「alias」命令
在 Linux 中,「alias」 指令用于创建一个命令的别名,即给变量取别名。这样我们就可以用一个简短的字符串来代替一个较长或复杂的命令。
比如现在我们给「 ls」命令取别名 m o n k e y monkey monkey
再比如给「ls -l -a」起别名
注:alias 后的 ‘=’ 左右两边不能加空格
实际上,「 ll 」就是「 ls -l -a」,「 ll 」本质: alias ll='ls -l -a --color=auto'
--color=auto
是什么呢?
实际上,我们直接通过路径执行「ls」指令,文件名是没有颜色的
只有加上 --color=auto
才会显示颜色
那为什么我们直接输入「ls」,又有颜色呢?
那是因为这里的 「ls」也是一个别名。本质:alias ls='ls --color=auto'
。
那如果我们起了别名有不想要了呢?
不用担心,我们所起的别名是临时的,当我们重新登录时,起的别名就失效了
2 「rmdir」指令与「rm」指令
2.1 「rmdir」
「rmdir」是一个与「mkdir」相对的指令,「mkdir」是创建目录,「rmdir」是用来删除删除目录的
- 语法:「rmdir」 [dirName]
- 功能:删除空目录
- 使用对象:具有当前目录操作权限的所有使用者
但是「rmdir」默认只能删除空目录,非空目录和普通文件它是不能删除的
2.2 「rm」
「rmdir」使用起来有诸多限制,因此我们了解即可,平常我们更多的是用 「rm」 命令
「rm」 命令可删除文件或者目录
- 语法:「rm」 [dirName/dir]
- 功能:删除文件或目录
- 使用对象: 所有使用者
2.2.1 「rm」 删除普通文件
2.2.2 「rm」 删除目录
我们创建一个空目录888,并用 「rm」 删除试试看
不是说rm啥都能删吗,怎么连一个空目录都删不了呢?
这是因为「rm」默认只能删普通文件,就跟「rmdir」一样默认只能删空目录。
但是「rm」的选项更丰富
如果想要删目录,需要加上 「-r」命令行选项
目录本身的定义是多叉树当中的节点,在多叉树中做各种操作都是递归式进行定义的,所以「-r」就代表着递归(recursion)的意思。不管这个目录是否为空都能删除
注:删除的时候一定要仔细,不要一不小心把根目录给删了!
2.2.3 『 * 』 通配符
在 Linux 中有一个 『 * 』 符号,这个 『 * 』 叫做通配符。
所谓通配符就是可以去匹配任意的内容
比如:『ls *.txt』 表示显示所有后缀为 .txt 的文件;『test. *』 『*.*』也是同理
这样我们就可以利用通配符,将某一类型文件一次性删除啦
注:如果直接『rm -r *』 的话,会直接将当前所在目录的所有内容删掉。这点一定要小心使用,确定自己在哪个目录下,不要一不小心把根目录所以内容删了
注:Linux 并没有所谓的回收站,删了就是删了。所以删除要谨慎
3 「man」 指令
Linux 当中的命令有很多参数,我们不可能全部记住。我们可以通过查看 Linux 手册获取帮助
。访问 Linux 手册的命令是「man」
- 语法:「man」 [选项] 命令
比如「pwd」指令我不会用,可查阅「man」手册
直接输入『man pwd』就能跳转到对应的手册位置(按 Q 退出手册)
既然是一个手册,它就有第一章、第二章……
我们输入『man man』可以看到该手册一共有九章
我们默认都是在第一章去查找
我们学习 Linux 大部分只会用到前三章手册:
- 第一章:普通的命令
- 第二章:系统调用
- 第三章:C语言库函数
命令中有 printf 命令
,同样 C语言 也有 printf函数
。
两个 p r i n t f printf printf 并没有任何关系
printf 命令
使用:
「man」手册的查找原则是:从前往后寻找,找到了就返回
像查找 「printf」命令可以:man printf
也可以指定章节去查找
:「man 1 printf」
而如果想查找 C语言 中的 printf函数,则必须要指定章节去查找
才能找到,不然 「printf」命令在前,系统搜索到「printf」命令是直接返回的
指定章节查找:「man 3 printf」
注:部分系统可能没安装「man」手册,ubunto可以输入命令 apt install -y man-pages
下载,centos可以输入命令 yum install -y man-pages
下载
4 「cp」 指令
- 语法:「cp」 [选项] 源文件或目录 目标文件或目录
- 功能:拷贝文件或目录
4.1 拷贝普通文件
- 「cp」 源文件 目标文件
在当前目录下拷贝生成目标文件,拷贝出的文件名为目标文件名
- 「cp」 源文件 目标目录
如果后面跟的是目录,将会将源文件拷贝至目标目录下,拷贝出的文件名为源文件名,即与源文件名相同
注:同一个目录下不能有同名文件,但是不同目录可以
不过当然,也可以指定文件名
「cp」 拷贝普通文件
- 「cp」 srcfile dstfile
- 「cp」 srcfile dstdir/
- 「cp」 srcfile dstdir/dstfile
4.2 拷贝目录
那拷贝目录又是怎么拷贝的呢?
比如像拷贝 lesson1 目录。
发现直接拷贝目录是拷贝不了的
因为目录是递归式定义的内容,所以这里需要带 「-r」命令行选项
上述情况,目标目录是不存在的目录,是拷贝在当前目录下
我们将 lesson1 中的内容再拷贝一次给 lesson2 ,此时的 lesson2 是已经存在的目录,这时拷贝会发生什么呢
发现新拷贝出的目录名还是 lesson1,但是拷贝出来的目录是在 lesson2 目录下。
所以结论是当进行拷贝目录时:如果目标目录不存在,则在当前目录下拷贝;如果目标目录已经存在,会将目录拷贝到目标目录的内部。
那如果再将 lesson1 拷贝到 lesson2 里面呢?此时新拷贝的 lesson1 会将原来的 lesson1 覆盖
5 「mv」 指令
「mv」 指令是 move 的缩写,可以用来移动文件或者将文件改名(move(rename)files),是 Linux 系统下常用的命令,经常用来备份文件后或者目录
- 语法:「mv」 [选项] 源文件或目录 目标文件或目录
- 功能:
- 在指定目录下,对一个文件或目录进行重命名
- 将指定目录下的目标或文件,剪切到指定目录下
- 不仅仅可以剪切,还可以在剪切时进行重命名
5.1 普通文件
-
剪切功能
- 当「mv」 src dst 中的 src 是普通文件时,就是对普通文件进行操作
将 hello.txt 文件剪切动 lesson1 目录下
语法:「mv」 srcfile dstdir
- 重命名功能
将 test.txt 重命名为 1.txt
那如何判断「mv」是剪切还是重命名呢?
取决于「mv」 src dst 中的 dst,如果 dst 是目录并且不存在,那他就是重命名;如果是目录且存在就是剪切
5.2 目录
当「mv」 src dst 中的 src 是目录时,就是对目录进行操作
- 剪切功能
「mv」 srcdir dstdir
我们将 a 目录从当前目录剪切到 lesson1 目录下
其实剪切文件和剪切目录不用再可以去区分,因为 Linux 下一切皆文件
- 重命名功能
那目录可以重命名吗?
与文件一样的道理
当 「mv」 src dst 中的 dst 是一个已经存在的目录时,为剪切功能;是一个不存在的目录时,为重命名功能
我们将 a 目录重命名成 222
6 nano 编辑器
「nano」 是 Linux 操作系统中一款简单易用的文本编辑器,它提供了一个用户友好的界面和一系列快捷键,使用户能够轻松地进行文本编辑和修改。
- 语法:nano 文件名(文件不存在则新建文件)
- 功能:给用户提供文本编辑页面
使用方法:
退出方法:
注:有部分小伙伴没有安装 nano,centos 可以输入yum install -y nano(centos)
,ubunto 可以输入 apt install -y nano(ubunto)
来安装 nano
7 echo
「echo」 指令非常简单,我们这里简单提一下
- 语法:echo [选项] [字符串]
- 功能:将后续内容以字符串的形式打印出来
使用方式:
注:这里来我们建议将要打印的内容用单引号括起来,如果用双引用可能有时会出问题。
当然,前面我们讲过的「printf」命令也是可以打印的
所以我们如果想单纯的在显示器中回显一个字符串可以用「echo」也可以用「printf」
8 「cat」 指令
8.1 初识 「cat」
- 语法:cat [选项][文件名]
- 功能:显示指定文件名里面的内容
例如:我们用「cat」将刚刚写入 hello.txt文件 中的内容打印出来
那「echo」可以打印文件中能内容吗?
不行
可以看到「echo」将 hello.txt 当做字符串打印出来了
所以如果要打印文件中的内容,还是要用「cat」命令
需要注意的是:「cat」命令比较适合看短文件
8.2 命令行选项
「cat」指令的命令行选项如下:
- 「-b」:对非空输出行编号
- 「-n」:对输出的所有行编号
- 「-s」:不输出多行空行
其中,最常用的就是 「-n 」选项。「-n 」可以帮我们把行号
加上
8.3 「tac」命令
「cat」命令有一个伙伴指令:「tac」命令
「tac」命令也是显示文件内容,只不过他是 反向显示文件内容
但是反向打印有什么用呢?
当我们想看一个大型文件最开始的信息,如果用「cat」打印,那么最前面的信息都被刷屏刷掉了,这时我们就可以用「tac」进行反向打印,就能看到最前面的信息啦
9 时间相关指令
9.1 显示时间
- 语法:「date」 选项 格式
- 功能:用于显示时间、设置时间、完成时间与时间戳之间的相互转换等。
Linux中,我们可以直接通过 「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
如:
注:「+」是固定的语法格式,但是选项之间的「-」和「_」是分隔符可以根据需要自己修改
为什么我们可以查到时间呢?因为时间对于计算机来说是非常重要的,系统本身就要帮我们记录时间。
这里问一个小问题:
计算机关机后,再次开机为什么还能准确的显示时间呢 ?
大家有没有想过,电脑关机后都断电了,没有电源,为什么还能记录准确时间呢?
其实不管是笔记本电脑还是台式机,在其主板上都会有一个纽扣电池,这个纽扣电池就可以让系统主板一直给我们记录时间。
所以当电脑关个一年半载,再次开机时间就不对了,因为纽扣电池早就没电了,主板也就不能记录时间,
9.2 时间戳
我们往系统中输入:『date +%s』 看看会发生什么
这一串数字式什么呢?不懂,别急我们多输入几次,看看有什么发现
我们发现,随着我们的不断查看,这串数字在不断增加
。
这个东西是什么呢?
这里就要引入一个新的概念:时间戳
上述显示出的17279…一串的数字是格林威治时间戳。
Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从 1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒
我们所有的计算机记录时间,并不是按年月日来记录的,因为维护一个字符串太复杂了。计算机内部会维持一个线性递增的计数器,每过一秒(其实是微妙)让这个计数器++ ,而计数的时间是从1970年1月1日的午夜开始。我们把1970年1月1日的午夜到现在所经过的秒数称为时间戳。
而英国的格林威治
是世界时间的约定点
,因此也叫格林威治时间戳
时间戳有什么用呢?
- 转化为年月日的时间
- 日志中记录的时间是时间戳。
- 区间查找,锁定一个时间范围
那时间戳怎么转换成对应的标准时间呢?如下
那我们是不是可以查看时间戳为 0 的时间呢?
因为北京在东八区,与格林威治有 8 小时的时间差,所以这里显示的是 1970年1月1日早上8点
9.3 「cal」 指令
「cal」命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列历,通称阳历。 “阳历”又名“太阳历”,系以地球绕行太阳一周为一年,为西方各国所通用,故又名“西历”。
- 语法:cal [选项] [月份] [年份]
- 功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1~9999),如有两个参数,则表示月份和年份。
选项:
- 「-3」: 显示系统前一个月,当前月,下一个月的月历。
- 「-j」 :显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)。
- 「-y」: 显示当前年份的日历。
好啦,本期关于基本指令的知识就介绍到这里啦,希望本期博客能对你有所帮助。同时,如果有错误的地方请多多指正,让我们在 Linux 的学习路上一起进步!
相关文章:

【Linux系统】—— 基本指令(二)
【Linux系统】—— 基本指令(二) 1 「alias」命令1.1 「ll」命令1.2 「alias」命令 2 「rmdir」指令与「rm」指令2.1 「rmdir」2.2 「rm」2.2.1 「rm」 删除普通文件2.2.2 「rm」 删除目录2.2.3 『 * 』 通配符 3 「man」 指令4 「cp」 指令4.1 拷贝普通…...

MFC工控项目实例三十实现一个简单的流程
启动按钮夹紧 密闭,时间0到平衡 进气,时间1到进气关,时间2到平衡关 检测,时间3到平衡 排气,时间4到夹紧开、密闭开、排气关。 相关代码 void CSEAL_PRESSUREDlg::OnTimer_2(UINT nIDEvent_2) {// if (nIDEvent_21 &am…...

【Android、IOS、Flutter、鸿蒙、ReactNative 】文本点击事件
Android Studio 版本 Android Java TextView 实现 点击事件 参考 import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.TextView; import android.widget.Toast;public c…...

json转excel,读取json文件写入到excel中【rust语言】
一、rust代码 将json文件写入到 excel中。(保持json :key原始顺序) use indexmap::IndexMap; use serde::Deserialize; use serde_json::{Value, from_str}; use std::error::Error; use std::io::{self, Write}; use std::path::{Path}; u…...

Java面试要点06 - static关键字、静态属性与静态方法
本文目录 一、引言二、静态属性(Static Fields)三、静态方法(Static Methods)四、静态代码块(Static Blocks)五、静态内部类(Static Nested Classes)六、静态导入(Static…...

动态规划-背包问题——416.分割等和子集
1.题目解析 题目来源 416.分割等和子集——力扣 测试用例 2.算法原理 1.状态表示 这里背包问题基本上和母题的思路大相径庭,母题请见 [模板]01.背包 ,这里的状态表示与装满背包的情况类似,第二个下标就是当选择的物品体积直接等于j时是否可…...

Pr:视频过渡快速参考(合集 · 2025版)
Adobe Premiere Pro 自带七组约四十多个视频过渡 Video Transitions效果,包含不同风格和用途,可在两个剪辑之间创造平滑、自然的转场,用来丰富时间、地点或情绪的变化。恰当地应用过渡可让观众更好地理解故事或人物。 提示: 点击下…...
网络安全---安全见闻2
网络安全—安全见闻 拓宽视野不仅能够丰富我们的知识体系,也是自我提升和深造学习的重要途径!!! 设备漏洞问题 操作系统漏洞 渗透测试视角:硬件设备上的操作系统可能存在各种漏洞,攻击者可以利用这些漏洞…...

解决因为TortoiseSVN未安装cmmand line client tools组件,导致idea无法使用svn更新、提交代码
一.错误信息 1.更新代码时:SVN: 更新错误 找不到要更新的版本管理目录。 2.提交代码:检测不到任何更新(实际上有代码修改)。 3.Cannot run program "svn"。 二.原因分析 在电脑上新安装的的客户端TortoiseSVN、ide…...

Ubuntu 20.04安装CUDA 11.0、cuDNN 8.0.5
不知道咋弄的ubuntu20.04电脑的cuda驱动丢了,无奈需装PyTorch环境,只有CUDA11.0以上版本才支持Ubuntu20.04,所以安装了CUDA11.0、cuDNN8.0.5 为防止频繁在浏览器检索对应的贴子,今天记录一下。 一. 驱动安装 为防止驱动安装后没…...
鸿蒙 APP 发布上架
证书创建与打包: https://developer.huawei.com/consumer/cn/doc/app/agc-help-releaseharmony-0000001933963166 不同环境多渠道打包: //todo 备案相关 一、除了发布应用商店以外,还有3个渠道,都适合小规模内测。 【1】开放式测试:发给指定白名单用户 【2】发布企业内…...

【C++笔记】C++三大特性之继承
【C笔记】C三大特性之继承 🔥个人主页:大白的编程日记 🔥专栏:C笔记 文章目录 【C笔记】C三大特性之继承前言一.继承的概念及定义1.1 继承的概念1.2继承的定义1.3继承基类成员访问方式的变化1.4继承类模板 二.基类和派生类间的转…...

如何在CentOS 7上搭建SMB服务
如何在CentOS 7上搭建SMB服务 因项目测试需求,需要自行搭建SMB服务,**SMB(Server Message Block)**协议是一种常用的文件共享方式,它可以让不同操作系统之间共享文件、打印机等资源。本文将带你一步步搭建一个简单的S…...

linux详解,基本网络枚举
基本网络枚举 一、基本网络工具 ifconfig ifconfig是一个用于配置和显示网络接口信息的命令行工具。它可以显示网络接口的P地址、子网掩码、MC地址等信息,还可以用于启动、停止或配置网络接口。 ip ip也是用于查看和管理网络接口的命令。 它提供了比ifconfig更…...

5G智能对讲终端|北斗有源终端|北斗手持机|单兵|单北斗
在当今这个快速发展的数字化时代,5G技术的广泛应用正以前所未有的速度推动着各行各业的变革。作为这一技术浪潮中的重要一环,5G智能终端QM630D凭借其卓越的性能和多样化的功能,在林业、渔业、安保、电力、交通等多个领域展现出了巨大的应用潜…...

第七部分:2. STM32之ADC实验--AD多通道(AD采集三路传感器模块实验:光敏传感器、热敏传感器、反射式传感器附赠温湿度传感器教程)
这个多通道采用非扫描模式--单次转换模式 1.代码配置链路图 2. ADC的输入通道 3.ADC的非扫描模式的转换模式(单次和连续) 4.ADC的扫描模式的转换模式(单次和连续) 5.采集校准 代码实验: 代码部分: #inclu…...
js.零钱兑换
链接:322. 零钱兑换 - 力扣(LeetCode) 题目: 给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何…...
GitHub 上的开源项目推荐
GitHub 上的开源项目有成千上万,涵盖了从前端框架到数据科学、机器学习、系统工具等各个领域。不同的人根据兴趣和需求,可能会有不同的排名。不过,一些开源项目因为其广泛的应用、社区支持和技术创新,通常被认为是“最好”的开源项…...
实现Reactor反应堆模型:框架搭建
实现Reactor反应堆模型:框架搭建 Reactor模型是一种常用于处理大量并发I/O操作的设计模式,特别适用于服务器端的网络编程。该模型通过事件驱动的方式,将I/O操作的处理与具体的业务逻辑分离,从而提高系统的并发处理能力和响应速度…...

UE5 样条线组件(未完待续)
按点生成模型 按距离生成 spline mesh 可缩放spline mesh...

手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列,以便知晓哪些列包含有价值的数据,…...

技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...

使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...