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

指尖上的魔法:优雅高效的Linux命令手册

一、Linux基础指令

1. ls

ls对于目录,列出该目录下的所有子目录与文件,对于文件,将列出文件名以及其他信息

-a:列出目录下的所有文件,包含以.开头的隐藏文件
-l:列出文件的详细信息
-d:将目录像文件一样显示,而不是显示目录下的文件
-i:输出文件的索引信息

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这些选项也可以混合使用
在这里插入图片描述

2. pwd

pwd显示用户当前所在的目录

在这里插入图片描述

3. cd

在了解cd命令之前,需要对路径有一个初步的认识。

路径:绝对路径、相对路径

/代表根目录

家目录/home/username或~(一般是这样,root用户除外),指定用户登录的时候,默认所处的路径叫做家目录

绝对路径一般从/(根目录)开始,不依赖于其他目录定位文件的方式

相对路径相对于当前用户所处目录位置,定位文件的路径方式

路径存在的意义树状组织方式,为了保证快速定位查找到指定的文件,而定位文件就需要具有唯一性的方案来实现。其中任何一个节点(目录/文件)都只有一个父节点(父目录)并且在同一目录下不能有同名文件,所以,从根目录开始,路径具有唯一性

使用场景:绝对路径一般在配置文件中使用,相对路径在命令行中使用较多

.表示当前目录

..表示上一级目录

cd改变工作目录。将当前工作目录改变到指定目录下

目录名:绝对路径/相对路径
-:直接回退到最近一次所处的目录
~:快速进入家目录

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

跳转至最近一次路径
在这里插入图片描述

4. touch

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

-a:修改access time
-m:修改modify time
-c:修改modify time
文件名:创建文件

不同的系统会有差别,逻辑无法自洽。
access time包括访问文件内容和文件属性
在这里插入图片描述

修改modify time,所以change time也会修改,modify time也属于文件属性,所以access time也会修改
在这里插入图片描述
在这里插入图片描述

5. mkdir

mkdir:在当前目录下创建目录

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

在这里插入图片描述

6. rmdir

rmdir删除空目录

适用对象:具有当前目录操作权限的所有使用者

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7. rm

适用对象:所有使用者

rm删除文件或目录

-f:直接删除
-i:删除前逐一确认
-r:删除目录及其下所有文件

在这里插入图片描述

8. man

man查看手册(就像字典一样)。

用法:man -k 查找内容

简单介绍一下man手册,分为9章:

1.普通命令
2.系统调用
3.库函数
4.特殊文件
5.文件格式

在这里插入图片描述

9. cp

cp复制文件或目录

用法:cp  选项  源文件/目录  目标文件/目录
-f:强制复制文件或目录
-i:覆盖文件之前先询问
-r:递归处理,将指定目录下的文件与目录一并处理

在这里插入图片描述

如果目标文件存在就覆盖
在这里插入图片描述

递归强制拷贝整个目录
在这里插入图片描述

10. mv

mv用来移动文件或者将文件改名,经常用来备份文件或者目录

用法:mv  选项  源文件/目录  目标文件/目录
-f:如果目标文件已存在,不会询问直接覆盖
-i:若目标文件已存在,就会询问是否覆盖

在这里插入图片描述

若存在相同文件,改名即覆盖
在这里插入图片描述
在这里插入图片描述

11. cat

cat:查看目标文件的内容

cat  选项  文件
-b:对非空输出行编号
-n:对输出的所有行编号
-s:不输出多行空行(多行空行压缩成一行空行)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

12. more

more功能类似于cat,查看大文件,只能往下翻,不能往上翻

-n:指定输出行数
q:退出

在这里插入图片描述

13. less

less与more类似,但less可以随意浏览文件,而且less在查看之前不会加载整个文件

-i:忽略搜索时的大小写
-N:显示每行的行号
/关键词:向下搜索
?关键词:向上搜索
n:重复前一个搜索
N:反向重复前一个搜索
q:退出

在这里插入图片描述
在这里插入图片描述

14. head

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

-n:显示的行数

在这里插入图片描述

15. tail

tail用来显示指定文件末尾内容。不指定文件时,作为输入信息进行处理,常用来查看日志文件

-f:循环读取
-n:显示行数

在这里插入图片描述
在这里插入图片描述

16. date

date显示时间

%Y:年份
%m:月份
%d:日期
%H:小时
%M:分钟
%S:秒数
%X:相当于%H:%M:%S
%F:相当于%Y:%m:%d
%s:时间戳

在这里插入图片描述

17. cal

