当前位置: 首页 > news >正文

Linux基本指令(上)

一.Linux下基本指令

01. ls 指令

语法: ls [选项][目录或文件]
功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
拓展知识:
1.一个文件的数据分为2部分,内容加属性。内容指的是我们写入的文件的数据,属性在指文件的大小,时间,类型等。一个空文件夹也是占磁盘空间的,即使什么也没有但文件的属性也是要占空间.
2.linux中以.开头的文件是隐藏文件,正常颜色为普通文件,蓝色开头的为目录。
3.linux中ls-l等价于ll,其他与-l搭配的复合结构也能简写,如ls - a -l 可以简写为ll- a

-a 列出目录下的所有文件,包括以 . 开头的隐含文件。
-d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录。
-i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件。
-k 以 k 字节的形式表示文件的大小。ls –alk 指定文件。
-l 列出文件的详细信息。
-n 用数字的 UID,GID 代替名称。
-r 对目录反向排序。
-t 以时间排序。
-s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
-R 列出所有子目录下的文件。(递归)
-1 一行只输出一个文件。

通过ls,ls -l, ll指令:ls指令只显示出了文件的名称,ls - l显示出了每个文件的详细信息,ls -l等价于ll。
在这里插入图片描述
ls -al:通过运行指令ls -al出现了以.开头的文件,ls -al相比于ll能够显示出隐藏文件。
在这里插入图片描述
创建一个以.开头的文件,ll并没有显示该文件的详细信息,而ls -al显示出了隐藏文件。
在这里插入图片描述
-r 对目录反向排序,-R 列出所有子目录下的文件。(递归)。
在这里插入图片描述

2. pwd命令

语法: pwd
功能:显示用户当前所在的目录
常用选项:无
在这里插入图片描述
显示当前我在root账户下的ydx_linux目录下。

3. cd 指令

在Linux系统中:

  • 目录树结构:整个文件系统以根目录( / )为起点,呈现出一种类似树状的层次结构。就像真实世界中的树,有一个主干(根目录),然后从主干延伸出树枝(各级子目录),树枝上还可以再有更小的树枝,并且在树枝和主干上都可以有树叶(文件)。

  • 目录节点:

  • 目录是一种特殊的文件,它里面可以包含其他的目录和文件。比如 /home 目录,它是根目录下的一个子目录,在 /home 目录下又可以有多个用户的主目录,像 /home/user1 、 /home/user2 等,这些用户主目录又可以包含各自的文件和子目录。

  • 目录可以嵌套多层,例如 /var/log/httpd , /var 是根目录下的一个主要目录, /var/log 是 /var 下的子目录, /var/log/httpd 则是 /var/log 下的更下一层目录。这种多层嵌套的目录结构可以对文件进行分类和组织,方便管理和查找。

  • 文件节点:文件位于目录树的叶子节点位置或者是各级目录内。文件可以是文本文件(如 .txt 、 .c 、 .html 等)、可执行文件、配置文件(如 .conf )、图像文件、压缩文件等各种类型。每个文件都有其特定的属性,包括文件所有者、所属组、权限(读、写、执行)等信息。这些属性决定了谁可以对文件进行何种操作。例如,一个用户可能对自己的文件有读、写和执行权限,但其他用户可能只有读权限或者没有任何权限。这种基于目录树的文件和目录组织方式使得Linux系统在文件管理上具有高度的灵活性和可扩展性。

  • 在这里插入图片描述

cd … : 返回上级目录
cd /home/litao/linux/ : 绝对路径
cd …/day02/ : 相对路径
cd ~:进入用户家目
cd -:返回最近访问目录

绝对路径和相对路径:
我们要标识一个文件有2种方式:绝对路径和相对路径,绝对路径就是从根目录下开始一级一级往下找,比如要查找上图bit文件,用绝对路径可以写为:
/home/bit。要查找lib可以写为/user/lib。相对路径就是从当前位置开始,一级一级往下找,找到为止。假如现在我在test.c文件夹下,想要查找home文件,那么相对路径(相对于text.c文件home文件的位置)(linux中.号除了代表影藏文件,还可以代表当前路径,…代表上级路径): …/bit/home/。相对路径便捷但不安全,绝对路径繁琐但安全。

在这里插入图片描述

04. touch指令

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

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

拓展知识:文件的时间有三种

  • 最近访问时间(Access):cat,less等查看文件后时间改变。
    最近更改的时间(Modify):使用nano/vim等编译器修改文件内容后,三个时间改变。
    最近改动时间(Change):chomod修改文件权限或者属性后,时间改变。

