Linux初启征程指南:攻克常见系统指令与权限初理解

news2024/12/29 8:25:22

有时候觉得,电脑就像一个高贵冷艳的妹纸。

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 +【选项】 +【源文件或目录 目标文件或目录】 

cp命令如果同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录, 则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。
mv 命令是 move 的缩写,可以用来移动文件或者将文件改名( move (rename) files ),是 Linux 系统下常用的命令,经常用来备份文件或者目录。
具体用法是: mv + 【选项】 +【源文件或目录】+【 目标文件或目录】
注意:
1. mv 命令中第二个参数类型的不同(是目标文件还是目标目录), mv 命令将文件重命名或将其移至一个新的目录中。
2. 当第二个参数类型是文件时, mv 命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个, mv 命令将各参数指定的源文件均移至目标目录中。
将text.c拷贝到test目录内:

 

我们首先先将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指令

head  用来显示档案的开头至标准输出中,默认 head 命令打印其相应文件的开头 10 行。 
用法为: head+【选项...】+【文件...】
而tail 命令从指定点开始将文件写到标准输出,用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。使用 tail 命令的 -f 选项可以方便的查阅正在改变的日志文件 ,tail -f filename会把 filename 里最尾部的内容显示在屏幕上 , 并且不但刷新 , 使你看到最新的文件内容 .
用法为 tail + 【必要选项】+【可选选项】+【文件】    

11、find指令

find在日常使用中非常重要,用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)。

Linux下的find1命令提供了相当多的查找条件,功能十分强大。由于find的功能强大性,所以自然它的选项也就十分多,但绝大部分选项都值得我们去学习记忆。

    即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。
在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系 统可能会花费很长的时间(这里是指30G字节以上的文件系统)。    

用法为:find +【文件】+【选项】

12、grep命令

grep命令主要用于在文本文件或命令输出中搜索特定的字符串或正则表达式,并显示匹配的行。

用法为:grep +【选项】+【搜索字符串】+【文件名】

13、zip与unzip指令

zip目的是将目录或文件压缩成zip格式,而unzip就是将压缩文件解压。

用法:zip +【压缩后的文件名.zip】+【目标文件与目标文件夹】

 

14、tar指令

tai指令是用于创建、解压缩和管理归档文件的工具。

用法:tar +【选项】 +【归档文件名】+【文件或目录】

Linux系统中的权限初识: 

Linux 下有两种用户:超级用户( root )、普通用户。
超级用户:可以再linux系统下做任何事情,不受限制
普通用户:在linux下做有限的事情。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$
于是我们可以使用su +用户名字的方法切换用户,但是对于root用户来说,可以直接切换,但普通用户切换为root就需要输入对应的root密码。
在Linux下,文件访问者一共有三种:
1、文件的拥有者
2、文件拥有者所在的小组(group)
3、其他成员
对于一个文件来说,我们可以用ll来查看他的详细信息:

我们可以看见,在每个目录或者文件前面十格要么是-,要么是字母,这十格位置的字母究竟有什么含义呢?

事实上,第一个字母表示文件的类型,比如,d就表示目录,-就表示为普通文件。

另外九个分为三组,三三为一组,分别表示为:拥有者权限,拥有者所属组权限,陌生人权限。

文件权限使用三个字母来表示:rwx。每个字母对应不同的权限:

  • r (read) - 读取权限:允许查看文件内容或列出目录内容。
  • w (write) - 写入权限:允许修改文件内容或在目录中创建、删除、重命名文件。
  • x (execute) - 执行权限:允许将文件作为程序执行或进入目录。

对于文件来说,r权限代表能不能看见内容,w代表能不能改写,x是个别可执行程序你是否拥有执行他的权限。

  • r (读取)

    • 作用:允许用户查看文件的内容。
    • 示例:如果一个文本文件具有读取权限,用户可以使用 catlessmore 等命令查看其内容。
  • w (写入)

    • 作用:允许用户修改文件的内容。
    • 示例:如果一个文件具有写入权限,用户可以编辑文件、追加内容或删除内容。例如,使用 nanovi 编辑器来修改文件内容。
  • x (执行)

    • 作用:允许用户将文件作为程序执行。
    • 示例:如果一个文件具有执行权限,并且是一个脚本或可执行文件,用户可以通过命令行运行它,例如 ./script.sh./program

