嵌入式之ubuntu终端操作与shell常用命令详解

news2024/10/1 12:28:10

目录

文件和目录列表

基本列表功能

 显示列表长度

 过滤输出列表

 浏览文件系统

Linux 文件系统

遍历目录

 处理文件

创建文件

 复制文件

制表键自动补全

重命名文件

 删除文件

 处理目录

创建目录

 删除目录

​编辑其他常用命令与操作

Uname命令

 clear命令

 返回上一级命令

 显示网络配置信息命令ifconfig

 重启系统和关机

man命令

 find 命令

 grep命令

 du 命令

df命令

 gedit命令

 当前系统进程命令 ps

进程实时任务命令 top

 查看文件类型 file

文件和目录列表

        想要知道系统中哪些文件,可以使用列表命令(ls)。

基本列表功能

      (1)ls命令最基本的形式会显示当前目录下的文件和目录,ls命令输出的列表是按字母排序的(按列排序而不是按行排序)

       (2)ls -F命令,在目录名后边加了正斜号(/),以方便用户在输出中分辨出他们。

      (3)ls -a命令,把隐藏文件和普通文件及目录一起显示出来,所有的以.开头的隐藏文件都显示出来了。

       (4)ls -F -R命令,-R参数是ls命令可用的另一个参数,叫做递归选项。它列出了当前目录下包含的子目录中的文件。如果目录很多,这个输出就会很长。

 显示列表长度

         在基本的输出列表中,ls命令并未输出太多每个文件的相关信息。要显示附加信息,另一个常用的参数是-l。-l参数会产生列表格式的输出,包含了目录中每个文件的更多相关信息。

        这种长列表格式的输出在每一行中列出了单个文件或目录。除了文件名,输出中还有其他有用的信息。输出的第一行显示了在目录中包含的总块数。在此之后,每一行都包含了关于文件(或
目录)的下述信息:文件类型,比如目录(d)、文件(-)、字符型文件(c)或块设备(b);文件的权限;文件的硬链接总数;文件属主的用户名;文件属组的组名;文件的大小(以字节为单位);文件的上次修改时间;文件名或目录名。

 过滤输出列表

         这个过滤器就是一个进行简单文本匹配的字符串。可以在要用的命令行参数之后添加这个过
滤器:ls -l 音乐。

          当用户指定特定文件的名称作为过滤器时,ls命令只会显示该文件的信息。有时你可能不知
道要找的那个文件的确切名称。ls命令能够识别标准通配符,并在过滤器中用它们进行模式匹配:问号(?)代表一个字符;星号(*)代表零个或多个字符。

         在过滤器中使用星号和问号被称为文件扩展匹配(file globbing),指的是使用通配符进行模
式匹配的过程。通配符正式的名称叫作元字符通配符(metacharacter wildcards)。除了星号和问
号之外,还有更多的元字符通配符可用于文件扩展匹配。可以使用中括号。ls -l y[a-y]m。同时可以使用感叹号(!)将不需要的内容排除在外。ls -l y[!u]m。

 浏览文件系统

         当登录系统并获得shell命令提示符后,你通常位于自己的主目录中。此时我们需要了解Linux文件系统,为下一步作铺垫。

Linux 文件系统

         Linux在路径名中不使用驱动器盘符。在Windows中,PC上安装的物理驱动器决定了文件的路径名。Windows会为每个物理磁盘驱动器分配一个盘符,每个驱动器都会有自己的目录结构,以便访问存储其中的文件。举个例子,在Windows中经常看到这样的文件路径:

c:\Users\Rich\Documents\test.doc

         这种Windows文件路径表明了文件test.doc究竟位于哪个磁盘分区中。如果你将test.doc保存在闪存上,该闪存由J来标识,那么文件的路径就是J:\test.doc。该路径表明文件位于J盘的根目录下。

        Linux则采用了一种不同的方式。Linux将文件存储在单个目录结构中,这个目录被称为虚拟
目录(virtual directory)。虚拟目录将安装在PC上的所有存储设备的文件路径纳入单个目录结构中。Linux虚拟目录结构只包含一个称为根(root)目录的基础目录。根目录下的目录和文件会按
照访问它们的目录路径一一列出,这点跟Windows类似。

        窍门:Linux使用正斜线(/)而不是反斜线(\)在文件路径中划分目录。在Linux中,反斜线用来标识转义字符,要是用在文件路径中的话会导致各种各样的问题。在Linux中,你会看到下面这种路径:

