【【Linux系统下常用指令学习 之 二 】】

Linux系统下常用指令学习 之 二

文件查询和搜索

文件的查询和搜索也是最常用的操作,在嵌入式 Linux 开发中常常需要在 Linux 源码文件中查询某个文件是否存在,或者搜索哪些文件都调用了某个函数等等。

1、命令 find
find 命令用于在目录结构中查找文件,其命令格式如下:
find [路径] [参数] [关键字]
路径是要查找的目录路径,如果不写的话表示在当前目录下查找,关键字是文件名的一
部分,主要参数如下:
-name 按照文件名称查找,查找与 filename 匹配的文件,可使用通配符。
-depth 从指定目录下的最深层的子目录开始查找。
-gid<群组识别码> 查找符合指定的群组识别码的文件或目录。
-group<群组名称> 查找符合指定的群组名称的文件或目录。
-size<文件大小> 查找符合指定文件大小的文件。
-type<文件类型> 查找符合指定文件类型的文件。
-user<拥有者名称>查找符合指定的拥有者名称的文件或目录。
在这里插入图片描述

我们使用的命令 find / etc / -name vim*
意思是我们现在查找 在 etc文件夹下的 带有 vim开头的 文件

2 . 命令 grep
find 命令 用于 在目录中搜索文件 , 我们有时候需要在文件中搜索一串关键字 , grep 就是完成这个功能的,grep 命令用于查找包含指定关键字的文件,如果发现某个文件的内容包含所指定的关键字,grep 命令就会把包含指定关键字的这一行标记出来
grep [参数] 关键字 文件列表
grep 一次只能查找一个关键字 :

-b 在显示符合关键字的那一列前,标记处该列第 1 个字符的位编号。
-c 计算符合关键字的列数。
-d<进行动作> 当指定要查找的是目录而非文件时,必须使用此参数!否则 grep 指令将
回报信息并停止搜索。
-i 忽略字符大小写。
-v 反转查找,只显示不匹配的行。
-r 在指定目录中递归查找。
例如: 我们在此处使用 grep -ir “ubuntu” /usr
我们分类之后 可以观察到

文件类型
在这里插入图片描述

比如 test1 的第一个字符是“d”,test1.tar.bz2 文件第一个字符是“-”。这些字符表示的
文件类型如下:

  • 普通文件,一些应用程序创建的,比如文档、图片、音乐等等。
    d 目录文件。
    c 字符设备文件,Linux 驱动里面的字符设备驱动,比如串口设备,音频设备等。
    b 块设备文件,存储设备驱动,比如硬盘,U 盘等。
    l 符号连接文件,相当于 Windwos 下的快捷方式。
    s 套接字文件。
    p 管道文件,主要指 FIFO 文件。

权限管理 :
Ubuntu 是一个多用户系统,我们可以给不同的使用者创建不同的用户账号,每个用户使
用各自的账号登陆,使用用户账号的目的一是方便系统管理员管理,控制不同用户对系统的
访问权限,另一方面是为用户提供安全性保护。
装系统的时候创建的用户其权限比后面创建的用户大一点,但是没有 root 用户权限大,
Ubuntu 下用户类型分为以下 3 类:
● 初次创建的用户,此用户可以完成比普通用户更多的功能。
● root 用户,系统管理员,系统中的玉皇大帝,拥有至高无上的权利。
● 普通用户,安装完操作系统以后被创建的用户。
在这里插入图片描述

。Ubuntu 下我们会常跟用户权限打交道,权限就是用户对于系
统资源的使用限制情况,root 用户拥有最大的权限,可以为所欲为,装系统的时候创建的用
户拥有 root 用户的部分权限,其它普通用户的权限最低。对于我们做嵌入式开发的人一般不
关注用户的权限问题,因为嵌入式基本是单用户,做嵌入式开发重点关注的是文件的权限问
题。
对于一个文件通常有三种权限:读®、写(w)和执行(x),
在这里插入图片描述

我们 举个 例子
-rw-rw-r-- 1 zuozhongkai zuozhongkai 0 12 月 25 20:44 test.c
这句话 来自于 正点原子 借用一下
我们会发现 其中 -rw-rw-r-- 标示着 文件权限与 用户 用户组之间的关系
第一位的“-” 小短横 - 表示文件类型 剩下的9位 以3位 为1组
即 我们可以分割 - rw- rw- r–
分别表示文件拥有者的权限,文件拥有者所在用
户组的权限 以及其它用户权限
后面 还有两个 数据 例如 这里的 zuozhongkai zuozhongkai
表示着 代表文件拥有者(用
户) 和 该用户所在的用户组
第一个小短横 “-” 表示 文件类型是 普通文件
接下来是 我们 看出文件的拥有者是 zuozhongkai,其对文件 tesst.c 的权限是“rw-”,也就是对该文件拥有读和写两种权限。
下面的是用户 zuozhongkai 所在的用户组也叫做 zuozhongkai,其组内用户对于文件 test.c 的权限是“rw-”,也是拥有读和写这两种权限。
最后一个 r-- 表示 其它用户对于文件 test.c 的权限是“r–”,也就是只读权限。
对于文件,可读权限表示可以打开查看文件内容,可写权限表示可以对文件进行修改,可执行权限就是可以运行此文件(如果是软件的话)。对于文件夹,拥有可读权限才可以使用命令 ls 查看文件夹中的内容,拥有可执行权限才能进入到文件夹内部。如果某个用户对某个文件不具有相应的权限的话就不能进行相应的操作,比如根目录“/”下的文件只有 root 用户才有权限进行修改,如果以普通用户去修改的话就会提示没有权限。