cal用来查看日历等时间信息,如只有一个参数,则表示年份,如有两个参数,则表示月份和年份

-3:显示系统前一个月,当前月,下个月的日历
-j:显示在当年中的第几天(一年日期按天算,从一月一号开始算起,默
认显示当前月在一年中的天数)
-y:显示当前年份的日历

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

18. find

find在文件树中查找文件,并做出相应处理
在这里插入图片描述

查找小于1M的文件
在这里插入图片描述

查找大于1M的文件
在这里插入图片描述

19. which

which搜索系统指定的命令
在这里插入图片描述

20. whereis

whereis用于找到程序的源,二进制文件或手册
在这里插入图片描述

21. alias

alias设置命令的别名
在这里插入图片描述

22. grep

grep在文件中搜索字符串,将找到的行打印出来

-i:忽略大小写的不同
-n:输出行号
-v:反向匹配

在这里插入图片描述

23. top

top查看和管理系统的进程资源占用情况

-d:刷新的时间间隔
-n:刷新的次数
q:退出

24. zip、unzip

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

-r:递归处理,将指定目录下的所有文件和子目录一并处理。

unzip解压
在这里插入图片描述
在这里插入图片描述

25. lsb_release

-a:查看当前操作系统发行版详细信息

在这里插入图片描述

26. rzsz

sz从远程服务器下载文件到本地计算机

用法:sz 文件名

rz从本地计算机上传文件到远程服务器

用法:rz

27. tar

tar打包/解包

-c:建立一个压缩文件
-z:是否同时具有gzip的属性(即是否需要用gzip压缩)
-v:压缩的过程中显示文件
-f:使用档名,f之后要立即接档名,不要再加参数
-x:解开一个压缩文件
-C:解压到指定目录

在这里插入图片描述
在这里插入图片描述

28. bc

bc进行浮点运算
在这里插入图片描述

29. uname

uname获取操作系统和电脑的相关信息

-a:详细输出所有信息。

在这里插入图片描述

二、重要的几个热键

Tab按键具有命令补全和档案补齐的功能
Ctrl+c按键让当前的进程停掉

三、shell命令及运行原理

在这里插入图片描述

命令的本质Linux系统中指定目录下的可执行文件
在这里插入图片描述

举一个简单的例子来理解一下外壳程序和操作系统的关系。

故事:有一个内向的男人小张,他喜欢一个女人如花,但是他并不善于和异性打交道,因此,需要一个媒婆去帮他说媒,所以,媒婆带着小张的需求去询问如花,媒婆说小张不仅条件好,而且长得帅,但是如花说不喜欢小张。于是媒婆带着结果找到了小张,告诉了小张。

在这里插入图片描述
看到这里,大家应该会有些问题。

1.为什么要有外壳?

小张是真心喜欢如花的,所以他还不想就这样放弃,于是让王婆再一次去帮他说媒,但是当王婆走到如花家门口的时候,看到如花家里坐着另一个男人李四,王婆一看到这个情况,连门都没进去直接就回去了,这样就保护了如花和李四的感情。

总结为了保护操作系统

从这里就可以看出,小张虽然不善于和异性打交道,但是和王婆打交道还是可以的。

总结方便用户操作,减少用户使用操作系统的成本

2.外壳是怎么工作的?

王婆一再将小张的要求搞砸了,这样下去会影响王婆的口碑啊,以后谁还敢找王婆说媒呢!于是王婆成立了一个媒婆婚介所,招了一批实习生,让实习生去说媒,这样即使搞砸了也不会影响自己的口碑。

总结shell的子进程去解释执行的

shell是外壳程序的统称,在linux中叫做bash

3.什么是操作系统?为什么要有操作系统?

先给结论操作系统是一款进行软硬件资源管理的软件
在这里插入图片描述

计算机的软硬件体系结构是层状的,最底层往往是硬件,包括鼠标,硬盘,网卡,内存,cpu等各种设备,这些硬件都是需要对应的驱动程序的。举个例子,鼠标在连接计算机时,在一两秒内你去动鼠标可能会没有反应,等一会可能会在计算机右下角显示某某驱动程序已安装好,这个时候你去动鼠标他就会有反应。驱动程序就是用来控制硬件工作的操作系统扮演的角色是管理者,它要进行内存管理,进程管理,文件管理,硬件管理等。操作系统为什么要进行管理呢?比如说,你在玩游戏时,总是动不动就黑屏,卡退,刷抖音时,总是闪退,重启,那么就会造成非常不好的体验,所以,操作系统进行管理就是为了给用户提供一个良好的运行环境。所以为什么要有操作系统呢对下要做好软硬件的管理工作(手段),对上要提供一个良好的运行环境(目的)

