Linux:基本指令
文章目录
- ls指令
- pwd指令
- cd指令
- touch指令
- mkdir指令
- rmdir指令 && rm指令
- cp指令
- man指令
- echo指令
- 输出重定向
- 追加重定向
- cat指令
- 输入重定向
- mv指令
- which指令
- alias指令
- more && less指令
- head && tail指令
- 事件相关的指令
- date显示
- 时间戳
- cal指令
- find指令
- grep指令
- zip && unzip指令
- tar指令
- bc指令
- uname指令
ls指令
语法:ls [选项] [目录或文件]
功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
常用选项:
选项 | 全称 | 含义 |
---|---|---|
-a | –all | 显示所有文件,包括隐藏文件(以 . 开头的文件) |
-A | –almost-all | 显示所有文件,除了 . 和 .. |
-i | –inode | 显示文件的i 结点的索引信息 |
-l | –long | 显示详细信息如权限、所有者、大小和修改时间 |
-h | –human-readable | 配合 -l 选项,以人类可读的格式显示文件大小 |
-d | –directory | 只显示目录本身,而不是其内容。常与通配符结合使用 |
-F | –classify | 在每个文件名后附加一个字符以指示文件类型 |
-r | –reverse | 逆序显示文件 |
-t | –time | 根据修改时间排序,最新的文件排在最前面 |
-s | –size | 根据文件大小排序,最大的文件排在最前面 |
-R | –recursive | 递归地列出子目录中地所有文件和目录 |
-1 | 每行显示一个文件 |
以ls -l
或ll
列出文件时,一共有七列。
例如:
[root@VM-12-11-centos ~]# ls -ahl
total 28K
dr-xr-x—. 2 root root 135 Dec 16 02:34 .
dr-xr-xr-x. 17 root root 224 Dec 14 01:38 …
-rw-------. 1 root root 1.3K Dec 14 01:38 anaconda-ks.cfg
-rw-------. 1 root root 1.2K Dec 16 02:34 .bash_history
-rw-r–r–. 1 root root 18 Dec 28 2013 .bash_logout
-rw-r–r–. 1 root root 176 Dec 28 2013 .bash_profile
-rw-r–r–. 1 root root 176 Dec 28 2013 .bashrc
-rw-r–r–. 1 root root 100 Dec 28 2013 .cshrc
-rw-r–r–. 1 root root 129 Dec 28 2013 .tcshrc
从上面可以看到,每一行都有7列,分别是:
- 第一列共10位,第1位表示文档类型,
d
表示目录,-
表示文件,l
表示链接文件,d
表示可随机存取的设备,如U盘等,c
表示一次性读取设备,如鼠标、键盘等。后9位,依次对应三种身份所拥有的权限,身份顺序为:owner、group、others,权限顺序为:readable、writable、executable。如:-r-xr-x---
的含义为当前文档是一个文件,拥有者可读、可执行,同一个群组下的用户,可读、可执行,其他人没有任何权限。 - 第二列表示链接数,表示有多少个文件链接到inode号码。
- 第三列表示拥有者
- 第四列表示所属群组
- 第五列表示文档容量大小,单位字节
- 第六列表示文档最后修改时间,注意不是文档的创建时间哦
- 第七列表示文档名称。以点(.)开头的是隐藏文档
pwd指令
语法:pwd
功能:显示用户当前所在的目录
cd指令
Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个结点都是目录或文件。
所以它的叶子节点一点故事空目录或非目录文件,路上结点一定是非空目录节点。
语法:cd 目录名
功能:改变当前工作目录到指定目录下。
Example:
cd .. 返回上级目录
cd /home/litao/linux/ 绝对路径
cd ../day02/ 相对路径
cd ~ 进入用户家目录
cd - 返回最近访问目录
root用户的家目录为:/root
CentOS中普通用户账号统一放在/home
所以普通用户的家目录为:/home/username
touch指令
语法:touch [选项] …文件…
功能:touch
命令参数可更改文档或目录的日期时间,包括存取时间和更改时间。
常用选项:
选项 | 含义 |
---|---|
-a | 只更改存取时间 |
-c | 不建立任何文档 |
-d | 使用指定的日期时间,而非现在的时间 |
-f | 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题 |
-m | 只更改变动时间 |
-r | 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同 |
-t | 使用指定的日期时间,而非现在的时间 |
mkdir指令
语法:mkdir [选项] dirname…
功能:在当前目录下创建一个名为dirname
的目录
常用选项:
-p/–parents:可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录
rmdir指令 && rm指令
rmdir
是一个与mkdir
相对应的命令。mkdir
是建立目录,而rmdir
是删除命令。
语法:rmdir [-p] [dirname]
适用对象:具有当前目录操作权限的所有使用者
功能:删除空目录
常用选项:
-p:当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。
rm
指令可以同时删除文件或目录
语法:rm [-f-i-r-v] [dirname/dir]
适用对象:所有使用者
功能:删除文件或目录
常用选项:
选项 | 含义 |
---|---|
-f | 即使文件属性为只读(即写保护),亦直接删除 |
-i | 删除前逐一询问确认 |
-r | 删除目录及其下所有文件 |
cp指令
语法:cp [选项] [源目录或源文件] [目标目录或目标文件]
功能:拷贝文件或目录
说明:cp
指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。
常用选项:
选项 | 全称 | 含义 |
---|---|---|
-f | –force | 强行复制文件或目录, 不论目的文件或目录是否已经存在 |
-i | –interactive | 覆盖文件之前先询问用户 |
-r | –recursive | 将指定目录下的文件及子目录一并处理。 |
拷贝目录时,使用-r
选项
man指令
语法:man [选项] [命令]
功能:在Linux手册中查找命令
搜索完后,按q
退出。
echo指令
语法:echo [字符串]
功能:将字符串在显示器显示。
注:字符串可以加""
或''
或什么都不加。
echo
输出默认有换行,printf
默认没有换行。
没有""
的情况下printf
会以空格作为结束标志。
如果加了""
,则printf
的使用方法与C++
中相同,只是需要注意,不要加,
。
输出重定向
在Linux下,一切皆文件。显示器和键盘也是文件,显示器是只能输出,不能输入的文件;键盘是只能输入,不能输出的文件。那么echo
既然可以将字符串在显示器上打印,那么echo
也可以将字符串输出到文件中。
语法:echo [字符串] > [文件]
这种更改输出文件的操作,就叫做输出重定向。
可以看到:1. 数据没有在显示器显示。 2. 数据呗写入到文件中。这就是输出重定向。
如果我们继续向文件中写入内容:
可以看到,原来文件中的内容被覆盖了。
所以输出重定向的操作分为两步:1. 清空文件 2. 写入新内容
所以,如果我们想清空一个文件中的内容,可以使用> [文件]
。
如果我们不想清空文件的原内容,想直接在文件末尾追加新内容,那就要用到追加重定向。
追加重定向
语法: echo [字符串] >> [文件]
功能:在文件末尾追加新内容。
注:如果文件不存在,则会创建新文件。(输出重定向和追加重定向都是如此)
cat指令
语法:cat [选项] [文件]
功能:查看目标文件的内容
常用选项:
选项 | 含义 |
---|---|
-b | 对非空输出行编号 |
-n | 对输出的所有行编号 |
-s | 不输出多行空行 |
上面提到,Linux下,一切皆文件。
所以cat
指令默认从输入设备(文件)读取。
输入cat
指令后按回车即可;退出时需按Ctrl + C
。
cat [文件] 的方式可以将文件中的内容输出。
输入重定向
cat < [文件] 被称为输入重定向,作用也是输出文件中的内容。
那么加不加<
有区别吗?加与不加<
是有区别的,这个以后再介绍。
mv指令
语法:mv [源文件] [目标文件]
功能:移动文件或目录,或重命名。
当目标文件或目标目录不存在时,会将源文件或目录移动,然后重命名为目标文件或目录。
当目标目录存在时,会将源文件或目录放在目标目录下,不发生重命名。
which指令
语法:which [指令]
功能:查看指令对应的路径
指令本质上是可执行程序(也是文件:可执行文件,只是安装在了系统的某种路径下)
执行指令时,现在系统中查找对应的指令。
CentOS下路径为:/usr/bin/
alias指令
语法:alias [字符串] = ‘指令’
功能:为指令添加重命名
删除重命名需要alias [字符串] = ''
more && less指令
语法:more/less [选项] [文件]
功能:显示文件的前n/后n行。
可以使用/...
搜索...
内容,按q
退出。
less
可以用光标上下移动,more
不可以。
head && tail指令
语法:head/tail [-num] [文件]
head
提取文件的前num
行,默认num == 10
,tail
提取文件的后num
行。
Example:提取test.txt
中的第1001-1020行
- head -1020 test.txt > tmp.txt
tail -20 tmp.txt
2. 管道
head -1020 test.txt | tail -20
事件相关的指令
date显示
date
指定格式显示时间:date + %Y:%m:%d
date
用法:date [OPTION] [+FORMAT]
显示方面,使用者可以设定想要显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下:
标记 | 含义 |
---|---|
%H | 小时 |
%M | 分钟 |
%S | 秒 |
%X | 相当于 %H:%M:%S |
%d | 日 |
%m | 月 |
%Y | 年 |
%F | 相当于 %Y-%m-%d |
时间戳
时间戳:从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒
输出时间戳:date +%s
从时间戳转换为时间:date -d@1717574162
cal指令
cal
指令显示日历。
格式:cal [参数] [月份] [年份]
常用格式:
选项 | 含义 |
---|---|
-3 | 显示系统前一个月,当前月和下一个月的日历 |
-j | 显示在当年的第几天 |
-y | 显示当前年份的日历 |
find指令
语法:find [目录] -name [文件]
功能:在特定目录下搜索特定文件(可能访问磁盘)
which
只在指令路径下搜索指令文件
whereis
在系统指定路径下查找,既可以找到可执行程序,有可以找到手册、安装包、压缩包之类
grep指令
语法:grep [选项] [字符串] [文件]
功能:按行在文件中搜索字符串,将包含字符串的行打印出来
如果从目录中查找,加-r
选项
常用选项:
选项 | 含义 |
---|---|
-i | 忽略大小写 |
-n | 顺便输出行号 |
-v | 反向选择,将不包含字符串的行打印出来 |
zip && unzip指令
语法:zip 压缩文件.zip 目录或文件
功能:将目录或文件压缩成zip格式
如果要压缩目录,加-r
tar指令
四个常用:
打包压缩:tar czf XXX
预览:tar tzf XXX.tgz
解压解包:tar xzf XXX.tgz
解压到指定路径:tar xzf XXX.tgz -C(大写) 目录
bc指令
运行计算器,可配合管道
uname指令
获取电脑和操作系统的相关信息。
相关文章:

Linux:基本指令
文章目录 ls指令pwd指令cd指令touch指令mkdir指令rmdir指令 && rm指令cp指令man指令echo指令输出重定向追加重定向 cat指令输入重定向 mv指令which指令alias指令more && less指令head && tail指令事件相关的指令date显示时间戳 cal指令find指令grep指令…...
商业C++静态代码检测工具PC-lint Plus 、 polysace和sonarqube对比
商业C静态代码检测工具PC-lint Plus 、 polysace和sonarqube对比 特性/工具PC-lint PlusPolyspaceSonarQube主要功能高精度静态代码分析、编码标准检查高级静态分析和形式验证、优化嵌入式系统综合性代码质量管理、静态分析、技术债务管理集成方式可集成到IDE和构建系统与开发…...
邬家桥公园
文|随意的风 原文地址 我游览过现存规模最大、保存最完整的皇家园林颐和园,瞻仰过拥有世界上最大祭天建筑群的天坛公园,那都是多年前的事情了。 邬家桥公园相比颐和园、天坛公园,气势雄伟倒谈不上。它没有西湖的水平如镜ÿ…...
Flutter 中的 RenderObjectToWidgetAdapter 小部件:全面指南
Flutter 中的 RenderObjectToWidgetAdapter 小部件:全面指南 Flutter 是一个功能强大的 UI 框架,由 Google 开发,允许开发者使用 Dart 语言构建跨平台的移动、Web 和桌面应用。在 Flutter 的渲染体系中,RenderObjectToWidgetAdap…...