/home/Rich/Documents/test.doc

         这表明文件test.doc位于Documents目录,Documents又位于rich目录中,rich则在home目录中。要注意的是,路径本身并没有提供任何有关文件究竟存放在哪个物理磁盘上的信息。Linux虚拟目录中比较复杂的部分是它如何协调管理各个存储设备。在Linux PC上安装的第一块硬盘称为根驱动器。根驱动器包含了虚拟目录的核心,其他目录都是从那里开始构建的。Linux会在根驱动器上创建一些特别的目录,我们称之为挂载点(mount point)。挂载点是虚拟目录中用于分配额外存储设备的目录。虚拟目录会让文件和目录出现在这些挂载点目录中,然而实际上它们却存储在另外一个驱动器中。通常系统文件会存储在根驱动器中,而用户文件则存储在另一驱动器中。

遍历目录

        在Linux文件系统上,可以使用切换目录命令cd将shell会话切换到另一个目录。进入linux根目录,cd /,$前边代表当前的路径。如下图可知,我们已经进入根目录。并且用ls查看目录下的信息。pwd命令,可以查看当前所在目录的路径。

 处理文件

        shell提供了很多在Linux文件系统上操作文件的命令。

创建文件

        你总会时不时地遇到要创建空文件的情况。例如,有时应用程序希望在它们写入数据之前,
某个日志文件已经存在。这时,可用touch命令轻松创建空文件。在桌面创建一个文件。并且查看文件属性。此时文件大小为0,因为touch只是创建了一个空文件。

 复制文件

        对系统管理员来说,在文件系统中将文件和目录从一个位置复制到另一个位置可谓家常便
饭。cp命令可以完成这个任务。

         在最基本的用法里,cp命令需要两个参数——源对象和目标对象:

cp source destination

        当source和destination参数都是文件名时,cp命令将源文件复制成一个新文件,并且以
destination命名。新文件就像全新的文件一样,有新的修改时间。

         新文件test_two和文件test_one的修改时间并不一样。如果目标文件已经存在,cp命令可能并不会提醒这一点。最好是加上-i选项,强制shell询问是否需要覆盖已有文件。

        cp命令的-R参数威力强大。可以用它在一条命令中递归地复制整个目录的内容。

制表键自动补全

        在使用命令行时,很容易输错命令、目录名或文件名。实际上,对长目录名或文件名来说,
输错的几率还是蛮高的。这正是制表键自动补全挺身而出的时候。制表键自动补全允许你在输入文件名或目录名时按一下制表键,让shell帮忙将内容补充完整。

重命名文件

        在Linux中,重命名文件称为移动(moving)。mv命令可以将文件和目录移动到另一个位置
或重新命名。

 删除文件

        在Linux中,删除(deleting)叫作移除(removing)。bash shell中删除文件的命令是rm。rm
命令的基本格式非常简单。我们要删除yum文件夹下的zy11。

 处理目录

        在Linux中,有些命令(比如cp命令)对文件和目录都有效,而有些只对目录有效。

创建目录

        在Linux中创建目录很简单,用mkdir命令即可,系统创建了一个名为yyq的新目录。注意,新目录长列表是以d开头的。这表示yyq并不是文件,而是一个目录。

        可以根据需要批量地创建目录和子目录。但是,如果你想单单靠mkdir命令来实现,就会得
到下面的错误消息:

        要想同时创建多个目录和子目录,需要加入-p参数,我们创建一个yyq1的文件夹,再创建一个yu的文件夹,最后再创建一个xiaoyu的文件夹。

 删除目录

        删除目录之所以很棘手,是有原因的。删除目录时,很有可能会发生一些不好的事情。shell
会尽可能防止我们捅娄子。删除目录的基本命令是rmdir。 默认情况下,rmdir命令只删除空目录。因为我们在yum目录下创建了一个文件zy,zy1,zy1y,kkyq,zyy,yyq,yyq1,yu,xiaoyu,所以rmdir命令拒绝删除目录。要解决这一问题,得先把目录中的文件删掉,然后才能在空目录上使用rmdir命令。

        rmdir并没有-i选项来询问是否要删除目录。这也是为什么说rmdir只能删除空目录还是有好处的原因。  也可以在整个非空目录上使用rm命令。使用-r选项使得命令可以向下进入目录,删除其中的文件,然后再删除目录本身。 我们利用 mkdir -p 创建多个文件夹 yyq/zy/zy1。删除yyq目录和其下的子目录。这种方法同样可以向下进入多个子目录,当需要删除大量目录和文件时,这一点尤为有效。