如何定义什么是良好的运行环境呢?

1.稳定 2.高效 3.安全

四、Linux权限

在谈Linux权限之前,先来看看Linux中文件类型。

1.文件类型

在windows中,区分文件类型是根据文件名后缀来进行区分的

Linux区分文件类型,是用文件的属性列区分的
在这里插入图片描述
-代表普通文件

d代表目录/文件夹

除此之外。还有许多文件类型。

在这里插入图片描述

软链接
在这里插入图片描述

块设备支持随机读取,以块为单位(磁盘)。
在这里插入图片描述

字符设备不支持随机读取,按照字符为单位(显示器,键盘)。
在这里插入图片描述

管道文件用来实现进程间的通信
在这里插入图片描述

2.Linux用户

任何一款操作系统都叫做多用户操作系统

那么,这些用户也有区分,Linux中用户被分为两类,root(Linux管理员,只能有一个),普通用户(可以有多个)

说到这里了,就不得不说一下,用户登录和切换问题了?

先来看以下几个命令。

adduser username:添加用户,创建家目录
userdel -r username:删除用户,并删除家目录
id username:检查用户是否被删除

在这里插入图片描述

用户切换

root用户切换普通用户,直接切换,不需要密码(root用户拥有操作Linux的最高权限)
在这里插入图片描述

普通用户不能直接切换普通用户(需要密码)
在这里插入图片描述

su username:单纯的进行身份切换,但不会改变家目录

在这里插入图片描述

如果我要做一件提高权限的事情,但是不想变成root,怎么办呢?

sudo指令提权功能,以root身份运行该命令

sudo cp myfile.txt /usr/bin失败了是因为默认新增的用户,无法执行sudo,不受系统信任。那么该怎么办呢?这就相当于你进入了好友的黑名单了,你要在白名单里才可以使用sudo命令。这个时候就要以root身份去将你添加到系统的白名单里(/etc/sudoers)才可以
在这里插入图片描述

将新增的用户添加到白名单里。
在这里插入图片描述

3.权限的理论理解

结论权限 = 人 + 事物属性

举个简单的例子:你想在爱奇艺上写代码,这是不可能的,爱奇艺是用来看电影的,它并不具备写代码的属性。

在linux上,一切皆文件

那么,文件权限 = 用户 + 文件权限属性

文件的权限属性包括r(读),w(写),x(可执行)

文件权限决定的是能不能干这件事情

用下面的一张图来认识一下权限。

在这里插入图片描述
可以看到,文件权限拥有九个字符,而文件权限也就只包含了r(读),w(写),x(可执行),按理来说只需要三个字符就可以了呀,这是为什么呢这是因为系统要对文件权限进行管理,一个文件可能会有很多用户去使用,系统对这些用户进行了管理,分为拥有者,所属组,other。而文件权限被划分为三组,三个为一组,分别代表拥有者,所属组,other。那么在上面的图中,为什么没有显示other组呢?这是因为用户太多了,系统记不全,所以只要是除了拥有者,所属组之外的用户都属于other组的

注:

r(具有读权限) / -(不具有读权限)
w(具有写权限) / -(不具有写权限)
x(具有可执行权限) / -(不具有可执行权限)

拥有者,所属组,other是三种角色,而root , lc等属于具体的人。是由具体的人来扮演角色的。

4.权限的操作实验

文件权限 = 用户 + 文件权限属性。所以,操作实验就是从两个方面来进行论证的。用户或者文件权限属性。

4.1 改变文件权限属性

方法一:

改变拥有者权限
在这里插入图片描述

改变所属组的权限
在这里插入图片描述

改变other的权限
在这里插入图片描述

同时对多人进行修改权限。
在这里插入图片描述
在这里插入图片描述

方法二:

有权限用1来表示,无权限用0来表示,所以也可以用8进制的方式来修改权限
在这里插入图片描述
在这里插入图片描述

普通用户无法进入到root的目录里
在这里插入图片描述

root用户可以进入到普通用户的目录里
在这里插入图片描述

root用户(既不属于拥有者也不属于所属组)只有 r 权限,却可以向test.txt文件里写内容。这是为什么呢?因为root用户可以无视权限的约束
在这里插入图片描述
在这里插入图片描述

即使是拥有者自己,没有相应的权限也不允许执行相应的动作
在这里插入图片描述

看到这里,大家应该会有一个问题。lc既是拥有者也是所属组,虽然拥有者没有相应的权限,但是所属组有权限啊,为什么还是会执行失败呢