而对于目录就不同了:

  • r (读取)

    • 作用:允许用户列出目录中的文件和子目录。
    • 示例:如果一个目录具有读取权限,用户可以使用 ls 命令查看目录中的文件和子目录。
  • w (写入)

    • 作用:允许用户在目录中创建、删除和重命名文件和子目录。
    • 示例:如果一个目录具有写入权限,用户可以使用 touch 创建新文件,使用 rm 删除文件,或使用 mv 重命名文件。
  • x (执行)

    • 作用:允许用户进入目录并访问其中的文件和子目录(即改变工作目录到这个目录)。
    • 示例:如果一个目录具有执行权限,用户可以使用 cd 命令进入该目录,并访问目录中的文件(假设还有适当的读取权限),并且在该目录中用各种指令。

 我们通常可以用八进制来代表rwx三种权限,r为4,w为2,r为1:

在Linux中,我们有多种方法更改一个文件的对应访问者的对应权限。:

chmod:

功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
常用选项:
R -> 递归修改目录文件的权限
(说明:只有文件的拥有者和root才可以改变文件的权限)

例如,我们可以使用chmod g+w +【对应文件】来修改group的权限。 

 或者,也可以实用之前说到的八进制数字代表相应的权限。

假设你想为某个文件或目录设置以下权限:

  • 用户(User)拥有 rwx 权限(7)。
  • 组(Group)拥有 rx 权限(5)。
  • 其他用户(Others)拥有 r-- 权限(4)。

这些权限的八进制表示法是 754

chown

功能 :修改文件的拥有者
格式 chown [ 参数 ] 用户名 文件名

chgrp

功能 :修改文件或目录的所属组
格式 chgrp [ 参数 ] 用户组名 文件名
常用选项 -R 递归修改文件或目录的所属组

 掩码:

在Linux系统中,掩码umask)用于设置默认的文件和目录权限。当用户创建新的文件或目录时,系统会根据当前的掩码值来决定这些文件或目录的默认权限。

掩码的工作原理

假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask,例如普通用户掩码为0002,创建文件的最终权限就为775,为了方便记忆,我们可以理解为777减去掩码的数。

我们可以用umask查看掩码或者修改掩码。

粘滞位:

由上文目录的权限可知,只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限.

这好像不太科学啊, 我创建的一个文件, 凭什么被你删掉?

为此,就诞生了粘滞位;

粘滞位(Sticky Bit)是Linux文件系统中的一种特殊权限位,通常用于目录,主要目的是控制用户对该目录下文件的删除权限。

粘滞位的作用

粘滞位通常用于公共目录(如 /tmp),其作用是:即使用户对目录有写权限,用户也只能删除或重命名自己拥有的文件,不能删除或重命名其他用户的文件。

粘滞位的使用场景

  • 公共目录:在诸如 /tmp 这样的公共目录中,多个用户可以创建文件。粘滞位确保用户只能删除或修改自己的文件,避免误操作或恶意删除其他用户的文件。

设置粘滞位

粘滞位可以通过 chmod 命令设置,方式有两种:符号方式和八进制方式。

1、chmod +t   +【目标文件】

2、chmod 1755 +【目标文件】(1就代表加了粘滞位)

当一个目录被设置为 " 粘滞位 "( chmod +t), 则该目录下的文件只能由
一、超级管理员删除
二、该目录的所有者删除
三、该文件的所有者删除

总结:

在Linux系统中,掌握常用指令和文件权限管理是每个程序员不可或缺的技能。这些指令不仅帮助我们在没有图形界面的环境中灵活操作文件和目录,还确保了系统的安全性与稳定性。

通过lspwdcd等基础指令,我们可以快速浏览目录内容、确认当前位置以及切换工作目录;利用touchmkdirrmdirrm等指令,轻松实现文件和目录的创建与删除操作;借助cpmv,我们能完成文件和目录的复制与移动,而catmoreless则提供了多样化的文件内容查看方式。

在权限管理方面,chmodchownchgrp等命令为我们提供了灵活的方式来调整文件和目录的访问权限,确保系统内的资源被合理使用。同时,理解和应用粘滞位(Sticky Bit)与掩码(umask)有助于我们更精细地控制目录和文件的访问和操作行为。

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

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

相关文章