SNAT与DNAT
一、SNAT策略概述 1、SNAT 策略的典型应用环境 局域网主机共享单个公网IP地址接入Internet(私有IP不能在Internet中正常路由) 局域共享上网 2、 SNAT 策略的原理 修改数据包的源地址 把从内网 --> 外网的数据的源内网地址转换成公网源地址 3、SN…...
MySql八股文知识点总结,一篇文章让mysql成为面试加分项
MySql八股文知识点总结(自检) 1.前言 参与了几次中大厂的面试,你会发现一面时对于八股文的考察也具有侧重点(MySQLRedis > 网络 > 系统 >设计模式 > java集合 >spring) 本文的目标就是通过这一篇文章让你能在面…...

Python 很好用的爬虫框架:Scrapy:
了解Scrapy 爬虫框架的工作流程: 在scrapy中, 具体工作流程是这样的: 首先第一步 当爬虫引擎<engine>启动后, 引擎会到 spider 中获取 start_url<起始url> 然后将其封装为一个request对象, 交给调度器<…...
C/C++|关于 namespace 在C++中的代码组织
命名空间(namespace)在C中用于组织代码,避免命名冲突,并提供更好的代码结构和可读性。下面详细解释命名空间在C多文件编写中的各种作用和表达。 基本概念 命名空间是一个声明区域,用于组织代码,防止不同部…...

