Linux-第1集-基础指令 pwd、cd……入门

欢迎来到Linux操作系统的世界,本集我会用最简单的语言给大家讲解最基础的指令。

首先我们要明确Linux是通过指令完成相应的操作

由于Linux的用户都是行内人,所有我们在学习此操作系统时看到的都是指令界面,而非像Windows操作系统那样是图形化界面

指令的本质就是程序,而为了让一个指令能够实现多样的功能,由此出现了选项

同一个指令下的不同选项,能让指令展现出不同的功能

我们详细学指令也就是学其配套的功能

tip:操作系统的学习不需要死记硬背,重要的是经常练习,久而久之自然可以记住很多常用的重要的指令了

whoami:当前正在使用Linux的账号名称

 

ls:显示当前路径下的文件名称

再具体介绍ls之前,我们先来了解一下有关文件的相关知识

文件结构:

文件 = 文件内容 + 文件属性

所谓属性就是文件的名称,创建时间之类的

很多人都会误把文件当成文件的内容,文件内容是空的,不代表文件是空的,因为文件还包括了它自身的属性,这也是需要存储空间的

文件内容和文件属性都是数据

对文件的操作也就分为对文件内容的操作文件属性的操作

因此啊,我们知道了文件它不单单有名字这一个属性,还有别的

ls只能显示当前目录下的所有文件的名称,显示不出这些文件更为详细的属性

这个时候就体现了选项的灵活性啦

ls -l 就可以显示出当前目录下所有文件更为详细的信息了

ls -a -l 会显示全部文件的详细信息

那这里这个“全部”的含义是啥嘞?

这里又涉及到了一个小知识点也就是隐藏的概念

隐藏文件:

很多操作系统为了防止用户误操作,比如全选、误删了系统的重要文件

就会把这些重要的配置文件以隐藏文件的形式保存在操作系统当中

隐藏的含义自然就是正常情况下,我们是不会看见的,这样也就不会出现误操作了

在Linux操作系统中以.开头的文件或者是目录都称之为隐藏文件

另外指令对应的选项是可以组合传入,也可以分开传入

因此上面的ls -a -l 也可以写成 ls -al 

pwd:显示所处路径

阅读到这,不知道你有没有疑惑,上面的内容里面我一会写目录,一会又写文件的,它们都是啥啊?或者说有啥关系啊

这里就给大家解答一下,目录和文件的关系

其实目录是Linux操作系统中常用的专有名词,在Windows操作系统中也就是大家所熟知的文件夹,所以下次大家再看见目录的时候,就把它理解成一个文件夹就行

在Linux的一个目录下呢,会包括普通文件和其子目录

普通文件:以-开头 ; 文本文件、二进制可执行程序、视频、音频等都属于普通文件

目录:以d开头


Linux里面访问所有的文件都需要路径,而所有的路径开头都是从根目录开始的
这也就说明Linux所有的文件结构是一个树形的结构(多叉树)

那么这个树形结构当中非叶子结点一定是一个一个的目录,而叶子结点一定会是一个普通文件或者说是空目录
 

路径分为两种:

绝对路径:从根目录开始,定位目标文件,具有唯一性

相对路径:相对于当前目录开始,查找定位目标文件

在实际操作中由于相对路径写起来较为简便,因此相对路径用的更多一些

而pwd指令就是显示当前所处路径

工作路径里面的目录由路径分隔符分开(Linux里面是/,Windows里面是\反斜杠)

cd:进入一个目录

明白了访问文件需要路径,那么自然也要聊到如何进入一个文件吧

cd指令后面加上某指定文件的绝对路径或者是相对路径都能够访问到该目标文件

补充一下,ls不仅能够显示当前路径下的文件,也可以显示指定路径下的文件

我们要明确的是任何一个文件都存在. 和 .. 

.  指的是当前目录

..  指的是上一级目录

cd .. 也就相当于Windows操作系统里面的回退

这里有个方便的小知识点就是,cd - 能够切换到上一次我们访问的路径,即最近访问的路径

cd ~ 指的是回到当前用户的家目录

根用户(管理员)的家目录是root,

普通用户的家目录是home

桌面其实就是个文件夹,Windows在登陆的时候,会把对应用户的桌面内的文件呈现出来了
而家目录,就是在用户首次登录的时候,给用户呈现的东西,这就是家目录存在的作用

 

touch:创建一个文件

咱这又聊到了文件是吧,嘿嘿

创建文件这也是有讲究的,我们建议是把文件的后缀给带上

虽然Linux中不是用后缀区分文件类型的即文件的类型与其后缀无关
不过Linux中的软件,对文件后缀还是有要求

