Linux初启征程指南:攻克常见系统指令与权限初理解
有时候觉得,电脑就像一个高贵冷艳的妹纸。
400,是她冷冰冰地说:“我听不懂你在说什么”;
401,是她无情地转身:“我不认识你,别说那些奇怪的话”;
403,是她残酷的拒绝:“我听懂你的话,也认出你的脸,可我不爱你”;
404,是她紧闭心门:“我这儿没有你想要的东西”;
503,是“呵呵我去洗澡”。
前言:
Linux是一个基于UNIX的开源操作系统,其核心(Kernel)是由Linus Torvalds在1991年首次发布的。它的设计初衷是为个人计算机提供一个免费的、开源的操作系统,但由于其强大的性能和安全性,如今被广泛应用于服务器、超级计算机、嵌入式系统等多个领域。
因此对于我们这群程序员来说,学好Linux也自然是不可避免的事情。(糟糕,头发不保了!!!)下面就斗胆让作者我来给大家介绍一下Linux系统的常用指令啦。
注意,以下指令的演示都是通过Xshell,CentOS 7.6 64bit版本进行。
常用指令:
1、ls指令
对于目录来说,ls的作用是列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
具体的使用方法是:ls + 【选项】+【目录或者文件】
当没有指定目录或者文件时,ls默认列出当前路径下的所有文件与目录

如图,当我们没有添加额外选项,没有指定目录与文件,就会罗列当前路径的目录与文件信息,倘若指定了112目录,就会罗列112目录下的文件与目录。
选项是看情况选择是否添加,这会对ls指令添加修改部分效果,例如ls -l,就可以详细的罗列出文件的信息。
由于ls -l指令真的太常用了,所以后面衍生除了简化形式:ll,我们只需要输入ll,就可以做到与ls -l相同的效果。
2、pwd指令
在Linux系统上,我们经常会分辨不清楚自己到了哪个目录,这个时候,就需要pwd来帮助我们了。
我们只需要输出pwd指令,系统就会打印出我们当前所在的路径信息。
3、cd指令
在Windows上我们想要进入一个文件夹,只需要鼠标点击就行了,但是在Linux上却没有鼠标来给你点击,这时候就需要用到cd指令了,语法:cd +【目录名字】,就可以让我们直接进入这个目录。

可以看见,在使用cd之后,我们的路径已经更改到了112里面。
4、touch与mkdir指令
touch指令通常用来创建一个新的文件,在有些时候,也能通过touch来可更改文档或目录的日期时间,包括存取时间和更改时间。使用方法为:touch +【选项】... 文件...。
而 mkdir通常是用来创建一个目录,在选项中使用-p时甚至可以递归建立多个目录。
例如:mkdir –p test/test1,当此目录不存在test时,会主动创建一个test目录,随后在test里面再次创建一个test1目录。
5、rmdir与rm指令
rmdir是一个与mkdir相对应的命令,可以删除一个空目录(为该命令发出者所拥有)。而rm可以同时删除一个文件或者目录,具体用法是:rm +【-f-i-r-v】+【文件或者目录名】。

6、cp与mv指令
创建与删除已经学到了,那么复制剪切自然也不能落下。而cp指令就是我们在linux实现复制的关键。语法为:cp +【选项】 +【源文件或目录 目标文件或目录】
我们首先先将test中的text.c删除:

随后返回上级目录并将text.c移动到test里:
7、cat指令
cat指令可跟猫没有任何关系,他的作用是查看目标文件的内容:
用法:cat+【选项】+【目标文件】


8、more指令
more的作用与cat类似,用法也差不多,所以在这里就不多赘述。
9、less指令
先前介绍了两个输出文件内容的指令,但实际上less才应该是linux正统的输出工具,他的功能极其强大。less 的用法比起 more 更加的有弹性。
在 more 的时候,我们并没有办法向前面翻, 只能往后面看但若使用了 less 时,就可以使用 [pageup][pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!
除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
用法:less+【选项】+【文件】
10、head与tail指令
11、find指令
find在日常使用中非常重要,用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)。
Linux下的find1命令提供了相当多的查找条件,功能十分强大。由于find的功能强大性,所以自然它的选项也就十分多,但绝大部分选项都值得我们去学习记忆。
用法为:find +【文件】+【选项】