其他常用命令与操作

Uname命令

        Linux uname(英文全拼:unix name)命令用于显示操作系统信息,例如内核版本、主机名、处理器类型等。uname 可显示电脑以及操作系统的相关信息。

  • a 或--all  显示全部的信息,包括内核名称、主机名、操作系统版本、处理器类型和硬件架构等。uname
  • -m 或--machine  显示处理器类型。
  • -n 或--nodename  显示主机名。
  • -r 或--release  显示内核版本号。
  • -s 或--sysname  显示操作系统名称。
  • -v  显示操作系统的版本。
  • --help  显示帮助。
  • --version  显示版本信息。
  • -p 显示处理器类型(与 -m 选项相同)。

 clear命令

        Linux clear命令用于清除屏幕。实际并没有清屏,只是将其上边的内容隐藏。

 返回上一级命令

        返回上一级为:../,再返回上一级,继续: ../  .我们创建一个文件夹为:zy,在zy文件夹下再创建一个yyq文件夹,我们打开yyq文件夹再返回到yum文件夹。

 显示网络配置信息命令ifconfig

        Linux ifconfig命令用于显示或设置网络设备。ifconfig可设置网络设备的状态,或是显示目前的设置。查看其中所有的网卡。

         其中ens33 类似网卡名词一样,不一定所所的用户的名词都一样。

        其中 sudo ifconfig ens33 down ,将网卡关闭,将不能上网,sudo ifconfig enss up,将网卡打开,其中sudo ifconfig enss reload 重启网卡。

 重启系统和关机

    reboot 命令用于重启系统。poweroff 关机。

man命令

        Linux提供了丰富的帮助手册,当你需要查看某个命令的参数时不必到处上网查找,只要man

一下即可。同时也可以使用man man 查看man的使用方法。eg:man printf,查看以后按q键退出。

 find 命令

        find命令用来在指定目录下查找文件,例如我们在当前目录下创建一个test1的文件夹,我们在此文件夹下创建一个文件为zy.c,我们在此目录下查找zy.c文件,find -name zy.c。

 grep命令

        Linux grep (global regular expression) 命令用于查找文件里符合条件的字符串或正则表达式。grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。我们输入 grep -nr "ubuntu" /,在根目录下查找ubuntu目录。

常用参数选项:

  • -i:忽略大小写进行匹配。
  • -v:反向查找,只打印不匹配的行。
  • -n:显示匹配行的行号。
  • -r:递归查找子目录中的文件。
  • -l:只打印匹配的文件名。
  • -c:只打印匹配的行数。

 du 命令

       Linux du (英文全拼:disk usage)命令用于显示目录或文件的大小。du 会显示指定的目录或文件所占用的磁盘空间。

        一般-sh最常见,查看test1目录下的文件大小。

        查看当前目录下所有文件的大小

  • a或-all 显示目录中个别文件的大小。
  • -b或-bytes 显示目录或文件大小时,以byte为单位。
  • -c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
  • -D或--dereference-args 显示指定符号连接的源文件大小。
  • -h或--human-readable 以K,M,G为单位,提高信息的可读性。
  • -H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。
  • -k或--kilobytes 以1024 bytes为单位。
  • -l或--count-links 重复计算硬件连接的文件。
  • -L<符号连接>或--dereference<符号连接> 显示选项中所指定符号连接的源文件大小。
  • -m或--megabytes 以1MB为单位。
  • -s或--summarize 仅显示总计。
  • -S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
  • -x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
  • -X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件。
  • --exclude=<目录或文件> 略过指定的目录或文件。
  • --max-depth=<目录层数> 超过指定层数的目录后,予以忽略。
  • --help 显示帮助。
  • --version 显示版本信息。

df命令

        Linux df(英文全拼:disk free) 命令用于显示目前在 Linux 系统上的文件系统磁盘使用情况统计。(这个命令在嵌入式开发中应用较少)

 gedit命令

        启动:从菜单启动:应用程序——>附件——>文本编辑器 从命令行执行以下命令: gedit.

我们编辑test1文件夹下的zy.c文件。

 当前系统进程命令 ps

        Linux ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器。

   ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义:

  • -A 列出所有的进程
  • -w 显示加宽可以显示较多的资讯
  • -au 显示较详细的资讯
  • -aux 显示所有包含其他使用者的进程
  • au(x) 输出格式

        我们在嵌入式中ps就可以,在ubuntu中 我们用ps -aux,因为嵌入式时单用户,ubuntu是多用户。

