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

Linux的基本指令

目录

文件

在Linux下如何查看文件类型呢?

文件acm时间

三种时间戳的定义

Linux的文件结构 

一切皆文件

重定向

ls

 pwd

mkdir

rmdir 

rm

  cd

 touch

whoami

man

 cp

 echo

cat 

tac

mv

history

more

less

head

tail

date         

 find

which

whereis 

 grep

打包压缩

zip/unzip

 rzsz

tar

bc

 关机

其他的热键


首先先阐述一个基本概念

如图,当我们输入一条指令时,ls是命令,而ls后面的-a -l是命令行选项,

命令行选项可以是0个或多个,其中用空格隔开,也可以直接连起来写,并且不分先后顺序,比如

ls -a -l 和 ls -al 的效果是一样的

这个先做了解即可,在后面的章节,我们会详细论述。

文件

文件如果以 . 开头进行命名,那么它就默认被隐藏

如果我们在我们的文件夹中建立了一个.txt类型的文件,但是并不写入内容,即这个文件就是一个空文件,那么这个空文件会在磁盘上占据空间吗?

答案是会, 原因是文件 = 内容+属性,内容为空,但是属性并不为空,仍然需要一定的空间来存储文件的属性,比如文件的名称,大小,类型,修改日期,文件的权限等等

在Linux下如何查看文件类型呢?

在Linux中与windows系统不同,在Windows区分类型是通过文件后缀区分的,如.txt,.tgz,.pdf,.jpg等等,而在Linux中查看文件类型,是通过ls -l,所显示所有信息的第一个字母所表示的

d表示该文件是一个目录

-表示Linux中的普通文件

c表示字符文件,如键盘,显示器,终端文件

b表示块设备文件,如磁盘

l表示链接文件

p表示管道文件

s表示socket文件,这个在网络部分才能见到 

在Linux系统中,系统并不关心文件后缀,但不代表工具(gcc)不关心文件后缀

文件acm时间

在 Linux 系统中,文件的 ACM 时间 指的是文件的三种时间戳属性,分别是 Access Time(访问时间)Change Time(更改时间) 和 Modify Time(修改时间)。这些时间戳记录了文件的状态变化历史,通过 stat 命令或编程语言可以查看。

三种时间戳的定义
缩写全称中文名称记录内容
atimeAccess Time访问时间文件内容被读取(如 catmore 命令)的时间
mtimeModify Time修改时间文件内容被修改(如 echo >vim 编辑)的时间
ctimeChange Time状态改变时间文件元数据(如权限、所有者、inode)变更的时间
Linux的文件结构 

Linux的文件结构,是一颗从/目录开始的一个多叉树

a.叶子节点:一定是普通文件或者空目录

b.非叶子节点:一定是一个非空目录 

Linux访问一个文件,先要找到文件

而找到文件就需要通过文件路径去找

每一条路径具有唯一性,从根目录一直定位到文件的路径称作绝对路径

以非root根目录为起始位置来定位一个文件,称为相对路径

一切皆文件

在Linux系统中,一切皆文件。

重定向

输出重定向 >

如图,我们利用输出重定向 >  将写入到显示器文件的字符串,重定向到了文件中 

> a.如果后续文件不存在,就新建对应文件 

b.先清空,再写入

追加重定向>>

如图 ,就是追加重定向,并不会覆盖文件中的内容,而是向文件追加内容

输入重定向<

 cat 默认是从键盘文件里读取数据,但是我们利用输入重定向,可以让其从文件中读取数据 

ls

ls显示该目录中的文件名,ls -l 显示该目录先文件更多的属性

ls 指令
语法: ls [选项] [目录或文件]
功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信
息。

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

 示例:

除此之外 ls 还可以跟指定目录


 pwd

pwd 命令
语法: pwd
功能:显示用户当前所在的目录

在Windows系统中 以 \ 作为路径分隔符

在Linux系统中 以 / 作为路径分隔符

在Linux中 以最后一个 / 为分割,在/之前的肯定都为目录,而在后一个/之后的,可能是普通文件,也可能是目录


mkdir

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

目录就相当于window系统中的文件夹

在Linux中,任何一个目录,即便是空目录,默认系统都会自带.和..目录

. 表示当前目录

..表示上级目录

/表示根目录

如果想要创建一个目录结构,需要带上 -p 选项,不然无法执行 


rmdir 

rmdir是⼀个与mkdir相对应的命令,mkdir是建立目录,而rmdir是删除命令

语法: rmdir [-p] [dirName]
适用对象:具有当前目录操作权限的所有使用者
功能:删除空目录
常用选项:
• -p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录⼀起删除。

rmdir只能删除空目录 


rm

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

  •  -f 即使文件属性为只读(即写保护),亦直接删除
  •  -i 删除前逐⼀询问确认
  •  -r 删除目录及其下所有文件

  cd