文件的权限有三种 : 读(r) 写(w) 执行(x)
我们也可以使用二进制数表示,三种权限就可以使用 3 位二进制数来表示,一种权限对应一个二进制位,如果该位为 1 就表示具备此权限,如果该位为 0 就表示没不具备此权限,如下表所示:
在这里插入图片描述
在这里插入图片描述

另外我们也开始使用 a、u、g 和 o 表示文件的归属关系,用=、+和-表示文件权限的变化,如下表所示:
在这里插入图片描述

对于文件 test.c,我们想要修改其归属用户(zuozhongkai)对其拥有可执行权限,那么就可以使用:u+x。如果希望设置归属用户及其所在的用户组都对其拥有可执行权限就可以使用:gu+x。
u 是归属用户 + 添加某权限 x 可执行权限 u+x
g归属组 u 归属用户 + 添加某种属性 x 可执行权限 gu+x

我们可以使用另外的 权限管理命令
chmod chown
在这里插入图片描述

我们可以通过数字的方法 修改权限
在这里插入图片描述

我们可以通过递归修改整个文件夹中文件的权限
在这里插入图片描述

我们使用的指令是 chmod -R 777 test11
-R 表示递归 处理 test11 下所有文件夹的 权限

文件归属者修改命令 chown
命令 chown 用来修改某个文件或者目录的归属者用户或者用户组,命令格式如下:
chown [参数] [用户名.<组名>] [文件名/目录]
其中[用户名.<组名>]表示要将文件或者目录改为哪一个用户或者用户组,用户名和组名
用“.”隔开,其中用户名和组名中的任何一个都可以省略,命令主要参数如下:
-c 效果同-v 类似,但仅回显更改的部分。
-f 不显示错误信息。
-h 只对符号连接的文件做修改,不改动其它任何相关的文件。
-R 递归处理,将指定的目录下的所有文件和子目录一起处理。
-v 显示处理过程。

chown
在这里插入图片描述

Linux 磁盘管理
Linux 的磁盘管理体系和 Windows 有很大的区别,在 Windows 下经常会遇到“分区”这个概念,在 Linux 中一般不叫“分区”而叫“挂载点”。 “挂载点”就是将一个硬盘的一部分做成文件夹的形式,这个文件夹的名字就是“挂载点”,不管在哪个发行版的 Linux 中,用户是绝对看到不到 C 盘、D 盘这样的概念的,只能看到以文件夹形式存在的“挂载点”.
在这里插入图片描述

有四个磁盘设备文件,其中 sd 表示是 SATA硬盘或者其它外部设备,最后面的数字表示该硬盘上的第 n 个分区,比如/dev/sda1 就表示磁盘 sda 上的第一个分区。图 2.8.2中都是以/dev/sda 开头的,说明当前只有一个硬盘。如果再插上 U 盘、SD 卡啥的就可能会出现/dev/sdb,/dev/sdc等等。

