Linux初识——基本指令

news/2025/1/8 21:53:01/

我们在linux下输入各种指令,其实就相当于在windows中的相关操作,比如双击,新建文件夹等。

以下是相关基本指令基本用法

一.ls(显示当前目录下的所有文件和目录)

那如何显示当前目录(我们所在的位置)呢?用指令pwd即可。

1.2  创建一个文件夹/目录

有时候,我们点到文件夹的尽头发现内部无文件了,此时ls发现是空的,为了让其显示,我们可以尝试在此目录下新建一个文件夹,指令:mkdir 文件名

1.3   ls+选项

除此之外,ls大部分还可以后面跟一个选项,比如:ls -l即列出该目录下文件的详细信息。除此之外,还有一些其他的常用选项。

-a:显示当前目录下的所有文件

与ls不同的是,其多了.和..。但我们也能通过颜色判断其是文件夹。稍后再作解释。

1.4   选项的合并

那我们可不可以把两个选项同时使用呢?当然可以即ls -a -l;显示更多文件和文件的更详细的信息。(命令和选项,选项和选项之间必须有至少一个空格隔开,我们建议一个空格即可)

ls除了支持选项进行独立写,也支持合并写,比如ls -al即可达成上面同样的效果(顺序可以随意)

1.5   关于选项 -a

接下来,我们来解释一下刚才ls -l操作看不到的.和..  

在Linux中, 以 . 开头的文件称为隐藏文件,只有用-a操作我们才能看见,包括我们自己创建的隐藏文件也是如此

.114就是新创建的隐藏文件/目录

1.6   -l下显示的其他信息

如图所示,显示了这两个文件的全部信息,那除了名字,剩下这堆信息又代表着什么呢?

这好比我们在windows下新建一个文本文档,虽然我什么也没写,显示的是0kb,但其也会占据此磁盘空间,这是因为其还有文件的属性,包括文件类型,创建时间等。因此我们得出。

文件=文件内容+文件属性。对文件的操作就是对内容操作或对属性操作。

在上面的红框开头,以d开头的文件我们称为目录,以-开头叫普通文件(比如源文件,文本文件等)

二.  pwd(当前的工作路径,即所在目录)

我们在刚才已经演示了用法,在此就不多说了

除此之外,我们还需注意的是,在windows中连续进入几个文件加,上面会显示D:\XX\XXX\XXX.其中,\被称为路径分隔符,在Linux中,路径分割符用/表示,有了分隔符,我们就可以用文件夹(目录)+分隔符来表示一条路径,进而找到我们要找的文件。

有了这个东西,我们可以把ls再完善一下功能,如果我们想显示某一具体文件夹的信息(不一定是当前文件夹),只需 ls -l /文件夹名即可。显示指定目录下的内容。所以,ls的用法通式为:

ls   [选项]   [路径]。

对于一般的路径:/root/../.../....,我们把第一个/称为根目录,剩下的叫路径。

三 . cd(路径切换)

cd+路径 可切换到指定路径下。这个操作类似于windows的双击文件夹操作。

最后一步就是切换到根目录了。

有了cd操作,我们解释一下.和..到底是啥东西。

.和..叫特殊目录,.是当前目录,..是上级目录(对于112,他的上级目录就是root)cd..就是退到上一级目录,相当于windows中的回退。

3.1   ls -d

有时候,我们并不想展开某一个具体文件夹里的内容,只想看看当前路径下的文件夹,但我们用-l他总是会把文件夹展开显示,因此,需要用 -d选项,ls -d 目录即可展示当前路径下的内容而不打开目录,即只查看目录自己。

因此,我们也可以查看根目录本身而不打开根目录的内容。

注意:/里可以放普通文件,也可以放目录,/里面的目录也是如此,所以,Linux的目录结构是一颗多叉树的形状

3.2  绝对路径与相对路径

这颗多叉树的叶子节点,一定是空目录或普通文件,任何一个父节点可能有多个子节点,但任何一个子节点只有一个父节点。也就是说从根目录到目标文件,来回的路径是唯一的。这也告诉我们,可以用路径来定位一个文件的位置。这种路径称为绝对路径。