Mysql-窗口函数二

文章目录 1. 前百分之N的问题 排名 row_number1.1 需求1.2 准备工作1.3 分析1.4 实现 2. 前百分之N的问题 ntile2.1 介绍2.2 语法2.2.1 示例2.2.2 结果示例2.2.3 注意事项 2.3 需求2.4 分析2.5 实现 3. 前百分之N的问题 百分比 PERCENT_RANK3.1 语法3.1.1 示例3.1.2 注意事项 3…

函数的练习

1.判断一个数是否为素数 代码如下&#xff1a; #include <stdio.h> int jum(int num) {int i 0;for (i 2;i < num;i){if (num % i 0){return 0;break;}}return 1; }void Jum1(int (*pf)(int)) {int num 0;printf("请输入操作数&#xff1a;");scanf_s…

声压、声强、响度之间的区别与联系

声压、声强、响度是声学中描述声音特性的重要概念&#xff0c;它们之间有一定的关系&#xff0c;但分别反映了不同的物理或感知特性。 1、声压&#xff08;Sound Pressure&#xff09; 声压是声波传播时在介质中引起的压力波动&#xff0c;通常以帕斯卡&#xff08;Pa&#x…

Windows电脑下载安装Kodcloud可道云结合内网穿透秒变私有网盘

文章目录 1.前言2. Kodcloud网站搭建2.1. Kodcloud下载和安装2.2 Kodcloud网页测试 3. cpolar内网穿透的安装和注册4. 本地网页发布4.1 Cpolar云端设置4.2 Cpolar本地设置 5. 公网访问测试6.结语 1.前言 本文主要为大家介绍一款国人自研的在线Web文件管理器可道云&#xff0c;…

苹果手机数据被抹除还能恢复吗?这两个方法强烈推荐

苹果手机数据被抹除还能恢复吗&#xff1f;我们在使用苹果手机时&#xff0c;有时由于误操作、系统故障或升级失败等原因&#xff0c;导致手机照片、备忘录、视频、联系人等数据被意外抹除。 面对这类情况&#xff0c;我们应该怎么办&#xff1f;下面牛小编给大家的分享2个方法…

CH07_数据绑定

第7章&#xff1a;数据绑定 本章目标 理解路由事件 掌握键盘输入事件 掌握鼠标输入事件 掌握多点触控输入事件 数据绑定概述 什么是数据绑定 ​ 将WPF中的至少一个带有依赖项属性的两个对象的两个属性进行绑定&#xff0c;使某一个依赖项属性可以更新和它绑定的属性的功…

奥尔特曼在X上发了颗“草莓” 网友疯狂猜测:这难道是GPT新模型?

ChatGPT开发商OpenAI的首席执行官山姆奥尔特曼&#xff08;Sam Altman&#xff09;在社交媒体X上发布了一张花园里自种草莓的照片后&#xff0c;引发了众多网友的热议&#xff0c;是否新的GPT模型即将上线&#xff1f; 周三&#xff08;8月7日&#xff09;&#xff0c;奥尔特曼…

海量数据处理商用短链接生成器平台 - 8

第十八章 短链服务-分库分表多维度查询解决方案《钻石玩法》 第1集 短链服务-短链URL跳转302跳转接口开发实战 简介&#xff1a; 短链URL 跳转302跳转接口开发实战 需求 接收一个短链码解析获取原始地址302进行跳转 编码实战 Controller Slf4j public class LinkApiControl…

搭建时空基底,建设“数字之城”

在这个日新月异的时代&#xff0c;数字技术正以前所未有的速度重塑我们的世界。今天&#xff0c;让我们一同深入探讨如何通过搭建时空基底&#xff0c;为“数字之城”的建设奠定坚实基础。 一、时空基底&#xff1a;数字之城的骨骼与脉络 所谓“时空基底”&#xff0c;是指结…

【vulnhub】DC-6靶机

靶机安装 下载地址&#xff1a;https://download.vulnhub.com/dc/DC-6.zip 运行靶机&#xff1a;VMware 信息收集 靶机扫描 nmap 192.168.93.0/24 端口扫描,根据80端口的信息&#xff0c;发现我们并不能直接访问靶机的web页面&#xff0c;和/wordy相关 nmap -A 192.168.9…

本地部署MySQL图形化管理工具phpMyAdmin结合内网穿透远程访问