磁盘管理命令
1.磁盘分区命令 fdisk
如果要对某个磁盘进行分区,可以使用命令 fdisk,命令格如下:fdisk [参数]主要参数如下:-b<分区大小> 指定每个分区的大小。-l 列出指定设备的分区表。-s<分区编号> 将指定的分区大小输出到标准的输出上,单位为块。-u 搭配“-l”参数,会用分区数目取代柱面数目,来表示每个分区的起始地址。
p 显示现有的分区
n 建立新分区
t 更改分区类型
d 删除现有的分区
a 更改分区启动标志
w 对分区的更改写入到硬盘或者存储器中。
q 不保存退出。
由于我的 U 盘里面还有一些重要的文件,所以现在不能进行分区,所以就不演示 fdisk 的
分区操作了,后面我们讲解裸机例程的时候需要将可执行的 bin 文件烧写到 SD 卡中,烧写到
SD 卡之前需要对 SD 卡进行分区,到时候再详细讲解如何使用 fdisk 命令对磁盘进行分区。
2、格式化命令 mkfs
使用命令 fdisk 创建好一个分区以后,我们需要对其格式化,也就是在这个分区上创建一
个文件系统,Linux 下的格式化命令为 mkfs,命令格式如下:
mkfs [参数] [-t 文件系统类型] [分区名称]
主要参数如下:
fs 指定建立文件系统时的参数
-V 显示版本信息和简要的使用方法。
-v 显示版本信息和详细的使用方法。
比如我们要格式化 U 盘的分区/dev/sdb1 为 FAT 格式,那么就可以使用如下命令:
mkfs –t vfat /dev/sdb1
3、挂载分区命令 mount
我们创建好分区并且格式化以后肯定是要使用硬盘或者 U 盘的,那么如何访问磁盘呢?
比如我的 U 盘就一个分区,为/dev/sdb1,如果直接打开文件/dev/sdb1 会发现根本就不是我们
要的结果。我们需要将/dev/sdb1 这个分区挂载到一个文件夹中,然后通过这个文件访问 U 盘,
磁盘挂载命令为 mount,命令格式如下:
mount [参数] -t [类型] [设备名称] [目的文件夹]
命令主要参数有:
-V 显示程序版本。
-h 显示辅助信息。
-v 显示执行过程详细信息。
-o ro 只读模式挂载。
-o rw 读写模式挂载。
-s-r 等于-o ro。
-w 等于-o rw。
挂载点是一个文件夹,因此在挂载之前先要创建一个文件夹,一般我们把挂载点放到
“/mnt”目录下,在“/mnt”下创建一个 tmp 文件夹,然后将 U 盘的/dev/sdb1 分区挂载到
/mnt/tmp 文件夹里面,
4、卸载命令 umount
当我们不在需要访问已经挂载的 U 盘,可以通过 umount 将其从卸载点卸除,命令格式如
下:
umount [参数] -t [文件系统类型] [设备名称]
-a 卸载/etc/mtab 中的所有文件系统。
-h 显示帮助。
-n 卸载时不要将信息存入到/etc/mtab 文件中
-r 如果无法成功卸载,则尝试以只读的方式重新挂载。
-t <文件系统类型> 仅卸载选项中指定的文件系统。
-v 显示执行过程。

/ 上述磁盘分区 并未认真学习 仅仅是复制粘贴

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

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

相关文章

BUUCTF [ACTF新生赛2020]outguess 1

BUUCTF:https://buuoj.cn/challenges 题目描述&#xff1a; 得到的 flag 请包上 flag{} 提交。 密文&#xff1a; 下载附件&#xff0c;得到一堆文件。 解题思路&#xff1a; 1、根据题目和flag.txt文件提示&#xff0c;猜测为outguess隐写。 outguess下载安装 kail 终端命…

数字乡村:科技赋能农村产业升级

数字乡村&#xff1a;科技赋能农村产业升级 数字乡村是指通过信息技术和数字化手段&#xff0c;推动农业现代化、农村经济发展和农民增收的一种新模式。近年来&#xff0c;随着互联网技术的飞速发展&#xff0c;数字乡村开始在全国范围内迅速兴起&#xff0c;为乡村经济注入了新…

leedcode 刷题 - 除自身以外数组的乘积 - 和为 K 的子数组

I238. 除自身以外数组的乘积 - 力扣&#xff08;LeetCode&#xff09; 给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在…

AdaBoost提升分类器性能

目录 AdaBoost算法原理 AdaBoost工作详情 初始权重分配 第一轮 第二轮 后续轮次 最终模型 AdaBoost的API解释 AdaBoost 对房价进行预测 AdaBoost 与决策树模型的比较 结论 AdaBoost算法原理 在数据挖掘中&#xff0c;分类算法可以说是核心算法&#xff0c;其中 Ada…

gitee推荐-PHP面试准备的资料

该内容为giee项目。PHP-Interview: 这个项目是自己准备PHP面试整理的资料。包括PHP、MySQL、Linux、计算机网络等资料。方便自己以后查阅&#xff0c;会不定期更新&#xff0c;欢迎提交pr&#xff0c;如果错误&#xff0c;请指出&#xff0c;谢谢 在线预览地址&#xff1a;Intr…

【LeetCode刷题笔记】DFSBFS(三)

图的基础知识 邻接矩阵是一个二维表,其中横纵坐标交叉的格子值为 1 的表示这两个顶点是连通的,否则是不连通的。

NVM得介绍和详细使用教程

NVM​​​​​​​&#xff08;Node Version Manager&#xff09;是一个用于管理多个Node.js版本的工具。它允许您在同一台计算机上轻松地切换和管理不同的Node.js版本。以下是NVM的介绍和详细使用教程&#xff1a; 安装NVM&#xff1a; 首先&#xff0c;您需要在计算机上安装N…

C#串口通信从入门到精通(27)——高速通信下解决数据处理慢的问题(20ms以内)