有绝对就有相对,那什么是相对路径呢?

假设我现在在112中新建一个txt文件(112中同时有一个lesson2的文件夹)

正常来说,我们想找到这个文件,就会用绝对路径表示:ls /root/112/hello.txt。但我们学过..是上级目录,因此,可用..代替:现在我们的位置是/root/112/lesson2,因为hello.txt在112中,所以我们要回退一个。即ls  ../hello.txt。这个就是相对路径,相对是相对于当前路径的意思。之前的cd ..就是相对路径。在实际命令行操作的时候,经常使用相对路径,因为很方便。但绝对路径无论何时都能找到指定文件,在配置文件中使用居多。

在Linux下,任何一个目录都有.和..空目录也是如此,.相当于指向自己的指针,..相当于指向上一级路径的指针。 特殊地,根目录的.和..都指向自己。

3.3  cd -  :跳转到最近的上一次路径,比如

3.4 cd ~

结果发现,无论当前在哪个路径,经过cd ~后都会回到/root,我们称为家目录

对于家目录的定义:对于root用户,首次登录所处的路径。对于普通用户,首次登录所处的路径(/home/用户名)。相当于windows的用户里叫桌面的文件夹。

所以,cd ~是回到用户自己的家目录下。root用户可以随便去普通用户的家目录下,相当于超级管理员,而普通用户只能去自己的家目录。

四 .touch指令(新建普通文件)
语法:touch 文件名

注意,在同一路径下不允许出现相同名字的文件或目录

五. mkdir(新建一个目录)

语法:mkdir 目录名  表示在当前路径下新建一个新目录,当然,也可以用相对路径在其他位置新建目录

但有时候我们想一次性新建一串目录比如:

这是不被允许的,我们只能新建一个然后cd进去继续新建,但是有一个选项可以帮助我们一次性完成,即在上图的mkdir后加-p即可。

六   rmdir和rm(删除命令)

rmdir不能删除普通文件,也不能删除非空文件,通常用来删除空目录。

rm可以删除普通文件,也可以删除非空目录,但需要加-r选项,他会把从他开始的所有子目录都删除,是一个递归的过程。但是在进行删除过程中会一直问你是否确定删除,直到递归结束,此时如果我们不想重复性地回答他,直接采用强制删除 rm -rf 目录即可。注意:不要强制删除根目录。

七 . *(通配符)

表示的是任意内容,用法为,xxx* 即代表了xxx后加任意名字的文件的所有文件比如:

file*代表着file后+任意为名字的文件的名字 ,*可以和ls rm搭配使用。如果是只写一个*,比如rm -rf * ,即强制删除当前目录下的任意名字的文件和目录 ,ls同上。(touch命令是新建普通文件的指令,语法为touch 文件名)。

八. 热键

8.1 Tab键

其功能如下:

第一个,命令补齐。比如我们在询问身份时往往会这样

但假设我们忘记了询问的命令了(如图所示,只记得是who什么什么)此时我们就可以连按两下tab,他就会显示以who开头的所有命令,如果我此时再输入一个a然后再按一下tab,发现直接显示whoami,这就是命令补齐。

第二个,路径补齐。

假设我们现在想知道上一级目录里除了lesson2还有什么,我们输入完ls ../后按下tab,就会显示112下的所有目录和文件,我们在输入new后再按下tab就会把剩余的目录补齐。(最后的什么也没显示是因为newdir下无目录和文件)

8.2 ctrl+c

在windows中是复制的快捷键,在linux中是强制终止运行,适用于我们输错了指令导致失控的情况下。

九.man指令

man相当于指令手册一样,当我们忘记了一些要用的指令时,可以用man指令查找,比如我想查关于ls 的相关指令,即man ls即可(以下是运行结果)pwd等等也可以。