所以为了方便后面的使用,咱还是在一开始创建文件的时候就把后缀带上,也方便自己能够一眼看出这是啥类型的文件

当然,如果忘记文件什么类型,也可以使用file 指令

file 指令,后面加文件名,就能够准确识别出给文件的类型

touch 再次创建之前已有的文件,就相当于修改了该文件的时间

stat 后面加文件,可以查到文件中的三个时间ACM

 

mkdir:创建一个目录

mkdir默认是只能创建一个空目录

不过使用选项-p就可以创建一串目录,

mkdir -p表示一次可以创建一串路径  : mkdir -p a/b/c

如果说我们想要去验证是否创建好这一串路径,基于上面告诉大家的指令,我们自然会想到不断的cd 和 ls

心动不如行动,很明显非常的麻烦

这里告诉大家一个简单的方法

上面我们有说到Linux操作系统中的文件结构是多叉树的结构,那么打印出多叉树就能一目了然,验证这串路径是否创建成功

而tree指令就是把指定的目录 ,以树形结构展示出来

用tree指令之前,要在Linux当中安装对应的软件,安装指令:yum install -y tree

如果说,我们用tree指令查看其他目录的树状结构出现了非法现象也就是刷屏了,我们可以不断的按ctrl + c 跳出来

 

rm:删除目录或者文件

有创建自然也会有删除

Linux中rmdir指令用来删除空目录

而rm指令就是专门用来删除有内容的目录了

由于Linux里面存文件都是以递归的形式,所以在用rm删的时候要加上 -r,

但是删起来非常的麻烦,因为是管理员用户,所以每次删的时候,系统都会提示确定删吗
所以要删一个非空目录的话,就 rm -rf  强制删除该目录以及该目录下的所有子目录
 

如果用rm删除一个普通文件,那么直接 rm -f 强制删除即可

 

man:查找手册,在线查询指令

当我们想要查找某个指令的详细内容的时候就可以使用man指令,man相当于一个在线手册,可以查C语言里面的一些接口,也可以查指令、系统调用里的接口

man后面跟数字就是代表直接去到该对应手册中查找
 

man手册里面有九个章节,依次按章节查找,哪个章节先查到就不会往下继续查找,即1手册就是man的默认手册
1.查的是可执行程序或者是命令行的命令
2.系统调用
3.函数调用

剩下的手册不用关心,用不上

要注意的是,一些云服务器上,man手册是残缺的,要完整的使用man手册就要安装,安装指令:yum install -y man-pages

现阶段嘞,man手册的用处不大,但是往后阶段,man还是很重要的

 

 

 

 

echo:输出文本信息

在这里要强调的一点就是Linux下一切皆文件

如何去理解呢?其实就是显示器、键盘也是文件,打印到显示器或者从键盘上读取数据,在Linux上来说就是写入到显示器文件、从键盘文件中读取数据

同样我们写Linux指令的这个黑框叫作终端,终端也是文件,该文件的位置就是/dev/pts中的0

当我们在登陆终端的时候,就会在/dev/pts下创建一个以c开头的文件

echo是默认打印到显示器上的,但是加上 > 可以写入到指定文件上,若文件不存在,则顺便创建这个文件

>这个符号叫作输出重定向,重定向操作会把目标文件先清空再写入,也就是说如果重复echo输入到同一个文件,则文件里面的内容会被替换

由此就得到了>的两种用法:

①>会直接从清空一个文件

②若>清空一个未存在的的文件,则清空变为新建一个文件

任何一个具有输出含义的指令都可以使用输出重定向

那如果我们不想替换文件内容,想不断的向文件内写入,也就是有指令可以完成的

>>叫追加重定向,也就是在文件原本内容的基础上,往后新增内容

cp:拷贝

语法:cp 要拷贝的 目标地点

在拷贝目录,由于我们知道目录是树形结构所以要加上-r,一步到位就-rf表示强制

拷贝的时候,如果在指定路径下又指定了名称(这个名称是之前没有,新的名称),可以起到拷贝又修改名称的作用

mv:剪切

mv的语法和cp一样

同样mv也有重命名的作用

剪切和重命名也可以同时使用

 

cat:查看文件内容

cat后面加一个文件就可以查看这个文件里面的内容了

要注意的是,若cat后面不加文件,默认从键盘文件读,从键盘中读到的内容打印到显示器上

cat < 和cat用法一样,只不过<叫作输入重定向

cat -n就是在查看的时候带上行号, -s是合并空行

补充一个新的小指令,就是tac,tac是把文件内容逆向打印出来,但是tac没有选项,-n,-s都不支持