前言 我们在开发串口通信程序时,有时候会遇到比如单片机或者传感器发送的数据速度特别快,比如10ms、20ms发送一次,并且每次发送的数据量还比较大,如果按照常规的写法,我们会发现接收的数据还没处理完,新的数据又发送过来了,这就会导致处理数据滞后,软件始终处理的不是…

python树的双亲存储结构

这种存储结构是一种顺序存储结构&#xff0c;采用元素形如“[结点值&#xff0c;双亲结点索引]”的列表表示。通常每个结点有唯一的索引(或者伪地址&#xff09;,根结点的索引为0&#xff0c;它没有双亲结点&#xff0c;其双亲结点的索引为-1。例如&#xff0c;所示的树对应的双…

123. 股票买卖的最佳时机III(2次交易)

题目 题解 class Solution:def maxProfit(self, prices: List[int]) -> int:N len(prices)# 状态定义 dp[i][j][k]代表在第i天&#xff0c;被允许完成j次交易时&#xff0c;持有或者不持有的最大利润。k0代表不持有&#xff0c;k1代表持有dp [[[0 for k in range(2)] for…

医学生秋招攻略,面试时一定要注意这些方面!

医学生别拖了&#xff0c;今年秋招已经过去一波热度了&#xff0c;赶早不赶晚&#xff01;在筹备第二轮秋招以及明年的春招的医学生一定要注意以下事项。 1.清晰目标 搜集秋招讯息 一定要早点多做准备&#xff0c;想清楚未来的目标&#xff0c;是继续深造还是就业做医生或者是…

【开源】基于Vue.js的用户画像活动推荐系统

项目编号&#xff1a; S 061 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S061&#xff0c;文末获取源码。} 项目编号&#xff1a;S061&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 兴趣标签模块2.3 活…

[Android]使用Git将项目提交到GitHub

如果你的Mac还没有安装Git&#xff0c;你可以通过Homebrew来安装它&#xff1a; brew install git 方式一&#xff1a;终端管理 1.创建本地Git仓库 在项目的根目录下&#xff0c;打开终端&#xff08;Terminal&#xff09;并执行以下命令来初始化一个新的Git仓库&#xff1…

vue3-组件传参及计算属性

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;Vue篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来vue篇专栏内容:vue3-组件传参及计算属性 目录 vue3中的组件传参 1、父传子 2、子传父 toRef 与 toRefs vue3中…

实例讲解:在3dMax中如何使用python脚本?

如果你是Python或Maxscript的新手&#xff0c;你现在可以跟着这篇文章开始做一些代码了&#xff0c;本文将让我们从非常基本的东西开始学习。 如何在3dmax中获取选定的节点并打印出它们的名称&#xff1f;所有场景对象如何&#xff1f;我们直接看代码&#xff1a; import MaxP…

Word/PPT/PDF怎么免费转为JPG图片?

1、打开金鸣表格文字识别网站。 2、点击导航条上的“软件下载” 3、安装并打开金鸣表格文字识别软件。 4、点击顶部导航栏的“文件转图片”。 5、选择需要转换成图片的文件&#xff08;支持Word/PPT/PDF&#xff09;. 6、点“打开”程序将自动分页转换为图片。

【论文阅读笔记】Smil: Multimodal learning with severely missing modality

Ma M, Ren J, Zhao L, et al. Smil: Multimodal learning with severely missing modality[C]//Proceedings of the AAAI Conference on Artificial Intelligence. 2021, 35(3): 2302-2310.[开源] 本文的核心思想是探讨和解决多模态学习中的一个重要问题&#xff1a;在训练和测…

JS中的OOP

JS中的OOP OOP 为我们解决了什么问题&#xff1f;想象一下&#xff0c;我们希望为教师提供一个平台&#xff0c;每位注册的教师都可以提交分数&#xff0c;并为课程分配作业和其他内容。 如果有一个地方&#xff08;在本例中是一个对象&#xff09;&#xff0c;可以访问所有教…

Python编写的爬虫为什么受欢迎?

每每回想起我当初学习python爬虫的经历&#xff0c;当初遇到的各种困难险阻至今都历历在目。即便当初道阻且长&#xff0c;穷且益坚&#xff0c;我也从来没有想过要放弃。今天我将以我个人经历&#xff0c;和大家聊一聊有关Python语音编写的爬虫的事情。谈一谈为什么最近几年py…

多线程,线程池,线程的创建,线程池的参数

文章目录 多线程-1 高并发〇、使用多线程的场景1. 为什么使用多线程 1. 线程概述1.1 线程和进程1.2 并发和并行1.3 多线程的优势1.4 程序运行原理1.5 主线程 1.6 线程的 6 种状态2. 线程的创建和启动2.1 Thread类2.2创建线程有哪几种方法2.2.1 继承**Thread**类&#xff0c;重写…