进程实时任务命令 top

        此命令和我们windows下的任务管理器一样。实时显示进程任务。按q键退出。

 查看文件类型 file

        此命令在嵌入式应用较多。在ubuntu下编译arm下的软件,一般编译完要查看一下可执行软件。看他是不是arm版本。

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

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

相关文章

Netty学习(一):Netty概述

一、原生NIO存在的问题 NIO 的类库和API繁杂&#xff0c;使用麻烦:需要熟练掌握Selector、ServerSocketChannel、SocketChannel、ByteBuffer等。需要具备其他的额外技能:要熟悉Java 多线程编程&#xff0c;因为NIO编程涉及到Reactor 模式&#xff0c;你必须对多线程和网络编程…

buu刷题(第一周)

目录 [DDCTF 2019]homebrew event loop action:trigger_event%23;action:buy;5%23action:get_flag; [CISCN2019 华东南赛区]Web4 [RootersCTF2019]babyWeb [GWCTF 2019]mypassword [NESTCTF 2019]Love Math 2 [BSidesCF 2019]Pick Tac Toe [RootersCTF2019]ImgXweb [SW…

2023 年网络安全漏洞的主要原因

​  网络安全漏洞已经并将继续成为企业面临的主要问题。因此&#xff0c;对于企业领导者来说&#xff0c;了解这些违规行为的原因至关重要&#xff0c;这样他们才能更好地保护他们的数据。 在这篇博文中&#xff0c;我们将概述 2023 年比较普遍的网络安全漏洞的主要原因。 云…

OpenCV4.x图像处理实例-道路车辆检测(基于背景消减法)

通过背景消减进行道路车辆检测 文章目录 通过背景消减进行道路车辆检测1、车辆检测思路介绍2、BackgroundSubtractorMOG23、车辆检测实现在本文中,将介绍如何使用简单但有效的背景-前景减法方法执行车辆检测等任务。本文将使用 OpenCV 中使用背景-前景减法和轮廓检测,以及如何…

这篇教你搞定Android内存优化分析总结

一、内存优化概念1.1 为什么要做内存优化&#xff1f;内存优化一直是一个很重要但却缺乏关注的点&#xff0c;内存作为程序运行最重要的资源之一&#xff0c;需要运行过程中做到合理的资源分配与回收&#xff0c;不合理的内存占用轻则使得用户应用程序运行卡顿、ANR、黑屏&…

QT之OpenGL帧缓冲

QT之OpenGL帧缓冲1. 概述1.1 帧缓冲的创建与删除1.2 帧缓冲的数据来源1.2.1 数据源与帧缓冲的关系1.2.2 纹理Attachment1.2.3 渲染缓冲对象Attachment1.2.4 两者的区别1.2.5 关于两者的使用场景2. Demo3. 后期处理4. 参考1. 概述 OpenGL管线的最终渲染目的地被称作帧缓冲(fram…

【代码随想录训练营】【Day28】第七章|回溯算法|93.复原IP地址|78.子集|90.子集II

复原IP地址 题目详细&#xff1a;LeetCode.93 这道题与上一道练习题分割回文字符串十分详细&#xff0c;一样是涉及到分割字符串、判断字符串、递归与回溯的问题&#xff0c;所以这道题要解决的难点在于&#xff1a; 如何分割IP地址字符串如何判断分割的IP地址是否合法递归的…

Kafka基本概念

什么是Kafka Kafka是一个消息系统。它可以集中收集生产者的消息&#xff0c;并由消费者按需获取。在Kafka中&#xff0c;也将消息称为日志(log)。 一个系统&#xff0c;若仅有一类或者少量的消息&#xff0c;可直接进行发送和接收。 随着业务量日益复杂&#xff0c;消息的种类…

2.单例模式

基本概念 单例模式&#xff1a;保证一个类只有一个实例&#xff0c;并提供一个访问该实例的全局访问点 常见应用场景 读取配置文件的类一般设计为单例模式网站计数器应用程序的日志应用&#xff0c;因为共享日志文件一直处于打开状态&#xff0c;只能有一个实例去操作Spring…

新C++(11):unordered_map\set的封装

"假如可以让音乐停下来"一、unordered_map\unordered_set简介在C98中&#xff0c;STL底层提供了以红黑树封装的关联式容器map\set&#xff0c;其查询效率可以达到LogN(以2为底)。而在C11中&#xff0c;STL又提供了unordered(无序)容器&#xff0c;其使用方式与map\se…

企业对不同形态CRM系统价格需求不同

很多企业在选型时关心CRM客户管理系统的价格&#xff0c;有人对CRM的价格完全没有概念&#xff0c;也有的人先问价格再看其他。CRM价格在系统选型中到底有多重要&#xff1f;不同类型CRM系统的价格是否有所不同&#xff1f; CRM的不同产品形态也会影响价格 通常情况下&#x…

十五、MyBatis使用PageHelper

1.limit分页 limit分页原理 mysql的limit后面两个数字&#xff1a; 第一个数字&#xff1a;startIndex&#xff08;起始下标。下标从0开始。&#xff09; 第二个数字&#xff1a;pageSize&#xff08;每页显示的记录条数&#xff09; 假设已知页码pageNum&#xff0c;还有每页…

移动端笔记

目录 一、移动端基础 二、视口 三、二倍图/多倍图 四、移动端开发 &#xff08;一&#xff09;开发选择 &#xff08;二&#xff09;常见布局 &#xff08;三&#xff09;移动端技术解决方案 五、移动WEB开发之flex布局 六、移动WEB开发之rem适配布局 #END&#xff08…

嘀嗒出行再闯IPO:千军万马我无懈

羽扇纶巾笑谈间&#xff0c;千军万马我无懈。 在激烈竞争中再度冲刺港交所IPO的嘀嗒出行&#xff0c;闪露出一丝歌词里的气魄。交通运输部下属网约车监管信息交互系统的数据显示&#xff0c;截至2023年1月31日&#xff0c;全国共有300家网约车平台公司取得网约车平台经营许可。…

如何使用COM-Hunter检测持久化COM劫持漏洞

关于COM-Hunter COM- Hunter是一款针对持久化COM劫持漏洞的安全检测工具&#xff0c;该工具基于C#语言开发&#xff0c;可以帮助广大研究人员通过持久化COM劫持技术来检测目标应用程序的安全性。 关于COM劫持 微软在Windows 3.11中引入了(Component Object Model, COM)&…

2月第4周榜单丨飞瓜数据B站UP主排行榜(哔哩哔哩平台)发布!

飞瓜轻数发布2023年2月20日-2月26日飞瓜数据UP主排行榜&#xff08;B站平台&#xff09;&#xff0c;通过充电数、涨粉数、成长指数三个维度来体现UP主账号成长的情况&#xff0c;为用户提供B站号综合价值的数据参考&#xff0c;根据UP主成长情况用户能够快速找到运营能力强的B…

基频估计算法简介

基频估计算法 F0 estimate methods 估计F0的方法可以分为三类:基于时域、基于频域、或混合方法。本文详细介绍了这些方法。 所有的算法都包含如下三个主要步骤&#xff1a; 1.预处理&#xff1a;滤波&#xff0c;加窗分帧等 2.搜寻&#xff1a;可能的基频值F0&#xff08;候选…

chatgpt到底颠覆了什么 第二部分

以第二个理由就是两个字&#xff0c;垄断。 现在谈到范式转变&#xff0c;如果首先谈的还是算法&#xff0c;那说明还没有透彻理解范式改变范式改变&#xff0c;首先要改的是什么。是什么&#xff1f;是参赛资格。 过去我相信大企业大团队聚拢了许多聪明的脑袋&#xff0c;但我…

基于神经网络补偿的主动悬架自适应控制

目录 前言 1. 1/4悬架模型 2.仿真分析 2.1仿真模型 2.2仿真结果 2.1 形① 2.2 形② 3. 总结 前言 上两篇博客我们介绍了神经网络补偿控制律的仿真测试&#xff0c;从仿真结果我们可以得知神经网络具有逼近扰动&#xff0c;并将其补偿的作用。 上两篇文章链接&#xf…

在nestjs中进行typeorm cli迁移(migration)的配置

在nestjs中进行typeorm cli迁移(migration)的配置 在学习nestjs过程中发现typeorm的迁移配置十分麻烦,似乎许多方法都是旧版本的配置&#xff0c;无法直接使用. 花了挺长时间总算解决了这个配置问题. db.config.ts 先创建db.config.ts, 该文件export了两个对象&#xff0c;其…