语法: cd 目录名
功能:改变工作目录。将当前工作目录改变到指定的目录下

我们可以看一下cd .和cd ..的作用

 

cd - 命令,-表示最近所处的路径


 touch

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

常用选项

-a 或–time=atime或–time=access或–time=use只更改存取时间。
-c 或–no-create 不建立任何文档。

示例

新建文件

 touch还可以改变文件的access时间,即访问时间,如图所示


whoami

用来显示当前用户是谁


man

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

1 是普通的命令
2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么
头头件)
3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件 

5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
6 是给游戏留的,由各个游戏自己定义
7 是附件还有⼀些变量,比如像environ这种全局变量在这里就有说明
8 是系统管理用的命令,这些命令只能由root使用,如ifconfig

如果不加选项,那么系统会从1-8依次进行查询,直到查到为止


 cp

语法: cp [选项] 源文件或目录 目标文件或目录
功能: 复制文件或目录
说明:
• cp指令用于复制文件或目录
• 如同时指定两个以上的文件或目录,且最后的目的地是⼀个已经存在的目录,则它会把前面指定
的所有文件或目录复制到此目录中

选项

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

如果拷贝目录需要带 -r 选项

cp srcfile/srcdst 目录->会把指定文件,拷贝到指定的目录内部 


 echo

把后续内容当成字符串,打印出来


cat 

语法: cat [选项] [文件]
功能: 查看目标文件的内容
常用选项:
• -b 对非空输出行编号
• -n 对输出的所有行编号
• -s 不输出多行空行

如果只输入 cat 不追加任何指令,可以让cat从键盘里读取数据 

即我们从键盘中输入什么,它就往显示器写入什么

如果cat后跟文件名称,那么他会向显示器写入文件内容

上面两种打印情况,看似结果相同,其实过程还是有所差异的

第一种 是通过输入重定向打印文件内容

第二种 是通过读取命令行参数,打印对应文件内容的 


tac

与cat用法类似,但是是倒着对文件进行打印


mv

mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files,经常用来备份文件或者目录
语法: mv [选项] 源文件或目录 目标文件或目录
功能:
1. 视mv命令中第⼆个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其
移至一个新的目录中。

2. 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有⼀个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。


3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。
常用选项:
• -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
• -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!


history

history可以查看我们之前输入的命令

就和日志一样 


more

语法: more [选项]
功能:more命令,功能类似 cat
常用选项:
• -n 指定输出行数
• q 退出more


less

less 工具也是对文件或其它输出进行分页显示的工具,应该说是 Linux 正统查看文件内容的工具,功能极其强大
・less 的用法比起 more 更加的有弹性,在 more 的时候,我们并没有办法向前翻,只能往后看
・但若使用了 less 时,就可以使用 [PageUp] [PageDown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容
・除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
语法:less [参数] 文件
功能:less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。
选项:
・-i 忽略搜索时的大小写
・-N 显示每行的行号
・/ 字符串:向下搜索 “字符串” 的功能
・? 字符串:向上搜索 “字符串” 的功能
・n:重复前一个搜索(与 / 或?有关)
・N:反向重复前一个搜索(与 / 或?有关)
• q:quit


head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾。

语法: head [参数]... [文件]...

功能: head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。

选项:

• -n<行数> 显示的行数


tail

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

|指管道,我们可以通过 | 将多个命令连接起来


date         

指定格式显示时间:date +%Y:%m:%d
用法:date [OPTION]... [+FORMAT]

在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下:
• %H:小时 (00..23)
• %M:分钟 (00..59)
• %S:秒 (00..61)
• %X:相当于 %H:%M:%S
• %d:日 (01..31)
• %m:月份 (01..12)
• %Y:完整年份 (0000..9999)
• %F:相当于 %Y-%m-%d


cal

cal 指令
cal 命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列历,通称阳历。“阳历” 又名 “太阳历”,系以地球绕太阳一周为一年,为西方各国所通用,故又名 “西历”。

命令格式

cal [参数] [年份]  

功能
用于查看日历等时间信息:

  • 若只有一个参数,表示年份(1-9999),显示该年全年日历。
  • 若有两个参数,表示月份和年份,显示指定月份的日历。
  • 无参数时,默认显示当前月份的日历。

常用选项

  • -3:显示当前月的前一个月、当前月、下一个月的月历。
  • -j:显示日期在当年中的第几天(从 1 月 1 日算起,如 1 月 1 日为第 1 天)。
  • -y:显示当前年份的全年日历。


 find

Linux 下 find 命令在目录结构中搜索文件,并执行指定的操作。
・Linux 下 find 命令提供了相当多的查找条件,功能很强大。由于 find 具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。
・即使系统中含有网络文件系统(NFS),find 命令在该文件系统中同样有效,只要你具有相应的权限。
・在运行一个非常消耗资源的 find 命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指 30G 字节以上的文件系统)。

