【Liunx基础】之指令(一)

news2024/12/24 10:26:55

【Liunx基础】之指令(一)

  • 1.ls指令
  • 2.pwd命令
  • 3.cd指令
  • 4.touch指令
  • 5.mkdir指令(重要)
  • 6.rmdir指令与rm指令(重要)
  • 7.man指令(重要)
  • 8.cp指令(重要)

📃博客主页: 小镇敲码人
💞热门专栏:linux操作系统
🚀 欢迎关注:👍点赞 👂🏽留言 😍收藏
🌏 任尔江湖满血骨,我自踏雪寻梅香。 万千浮云遮碧月,独傲天下百坚强。 男儿应有龙腾志,盖世一意转洪荒。 莫使此生无痕度,终归人间一捧黄。🍎🍎🍎
❤️ 什么?你问我答案,少年你看,下一个十年又来了 💞 💞 💞
前言:接上一篇博客【C语言进阶】之动态内存管理,今天来跟着博主把理论应用在实践之中,彻底掌握动态内存管理的相关知识!!!!

1.ls指令

  • 语法:ls [选项] [目录或文件]
  • 功能:对于目录,该命令列出该目录下的所有子目录和文件名。对于文件,该命令会列出文件名称及其它信息。

常用选项:

1. -a 列出目录下的所有文件,包括以 . 开头的隐含文件。
2. -d 将目录像文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
3. -i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
3. -k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
4. -l 列出文件的详细信息。
5. -n 用数字的 UID,GID 代替名称。
6. -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表
示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)
7. -r 对目录反向排序。
8. -t 以时间排序。
9. -s 在l文件名后输出该文件的大小。
10.-R 列出所有子目录下的文件。(递归)
11.-1 一行只输出一个文件。

我们以根目录来做下演示:

  1. ls -l
    在这里插入图片描述
    因为-l选项是列出文件的详细信息,但是不包括隐藏文件,所以这里什么的没显示,同时也说明了一个问题,就是root根目录下全部都是隐藏文件。
  2. ls -a
    在这里插入图片描述
    因为-a选项列出目录下的所有文件但是也包括隐藏文件,但是不显示文件的详细信息。

那么如果我们想查看隐藏文件的详细信息应该怎么办呢,我们的选项是可以叠加使用的:

  1. ls -a -l

在这里插入图片描述
可以看到此时系统给我们显示出了,root目录下的所有文件的详细信息,注意不同的选项叠加,顺序没有要求,也可以将他们只用一个-放在一起,例如:

在这里插入图片描述
或者是ls -la /root也是可以的。

  1. ls -a -1在这里插入图片描述
    选项-1-a加在一起可以每一行只列出一个文件(包括隐藏文件)或目录,但是不显示文件的详细信息。

  2. ls -t -a

在这里插入图片描述
这里可以看到,第一种应该是按照时间的先后排列的文件顺序,-t选项可以将一个目录下的文件和目录按照时间来排序,到底是升序还是降序,我们之后可以验证一下。

  1. ls -r -a
    在这里插入图片描述
    -r选项是对目录进行反向排序,我们可以知道,ls -r -t应该就可以按照时间对目录进行反向排序:
    在这里插入图片描述
    更多选项请大家自行下去研究。

2.pwd命令

语法:pwd
功能:显示当前用户所在目录
常用选项:无
在这里插入图片描述
比如当前使用pwd命令,显示我们在根目录。

3.cd指令

  • 注意:每一个目录下都有两个隐藏目录....代表当前目录,..代表上级目录,也就是说如果你当前在root目录,/root = ./,可以这样去理解它们就相当于两个指针,.指向当前目录,..指向上级目录。

在linux上,磁盘上的文件和目录被组成一棵树,每个节点都是一个文件或者目录,比如root目录下的树展开是这样的:

在这里插入图片描述
关于目录,我们后续会有更加详细的讲解。
语法:cd 目录名
功能:改变工作目录,将工作目录改变到指定目录下。

