【Linux学习笔记】 - 常用指令学习及其验证(上)

news2025/5/28 3:36:05

前言:本文主要记录对Linux常用指令的使用验证。环境为阿里云服务器CentOS 7.9。关于环境如何搭建等问题,大家可到同平台等各大资源网进行搜索学习,本文不再赘述。

由于本人对Linux学习程度尚且较浅,本文仅介绍验证常用指令的常用功能,可能无法展现指令及附带选项的所有功能,大家若想对相关指令内容有更全貌的了解还有劳搜索相关资料进行学习,谢谢_(:з)∠)_

那么下面进入正题:

一、ls指令

(1)功能:对于目录,该命令列出该目录下的所有子目录与文件;对于文件,将列出文件名以及其他信息
(2)语法及验证
语法

ls[选项][目录名/文件名]

常用选项

-a:列出目录下的所有文件,包括以 . 开头的隐含文件
-l:列出文件的详细信息
-d:将目录象文件一样显示,而不是显示其下的文件
-F:-F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。

验证PS:由于笔者在写博客前已进行了相关指令的验证,故在验证时会有一些已创建的文件和目录,但不影响对指令功能理解):

  • ls
    在这里插入图片描述

  • ls -a
    在这里插入图片描述

  • ls -l
    在这里插入图片描述

  • ls -d
    在这里插入图片描述
    解释:可以看到只显示了一个.,在这表示的是当前目录

  • ls -F
    在这里插入图片描述
    解释:可以看到,有dir1、dir2、dir3三个目录和两个普通文件。

补充知识:这里补充一个有关文件类型的知识:

  • 从指令ls -a输出结果的看到,显示出了当前目录下的所有文件包括隐藏文件,这里需要补充的是最前面的两个...,前者表示当前路径,后者表示当前路径的上级路径Linux任何一个目录下都会有这两个文件,从而帮助用户更好地定位其他相关文件的位置。
  • 指令ls -l的输出结果中,以d开头的表示该文件为目录;以符号-开头的表示该文件为普通文件;后面跟着是有关文件权限及创建时间等相关信息(之后对权限部分内容的介绍会进行说明)

二、pwd指令

(1)功能:显示用户当前所在目录
(2)语法及验证
语法

pwd