除此之外,man也可以:man 数字 指令。数字相当于手册的章节,我们不输数字时默认在1号,像c语言的库函数在3号,我们要查函数就需要man 3 函数。当然,如果我们不输数字,他会从1号开始找,1号找不到找2号,直到找到为止。

十. cp指令(拷贝)

语法:cp 要拷贝的文件名/目录 拷贝成新的文件名/目录

拷贝后,文件里的内容也会拷贝,代码也会拷贝。不仅如此,也可以目录之间的拷贝,但需要加选项-r ,即递归式的拷贝。

注意:cp进行拷贝时需用相对路径或绝对路径进行拷贝

这里是把dir3中的test.txt拷贝到了dir4中

如果是拷贝目录的话,即cp -r 目录名1 目录名2,如果目录名2在当前路径存在那么就会在目录2中创建一个目录1的文件夹并把内容拷贝到其中,如果目录2名字不存在,那他就会在当前目录创建一个名为目录2的文件夹并把内容拷贝到其中。

这里我先把dir3的文件删除了,然后分别把dir4拷贝到dir3中,以及把dir4拷贝到当前目录中(di34是新的名字)。


http://www.ppmy.cn/news/1561640.html

相关文章

F#语言的数据结构

F#语言的数据结构浅析 F#是一种函数式编程语言,属于.NET生态系统。作为一种强类型语言,F#支持丰富的数据结构,使得编写复杂算法和数据处理变得更加高效和便利。在这篇文章中,我们将深入探讨F#的主要数据结构,包括元组…

STM32H7的SPI总线基础知识备忘

一 概念 STM32H7的SPI支持4到32bit数据传输,而STM32F1和F4系列仅支持8bit或者16bit。 STM32H7的主频400MHz时,SPI1, 2, 3最高通信时钟是100MHz,而SPI4, 5, 6是50MHz。 STM32H7的MISO和MOSI引脚功能可以互换,使用比较灵活。 …

使用命令行管理git项目

# 初始化一个新的Git仓库 git init # 添加文件到暂存区 git add <file> # 提交暂存区的更改到仓库 git commit -m "commit message" # 查看当前仓库的状态 git status # 查看提交历史 git log # 查看文件的改动 git diff <file> # 创建一个新…

代码随想录算法【Day11】

150. 逆波兰表达式求值 class Solution { public:int evalRPN(vector<string>& tokens) {// 力扣修改了后台测试数据&#xff0c;需要用longlongstack<long long> st; for (int i 0; i < tokens.size(); i) {if (tokens[i] "" || tokens[i] &…

Spring Boot 多环境配置与切换

Spring Boot 多环境配置与切换 当在多配置文件中&#xff0c;需要切换配置文件时&#xff0c;通常的做法都是修改激活的文件名称&#xff0c;而spring.profiles.activeprofiles.active是配合maven profile进行选择不同配置文件进行启动&#xff0c;可以避免修改文件&#xff0…

javafx 将项目打包为 Windows 的可执行文件exe

要将 JavaFX 项目打包为 .exe 文件&#xff0c;你可以使用一些工具将你的应用程序封装为 Windows 可执行文件。以下是两种常用的方法&#xff1a; 方法 1&#xff1a;使用 jpackage&#xff08;适用于 JDK 14 及更高版本&#xff09; jpackage 是 JDK 内置的工具&#xff0c;…

云从科技Java面试题及参考答案

高并发情况下的解决策略有哪些? 在高并发情况下,有多种解决策略。 首先是缓存策略。可以使用像 Redis 这样的缓存系统。缓存热门数据,比如在电商系统中,商品的基本信息、热门商品的详情等可以放入缓存。当有大量用户请求这些数据时,直接从缓存中读取,大大减少数据库的压力…

[ Android ] Google JetPack架构指南

文章目录 架构原则架构分层关于DomainLayer架构选型参考JetPack架构组件参考网站 架构原则 UI和数据分离&#xff0c;不要将所有代码写在Activity和Fragment里面 数据驱动UI&#xff0c;最好是持久性数据模型 单一数据源&#xff0c;集中修改数据&#xff0c;比如基于Databas…