1. cd .. : 返回上级目录
2. cd /dev/raw : 绝对路径
3. cd ../../root : 相对路径
4. cd ~:进入用户家目
5. cd -:返回最近访问目录
  1. cd ..
    在这里插入图片描述
    我们pwd知道当前目录在/bin,cd ..来到上级目录

  2. 绝对路径
    绝对路径就是从根目录开始到该目录的路径
    在这里插入图片描述
    我们现在在root目录下,然后通过绝对路径/dev/raw进入raw目录,这个/dev/raw就是绝对路径。

  3. 相对路径
    我们现在在/dev/raw,通过…/…/root,访问root目录,这个…/…/root就是相对路径。
    在这里插入图片描述
    因为…是返回上一级目录,我们返回两级就到了根目录,然后再访问其下面的root目录。

  4. cd ~
    这个指令可以帮我们进入我们的家目录
    在这里插入图片描述
    我们现在在/bin目录下,cd ~直接来到家目录/root,root用户的家目录就是/root。

  5. cd -
    这个指令可以帮助我们返回到刚刚的目录。
    在这里插入图片描述
    我们刚刚在/bin目录下,cd ~来到家目录,然后cd -可以又回到/bin目录,cd -又可以来到刚刚的/root目录,实现反复横跳。

4.touch指令

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

  • -a 或–time=atime或–time=access或–time=use只更改存取时间。
  • -c 或–no-create 不建立任何文档。
  • -d 使用指定的日期时间,而非现在的时间。
  • -f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
  • -m 或–time=mtime或–time=modify 只更改变动时间。
  • -r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
  • -t 使用指定的日期时间,而非现在的时间。

我们常见的使用touch的场景是建立一个文件:

在这里插入图片描述

5.mkdir指令(重要)

语法:mkdir [选项] 目录名
功能:建立一个新的目录。
选项:

  • -p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立
    好那些尚不存在的目录,即一次可以建立多个目录;

使用这两个选项可以一次性建立多个还不存在的目录:
在这里插入图片描述
如果不指定路径就默认在当前路径创建目录,如果指定就可以在多个指定的目录创建,比如下面:

在这里插入图片描述

6.rmdir指令与rm指令(重要)

rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除命令。
语法:rmdir [-p][dirName]
适用对象:具有当前目录操作权限的所有使用者
功能:删除空目录
常用选项:

  • -p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。

我们来演示一下:

在这里插入图片描述

  • 注意:我们使用了一个*,系统帮助我们删除了所有目录,*叫做通配符,可以删除指定路径下的所有文件和目录,因为rmdir只能删除目录所以还剩一个文件没有删除。

rm命令可以同时删除文件或目录
语法:rm [-f-i-r-v][dirName/dir]
适用对象:所有使用者
功能:删除文件或目录
常用选项:

  • -f 即使文件属性为只读(即写保护),亦直接删除
  • -i 删除前逐一询问确认
  • -r 删除目录及其下所有文件
  1. rm -rf
    这个指令即使你没有写权限,只有读权限,也可以直接删除,而且可以删除文件和目录。

在这里插入图片描述
因为-f选项是删除文件的,所以它单独存在不能删除目录:

在这里插入图片描述
但是它单独存在可以删除文件:

在这里插入图片描述

-r选项单独存在既可以删除目录也可以删除文件:

在这里插入图片描述
*同样可以和rm搭配使用,删除所有该目录下该选项可以删除的文件或目录,但是此时我们发现系统一直在问我们是否要删除,如果我们-f -r选项一起用,就可以直接删除:

在这里插入图片描述

  1. rm -i -f
    这个-i选项可以让系统在删除前询问我们一下,如果和-f选项放在一起,也是可以触发询问的,因为有时候你可能想删除一些只读的文件,但是你想要系统问你一下就可以用这个指令:

在这里插入图片描述
可以发现使用这个-f选项删除文件系统是默认不询问的,如果我们加了-i选项系统就会询问,会更加安全。

这里我们可以得到一个结论:当我们单独使用-r选项删除文件或者目录时,系统会询问。但是当我们使用-f选项删除文件时,系统是不会询问的。

7.man指令(重要)

Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。man指令可以帮助进入手册
man 语法: man [选项] 命令
常用选项

  • -k 根据关键字搜索联机帮助
  • num 只在第num章节找
  • -a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕。
    解释一下面手册分为8章
    1 是普通的命令
    2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文
    件)
    3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件
    5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
    6 是给游戏留的,由各个游戏自己定义
    7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明
    8 是系统管理用的命令,这些命令只能由root使用,如ifconfig

比如我们使用man mkdir系统就会帮助我们找mkdir的相关介绍:
在这里插入图片描述
输入q可以退出。

8.cp指令(重要)

语法:cp [选项] 源文件或目录 目标文件或目录
功能: 复制文件或目录
说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息