这是因为匹配身份的时候只会匹配成功一次,一旦匹配成功,执行失败,也不会再去匹配下一个角色身份了

4.2 改变用户

直接改变拥有者是不被允许的

举个简单的例子:你有一个东西想要给别人,你可以给,但是别人有权利拒绝不要。所以,这种直接切换用户的操作是不被允许的。我们可以使用sudo来进行提权
在这里插入图片描述

文件权限的修改只有root用户和文件拥有者可以修改,其他人不允许。可以使用sudo提权(相当于是以root的身份)来修改
在这里插入图片描述
在这里插入图片描述

更快捷的改变拥有者,所属组。
在这里插入图片描述
以上都是基于普通文件的权限实验。那如果是一个目录呢?

要进入目录,需要什么权限呢?
在这里插入图片描述

结论通过对比可以得出,进入目录需要x权限

那么,r 权限和 w 权限又是影响什么的呢?

在这里插入图片描述

结论是否允许查看指定目录下的文件信息,需要r权限

在这里插入图片描述

结论指定目录下新建文件、删除文件,修改文件名需要w权限

大家此时有没有疑问呢?若是没有的话,我来提几个问题吧!

1.为什么新建一个文件或者目录的时候,缺省的权限,刚好是我们看到的样子

这是因为权限掩码的缘故
在这里插入图片描述
不同的系统,权限掩码默认值可能不一样。

普通文件的起始权限是666,目录的起始权限是777

什么是权限掩码?

权限掩码过滤掉在权限掩码中出现的权限

所以,最终权限 = 起始权限 & (~umask)

如何证明呢?

我们只需要更改一下umask值,查看文件的最终权限是否和我们所预想的一致就可以得到答案了。
在这里插入图片描述

2.为什么普通用户可以删除root用户创建的文件呢?
在这里插入图片描述

文件可以读可以写是取决于文件本身的权限那么普通用户为什么可以删除root用户创建的文件呢这是因为该文件是否可以被删除依赖于所处的目录是否具有w权限
在这里插入图片描述

到了这里,我们就能发现一个现象。root账号,凭什么在我的路径下新建文件

普通用户的家目录,只有root和自己能进入

那如果我想让多个普通账号之间,进行文件或者数据共享呢那就只能放在root账号公共目录下了,因为普通用户之间是无法进入到另一个普通用户的家目录去的,更无法进入到其它路径下
在这里插入图片描述

这种方法可以实现数据共享,但是也会存在互删的情况,避免引起混乱,所以有了粘滞位
在这里插入图片描述

粘滞位只能对目录进行设置,设置了粘滞位的目录,其下的文件只能由1.超级管理员删除 2.该目录的所有者删除 3.该文件的所有者删除

file命令:查看文件更详细的信息

在这里插入图片描述

http://www.dtcms.com/a/269152.html

相关文章:

  • GitHub 趋势日报 (2025年07月06日)
  • PyTorch 详细安装教程及核心API使用指南
  • Chatbox➕知识库➕Mcp = 机器学习私人语音助手
  • 分层Agent
  • turborepo 如何解决git管理包过大的问题
  • 二、Docker安装部署教程
  • 20250707-4-Kubernetes 集群部署、配置和验证-kubeconfig_笔记
  • 人工智能赋能极端气候事件管理:重构风险预警与应急响应体系
  • 汽车功能安全系统阶段开发【技术安全需求TSR】4
  • 多维度数据资产测绘技术在安全管控平台中的应用实践
  • RKAndroid11-系统设置新增开关选项
  • 1. http 有哪些版本,你是用的哪个版本,怎么查看
  • 构建分布式高防架构实现业务零中断
  • 2025最新如何解决VSCode远程连接开发机失败/解决方案大全
  • 提示工程(Prompt Engineering)研究进展
  • Spring Data JPA基本方法调用规律
  • web渗透之指纹识别1
  • Shader面试题100道之(1-20)
  • PX4无人机上的返航操作和参数解读
  • 华为OD机试 2025B卷 - 最长的指定瑕疵度的元音子串 (C++PythonJAVAJSC语言)
  • DCN2:大规模推荐系统中的碰撞权重与显式交叉层协同优化
  • C++ tcp客户端处理重连问题
  • 3S技术+ArcGIS/ENVI全流程实战:水文、气象、灾害、生态、环境及卫生等领域应用
  • 前端工程化速通——①ES6
  • OSPF路由过滤实验案例
  • severb
  • 大模型通用架构图
  • es性能优化
  • 国产ARM+FPGA工业开发平台——GM-3568JHF
  • LeetCode 151. 反转字符串中的单词