验证
在这里插入图片描述
解释:可以看到,当前处于home目录(家目录)下的ad目录(每个用户对应的目录)中(PS:home目录一般称为家目录,ad目录则是每个用户对应的自己的目录,这一点会在用户与权限部分继续说明
补充:其中的/是Liunx系统的路径分割符,这里可以和Windows的对比一下:
在这里插入图片描述
那么相应地,通过路径分割符我们也能大致推断出某应用或网页底层所使用的操作系统。

三、cd指令

在使用这个指令时需了解一些预备知识:

  • Linux系统中磁盘上的文件和目录成树状每个节点就是一个文件或目录,示意图如下所示:
    在这里插入图片描述

  • 我们在描述一个文件所在位置时一般有两种方式:绝对路径相对路径
    假设我们当前所在目录(路径)为/home/ad,那么就有两种方式描述目录dir1的路径(位置)信息:
    绝对路径:/home/ad/dir1
    相对路径:./dir1(这里的.上面也提到过,表示当前目录,一般在用于描述相对路径时可以省略(路径))

接下来进入功能介绍及验证

(1)功能:改变工作目录。将当前工作目录改变到指定的目录下,即“进入”指定文件当中。
(2)语法及验证
语法

cd[目录名]

验证
在这里插入图片描述

四、touch指令

(1)功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件,主要用于建立一个普通文件。
(2)语法及验证
语法

touch[选项][文件名]

验证
在这里插入图片描述
可以看到,原来在目录dir2下无任何文件,通过touch指令成功创建了一个文件d2.txt

五、mkdir指令

(1)功能:在当前目录下创建一个名为 “dirname”的目录
(2)语法及验证
语法

mkdir[选项]dirname

常用选项:

-p:mkdir -p后面的dirname可以是一个路径名,而不是目录名。此时若路径中的某些目录尚不存在,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录

验证
在这里插入图片描述
可以看到,刚开始只有dir1、2、3三个目录,然后通过指令mkdir -p创建了目录dir4及其子目录d4,通过指令ls可以验证。

六、rmdir 和 rm指令

1、rmdir指令

(1)功能:删除空目录
(2)语法及验证
语法

rmkdir[选项]dirname

常用选项:

-p:同样,rmkdir -p后面的dirname也可以是一个路径名,而不是目录名。此时若路径中子目录为空被删除后如果父目录也变成空目录的话,就连带父目录一起删除

验证
在这里插入图片描述
延续创建目录的指令可以看到,直接删目录dir4系统会报错,因为其为非空目录,在加上选项-p后符合连续删除的条件即可进行连续删除

2、rm指令

(1)功能:删除文件或目录
(2)语法及验证
语法

rm [选项] [dirname/filename]

常用选项:

-f :对文件进行强制删除,即就算文件属性为只读(即写保护),也直接删除
-i :删除前让系统逐一询问是否确认删除
-r :删除目录及其下所有文件

验证

  • rm -ri
    在这里插入图片描述
    在对目录dir4进行删除时需加上-r选项,此时再加上-i选项系统则会逐一询问确认删除,y表示确认。
  • rm -rf
    在这里插入图片描述
    同理,在对目录dir4进行删除时需加上-r选项,不加-i选项系统就不会询问,对于-f选项的作用这里暂时体现不出来,到权限部分会进一步介绍。

3、两者区别:

从上面的介绍可以看出,其实可以只使用rm进行删除操作,即rm的功能已经涵盖了rmdir了。这里补充说明一下二者在适用对象上的区别:rmdir仅适用于具有当前目录操作权限的所有使用者;而rm适用于所有使用者

七、man指令

(1)功能:访问Linux手册页,获得相关命令使用帮助
(2)语法及验证
语法

man [选项] 命令

常用选项:

-k 根据关键字搜索联机帮助
num 只在第num章节找
-a 将所有章节的都显示出来

man手册章节内容说明:

手册共分为8章:
第1章: 普通的命令
第2章: 系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
第3章:库函数,如printf,fread
第4章:特殊文件,也就是/dev下的各种设备文件
第5章:指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
第6章:是给游戏留的,由各个游戏自己定义
第7章:是附件还有一些变量,比如向environ这种全局变量在这里就有说明
第8章:是系统管理用的命令,这些命令只能由root使用,如ifconfig

验证
当我们在命令行输入man rm并回车时就会输出以下结果:
在这里插入图片描述
可以通过上下键或jk键实现“滚动”查看。

八、echo指令

(1)功能:将指定字符串内容在显示器上输出。

(2)语法及验证
语法echo "字符串"

通过 “>” ">>"可以对echo的功能进行拓展:

  • echo “字符串” > 文件名 :先将对应文件中的内容清空,再将字符串的内容写入文件当中,也称为输出重定向。故这里还有一个清空文件内容的指令:> 文件名
  • echo “字符串” >> 文件名 :直接在文件中原有内容的基础上写入字符串中的内容,也称为追加重定向。

验证

  • echo "字符串"
    在这里插入图片描述
  • echo "字符串" > 文件名
    将字符串内容写入文件:
    在这里插入图片描述
    清空文件内容:
    在这里插入图片描述
    PS:cat指令可以查看文件的内容,紧接着马上介绍
  • echo "字符串" >> 文件名
    在这里插入图片描述

九、cat指令

(1)功能:查看(输出)目标文件的内容
(2)语法及验证
语法cat [选项][文件]
常用选项:

-b :对非空输出行编号
-n :对输出的所有行编号
-s:不输出多行空行,即若无论是一行还是多行空行都仅输出一行。
< : 输入重定向。默认情况下,cat 指令会接受标准输入设备(键盘)的输入,并显示到控制台,但如果用文件代替键盘作为输入设备,那么该命令会以指定的文件作为输入设备,并将文件中的内容读取并显示到控制台。一般情况下,若想输出文件内容直接cat[文件名]即可,该符号可以省略。

验证之前,了解Linux系统下指令的本质可能会对验证结果有更好的理解,由于比较重要,专列了一个部分来说明,大家可以先跳转到最后一部分阅读后再返回。

验证

  • cat "字符串" < 文件名
    cat默认接受键盘(标准输入)输入的数据,并输出到显示器:
    在这里插入图片描述
    接收从文件中输出的内容,并输出到显示器:
    在这里插入图片描述
  • cat -b
    先往文件中写入了两行空行(空字符串)和一行字符串
    在这里插入图片描述
    在这里插入图片描述
  • cat -n
    在这里插入图片描述
  • cat -s
    在这里插入图片描述

十、cp指令

(1)功能:复制文件或目录。若仅指定一个文件,且目的的文件不存在,则会自动创建相应的普通文件;如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中;若最后的目的地并非一个已存在的目录,则会出现错误信息。
(2)语法及验证
语法cp [选项] 源文件或目录 目标文件或目录
常用选项:

-f:强行复制文件或目录, 不论目的文件或目录是否已经存在,不存在仍会报错
-R:递归处理,将指定目录下的文件及子目录一并处理,此时若最后目的地的目录若不存在,则会自动创建相应的目录

验证

  • 仅指定一个文件
    在这里插入图片描述
  • 指定多个文件
    在这里插入图片描述
  • cp -R
    在这里插入图片描述

十一、关于指令的本质

从对echo指令的简单介绍中,根据各种输入输出重定向,我们其实对指令可以有一个更深层次的理解。下面从两个问题入手来说明指令的本质

  • 指令是如何被执行的呢
    在C语言的学习阶段,我们学习了一个程序的生命周期,一个程序最后能够运行,关键在于最后生成的可执行文件,在Windows系统下我们存放程序的文件夹下我们可以看到由程序编译运行而产生相应的可执行文件,打开该文件,程序就被执行了。
    那么其实指令本质也是如此。指令的本质就是一个可执行文件。即指令一定是在系统中特定的路径下存在的。这一点可以验证:
    在这里插入图片描述
    可以看到,路径/usr/bin下就是基本指令存储的位置,它们都是一个个可执行程序(该环境下可执行程序默认会以绿色进行标识)
    所以,如果你愿意,可以自己编写一个可执行程序并进行相关重命名,然后将其放入该路径下,这样就得到了一个“我们自己的”指令。

  • 我们如何看待指令
    这里有一个非常重要的观点(视角):Linux下一切皆文件!
    上面说到,指令本质就是可执行程序,我们平常所说的所谓键盘和显示器都是一个个对应的文件。
    如平常说在“显示器上输出”,本质其实是将输出的内容写入了显示器文件中,让其能够输出;再如,我们平常说的“从键盘中读取”,本质其实是将键盘作为输出设备(文件),将其内容输入至目的地。那么对于显示器文件来说,我们就能粗略地认为其具有写方法,而读方法为空;对于键盘文件来说,我们就能粗略地认为其具有读方法,而写方法为空。
    也就是说,Linux下一切皆文件,而文件都可以具有读写方法。

希望大家看完这部分对指令本质的介绍后可以有多一个角度来看待指令以及Linux系统。

本章完。

看完觉得有觉得帮助的话不妨点赞收藏鼓励一下,有疑问或有误地方的地方还请过路的朋友们留个评论,多多指点,谢谢朋友们!🌹🌹🌹

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Writesonic:博客和内容创作者的终极写作助手

【产品介绍】 产品名称 Writesonic 上线时间 成立于2020年 具体介绍 Writesonic是一个强大的人工智能写作助手&#xff0c;它使用自然语言处理&#xff08;NLP&#xff09;和机器学习算法来生成内容&#xff0c;这些内容不仅写得好&#xff0c;而且还为SEO和转…

MFC中嵌入显示opencv窗口

在MFC窗体中建立一个Picture Control控件,用于显示opencv窗口 在属性中设置图片控件的资源ID为IDC_PIC1 主要的思路: 使用GetWindowRect可以获取图片控件的区域 使用cv::resizeWindow可以设置opencv窗口的大小,适合图片控件的大小 使用cvGetWindowHandle函数可以获取到ope…

30天入门Python(基础篇)——第3天:【变量】与【输出】与【转义符】(万字解析,建议收藏)

文章目录 专栏导读作者有话说&#xff1a;上一节课补充(Pychaem界面认识)①编写代码区域②运行代码&#xff08;多种方法&#xff0c;随便选一种&#xff0c;开心就好&#xff09; 什么是变量&#xff08;变量的定义&#xff09;①较标准的回答(引用AI)②大白话解释图文并茂(我…

嵌入式Linux驱动开发(I2C专题)(一)

一、I2C协议 1.1、硬件连接 I2C在硬件上的接法如下所示&#xff0c;主控芯片引出两条线SCL,SDA线&#xff0c;在一条I2C总线上可以接很多I2C设备。 1.2、IIC传输数据的格式 1.2.1、写操作 流程如下&#xff1a; 主芯片要发出一个start信号然后发出一个设备地址(用来确定是…

Java作业-模拟扎金花

要求 实现扑克牌的创建、洗牌、发牌、大小对比&#xff0c;输出赢家牌。 前提条件 首先需要创建三个集合&#xff0c;用于存储牌面值、牌号与比较规则&#xff0c;再创建一个类作为牌。 其次还需要了解到一个工具类&#xff0c;就是Collections类&#xff0c;该类的所有方法…

python,迪卡尔象限中画点

import numpy as np import matplotlib.pyplot as plt circleNum 30 # 同时圆刻度值 pointNum 20 # 点的数量 theta np.linspace(0.0, 2*np.pi, pointNum, endpointFalse) s circleNum * np.random.rand(pointNum) # plt.polar(theta, s, linestyleNone, marker*) # 无连接…

不知道有用没用的Api

encodeURIComponent(https://www.baidu.com/?name啊啊啊) decodeURIComponent(https%3A%2F%2Fwww.baidu.com%2F%3Fname%3D%E5%95%8A%E5%95%8A%E5%95%8A) encodeURI(https://www.baidu.com/?name啊啊啊) decodeURI(https://www.baidu.com/?name%E5%95%8A%E5%95%8A%E5%95%8A) …

​LeetCode解法汇总1222. 可以攻击国王的皇后

目录链接&#xff1a; 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目&#xff1a; https://github.com/September26/java-algorithms 原题链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 描述&#xff1a; 在一个 8x…

解决虚拟机重启后ifconfig看不到IP的问题

目录 背景 解决方案 背景 虚拟机&#xff0c;桥接模式&#xff0c;启动后一切正常&#xff0c;但重启后发现终端连不上虚机了&#xff0c;也ping不到&#xff0c;最后检查发现&#xff0c;IP消失了&#xff0c;虚机没有IP了。 解决方案 不论是否重启&#xff0c;只要是看不…

2023-09-14 LeetCode每日一题(可以攻击国王的皇后)

2023-09-14每日一题 一、题目编号 1222. 可以攻击国王的皇后二、题目链接 点击跳转到题目位置 三、题目描述 在一个 8x8 的棋盘上&#xff0c;放置着若干「黑皇后」和一个「白国王」。 给定一个由整数坐标组成的数组 queens &#xff0c;表示黑皇后的位置&#xff1b;以及…

关于浅克隆和深克隆入门理解

浅克隆:需要类实现Cloneable,并重写clone()方法 一般在重写clone()方法时,将返回值类型强转为自己类,避免每次克隆之后需要强转 public class Test {public static void main(String[] args) throws CloneNotSupportedException {A a1new A();A a2 a1.clone();//克隆之后 a1…

【搭建私人图床】本地PHP搭建简单Imagewheel云图床,在外远程访问

文章目录 1.前言2. Imagewheel网站搭建2.1. Imagewheel下载和安装2.2. Imagewheel网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar临时数据隧道3.2.Cpolar稳定隧道&#xff08;云端设置&#xff09;3.3.Cpolar稳定隧道&#xff08;本地设置&#xff09; 4.公网访问测…

Linux——(第十章)进程管理

目录 一、概述 二、常用指令 1.ps查看当前系统进程状态 2.kill 终止进程 3.pstree 查看进程树 4.top 实时监控系统进程状态 5.netstat 监控网络状态 一、概述 &#xff08;1&#xff09;进程是正在执行的一个程序或命令&#xff0c;每一个进程都是一个运行的实体&#…

Redis 常用命令

目录 全局命令 1&#xff09;keys 2&#xff09;exists 3) del(delete) 4&#xff09;expire 5&#xff09;type SET命令 GET命令 MSET 和 MGET命令 其他SET命令 计数命令 redis-cli&#xff0c;进入redis 最核心的命令&#xff1a;我们这里只是先介绍 set 和 get 最简单的操作…

IP地址,子网掩码,默认网关,DNS讲解

IP地址&#xff1a;用来标识网络中一个个主机&#xff0c;IP有唯一性&#xff0c;即每台机器的IP在全世界是唯一的。 子网掩码&#xff1a;用来判断任意两台计算机的ip地址是否属于同一子网络的根据。最为简单的理解就是两台计算机各自的ip地址与子网掩码进行and运算后&#x…

常用排序算法

一、插入排序1、直接插入排序2、折半插入排序3、希尔排序 二、交换排序1、冒泡排序2、快速排序 三、选择排序1、简单选择排序2、堆排序&#xff08;1&#xff09;调整堆&#xff08;2&#xff09;创建堆 四、归并排序五、基数排序六、各种排序方法的比较 将一组杂乱无章的数据按…

Zookeeper应用场景和底层设计

一、什么是zookeeper Zookeeper是一个开源的分布式协调服务框架&#xff0c;它是服务于其它集群式框架的框架。 【简言之】 有一个服务A&#xff0c;以集群的方式提供服务。只需要A专注于它提供的服务就可以&#xff0c;至于它如何以多台服务器协同完成任务的事情&#xff0c…

9.14号作业

仿照vector手动实现自己的myVector&#xff0c;最主要实现二倍扩容功能 有些功能&#xff0c;不会 #include <iostream>using namespace std; //创建vector类 class Vector { private:int *data;int size;int capacity; public://无参构造Vector(){}//拷贝构造Vector(c…

2023年最新 Nonobot2 制作QQ聊天机器人详细教程(每周更新中)

协议端 go-cqhttp 安装 使用 mirai 以及 MiraiGo 开发的 cqhttp golang 原生实现&#xff0c;并在 cqhttp 原版 的基础上做了部分修改和拓展。 测试版下载地址&#xff1a;https://github.com/Mrs4s/go-cqhttp/releases 正式版下载地址&#xff1a;https://github.com/Mrs4s…

广义表基础知识

广义表 (又称列表 Lists)是 n > 0个元素 . a0,a1....an-1的有限序列&#xff0c;其中每一个 ai 或者是原子&#xff0c;或者是一个广义表 广义表通常记作: LS (a1&#xff0c;a2&#xff0c;.....&#xff0c;an&#xff09;&#xff0c; LS为表名&#xff0c;n为表的长度&…