文章目录 前言1. 安装MySQL2. 安装phpMyAdmin3. 修改User表4. 本地测试连接MySQL5. 安装cpolar内网穿透6. 配置MySQL公网访问地址7. 配置MySQL固定公网地址8. 配置phpMyAdmin公网地址9. 配置phpmyadmin固定公网地址 前言 本文主要介绍如何在群晖NAS安装MySQL与数据库管理软件p…

C++虚函数表、地址详解(x86/x64)

参考博文&#xff1a;c虚函数表、地址详解-CSDN博客 本文在上述博文的基础上&#xff0c;补充了x64下的验证代码。 一.什么是虚函数表&#xff0c;它有什么特点&#xff1f; 虚函数大家都知道是基本用于实现多态的&#xff0c;当父类指针指向子类对象的时候&#xff0c;如何确…

国自然即将放榜,还没消息是不是就凉了?

本周投稿推荐 SCI&EI • 医学与心理学&#xff0c;纯正刊&#xff08;基本不拒稿&#xff09; • 1区计算机水刊&#xff0c;3.5-4.0&#xff08;1个月录用&#xff09; • 2区-Top水刊&#xff0c;2.0-3.0&#xff08;沾边可录&#xff09; EI • 各领域沾边均可&am…

超分辨率重建——冠军队EDVR视频超分网络训练自己数据集与推理测试(详细图文教程)

&#x1f4aa; 专业从事且热爱图像处理&#xff0c;图像处理专栏更新如下&#x1f447;&#xff1a; &#x1f4dd;《图像去噪》 &#x1f4dd;《超分辨率重建》 &#x1f4dd;《语义分割》 &#x1f4dd;《风格迁移》 &#x1f4dd;《目标检测》 &#x1f4dd;《暗光增强》 &a…

LeetCode刷题笔记第17题:电话号码的字母组合

LeetCode刷题笔记第17题&#xff1a;电话号码的字母组合 题目&#xff1a; 想法&#xff1a; 先构建手机号码的字典&#xff0c;利用回溯的思想&#xff0c;组合数字对应的字母&#xff0c;代码如下&#xff1a; class Solution:def letterCombinations(self, digits: str) …

Animate软件基本概念:元件(影片剪辑、图形、按钮)

这一篇是说明Animate软件中常见的几种元件类型的定义。 FlashASer&#xff1a;AdobeAnimate2021软件零基础入门教程https://zhuanlan.zhihu.com/p/633230084 FlashASer&#xff1a;实用的各种Adobe Animate软件教程https://zhuanlan.zhihu.com/p/675680471 FlashASer&#x…

数据结构:栈与队列OJ题

目录 前言 一、用栈实现队列 二、用队列实现栈 三、括号匹配问题 前言 前面讲了栈和队列的基础知识&#xff0c;今天来巩固一下加深理解&#xff0c;这里说明一下&#xff0c;因为现在都是在用C语言写&#xff0c;这些OJ题里都要用到前面实现栈和队列的代码&#xff0c;每道题…

Java 自定义注解 笔记总结(油管)

Java系列文章目录 IDEA使用指南 Java泛型总结&#xff08;快速上手详解&#xff09; Java Lambda表达式总结&#xff08;快速上手详解&#xff09; Java Optional容器总结&#xff08;快速上手图解&#xff09; Java 自定义注解笔记总结&#xff08;油管&#xff09; Jav…

AI时代,我们还可以做什么?

最近看了本书&#xff0c;书名叫做《拐点&#xff1a;站在 AI 颠覆世界的前夜》&#xff0c;作者是万维钢。 本想着看完后&#xff0c;就能掌握一整套 AI 技巧&#xff0c;结果——竟然学了很多道理。 这本书讨论了以下话题&#xff1a; 我们该怎么理解这个 AI 大时代的哲学&am…

思迈特发布全新AI应用,Smartbi AIChat白泽来了

8月8日&#xff0c;Smartbi AIChat白泽新品发布会在云端与大家如期美好相约&#xff0c;共同见证思迈特软件基于AI Agent的新一代智能BI应用落地的全新里程碑时刻。 思迈特软件创始人吴华夫和产品总监杨礼显先后围绕商业智能行业发展趋势、产品demo show、技术原理及未来规划展…