常用选项:

  • -f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
  • -i 或 --interactive 覆盖文件之前先询问用户
  • -r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链
    接,则一律视为普通文件处理
  • -R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理

我们可以使用cp命令不加选项直接,把一个目录里的文件拷贝到另外一个目录
在这里插入图片描述
我们可以使用-r选项将一个目录里子目录都递归拷贝到另一个目录:

在这里插入图片描述
此时我们想把/root目录下的aa目录里面的内容全部拷贝到bb目录里面,直接拷贝是不行的,因为它有多级子目录,我们需要使用-r选项递归拷贝。

cp指令还有创建新目录的作用,如果我们想将一个存在的目录递归拷贝到一个目录中,如果它不存在,系统会创建一个新的目录,并完成拷贝:
在这里插入图片描述

如果一个目录里面有多个目录,后面那个目标目录不存在就会报错:
在这里插入图片描述
使用-f选项也会报错,但是使用-r选项可以成功拷贝:
在这里插入图片描述

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

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

相关文章

核电堆芯组件动态特性试验研究

u 核电试验概述 反应堆是核电事业的核心组成部分之一,堆内构件、堆芯燃料组件等部件在冷却剂流动冲击下,会诱发剧烈振动,导致堆芯内试验件流道不稳定。为了保障反应堆的安全运行,根据国家核安全法规规定,有必要对受冷…

单链表的应用(2)

环形链表的约瑟夫问题 编号为 1 到 n 的 n 个人围成一圈。从编号为 1 的人开始报数,报到 m 的人离开。 下一个人继续从 1 开始报数。 n-1 轮结束以后,只剩下一个人,问最后留下的这个人编号是多少? 利用链表实现 思路&#xff1…

基础Redis-结构与命令

结构与命令 1.基础-Redisa.Redis数据结构介绍b.Redis通用命令c.key的结构d.String类型e.Hash类型f.List类型g.Set类型h.SortedSet类型 1.基础-Redis a.Redis数据结构介绍 Redis是一个key-value的数据库,key一般是String类型,不过value的类型多种多样&a…

idea中配置spring boot单项目多端口启动

参照文章 https://zhuanlan.zhihu.com/p/610767685 项目配置如下 下面为 idea 2023,不同版本的设置有区别,但是没那么大,idea 2023默认使用新布局,切换为经典布局即可。 在项目根目录的.idea/workspace.xml文件里添加如下配置 &l…

Java用log4j写日志

日志可以方便追踪和调试问题,以前用log4net写日志,换Java了改用log4j写日志,用法和log4net差不多。 到apache包下载下载log4j的包,解压后把下图两个jar包引入工程 先到网站根下加一个log4j2.xml的配置文件来配置日志的格式和参…

测试开发面试宝典,涨价倒计时

大家好,我是洋子,相信在面试软件测试、测试开发岗位的小伙伴都深有体会,考察的知识点越来越多 不仅会考察到软件测试的理论,让你对某种功能进行测试用例的设计,更难一点会给出一个测试场景进行测试方案的设计&#xf…

C++二分算法:平衡子序列的最大和

涉及知识点 二分 动态规划 #题目 给你一个下标从 0 开始的整数数组 nums 。 nums 一个长度为 k 的 子序列 指的是选出 k 个 下标 i0 < i1 < … < ik-1 &#xff0c;如果这个子序列满足以下条件&#xff0c;我们说它是 平衡的 &#xff1a; 对于范围 [1, k - 1] 内的所…

openGauss学习笔记-115 openGauss 数据库管理-设置安全策略-设置密码安全策略

文章目录 openGauss学习笔记-115 openGauss 数据库管理-设置安全策略-设置密码安全策略115.1 操作步骤 openGauss学习笔记-115 openGauss 数据库管理-设置安全策略-设置密码安全策略 115.1 操作步骤 用户密码存储在系统表pg_authid中&#xff0c;为防止用户密码泄露&#xff…

2023-2024-1高级语言程序设计-一维数组

7-1 逆序输出数组元素的值 从键盘输入n个整数存入一维数组中&#xff0c;然后将数组元素的值逆序输出。 输入格式: 第一行输入整数个数n&#xff1b; 第二行输入n 个整数&#xff0c;数据之间以空格隔开。 输出格式: 逆序输出数组元素的值&#xff0c;每个数据之后跟一个空…

[React] React-Redux 快速入门