2.stat可以显示文件或者文件状态
在这里插入图片描述
3.touch只能创建普通文件,不能创建目录。
在这里插入图片描述

为了验证touch只能创建文件,前面提过,**蓝色开头为目录,普通颜色开头为文件。**text3为普通颜色,所以为普通文件。
在这里插入图片描述

05.mkdir指令(重要)

语法:mkdir [选项] dirname…
功能:在当前目录下创建一个名为 “dirname”的目录

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

不加-p选项一次只能创建一个目录。
在这里插入图片描述
加目录可以一次创建多个目录,递归创建。
在这里插入图片描述

06.rmdir指令 && rm 指令(重要)

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

常用选项:

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

要删除的目录为空时rmdir可以直接删除目录
在这里插入图片描述
要删除的目录不为空时rmdir不能删除
在这里插入图片描述

7.rm

常用选项:

  • -f不进行直接删除文件,即使文件属性为只读
  • -r删除目录及以下文件(递归删除)。
  • -r 删除前逐一询问

趣味小知识:
程序员通常有个梗删库跑路。在Linux系统中, rm 命令用于删除文件或目录。 rm 命令如果使用不当,可能会造成灾难性的后果。比如执行 rm -rf / (在有足够权限的情况下),这是一条非常危险的命令, -r 表示递归删除(用于删除目录及其内容), -f 表示强制删除(不提示确认), / 是根目录,这条命令会删除整个文件系统,也就是所谓的“删库”。
“删库跑了”描述的是一种因错误使用 rm 命令(或类似的具有破坏力的操作)导致数据丢失,相关责任人害怕承担后果而逃离的情景,这个梗常用来调侃因操作失误或恶意行为而破坏重要数据的情况。所以在公司很少用rm。
rm不加任何选项默认只能删除文件,不能删除目录
在这里插入图片描述
不带选项删除目录会报Is a directory错误,删除文件时不报错。
在这里插入图片描述

删除目录带-r选项可以递归多文件删除
在这里插入图片描述

