【Linux庖丁解牛】—Linux基本指令(上)!

🌈个人主页:秋风起,再归来~
🔥系列专栏: Linux庖丁解牛         
🔖克心守己,律己则安

目录

1、 pwd命令

2、ls 指令

3、cd 指令 

4、Linux下的根目录

5、touch指令

6、 stat指令 

7、mkdir指令

8、tree指令

9、which指令

10、指令的本质

 11、alias指令

12、完结散花


1、 pwd命令

语法: pwd

功能:显示用户当前所在的目录

常用选项: 无

>详解:当我们用超级用户root登入我们的系统时,我们默认在/root目录下,我们可以用pwd命令来验证一下。这个命令可以这样记忆(person work directory/当前用户所在工作目录)

当我们用我们的普通用户(假设是user1)登入我们的系统时,我们是默认在/home/user1目录下的

这里补充一条简单的指令:whoami (显示当前用户名称)

 >这里牵扯到一个问题就是,在Linux下目录到底是什么呢?

我们在Windows操作系统下,经常说打开某某文件/文件夹,而我们在Linux下经常说的目录其实就等同于Windows下的文件夹

2、ls 指令

语法: ls [选项][目录或文件]

功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。  

常用选项:(下面我只会演示一下常用到的选项,其他选项我们要用到时直接查阅资料即可!)

1、-a 列出目录下的所有文件,包括以 . 开头的隐含文件。

这里说明一下,在Linux下,以 . 开头的文件都是隐藏文件

 但是,Linux下,任何一个目录,即使是空目录,默认系统都会自带有 . .. 目录

2、-d 将目录像文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录

3、-i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件

4、-k 以 k 字节的形式表示文件的大小。ls –alk 指定文件

5、-l 列出文件的详细信息(属性)。

 值得说明的是:文件=内容+属性。我们对文件操作要么是对文件内容操作,要么对文件属性操作。ls就是对文件的属性操作,只不过只显示文件名。

选项其实还可以叠加使用:

调整选项的先后顺序没有关系 !

 6、-n 用数字的 UID,GID 代替名称。 (介绍 UID, GID)

7、-F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表 示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)

8、-r 对目录反向排序。

9、-t 以时间排序。

10、-s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)

11、-R 列出所有子目录下的文件。(递归)

12、-1 一行只输出一个文件。

3、cd 指令 

cd:就是change directory(改变目录,切换到指定目录的意思)

cd空格+指定目录即可进入到指定目录下!

 前面我们说过任何一个目录即使是空目录,系统都会默认自带两个隐藏目录:. ..

那这两个目录到底是什么意思呢?

这里我就直接说结论:. 表示当前目录,.. 表示上级目录!

下面我用cd来验证一下:

>. 表示当前目录

 >.. 表示上级目录!

果然如此!cd ..就是回退到上级目录下! 

我们可以把它理解为Windows下的文件夹回退键!

> cd ~:进入用户家目录

任何一个Linux用户,用特定的用户名登入系统时,都默认在家目录下!

比如我用超级用户root登入时就默认在/root路径下:

比如我用普通用户登入时就默认在 /home/用户名 路径下: 

> cd -:返回最近访问目录

4、Linux下的根目录

我们不断的回退会发现我们最终都是在一个/的地方停止下来了,再也回退不了了!而我们都知道/是Linux下的路径分隔符,而这里的/也是路径分隔符吗?

直接说结论:这个地方 的 / 其实是Linux下的根目录!

我们又知道,所有操作系统的文件结构都是一课多叉树,Linux也不例外,并且Linux的文件结构是从根目录 / 开始的一个多叉树!

 我们也可以验证一下:

果然 ,/ 其实就是一个目录!

好了,明白了Linux下文件系统的基本结构,我们这里又有了相对路径绝对路径的概念了!

绝对路径:我们把从根目录开始指定一个文件或目录次称为绝对路径!

相对路径:我们把以非根目录为参照位置定位一个文件称为相对路径!

注意:绝对路径只有一条,而相对路径不一定只有一条,也可能有多条。而绝对路径在配置文件中使用的比较多,相对路径就在日常操作中用的多(简易)

5、touch指令

语法:touch [选项]... 文件...