语法: find pathname -options
功能:用于在文件树中查找文件,并作出相应的处理(可能访问磁盘)

常用选项
• -name 按照文件名查找文件
• 其他选项需要在查,这个命令其实比较复杂


which

功能:搜索系统指定的命令 


whereis 

功能:用于找到程序的源、二进制文件或手册 


 grep

语法: grep [选项] 搜寻字符串文件
功能:在文件中搜索字符串,将找到的行打印出来
常用选项:
• -i :忽略大小写的不同,所以大小写视为相同
• -n :顺便输出行号
• -v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行


打包压缩

是什么?

打包:文件合并

压缩:减少体积

为什么要打包压缩?

打包:防止文件丢失

 压缩:减少体积,节省存储空间,网络传输,可以有效的减少网络传送的时间


zip/unzip

语法: zip 压缩文件.zip 目录或文件

功能:将目录或文件压缩成zip格式

常用选项
• -r:递归处理,将指定目录下的所有文件和子目录⼀并处理

上面我们只是把mydir 进行了压缩,但是里面并没有文件,如果我们想把所有的文件压缩,需要带

-r选项 

解压到指定目录: unzip test.zip -d 指定目录


 rzsz

这个工具用于 Windows 机器和远端的 Linux 机器通过 XShell 传输文件。安装完毕之后可以通过拖拽的方式将文件上传过去。

Linux向win传输文件

win向Linux传输文件


tar

语法: tar [-cxtzjvf] 文件与目录 .... 

tar 选项 *.tgz srcdir

• `-c`:建立一个压缩文件的参数指令(create 的意思);

• `-x`:解开一个压缩文件的参数指令!

• `-t`:查看 tarfile 里面的文件!

• `-z`:是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?

• `-j`:是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?

• `-v`:压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!

• `-f`:使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!

• `-C`:解压到指定目录

压缩

解压


bc

相当于Linux中的计算器
bc命令可以很方便的进行浮点运算


 关机

shutdown [选项]
常见选项:
• -h:将系统的服务停掉后,立即关机。
• -r:在将系统的服务停掉之后就重新启动
• -t sec:-t 后面加秒数,亦即过几秒后关机的意思

但是互联网中的云服务器,是永不关机的,除非维护或者被淘汰


其他的热键

ctrl + c

如果在命令行中,出现了异常情况,统一尝试用ctrl + c来终止异常

[Tab]两下按键---命令补全和档案补齐的功能

ctrl + r 

可以搜索历史的命令

ctrl + d

可以退出当前用户 

http://www.xdnf.cn/news/695629.html

相关文章:

  • vscode 终端 PATH 和python pip 不对
  • CSS (mask)实现服装动态换色:创意与技术的完美融合
  • HIS换代升级辅助脚手架:数据清洗、人员信息标准化、电子病历接口标准化、多模态影像接口标准化
  • 三级联动获取省市区
  • 8种常见数据结构及其特点简介
  • 排查Oracle文件打开数过多
  • JAVA 笔记
  • 【超详细教程】零基础本地部署DeepSeek-Coder-v2 16B!Ollama+GPU加速,100%跑通!
  • CCLINKIE转PROFINET:让执行器“丝滑”入网!
  • 脑机新手指南(一):BCILAB 脑机接口工具箱新手入门指南
  • 从新安全法到隐患判定标准:特种设备证件管理政策全梳理
  • vben-admin 2.8.0 版本修改 axios响应处理逻辑
  • MySQL:零基础入门(狂神版)
  • PyTorch安装Cuda版本选择
  • WMS系统选型与实施避坑手册
  • HarmonyOS 5 应用开发导读:从入门到实践
  • C++STL——map与set的使用
  • “顶点着色器”和“片元着色器”是先处理完所有顶点再统一进入片元阶段,还是一个顶点处理完就去跑它的片元?
  • 上传头像upload的简易方法,转base64调接口的
  • Spring AI 系列之使用 Spring AI 开发模型上下文协议(MCP)
  • maven编译时跳过test过程
  • MYSQL备份恢复知识:第六章:恢复原理
  • pythonocc hlr实例 deepwiki 显示隐藏线
  • Linux 系统入门篇四
  • SPEAR开源程序是用于逼真演示 AI 研究的模拟器
  • 【STM32】按键控制LED 光敏传感器控制蜂鸣器
  • HTTPS加密通信详解及在Spring Boot中的实现
  • 网盘解析工具v1.3.6,增加文件夹解析下载
  • 工业级安卓触控一体机在激光机械中的应用分析
  • 异步上传石墨文件进度条前端展示记录(采用Redis中String数据结构实现)