08.man指令(重要

Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是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

1、man 指令需要安装后才能使用,安装命令是 “yum install -y man-pages”,且此命名只能由 root 用户来安装或者使用 sudo;
2、man 如果不指定具体章节就会默认从一号手册开始找,直到找到才停下;如果指定了章节,就只会在该章节里面去找;
3、由于Linux是用C语言实现的,所以man中默认包含了C语言的函数手册;如果要查看其他语言,如C++/java/python则需要先在Linux中安装,不过这里建议直接到对应语言的官网中去查找;
4、man 手册有汉化版的,不过目前只能汉化一号手册;但是我们作为一个程序员,应该具备基本的阅读英语文档的能力,所以我不建议大家去汉化,而是从现在开始慢慢去养成阅读英语文档的习惯
5、大家使用 man 指令进行对应文档后,按 q 键即可退出文档。

man的使用:
man查看指令怎么用:
可以通过man查看ls怎么用,ls更多的说明
在这里插入图片描述
在这里插入图片描述
man查看pwd
在这里插入图片描述
在这里插入图片描述
man man指令问一下man怎么用
在这里插入图片描述
在这里插入图片描述

  • man 1 查基本命令
  • man 2查系统调用接口
    -man 3 c语言

查printf:

在这里插入图片描述

在这里插入图片描述
这里的printf和c语言的printf没有任何关系,这里的printf是指令,我们要看的是c语言的printfc语言在3号手册,所以是man 3 printf.
在这里插入图片描述

在这里插入图片描述

9.echo重定向

echo “str” > text 把"str"写入文件内容,重定向。
echo "str>> text " 追加重定向

通过重定向把hello写入text文件,cat显示文件的内容

在这里插入图片描述
但如果一直重定向多次输入,每次输入会先把文件清空在输入写入内容,text文件只显示最后一次输入的结果
在这里插入图片描述
每次想要不清空用追加重定向:>>
在这里插入图片描述

09.cp指令(重要)

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

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

cp复制的文件不存在时会创建新的文件
在这里插入图片描述
复制的时候文件内容也会被复制到新文件中
在这里插入图片描述
复制目录的时候要带-r选项,不带报错
在这里插入图片描述
在这里插入图片描述

10mv指令(重要)

mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。
语法: mv [选项] 源文件或目录 目标文件或目录
功能:

  1. 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。
  2. 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
  3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。

1、根据 mv 指令中第二个参数类型的不同(是目标文件还是目标目录),mv 指令会将文件重命名或将其移至一个新的目录中;
text1重命名为text4在这里插入图片描述

在这里插入图片描述

总结:当mv的目标地址和剪切文件地址在同一目录下是重命名,如果是不同目录下就是剪切。

11.cat

语法:cat [选项][文件]
功能: 查看目标文件的内容
常用选项

-b 对非空输出行编号
-n 对输出的所有行编号

为了方便观察,我们用shell生成一段1w行内容的文本,脚本指令如下

cnt=0; while [ $cnt -le 10000 ] ; do echo "hello linux [$cnt]"; let cnt++; done > test.txt![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/d121ade164ed4b3b9345f8adce0d9893.png)

cat显示文件内容
在这里插入图片描述
在这里插入图片描述

12.head指令

head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾。
语法: head [参数]… [文件]…
功能:
head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。

-n<行数> 显示的行数

上面test.txt创建了1w行代码,如果一条一条显示太麻烦,有时候想显示前20条,那么可以用head -20指令显示前20条,同理想显示前30条可以写head -30.
在这里插入图片描述

13.tail指令

tail 命令从指定点开始将文件写到标准输出。使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容。
语法: tail[必要参数][选择参数][文件]
功能: 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
选项:

-f 循环读取
-n<行数> 显示行数

在这里插入图片描述

二.管道

如果我想看1000到1020的数据那么怎么用head和tail实现呢?
可以先把前1020行的数据保存在一个新的文件夹中,然后在用tail -20 看新文件夹倒数第20行之后的数据。也就是1000到1020的数据。
在这里插入图片描述

在这里插入图片描述
但是这样有创建了新的文件夹开辟了新的空间,有没有不创建新文件夹的办法,能读到1000到1020的数据。
在我们日常生活中存在许多管道,比如天然气管道、煤气管道、石油管道,它们都有一个共同的作用 – 运输资源;而对于计算机来说,数据就是资源,所以Linux中的管道就是用于传输数据的一种手段,它分为入口和出口。\n\n我们知道,head 和 tail 都是从文件中读取数据,然后输出到终端;在下面的程序中,head 和 tail 被管道连接,所以 head 从文件中读取的数据会直接流入管道中,然后 tail 从管道中读取数据,然后输出到终端上。
管道之间可以配合使用,就像工厂中的流水线一样,一个产品可以经过不同的管道加工,然后被输出出来;比如我们可以多使用几个管道来达到逆序输出test.txt中中间部分的三行数据的效果

在这里插入图片描述


http://www.mrgr.cn/news/59642.html

相关文章:

  • NVR批量管理软件/平台EasyNVR多个NVR同时管理:H.265与H.264编码优势和差异深度剖析
  • Web组态软件
  • 【正点原子K210连载】第四十八章 自学习分类实验 摘自【正点原子】DNK210使用指南-CanMV版指南
  • Android Framework定制sim卡插入解锁pin码的界面
  • linux:MSI 与 MSI-X
  • 泛型的特点
  • 66AI论文:一键速写形势与政策论文,课程作业论文写作好助手
  • 查看数据库
  • leetcode hot100【LeetCode 199. 二叉树的右视图】java实现
  • 分享几个可以免费使用GPT的网站
  • 《欢乐饭米粒儿》持续热播:第四期小品笑中有思,引发观众共鸣
  • 基于Spring Boot的中小型医院网站的设计与实现源码(springboot)
  • 计算机组成原理之寻址方式、寻址方式中哪种最常用、寻址方式中哪种效率最高
  • 通过 SYSENTER/SYSEXIT指令来学习系统调用
  • XQT_UI 组件|01|颜色
  • 知识见闻 - Gearbest电商平台
  • 144. 二叉树的前序遍历 递归
  • 双子塔楼宇可视化系统:提升建筑管理与运营效率
  • 必读篇:阿里云应用与低功耗4G模组AT开发示例指南
  • 【Unity踩坑】UWP应用未通过Windows应用认证:API不支持
  • 使用Claude新功能分析数据文件
  • 图像识别的技术原理及方法
  • 【后勤&运输集装箱】集装箱损伤检测系统源码&数据集全套:改进yolo11-ODConv
  • 【时间之外】IT人求职和创业应知【18】
  • Linux:编辑器Vim和Makefile
  • 掘金量化支持哪些操作系统与位数?