文章目录 1.安装 Redux Toolkit 和 React Redux2.创建 Redux Store3.为 React 提供 Redux Store​4.创建 Redux State Slice5.添加 Slice Reducers 到 Store6.在 React 组件中使用 Redux State 和 Actions​7.总结 1.安装 Redux Toolkit 和 React Redux npm install reduxjs/t…

测试服务器端口是否开通,计算退休时间

本案例知识点 netstat -tuln | grep 80 nestat 目前主机打开的网络服务端口&#xff0c;-tuln目前主机启动的服务&#xff0c;如图 报错说参数太多&#xff0c;仔细检查发现if后的中括号内&#xff0c;变量少双引号导致&#xff0c;改完之后运行显示22,25端口开放&#xff0…

关于编程不得不说的事

这些年&#xff0c;互联网爆炸式的发展&#xff0c;促生了无数程序员&#xff0c;也促生了大量 IT培训机构。短短数年间&#xff0c;科班出生的程序员和培训机构出生的程序员呈指数增长。程序员的职业也不再是金饭碗。写了这么多代码&#xff0c;有些感触&#xff0c;所以写下来…

挑战100天 AI In LeetCode Day01(1)

挑战100天 AI In LeetCode Day01&#xff08;1&#xff09; 一、LeetCode介绍二、LeetCode 热题 HOT 100-12.1 题目2.2 题解 三、面试经典 150 题-13.1 题目3.2 题解 一、LeetCode介绍 LeetCode是一个在线编程网站&#xff0c;提供各种算法和数据结构的题目&#xff0c;面向程序…

回顾十大数据恢复软件,帮助用于恢复丢失的文件!

您是否因丢失计算机上的重要文件而感到恐慌&#xff1f;你不是一个人&#xff01;数据丢失是许多人面临的严重问题&#xff0c;但幸运的是&#xff0c;有许多解决方案可以恢复数据。 在本文中&#xff0c;我将回顾十大数据恢复软件&#xff0c;以帮助您恢复丢失的文件&#xf…

线性【SVM】数学原理和算法实现

一. 数学原理 SVM是一类有监督的分类算法&#xff0c;它的大致思想是&#xff1a;假设样本空间上有两类点&#xff0c;如下图所示&#xff0c;我们希望找到一个划分超平面&#xff0c;将这两类样本分开&#xff0c;我们希望这个间隔能够最大化来使得模型泛化能力最强。 如上图所…

Vulnhub-DC-3 靶机复现完整过程

啰嗦两句&#xff1a; 提权之前完成是一个月前做的&#xff0c;当时在提权处出了点问题就搁置了&#xff0c;今天才完成&#xff0c;所以IP地址可能会会有变化 注意&#xff1a;后续出现的IP地址为192.168.200.55同样是靶机IP地址&#xff0c;若本文能有帮助到你的地方&#xf…

Flutter 07 框架和三棵树(Widgets、Elements和RenderObjects)

一、Flutter框架的整体结构&#xff1a; Flutter是Google推出并开源的跨平台开发框架&#xff0c;主打跨平台、高保真、高性能。开发者可以通过Dart语 言开发Flutter应用&#xff0c;一套代码同时运行在ios和Android平台。不仅如此&#xff0c;Flutter还支持Web、桌面、嵌 入应…

论文阅读——What Can Human Sketches Do for Object Detection?(cvpr2023)

论文&#xff1a;https://openaccess.thecvf.com/content/CVPR2023/papers/Chowdhury_What_Can_Human_Sketches_Do_for_Object_Detection_CVPR_2023_paper.pdf 代码&#xff1a;What Can Human Sketches Do for Object Detection? (pinakinathc.me) 一、 Baseline SBIR Fram…

按键开发环境搭建

雷电模拟器 创建虚拟机 2.设置root权限 打开按键精灵连接虚拟机 开启悬浮 mumu模拟器操作 查找端口方法 adb connect 127.0.0.1:16416 设置-应用-所有应用-按键精灵-开启悬浮 步骤二&#xff1a;开启root 处理未root&#xff1a;中途如果有如下未root的情况&#x…

基于单片机的超声波测距仪

收藏和点赞&#xff0c;您的关注是我创作的动力 文章目录 概要 一、本课题研究的主要内容二、超声波测距仪的整体方案2.2 超声波测距仪设计原理 三、超声波测距仪系统硬件电路的设计3.1 超声波测距仪的基本结构 四、 超声波测距仪系统的软件设计4.1 主程序软件设计仿真 五、结…