虽然说cat指令是用来查看文件内容的,但是在实际操作时,我们只会用cat去查看小文件

那么既然有小文件,与之对应的就有大文件,有一个典型的大文件就是日志

日志:

日志其实就相当于是程序的日记,记录着程序运行时的一些输出

程序运行期间,不向显示器写入,反而是向日志文件中写入,也就是把程序的执行痕迹写到日志里,这个行为就叫做写日志

提一嘴日志是有自己的格式的

让程序不断的向日志中输入操作记录,那么发生问题的时候,我们就可以通过日志进行排查,找出问题在哪,这也就是日志的作用了

因此任何项目都是要存在日志的

而Linux操作系统本身就是一个大项目,所以也存在日志,日志一般在/var/log/messages里面
当我们用cat查看的时候,发现刷屏了
所以不难发现用cat查看小文件可以,但是查看大文件是有局限性的

那么自然是有指令可以去替代cat指令,查看大文件里面的内容,也就是接下来介绍的more指令

more:查看文件内容

more查看大文件的内容时,会先把一屏打满

然后不断的回车就可以看到下一行的内容了,退出按q即可

但是more指令还是不方便,功能上受限,比如说它不可以上下翻,只能回车键向下翻
故more不推荐使用

more有个平替指令就是less指令

less:查看文件内容

less也是先把一屏打满,支持向上下翻,同样是按q退出

/ 指定内容,不仅能帮我们查到指定内容,而且还会高亮出来,以此醒目

找到指定内容,输入n(就是next的意思),就会跳转到下一个指定内容所在的位置了

我们发现cat more less 都是查看一个文件的全部内容,所以当我们只想查文件的部分内容,比如只是开头、结尾,用以上三种指令,未免就有些小题大做,由此出现了head和tail指令

head:从开头查看文件

head默认查看目标文件的前10行

head -20 目标文件,就是查看前20行

tail:从末尾查看文件

同样tail指令就是默认查看目标文件尾部后10行的内容

管道  |

如果想要查看某个区间的文本内容就得用到管道了

啥意思嘞,举个例子head -300 目标文件 | tail -20
就是把目标文件的前300行交给后面的指令,让后面的指令做处理,提取在前者基础上的后20行
简单来说,就是把|前面的输出结果喂给|后面的,让tail进行二次加工

当然我们也可以用管道集联多组指令,对文本内容进行流水线式批量处理

date:查看时间

Linux用date指令查看时间,但是输出结果是外国人常用的不是我们国人看时间的习惯
因此我们要对date进行一些格式化处理,使其输出结果符合我们国人看时间的习惯

date +%Y-%m-%d_&H:%M:%S       [注意大小写]
如此,输出结果就是  年月日时分秒

要明确一点的是,date指令不重要,但是时间很重要
就比如日志里面报错的时间

在date里面,最重要的一条指令就是date +%s

该指令会打印出一串数字,而这串数组就叫作时间戳

时间戳:

我们知道每个国家的时间其实是不一样的,那全球性贸易购物下单时间如果不统一,有时差的话,会造成很大的问题,由此出现了时区的概念
但是如何让全球的计算机以统一的步调进行时间统计呢?
因此就出现了时间戳的概念

时间戳就是从1970的1月1日0点到现在累积的秒数

计算机里面的时间其实是时间戳,只不过转成了我们此时此刻对应的时间

时间戳的意义:时间戳从技术上是一个线性递增的数据,从应用和业务上,可以让我们根据时间戳进行内容的批量化分段式的查找和定位

同样我们也可以通过时间戳翻译成对应的时间: date +%Y-%m-%d_&H:%M:%S -d @时间戳
意思就是把指定的时间戳格式化显示

cal:显示日历

cal指令默认是显示本月日历的

cal后面加某一年,就可以显示那一整年的日历了

find:在目录结构中查找文件