12、grep命令
grep命令主要用于在文本文件或命令输出中搜索特定的字符串或正则表达式,并显示匹配的行。
用法为:grep +【选项】+【搜索字符串】+【文件名】


13、zip与unzip指令
zip目的是将目录或文件压缩成zip格式,而unzip就是将压缩文件解压。
用法:zip +【压缩后的文件名.zip】+【目标文件与目标文件夹】
14、tar指令
tai指令是用于创建、解压缩和管理归档文件的工具。
用法:tar +【选项】 +【归档文件名】+【文件或目录】

Linux系统中的权限初识:
我们可以看见,在每个目录或者文件前面十格要么是-,要么是字母,这十格位置的字母究竟有什么含义呢?
事实上,第一个字母表示文件的类型,比如,d就表示目录,-就表示为普通文件。

另外九个分为三组,三三为一组,分别表示为:拥有者权限,拥有者所属组权限,陌生人权限。
文件权限使用三个字母来表示:r、w、x。每个字母对应不同的权限:
r(read) - 读取权限:允许查看文件内容或列出目录内容。w(write) - 写入权限:允许修改文件内容或在目录中创建、删除、重命名文件。x(execute) - 执行权限:允许将文件作为程序执行或进入目录。
对于文件来说,r权限代表能不能看见内容,w代表能不能改写,x是个别可执行程序你是否拥有执行他的权限。
-
r(读取):- 作用:允许用户查看文件的内容。
- 示例:如果一个文本文件具有读取权限,用户可以使用
cat、less或more等命令查看其内容。
-
w(写入):- 作用:允许用户修改文件的内容。
- 示例:如果一个文件具有写入权限,用户可以编辑文件、追加内容或删除内容。例如,使用
nano或vi编辑器来修改文件内容。
-
x(执行):- 作用:允许用户将文件作为程序执行。
- 示例:如果一个文件具有执行权限,并且是一个脚本或可执行文件,用户可以通过命令行运行它,例如
./script.sh或./program。
而对于目录就不同了:
-
r(读取):- 作用:允许用户列出目录中的文件和子目录。
- 示例:如果一个目录具有读取权限,用户可以使用
ls命令查看目录中的文件和子目录。
-
w(写入):- 作用:允许用户在目录中创建、删除和重命名文件和子目录。
- 示例:如果一个目录具有写入权限,用户可以使用
touch创建新文件,使用rm删除文件,或使用mv重命名文件。
-
x(执行):- 作用:允许用户进入目录并访问其中的文件和子目录(即改变工作目录到这个目录)。
- 示例:如果一个目录具有执行权限,用户可以使用
cd命令进入该目录,并访问目录中的文件(假设还有适当的读取权限),并且在该目录中用各种指令。
我们通常可以用八进制来代表rwx三种权限,r为4,w为2,r为1:

在Linux中,我们有多种方法更改一个文件的对应访问者的对应权限。:
chmod:
例如,我们可以使用chmod g+w +【对应文件】来修改group的权限。
或者,也可以实用之前说到的八进制数字代表相应的权限。
假设你想为某个文件或目录设置以下权限:
- 用户(User)拥有
rwx权限(7)。 - 组(Group)拥有
rx权限(5)。 - 其他用户(Others)拥有
r--权限(4)。
这些权限的八进制表示法是 754。
chown
chgrp
掩码:
在Linux系统中,掩码(umask)用于设置默认的文件和目录权限。当用户创建新的文件或目录时,系统会根据当前的掩码值来决定这些文件或目录的默认权限。
掩码的工作原理
假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask,例如普通用户掩码为0002,创建文件的最终权限就为775,为了方便记忆,我们可以理解为777减去掩码的数。
我们可以用umask查看掩码或者修改掩码。
粘滞位:
由上文目录的权限可知,只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限.
这好像不太科学啊, 我创建的一个文件, 凭什么被你删掉?
为此,就诞生了粘滞位;
粘滞位(Sticky Bit)是Linux文件系统中的一种特殊权限位,通常用于目录,主要目的是控制用户对该目录下文件的删除权限。
粘滞位的作用
粘滞位通常用于公共目录(如 /tmp),其作用是:即使用户对目录有写权限,用户也只能删除或重命名自己拥有的文件,不能删除或重命名其他用户的文件。
粘滞位的使用场景
- 公共目录:在诸如
/tmp这样的公共目录中,多个用户可以创建文件。粘滞位确保用户只能删除或修改自己的文件,避免误操作或恶意删除其他用户的文件。
设置粘滞位
粘滞位可以通过 chmod 命令设置,方式有两种:符号方式和八进制方式。
1、chmod +t +【目标文件】
2、chmod 1755 +【目标文件】(1就代表加了粘滞位)
总结:
在Linux系统中,掌握常用指令和文件权限管理是每个程序员不可或缺的技能。这些指令不仅帮助我们在没有图形界面的环境中灵活操作文件和目录,还确保了系统的安全性与稳定性。
通过ls、pwd、cd等基础指令,我们可以快速浏览目录内容、确认当前位置以及切换工作目录;利用touch、mkdir、rmdir、rm等指令,轻松实现文件和目录的创建与删除操作;借助cp、mv,我们能完成文件和目录的复制与移动,而cat、more、less则提供了多样化的文件内容查看方式。
在权限管理方面,chmod、chown和chgrp等命令为我们提供了灵活的方式来调整文件和目录的访问权限,确保系统内的资源被合理使用。同时,理解和应用粘滞位(Sticky Bit)与掩码(umask)有助于我们更精细地控制目录和文件的访问和操作行为。
相关文章:
Linux初启征程指南:攻克常见系统指令与权限初理解
有时候觉得,电脑就像一个高贵冷艳的妹纸。 400,是她冷冰冰地说:“我听不懂你在说什么”; 401,是她无情地转身:“我不认识你,别说那些奇怪的话”; 403,是她残酷的拒绝&…...
第十九节、野猪受伤死亡逻辑动画
一、协程 在这个代码中,update更新非常快,不会有时间去addforce增加力 所以需要使用协程,同时开启 1、写法 WaitForSeconds(0.45f) 意思是等待时间0.45秒后 写完协程程序后,需要开启 ,固定写法如下 2、注意 dir是局…...
vue 开发工具 Hbuilder 简介及应用
一、简介 HBuilderX 是一款流行的前端开发工具,由DCloud公司开发。它支持多种编程语言,如HTML、CSS、JavaScript、Vue、UniApp等,非常适合用来开发Web应用、移动端应用和跨平台应用。 官网地址:https://www.dcloud.io/hbuilderx.…...
【杂谈】-MQTT与HTTP在物联网中的比较:为什么MQTT是更好的选择
MQTT与HTTP在物联网中的比较:为什么MQTT是更好的选择 文章目录 MQTT与HTTP在物联网中的比较:为什么MQTT是更好的选择1、什么是MQTT2、什么是HTTP3、MQTT和HTTP之间的差异 MQTT(消息队列遥测传输)和HTTP(超文本传输协议…...
冠豪猪优化算法(CPO)、卷积神经网络(CNN)与支持向量机(SVM)结合的预测模型(CPO-CNN-SVM)及其Python和MATLAB实现
### 一、背景 在现代数据挖掘和机器学习领域,特征选择与模型优化是两个重要的研究方向。随着深度学习的发展,卷积神经网络(CNN)在图像、视频等多媒体数据处理中的表现优异。然而,传统的CNN模型通常需要大量的标注数据和…...
【通信原理】
通信原理 二、频谱与随机信号2.1 频谱2.1.1 频谱or频谱密度函数2.1.2 幅度谱(幅频特性)or相位谱(相频特性) 2.2 能量信号2.2.1 什么是能量信号2.2.2 巴塞瓦尔定理2.2.3 维纳钦辛定理 2.3 功率信号2.3.1 功率信号2.3.2 巴塞瓦尔定理…...
有序数组的平方(LeetCode)
题目 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 解题 以下算法时间复杂度为 def sortedSquares(nums):n len(nums)result [0] * n # 创建一个结果数组,长度与 nums 相同le…...
Python配置镜像
1. 查看当前源 pip config get global.index-url 2. 临时变更源 pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple 3. 永久变更源 清华(推荐速度最快) pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple 百…...
Python新手错误集锦(PyCharm)
# 自学Python,用Pycharm作环境。我这个手新到这时我学习的第一个编程软件,且本人专业是化学,以前对电脑最高级的使用是玩扫雷游戏。所以这里集合的错误都是小透明错误,大部分人请绕道。不断更新中...... 缩进错误 记住“indent”…...
CTFHUB-web-RCE-php://input
开启题目 网页显示源代码,判断如果参数以 php:// 开头,那么执行 include 函数将参数值作为文件包含进来。否则,输出字符串 Hacker 。 点击下面的 phpinfo 跳转之后发现了一个 php 版本页面 使用 file 查看 php://input, 感觉这个…...
Python网络爬虫核心面试题
网络爬虫 1. 爬虫项目中如何处理请求失败的问题?2. 解释HTTP协议中的持久连接和非持久连接。3. 什么是HTTP的持久化Cookie和会话Cookie?4. 如何在爬虫项目中检测并处理网络抖动和丢包?5. 在爬虫项目中,如何使用HEAD请求提高效率&a…...
DSL domain specific language of Kola
How we design Kola - ApiHugKola background, Kola a consumer driver tester frameworkhttps://apihug.com/zhCN-docs/kola/003_dsl_contract Concept 在 Kola 定位中 Kola 是什么, 是致力于提供一个让相关各方都能够理解共同创造的测试框架和工具。 同时 Kola 是建立于业界…...
【RISC-V设计-05】- RISC-V处理器设计K0A之GPR
【RISC-V设计-05】- RISC-V处理器设计K0A之GPR 文章目录 【RISC-V设计-05】- RISC-V处理器设计K0A之GPR1.简介2.设计顶层3.内部结构4.端口说明5.设计代码6.总结 1.简介 通用寄存器(General Purpose Register)是处理器设计中的重要组成部分,在…...
Linux/C 高级——shell脚本
1. shell脚本基础概念 1.1概念 shell使用方式:手动下命令和脚本 脚本本质是一个文件,文件里面存放的是特定格式的指令,系统可以使用脚本解析器翻译或解析指令并执行(它不需要编译)。 shell脚本本质:shell命…...
SpringBoot面试题整理(1)
面试整理 前置知识 ApplicationContextInitializerApplicationListenerBeanFactoryBeanDefinitionBeanFactoryPostProcessorAwareInitializingBean/DisposableBeanBeanPostProcessor 面试题 SpringBoot启动流程IOC容器初始化流程Bean声明周期Bean循环依赖SpringMVC执行流程…...
LVS原理及实例
目录 LVS原理 LVS概念 lvs集群的类型 lvs-nat 解释 传输过程 lvs-dr 解释 传输过程 特点 lvs-tun LVS(Linux Virtual Server)常见的调度算法 防火墙标记(Firewall Marking)结合轮询调度 实战案例 lvs的nat模式配置 …...
Spring统一功能处理:拦截器、响应与异常的统一管理
目录 一.拦截器 二.统一数据返回格式 三.统一异常处理 一.拦截器 拦截器是Spring框架提供的核⼼功能之⼀,主要⽤来拦截⽤⼾的请求,在指定⽅法前后,根据业务需要执⾏预先设定的代码。 也就是说,允许开发⼈员提前预定义⼀些逻辑…...
深入理解小程序的渲染机制与性能优化策略
一、小程序的渲染机制 小程序的渲染机制主要由两部分组成:渲染层和逻辑层。渲染层负责页面的渲染,逻辑层负责处理业务逻辑和数据处理。两者通过一个安全的、高效的通信机制进行数据传输和事件通知。 渲染层:在渲染层,WXML 模板会…...
Linux:多线程(二.理解pthread_t、线程互斥与同步、基于阻塞队列的生产消费模型)
上次讲解了多线程第一部分:Linux:多线程(一.Linux线程概念、线程控制——创建、等待、退出、分离,封装一下线程) 文章目录 1.理解Linux下线程——理解tid2. Linux线程互斥2.1相关概念2.2引入问题分析问题解决思路 2.3L…...
Pandas中`str`对象解析与应用实例
在数据科学领域,字符串操作是数据清洗和处理中不可或缺的一部分。Pandas的str对象为我们提供了一个强大而灵活的字符串操作方法集。本文将深入探讨str对象的各种应用,并通过代码示例和输出展示如何有效地处理字符串数据。 关键词 Pandas, 字符串操作, …...
铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...
大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...
ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...
九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...