功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。

> 创建一个普通文件(不能创建目录):

 > 更改文档或目录的日期时间:

-a   或--time=atime或--time=access或--time=use只更改存取时间。

-c   或--no-create  不建立任何文档。

-d  使用指定的日期时间,而非现在的时间。

-f  此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。

-m   或--time=mtime或--time=modify  只更改变动时间。

-r  把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。

-t  使用指定的日期时间,而非现在的时间。

6、 stat指令 

stat就是state(状态)的意思:显示一个文件或目录的属性。

下面来讲一下A(access)C (change) M  (modify):

在Linux系统中,文件的属性通常与文件的访问、修改以及状态改变相关联。具体来说,accessmodify(有时也称为change,但在此上下文中我们通常区分两者)、change(这里特指inode change time)指的是文件的不同时间戳,它们各自代表了文件的不同方面的变化。

  1. Access Time (atime):
    • 访问时间是指文件数据最后一次被读取(访问)的时间。这包括使用如catmoreless等命令查看文件内容,或者使用grep等命令搜索文件内容时的最后一次操作时间。然而,值得注意的是,很多文件系统(特别是挂载时使用了noatimerelatime选项的文件系统)为了减少磁盘写入操作,可能会优化或忽略atime的更新。
  2. Modify Time (mtime):
    • 修改时间是指文件内容最后一次被修改的时间。这包括了对文件内容的任何写入操作,如使用文本编辑器修改文件、向文件中追加数据等。mtime是文件内容变化的直接反映。
  3. Change Time (ctime):
    • 状态改变时间(或inode change time)是指文件的状态(inode信息)最后一次被改变的时间。这不仅仅包括文件内容的修改(这也会更新mtime),还包括了文件权限、所有者、链接数(有多少文件名链接到inode)等的改变。简而言之,任何导致文件inode信息发生变化的操作都会更新ctime。因此,即使文件内容没有改变,但如果其权限或所有者等属性发生了变化,ctime也会更新。

7、mkdir指令

语法:mkdir [选项] dirname...

功能:在当前目录下创建一个名为 “dirname”的目录

常用选项: -p(可以理解为path路径的意思), --parents  可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立 好那些尚不存在的目录,即一次可以建立多个目录;

8、tree指令

在Linux系统中,tree命令是一个非常有用的工具,用于以树状图的形式递归地列出目录的内容。这个命令可以非常直观地展示目录结构,包括子目录和文件,以及它们的层级关系。

默认情况下,Linux系统可能并不自带tree命令,但你可以通过你的Linux发行版的包管理器来安装它。例如,在基于Debian(如Ubuntu)的系统上,你可以使用apt-get命令来安装:

apt install -y tree

在基于RPM的系统(如Fedora、CentOS)上,你可以使用yum(在较旧的系统上)或dnf(在较新的系统上)来安装:

yum install -y tree

安装完成后,你就可以使用tree命令了。基本用法很简单:

tree

这会在当前目录下显示目录树。如果你想要查看其他目录的目录树,可以将该目录的路径作为参数传递给tree命令:

tree /path/to/directory

tree命令还提供了许多选项来自定义输出,比如:

  • -L level:限制目录树的深度为指定的级别。
  • -a:显示所有文件和目录,包括以.开头的隐藏文件。
  • -d:仅显示目录。
  • -f:在每个文件或目录前显示其完整路径。
  • -i:不以缩进的格式显示文件或目录列表。
  • -P pattern:仅显示匹配指定模式的文件或目录。
  • -I pattern:不显示匹配指定模式的文件或目录。

例如,要查看当前目录及其子目录(但不包括更深层次的目录)的目录树,可以使用:

tree -L 1

或者,如果你想要查看所有文件(包括隐藏文件)的目录树,可以使用:

tree -a

tree命令是Linux系统管理和文件浏览中的一个强大工具,通过其提供的各种选项,你可以轻松地以图形化的方式查看和理解复杂的目录结构。

9、which指令

Linux中的which指令是一个常用的命令,主要用于查找并显示指定命令的绝对路径。以下是关于which指令的详细解释:

1. 基本功能

  • which指令会在环境变量$PATH中搜索指定的命令,并返回找到的第一个匹配项的完整路径。这个过程实质上是在查找可执行文件的路径(位置)。
  • 它帮助用户找到命令在系统中的具体位置,方便执行命令或查看命令是否存在。

2. 命令格式

  • 基本的命令格式是:which [选项] 命令
  • 其中,[选项]是可选的,用于指定额外的搜索条件或行为,如-a显示所有匹配的命令路径,-s静默模式不显示错误信息,-V显示which命令的版本信息等。

3. 使用示例

  • 查找单个命令的路径:例如,要查找ls命令的绝对路径,可以输入which ls,通常会返回/bin/ls作为输出。
  • 查找多个命令的路径:使用-a选项可以查找并显示所有匹配的命令路径。例如,which -a gcc g++会显示gccg++命令的所有匹配路径。
  • 查找which命令本身:输入which which时,可能会显示两个which,其中一个是由于别名(alias)引起的。这说明which命令可能被配置为通过别名执行额外的操作。
  • 查找内建命令:需要注意的是,which命令默认只搜索$PATH环境变量中的目录。如果命令是shell的内建命令(如cd),则which无法找到它,因为内建命令不依赖于外部的可执行文件。

4. 注意事项

  • which命令仅查找在环境变量$PATH指定的目录中的命令。如果命令不在$PATH中的任何目录下,which命令将无法找到它。
  • 由于which返回的是第一个匹配项的路径,因此在某些情况下,如果存在多个同名的命令可执行文件,which只会显示找到的第一个。

5. 扩展用法

  • 在编写脚本或自动化任务时,which命令可以用于检查命令是否存在,或者获取命令的完整路径以便在脚本中使用。
  • 还可以结合其他命令和脚本,实现更复杂的搜索和路径处理功能。

综上所述,which指令是Linux系统中一个非常实用的工具,能够帮助用户快速找到命令的执行文件路径,方便执行和管理命令。

10、指令的本质

通过which指令我们可以发现指令其实就是系统指定路径下的可执行文件,就相当于我们写的C/C++程序!

我们还可以在Linux上写个简单的C程序验证一下:

我们甚至还可以将我们的code.c文件拷到usr/bin目录下,然后和文件自带的指令一样不用指定绝对路径就可以执行我们的指令!

 11、alias指令

在Linux中,alias指令用于创建一个命令的别名,这样你就可以用一个简短的字符串来代替一个较长或复杂的命令。这对于提高命令行操作的效率非常有帮助,特别是当你需要频繁执行某个复杂命令时。

基本用法

  • 创建别名

    alias new_command='original_command'

    这里,new_command是你想要创建的别名,而original_command是原始命令。注意,等号=两边不要有空格。

  • 查看所有别名

    alias

    或者

    alias -p

    这两个命令都会列出当前会话中定义的所有别名。

  • 删除别名

    unalias new_command

    这里,new_command是你想要删除的别名。

示例

  1. 创建一个别名来列出当前目录下的所有文件和文件夹

    alias ll='ls -la'

    现在,你可以通过输入ll来执行ls -la命令,该命令会列出当前目录下的所有文件和文件夹,包括隐藏文件和文件夹。

  2. 创建一个别名来清除屏幕

    alias cls='clear'

    注意,clear命令在大多数Linux发行版中都是预装的,用于清除终端屏幕。然而,一些用户可能习惯于使用cls命令(这在Windows的命令提示符中是常见的)。通过创建这个别名,你可以在Linux终端中使用cls命令来达到相同的效果。

  3. 删除之前创建的别名
    如果你不再需要ll别名,可以使用以下命令来删除它:

     
    unalias ll

持久化别名

默认情况下,通过alias命令创建的别名只在当前shell会话中有效。如果你想要让这些别名在每次登录时都可用,你需要将它们添加到你的shell配置文件中。对于bash shell,这个文件通常是~/.bashrc

  1. 打开你的~/.bashrc文件:

    nano ~/.bashrc

    或者

     
    vim ~/.bashrc
  2. 在文件的末尾添加你的别名定义,例如:

    alias ll='ls -la'
    alias cls='clear'
  3. 保存并关闭文件。

  4. 为了使更改立即生效,你可以在当前shell会话中运行以下命令来重新加载~/.bashrc文件:

    source ~/.bashrc

    或者

    . ~/.bashrc