语法:find 路径 -name 文件名称 (find不只是能用文件名称,还可以用文件类型,等等,以后再说

即find能在指定的目录下面进行深度优先遍历,查找对应名称的文件

which:查找给定命令的绝对路径

find和which都是查找指令

二者的区别就是find是真的去查找而which只能够去查找可执行程序,咱可以理解成which是只能在/uesr/bin/路径下进行查找

whereis 指令也能够进行查找,只是whereis查到的是非常详细的,不用指定路径,这里只是提一嘴,当我们用以上查找指令都查不到的时候,就可以使用whereis,whereis相当于一个备用查找指令

grep:打印指定文件的指定内容

语法:grep 'xxx' 目标文件

grep又叫作行文本过滤工具,与其说打印指定内容,不如说把其他不要查找的内容进行过滤

grep -n在打印指定内容的同时也会显示行号,方便我们快速查找内容所在行

grep -v(反向匹配),就相当于把匹配到的指定内容不打印出来,其他没有匹配的打印出来
也就相当于一个逆操作了

注意!grep在匹配的时候默认是大小写敏感的,若让其大小写不敏感就加上-i选项(忽略大小写)

grep也可以在进程中进行筛选,结合管道使用,当然这也是后话了

以上就是grep的两种应用场景了

bc:计算器

bc相当于Linux里面的命令行计算器

bc存在的意义在于,我们以后可能会用到  echo 1+2+3*7 | bc  类似的操作

那么把统一要算的东西全部让bc帮我们进行计算,就会比较方便

uname:用于获取电脑和操作系统的相关信息

uname是关于体系结构的命令 ,在Linux说体系结构的时候,重点指的是芯片、体系架构

在Windows里面,想查看相关信息一般都是去“此电脑”中查看

那如果我们想去查云服务器的相关信息,就可以使用uname -a(查看全部相关信息)

如果只想看内核版本和体系结构的话,可以使用uname -r


以上呢就是介绍了一些Linux入门级的基础指令,不过博主在这里还是想说明一点,本篇文章重要的不是指令,而通过这些指令给大家介绍的相关知识

从头阅读到这里的小伙伴一定对Linux操作系统有了个基本的认识,这也是博主最想看到的,你们的收货就是对我最大的鼓励啦

希望这篇本章对你有所帮助呀~

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

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

相关文章

Golang | Leetcode Golang题解之第564题寻找最近的回文数

题目&#xff1a; 题解&#xff1a; func nearestPalindromic(n string) string {m : len(n)candidates : []int{int(math.Pow10(m-1)) - 1, int(math.Pow10(m)) 1}selfPrefix, _ : strconv.Atoi(n[:(m1)/2])for _, x : range []int{selfPrefix - 1, selfPrefix, selfPrefix …

【最新鸿蒙应用开发】——合理使用自定义弹框

自定义弹窗选型 合理选择不同的系统能力实现弹窗&#xff0c;有利于提升应用开发效率&#xff0c;实现更好的功能需求&#xff0c;因此了解自定义弹窗的选型和差异非常重要。在应用开发中&#xff0c;为了选择出合适的弹窗选型&#xff0c;从使用场景上&#xff0c;需要重点关…

044 商品详情(异步编排)

文章目录 销售属性分组规格参数异步编排application.ymlMyThreadConfig.javaThreadPoolConfigProperties.javaSkuInfoServiceImpl.java 销售属性 sku表&#xff1a;tb_sku_info sku对应销售属性表&#xff1a;tb_sku_sale_attr_value 结果 在详情页系统中&#xff0c;切换属…

【热门主题】000054 ECMAScript:现代 Web 开发的核心语言

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 【热…

进程优先级——Linux

目录 前言 查看系统进程 进程优先级的修改 Linux调度与切换 Cpu的进程切换 Linux实现调度的算法 前言 进程访问系统资源要排队等待&#xff0c;而cpu资源分配和执行的先后顺序&#xff0c;就是指进程的优先级。进程的优先级&#xff0c;保证了必要进程的执行。进程访问某…

11.18 Maven-SpringBootWeb入门

Maven 什么是maven? Maven是apache旗下的一个开源项目&#xff0c;是一款用于管理和构建java项目的工具。 Apache 软件基金会&#xff0c;成立于1999年7月&#xff0c;是目前世界上最大的最受欢迎的开源软件基金会&#xff0c;也是一个专门为支持开源项目而生的非盈利性组织…

selenium元素定位校验以及遇到的元素操作问题记录

页面元素定位方法及校验 使用比较多的是通过id、class和xpath来对元素进行定位。在定位前可以现在浏览器验证是否可以找到指定的元素。这样就不用每添加一个元素定位都运行代码来检查定位方式表达式是否正确。 使用XPATH定位 在浏览器F12&#xff0c;找到元素&#xff0c;在元…

【UGUI】Unity 背包系统实现02:道具信息提示与显示

在游戏开发中&#xff0c;背包系统是一个常见的功能模块&#xff0c;用于管理玩家拾取的物品。本文将详细介绍如何在 Unity 中实现一个简单的背包系统&#xff0c;包括道具信息的提示和显示功能。我们将通过代码和场景搭建来逐步实现这一功能。 1. 功能需求清单 在实现背包系…

服务器上部署并启动 Go 语言框架 **GoZero** 的项目

要在服务器上部署并启动 Go 语言框架 **GoZero** 的项目&#xff0c;下面是一步步的操作指南&#xff1a; ### 1. 安装 Go 语言环境 首先&#xff0c;确保你的服务器上已安装 Go 语言。如果还没有安装&#xff0c;可以通过以下步骤进行安装&#xff1a; #### 1.1 安装 Go 语…

Node.js | Yarn下载安装与环境配置

一、安装Node.js Yarn 是 Node.js 下的包管理工具&#xff0c;因此想要使用 Yarn 就必须先下载 Node.js。 推荐参考&#xff1a;Node.js | npm下载安装及环境配置教程 二、Yarn安装 打开cmd&#xff0c;输入以下命令&#xff1a; npm install -g yarn检查是否安装成功&…

【Linux实践2】实验四:存储管理

文章目录 一、存储管理的目的1.1 内存空间的分配与回收1.2 地址转换1.3 内存保护1.4 内存共享1.5 内存扩充 二、可变分区存储管理2.1 分区结构体定义2.2 初始化分区链表 三、内存分配算法实现3.1 首次适应算法&#xff08;First Fit&#xff09;3.1.1 算法实现 3.2 循环首次适应…

linux 中mysql查看慢日志

1、到mysql容器&#xff0c;先登录到数据库&#xff0c;查看是否开启 mysql -h 127.0.0.1 -uroot -p SHOW VARIABLES LIKE slow_query_log; 2、如果没有开启&#xff0c;需要先开启 set global slow_query_log ON; 3、查看慢日志文件 SHOW VARIABLES LIKE slow_query_log…

微服务day09

DSL查询 快速入门 GET /items/_search {"query": {"match_all": {}} } 叶子查询 GET /items/_search {"query": {"match_all": {}} }GET /items/_search {"query": {"multi_match": {"query": "脱…

vue中el-select 模糊查询下拉两种方式

第一种&#xff1a;先获取所有下拉数据再模糊查询&#xff0c;效果如下 1&#xff0c;页面代码&#xff1a;speciesList是种类列表List, speciesId 是speciesList里面对应的id&#xff0c;filterable是过滤查询标签 <el-form-item label"种类" prop"species…

django启动项目报错解决办法

在启动此项目报错&#xff1a; 类似于&#xff1a; django.core.exceptions.ImproperlyConfigured: Requested setting EMOJI_IMG_TAG, but settings are not c启动方式选择django方式启动&#xff0c;以普通python方式启动会报错 2. 这句话提供了对遇到的错误的一个重要线索…

【Redis】Redis实现的消息队列

一、用list实现【这是数据类型所以支持持久化】 消息基于redis存储不会因为受jvm内存上限的限制&#xff0c;支持消息的有序性&#xff0c;基于redis的持久化机制&#xff0c;只支持单一消费者订阅&#xff0c;无法避免消息丢失。 二、用PubSub【这不是数据类型&#xff0c;是…

【AI+教育】一些记录@2024.11.16

《万字长文&#xff0c;探讨关于ChatGPT的五个最核心问题》 万字长文&#xff0c;探讨关于ChatGPT的五个最核心问题关于 ChatGPT 铺天盖地的信息让人无所适从。本文则试图提炼出五个关键问题&#xff1a;如何理解这次范式突破&#xff0c;未来能达到的技术天花板&#xff0c;行…

【计算机网络】TCP协议

一、TCP协议格式 1.报头的含义 (1) 16位源端口号/16位目的端口号 自己的端口号 和 对方的端口号 (2) 4位首部长度 表示报头长度&#xff08;TCP报头总长度 4位首部长度 * 4字节&#xff09;最少有20字节 TCP报头总长度 -> 0000 ~ 1111 -> [0, 15] * 4 -> [0, 60…

http自动发送请求工具(自动化测试http请求)

点击下载《http自动发送请求工具(自动化测试http请求)》 前言 在现代软件开发过程中&#xff0c;HTTP 请求的自动化测试是确保应用程序稳定性和可靠性的关键环节。为了满足这一需求&#xff0c;我开发了一款功能强大且易于使用的自动化 HTTP 请求发送工具。该工具基于 C# 开发…

C++ —— 剑斩旧我 破茧成蝶—C++11

江河入海&#xff0c;知识涌动&#xff0c;这是我参与江海计划的第2篇。 目录 1. C11的发展历史 2. 列表初始化 2.1 C98传统的{} 2.2 C11中的{} 2.3 C11中的std::initializer_list 3. 右值引用和移动语义 3.1 左值和右值 3.2 左值引用和右值引用 3.3 引用延长生命周期…