selenium自动化测试入门 —— 上传文件
selenium无法识别非web的控件,上传文件窗口为系统自带,无法识别窗口元素。 上传文件有两种场景:input控制上传和非input控件上传。 大多数情况都是input控件上传文件,只有非常少数的使用自定义的非input上传文件。 一、input控…...
C# Math.Round() 四舍六入五取偶
文章目录 1.重载列表2. 示例 Math.Round() 为四舍六入五取偶 1.重载列表 API说明Round(Double)将小数值舍入到最近的整数值Round(Double, Int32)将小数值按指定的小数位数舍入Round(Double, Int32, MidpointRounding)将小数值按指定的小数位数舍入,MidpointRoundin…...
springboot手动触发参数校验,service层调用参数校验
背景 入参校验一般是在控制层通过javax.validation.constraints包下的规则注解如NotNull结合Valid与Validated实现,但是有时候我们的方法不提供给controller调用,这时候就无法触发自动参数校验,为此我们可以在不更改校验代码的前提下手动触发…...

动手学深度学习4.10 实战Kaggle比赛:预测房价-笔记练习(PyTorch)
以下内容为结合李沐老师的课程和教材补充的学习笔记,以及对课后练习的一些思考,自留回顾,也供同学之人交流参考。 本节课程地址:实战 Kaggle 比赛:预测房价_哔哩哔哩_bilibili 本节教材地址:4.10. 实战Ka…...

1035 插入与归并(测试点6)
solution 类型判断:插入排序中已排序的部分有序,未排序的和原数组元素相同;否则为归并排序测试点6:对于归并排序的子序列长度,不能简单视为前k个有序则子序列长度就是k 例如该测试用例的归并排序的子序列长度应该为2&…...

什么情况下需要使用分布式事务,有哪些方案?
引言:在当今的分布式系统中,数据的一致性和事务的处理成为了关键问题。随着应用程序的规模不断扩大和复杂性的增加,单一数据库事务的能力已经无法满足需求。因此,引入了分布式事务的概念,以确保跨多个节点的操作能够保…...

Java加密体系结构参考指南-Java Cryptography Architecture
本文是从英文的官网摘了翻译的,用作自己的整理和记录。水平有限,欢迎指正。版本是:22 原文地址:https://docs.oracle.com/en/java/javase/22/security/java-cryptography-architecture-jca-reference-guide.html#GUID-815542FE-CF…...
C++中避免内存泄漏的方法
在C++中,内存泄漏是一个常见的问题,它发生在程序申请了一块内存后,没有正确地释放它。这会导致程序运行时间越长,内存占用越大,最终可能导致系统崩溃。为了避免内存泄漏,你可以遵循以下一些策略: 正确使用new和delete:当你使用new操作符动态分配内存时,确保在不再需要…...

5.1 实体完整性
一个表只能有一个主键约束,且主键约束不能取空值。 通过unique约束定义唯一性,为了保证一个表非主键列不输入重复值,可在该列定义unique约束。 primary key约束与unique约束主要区别如下。 (1)一个表只能创建一个primary key约束࿰…...

(学习笔记)数据基建-数据质量
数据基建-数据质量 数据质量数据质量保障措施如何推动上下游开展数据质量活动数据质量保障如何量化产出数据质量思考全链路数据质量保障项目 数据质量 概念:数据质量,意如其名,就是数据的准确性,他是数据仓库的基石,控…...

WINUI——Behavior(行为)小结
前言 在使用MVVM进行WINUI或WPF开发时,Command在某些时候并不能满足逻辑与UI分离的要求。这时肯定就需要其它技术的支持,Behavior就是一种。在WPF中是有Behavior直接支持的,转到WINUI后,相对有一些麻烦,于是在此记录之…...

Ruoyi5.x RuoYi-Vue-Plus新建Translation翻译类
若依框架(RuoYi)中的Translation翻译类主要作用在于实现字段值的转换或翻译功能,以提高数据展示的准确性和友好性。以下是其具体作用的一些关键点: 字段值转换:若依框架在处理数据时,有时需要将某些字段的…...

业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...

23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...

k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

OPENCV形态学基础之二腐蚀
一.腐蚀的原理 (图1) 数学表达式:dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一,腐蚀跟膨胀属于反向操作,膨胀是把图像图像变大,而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...

Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...

使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)
前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 …...