现在,你创建的别名将在每次登录时自动可用。

12、完结散花

好了,这期的分享到这里就结束了~

如果这篇博客对你有帮助的话,可以用你们的小手指点一个免费的赞并收藏起来哟~

如果期待博主下期内容的话,可以点点关注,避免找不到我了呢~

我们下期不见不散~~

​​​​

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

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

相关文章

通威股份半年报业绩巨降:销售费用大增,近一年股价跌四成

《港湾商业观察》施子夫 王璐 光伏领域龙头企业通威股份(600438.SH)交出的半年报延续了2023年营收和净利润双下滑趋势,幅度显得更大。 即便受行业波动影响,但如何重整及提升盈利能力,通威股份还需要给出解决方案。​…

详解c++:new和delete

文章目录 前言一、new和mallocnew的用法(爽点)自动构造 delete和freedelete的用法(爽点) 提醒 前言 提示:这里可以添加本文要记录的大概内容: 在C中,new 和 delete 是两个非常重要的操作符&am…

FFmpeg开发笔记(五十六)使用Media3的Exoplayer播放网络视频

Android早期的MediaPlayer控件对于网络视频的兼容性很差,所以后来单独推出了Exoplayer库增强支持网络视频,在《Android Studio开发实战:从零基础到App上线(第3版)》一书第14章的“14.3.3 新型播放器ExoPlayer”就详细介绍了Exoplayer库的详细…

【Python】从基础到进阶(八):文件操作与上下文管理

🔥 个人主页:空白诗 文章目录 一、引言二、Python文件操作基础1. 打开文件2. 读取文件3. 写入文件4. 文件指针定位 三、上下文管理1. 使用with管理文件2. 自定义上下文管理器 四、文件操作的最佳实践五、案例:日志文件管理1. 需求分析2. 实现…

OpenCV结构分析与形状描述符(24)检测两个旋转矩形之间是否相交的一个函数rotatedRectangleIntersection()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 测两个旋转矩形之间是否存在交集。 如果存在交集,则还返回交集区域的顶点。 下面是一些交集配置的例子。斜线图案表示交集区域&#…

从边缘设备到云端平台,合宙DTURTU打造无缝物联网解决方案

如今,物联网(IoT)技术飞速发展,万物互联的时代已然到来,那么,高效、稳定地连接边缘设备与云端平台,实现数据的实时采集、传输与处理,就成为了推动物联网应用落地的关键。 DTU&#…

以root用户登陆ubuntu的桌面环境

去我的个人博客观看,观感更佳哦,😙😙 前言 在学习Linux的时候,经常都需要使用sudo权限来对配置文件进行修改,常用的方法就是用vim编辑器在命令行界面进行修改,比如sudo vim /etc/profile&#…

【深度学习】(1)--神经网络

文章目录 深度学习神经网络1. 感知器2. 多层感知器偏置 3. 神经网络的构造4. 模型训练损失函数 总结 深度学习 深度学习(DL, Deep Learning)是机器学习(ML, Machine Learning)领域中一个新的研究方向。 从上方的内容包含结果,我们可以知道,在学习深度学…

【Linux】解锁系统编程奥秘,高效文件IO的实战技巧

文件 1. 知识铺垫2. C文件I/O2.1. C文件接口2.2 fopen()与重定向2.3. 当前路径2.4. stdin、stdout、stderr 3. 系统文件I/O3.1. 前言3.2. open3.2.1. flags</h3>3.2.2. mode</h3>3.2.3. 返回值fd 3.3. write</h2>3.4. read3.5. close</h2>3.6. lseek&l…

面试经典150题——删除有序数组中的重复项

目录 题目链接&#xff1a;26. 删除有序数组中的重复项 - 力扣&#xff08;LeetCode&#xff09; 题目描述 判题标准: 示例 提示&#xff1a; 解法一&#xff1a;双指针 Java写法&#xff1a; 运行时间 C写法&#xff1a; 运行时间 论屎山代码是如何出现的 时间复杂…

感知笔记2:ROS 视觉 - 沿线行走

如何在 ROS 中使用 OpenCV如何跟踪线路如何根据颜色查找不同元素跟踪多条路径并做出决定为线路跟踪创建基本的 PID 在本章中&#xff0c;您将学习如何使用 ROS 中最基本、最强大的感知工具&#xff1a;OpenCV。 OpenCV 是最广泛、最完整的图像识别库。有了​​它&#xff0c;…

Docker实操:安装MySQL5.7详解(保姆级教程)

介绍 Docker 中文网址: https://www.dockerdocs.cn Docker Hub官方网址&#xff1a;https://hub.docker.com Docker Hub中MySQL介绍&#xff1a;https://hub.docker.com/_/mysql ​ 切换到“Tags”页面&#xff0c;复制指定的MySQL版本拉取命令&#xff0c;例如 &#xff1a…

uv-ui组件的使用——自定义输入框的样式

一、官网的使用 二、自定义修改样式 我是在小程序中使用此组件 想要自定义修改样式的话&#xff0c;需要placeholderClass加上 placeholderStyle配合使用 tip1&#xff1a;单独使用placeholderClass&#xff0c;他只会第一次渲染时生效&#xff0c;输入文字再清除后就不生效…

十六,Spring Boot 整合 Druid 以及使用 Druid 监控功能

十六&#xff0c;Spring Boot 整合 Druid 以及使用 Druid 监控功能 文章目录 十六&#xff0c;Spring Boot 整合 Druid 以及使用 Druid 监控功能1. Druid 的基本介绍2. 准备工作&#xff1a;3. Druid 监控功能3.1 Druid 监控功能 —— Web 关联监控3.2 Druid 监控功能 —— SQL…

(蓝桥杯)STM32G431RBT6(TIM4-PWM)

一、基础配置 这个auto-reload preload是自动重装载值&#xff0c;因为我们想让他每改变一个占空比&#xff0c;至少出现一次周期 Counter Period(Autoreload Regisiter)这个设值为10000&#xff0c;那么就相当于它的周期是10000 脉冲宽度可以设置为占周期的一半&#xff0c;那…

Python酷库之旅-第三方库Pandas(123)

目录 一、用法精讲 546、pandas.DataFrame.ffill方法 546-1、语法 546-2、参数 546-3、功能 546-4、返回值 546-5、说明 546-6、用法 546-6-1、数据准备 546-6-2、代码示例 546-6-3、结果输出 547、pandas.DataFrame.fillna方法 547-1、语法 547-2、参数 547-3、…

opencv图像透视处理

引言 在图像处理与计算机视觉领域&#xff0c;透视变换&#xff08;Perspective Transformation&#xff09;是一种重要的图像校正技术&#xff0c;它允许我们根据图像中已知的四个点&#xff08;通常是矩形的四个角&#xff09;和目标位置的四个点&#xff0c;将图像从一个视…

Ubuntu 与Uboot网络共享资源

1、NFS 1.1 Ubuntu 下 NFS 服务开启 sudo apt-get install nfs-kernel-server rpcbind 等待安装完成&#xff0c;安装完成以后在用户根目录下创建一个名为“Linux”的文件夹&#xff0c;以后所有 的东西都放到这个“Linux”文件夹里面&#xff0c;在“Linux”文件夹里面新建…

[Simpfun游戏云1]搭建MC Java+基岩互通生存游戏服务器

众所周知&#xff0c;MC有多个客户端&#xff0c;像常见的比如Java Edition和基岩等&#xff0c;这就导致&#xff0c;比如我知道一个超级好玩的JE服务器&#xff0c;但我又想使用基岩版来玩&#xff0c;肯定是不行的&#xff0c;因为通讯协议不一样。 这就有一些人才发明了多…

搜索引擎onesearch3实现解释和升级到Elasticsearch v8系列(四)-搜索

搜索 搜索内容比较多&#xff0c;onesearch分成两部分&#xff0c;第一部分&#xff0c;Query构建&#xff0c;其中包括搜索词设置&#xff0c;设置返回字段&#xff0c;filter&#xff0c;高亮&#xff1b;第二部分分页和排序。第一部分是映射引擎负责&#xff0c;映射通用表…