shell常见指令

news2024/12/27 13:54:35

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、认识C语言
  • 二、操作系统
    • 1.引入库
    • 2.读入数据
  • 总结


前言

嵌入式学习前期C基础内容总结

一、认识C语言

C语言是一门十分流行的编程语言,由美国贝尔实验室的 Dennis Ritchie 在 20 世纪 70 年代开发。


C语言具有高效、可移植、灵活、简单等特点,被广泛应用于操作系统、编译器、数据库、图形界面、嵌入式系统、网络通信、游戏等领域

二、操作系统

操作系统:管理硬件和软件 

三大操作系统:Windows      Macos    Ubuntu

内核              :WindowsNt   Unix        Linux

嵌入式学习:

一般选择Linux:

1.免费

2.稳定

3.开源

4.可以和硬件结合

三、认识VMware

VMware:是一个桌面虚拟计算机软件,提供用户可在单一的桌面上同时运行不同的操作系统,和进行开发、测试 、部署。

四、认识Ubuntu

Ubuntu:Ubuntu是一个以桌面应用为主的Linux发行版操作系统

(一).VM和Ubuntu下载

Ubuntu系统下载官方链接:Ubuntu系统下载

VMware下载官方链接:VMware Workstation 17Player for Windows下载

【Liunx常用操作】安装Ubuntu操作系统(Desktop&Server) 

参考:

【Liunx常用操作】安装Ubuntu操作系统(Desktop&Server)_ubuntu desktop安装-CSDN博客

(二)、终端操作

1.终端

        i.打开终端

                1.点击图标

                2.ctrl+alt+t   打开新终端

                3.ctrl+shift+t    在已有终端的情况下,在同一端口打开新终端

                4.ctrl+shift+e   在已有终端的情况下,左右打开终端

                5.ctrl+shift+o   在已有终端的情况下,上下打开终端

        ii.关闭终端

                1.点击X

                2.输入指令exit

                3.ctrl+d

        iii.常用的快捷键

                1.放大:ctrl shift +

                2.缩小:ctrl -

                3. 赋值:ctrl+shift+c

                4.粘贴:ctrl+shift+v

        iv.清屏

                ctrl l 快捷方式  置顶不删除

                clear                置顶删除

        v.tab键

                指令,文件,目录自动补全

(三)、认识Ubuntu的目录

/

Linux文件系统根目录

/bin存放系统中最常用的可执行文件(二进制)
/boot存放Linux内核和系统启动文件
/dev存放所有设备文件
/etc存放系统的所有配置文件
/home用户主目录的默认位置
/initrd存放启动时挂载initrd.img映像文件的目录,以及载入所需设备模块的目录
/lib存放共享的库文件,包含许多被/bin,/sbin中程序使用的库文件
/lost+found存放fsck放置的零散文件
/mediaUbuntu系统自动挂载CD-ROM,软驱,USB存储后,存放临时读入的文件
/mnt该目录通常用于作为被挂载的文件系统的挂载点
/opt作为可选文件和程序的存放目录,主要被第三方开发者用来简易地安装和卸载他们的软件包
/proc存放所有标志为文件的进程,他们是通过进程号或其他的系统动态信息进行标识
/root根目录(超级用户)的主目录
/sbin存放更多的可执行文件(二进制),包括系统管理,目录查询等关键命令文件
/srv
/sys
/tmp存放用户和程序的临时文件,所有用户对该目录都有读和写的权限

(四)、shell命令

格式1:指令 参数 选项

格式2:指令 选项 参数

注意事项:

1.指令,参数以及选项之间必须使用空格隔开

2.参数以及选项可以省略不写

 1.文件含义

1.文件类型:

7种   bcd-lsp

        b:块设备文件

        c:字符设备文件

        d:目录

        -:普通文件

        l:软连接文件

        s:套接字文件

        p:管道文件

2.文件权限

        r:读权限

        w:写权限

        x:可执行权限

        -:不具备权限

2.ls

功能:查看目录以及文件的内容 

1.ls                                查看当前目录下的所有文件内容

2.ls  指定路径                查看指定目录下的所有内容

3.ls -a                            查看当前目录下的所有内容包含隐藏文件

4.ls -l                             查看当前目录下的所有内容使用长列表进行显示

5.ls -l -h                         查看当前目录下的所有内容使用长列表进行显示,打印大小以kmg                                          为单位

3.chmod 

功能:修改权限

方式1:使用字符形式 =-+

        文件所属用户user:u

        文件所属用户组:group:g

        其他用户other:o

        所有用户权限all:a

格式:

        chmod u-r 文件名

        chmod g+w 文件\目录

        chmod o=x 文件\目录

        chmod a=r 文件\目录

方式2:使用8进制

        r:4      w:2      x:1     -:0

        chmod xxx  文件\目录

        chmod x  等价于  chmod 00x

3.man

功能:查看man手册的详细信息:man man

1.可执行程序或shell命令

2.系统调用(内核提供的函数)

3.库调用(程序库中的函数)

 4.su

功能:切换用户

格式:sudo su 用户名

sudo:使用管理员权限

注意:默认root的密码是随机

5.passwd

功能:修改密码

格式:passwd 用户名

6.touch

功能:创建文件 

touch 文件名                          如果这个文件不存在当前目录下创建文件,存在则修改时间戳

touch 文件名1 文件名2 文件名3 ....... 创建多个文件

7.mkdir 

功能:创建目录

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

mkdir 目录名1 目录名2 ...     在当前目录下创建多个目录 

mkdir dir1/dir2/dir3 -p           嵌套创建目录,如果目录存在则不报错,否则创建父目录

8.cd

功能:切换路径

1.cd       指定目录

2.cd       将路径切换到家目录下

3.cd ~    将路径切换到家目录下

4.cd .     进入当前目录

5.cd ..    进入上一级目录

6.cd -     进入上一次操作指令的路径

9.rmdir

功能:删除目录且为空

1.rmdir 目录名1 目录名2 ...       删除当前目录下的多个空目录

2.rmdir dir1/dir2/dir3                 删除dir3

3.rmdir dir1/dir2/dir3 -p             删除dir1 dir2 dir3 

10.rm

功能:删除文件或非空目录

1.删除文件

        rm file1 file2  ...           删除当前目录下多个文件

2.删除目录

        rm -r dir1 dir2 dir3      删除当前目录下的多个目录 

11.echo

功能: 输出字符串,类似C语言printf

1.echo 字符串 

2.echo '字符串'

3.echo"字符串"

4.echo -n 字符串       取消换行

5.echo -e "转义字符 字符串"       使转义字符发挥其效果

 12.cat

功能:打印文件内容

1.cat 文件名         在当前终端打印文件内容

2.cat -n 文件名     在当前终端打印文件内容显示行号

13.重定向   >    >>

1.> 单项重定向   覆盖

        echo hello >文件名 

                如果这个文件不存在,则创建文件,把字符写入文件中

                如果这个文件存在,则把字符覆盖原来文件内容

        cat file1>file2

                如果这个文件file2不存在,则创建文件,把文件file1中的内容拷贝到文件file2中

                如果这个文件file2存在,则将file1文件中内容覆盖file2文件中内容

2.>> 双向重定向 追加

        echo hello >> 文件名

                如果这个文件不存在,则创建文件,把字符串追加到文件中

                如果这个文件存在,把字符串追加源文件内容后面

        cat file1>>file2

                如果file2不存在,则创建文件,把文件file1中的内容追加到文件file2的后面

                如果file2存在,把file1文件的内容追加到文件file2的内容的后面

14.cp

功能:拷贝文件或目录

 1.文件拷贝文件

        cp 文件1 文件2             把文件1拷贝到文件2

                如果文件2不存在,把文件1拷贝一份,命名为文件2

                如果文件2存在,把文件1拷贝一份,命名为文件2,替换原来的文件2

2.文件拷贝到目录

        cp 文件  目录              把文件拷贝到目录中,目录必须存在

                如果目录中不存在同名文件,把文件拷贝到目录中

                如果目录中存在同名文件,替换目录中同名文件

3.目录拷贝目录

        cp 目录1 目录2 -r       把目录拷贝给目录

                如果目录2不存在,把目录1拷贝一份,命名为目录2

                如果目录2存在且没有同名目录,把目录1拷贝一份,存到目录2之中

                如果目录2存在且有同名目录,把目录1拷贝一份,存到目录2之中,替换同名目录

 15.mv

功能:移动,剪切,重命名

1.文件剪切文件

        mv 文件1 文件2              把文件1重名为到文件2

                如果文件2不存在,把文件1重命名为文件2

                如果文件2存在,把文件1重命名为文件2,替换原来的文件2

2.文件剪切到目录

        mv 文件 目录             把文件剪切到目录中,目录必须存在

                如果目录中不存在同名文件,把文件剪切到目录中

                如果目录中存在同名文件,把文件剪切到目录中,替换目录中同名文件

3.目录剪切到目录

         mv 目录1 目录2           把目录1重名为目录2

                如果目录2不存在.把目录1重命名为目录2

                如果目录2存在且没有同名目录,把目录1剪切到目录2里面

                如果目录2存在且有同名目录且非空, 报错:不可以剪切目录实现替换

                如果目录2存在且有同名目录且空,把目录1剪切到目录2里面,替换同名目录

16.pwd

功能:在终端回显当前目录下的绝对路径 

17.whoami

功能:查看用户

 (五)、vim\vi编辑器

功能:写程序,类似txt,nodepad++

格式:vim 文件名

特点:

1.创建文件,并打开文件,需要手动保存,否则文件创建失败

2.和touch的区别:

自动保存,不可以打开文件

1.命令行模式

命令行模式:复制、粘贴、剪切、删除、撤回、返撤回.....

1.yy                 复制光标所在行

2.nyy                复制光标所在行的n行

3.选中代码y     复制选中的程序

4.dd                 剪切光标所在行

5.ndd               剪切光标所在n行

6.选中代码d     剪切选中程序

7.delete键        剪切光标所在单个字符

8.gg                 光标跳转首行

9.G                  光标跳转尾行

10.=                 使程序对齐

11.ggyG            全文复制

12.ggdG           全文剪切

13.gg=G           全文对齐

14.u                  撤回

15.ctrl r             反撤回

16.p                  粘贴                

2.插入模式

写程序

1.a                 在光标所在字符的后面插入

2.A                 在光标所在字符的行尾插入

3.i                  在光标所在字符的前面插入

4.I                  在光标所在字符的行首插入

5.o                 在光标所在字符的下一行插入

6.O                在光标所在字符的上一行插入

7.s                 删除光标所在字符,在该光标处插入

8.S                删除光标所在行,在该光标的行首插入

9.insert键      在光标所在字符的前面插入

 3.底行模式

保存,退出,查找,替换等

1.:w                      保存

2.:q                       退出

3.:wq                    保存退出

4.:q!                   强制退出

5.:wqa                  全部保存退出(多文件操作时)

6.:vsp 文件名        在同一目录下打开文件

7:/string                查找字符串并高亮显示

8.:noh                   取消高亮显示

9.:%s/字符串1/字符串2                       全文把每一行的第一个字符串1替换为字符串2

10.:%s/字符串1/字符串2/g                  全文把字符串1替换为字符串2

11.:m,n/字符串1/字符串2/g              m-n行的字符串1替换为字符串2

12.m,ny            复制m-n行

13.m,nd            剪切m-n行

 4.gcc编译器

gcc: 是由GNU发行的编译器,使用c和c++

格式1:

        gcc ****.c 编译C文件,默认生成a.out二进制可执行文件 运行:./a.out

格式2:

        gcc ****.c -o 可执行文件名 生成一个指定的文件名 运行:./可执行文件名

gcc的分步编译:

        ESc .iso

                预处理---->编译---->汇编---->链接

                预处理:展开头文件,替换宏,删除注释

                gcc -E ***.c -o ***.i

                编译:检查语法的正确性,生成汇编文件

                gcc -S ***.i -o ***.s

                汇编:把汇编文件转换二进制文件

                gcc -c ***.s -o ***.o

                链接:把二进制文件链接为可执行文件

                gcc ***.o -o 可执行文件

                运行:

                ./可执行文件

                

        

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

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

相关文章

Web3的时代:科技变革助力物联网智能化

引言 随着人类社会的不断发展,科技进步已经成为推动社会发展的重要引擎之一。在这个信息化时代,互联网已经深刻改变了人们的生活方式和工作方式,而Web3技术的出现,则为我们带来了全新的科技革命。本文将探讨Web3时代对物联网智能…

HIOKI日置阻抗分析仪IM7583

HIOKI日置阻抗分析仪IM7583 HIOKI日置阻抗分析仪IM7583 HIOKI日置阻抗分析仪IM7583 功率分析仪 PW6001 基本参数 测量线路 单相2线,单相3线,三相3线,三相4线 输入通道数 zui大6ch,电压/电流同时单位是1ch (电压测…

基于MetaGPT构建单智能体

前言 在之前的文章中,我们详细地描述了Agent的概念和组成,在代码案例中体验了Agent的记忆、工具、规划决策模块,并通过几个Agent框架来加强读者对Agent开发设计与应用的理解,接下来我们就要进入智能体Agent的实际开发中&#xff0…

三维模型相互转换(obj文件转inp文件)

三维模型文件根据其含义都是可以进行相互转换的,这里主要介绍obj文件转化为inp文件。 什么是inp文件? inp文件是以.inp为后缀的文本文件,它包括了模型的全部数据信息,ABAQUS求解器分析的对象是inp文件,软件生成的.ca…

AI - 各类AI针对Excel分析对比

一个水果销量表,Excel包含多个年份sheet,需要提取某个品种的水果每年的销量,看看几个AI的分析结果吧 1、文心一言3.5(不支持Excel) 不支持上传Excel文件 2、 通义千问2.5(完成★) 顺利完成…

在windows中使用wsl下的unbuntu环境

1 unbuntu下载编译环境 编译环境安装命令: sudo apt install gdb sudo apt install gcc sudo apt install g 2 使用vscode正常打开项目,在window中打开的项目(官方推荐将项目放在linux中的home目录) 但在windows中也可以使用&a…

电脑卸载linux安装windows后每次开机都出现grub

原因分析 这是因为电脑硬盘中还存在linux系统的引导程序,并且启动顺序还在windows之前,有时候通过bios根本找不到它的存在,以至于每次windows开机出现grub之后都要输入exit退出linux的引导之后才能使得电脑进入windows,这个有时会…

Vue3学习-用 vite@latest 初始化项目后,遇到无法识别 .vue 文件

引入app界面遇到 我的解决方案 1.根目录创建 env.d.ts&#xff0c;添加 declare module "*.vue" {import type { DefineComponent } from "vue"const vueComponent: DefineComponent<{}, {}, any>export default vueComponent }2.在 tsconfig.json…

​​​【收录 Hello 算法】9.3 图的遍历

目录 9.3 图的遍历 9.3.1 广度优先遍历 1. 算法实现 2. 复杂度分析 9.3.2 深度优先遍历 1. 算法实现 2. 复杂度分析 9.3 图的遍历 树代表的是“一对多”的关系&#xff0c;而图则具有更高的自由度&#xff0c;可以表示任意的“多对多”关系。因此&…

C++三剑客之std::any(二) : 源码剖析

目录 1.引言 2.std::any的存储分析 3._Any_big_RTTI与_Any_small_RTTI 4.std::any的构造函数 4.1.从std::any构造 4.2.可变参数模板构造函数 4.3.赋值构造与emplace函数 5.reset函数 6._Cast函数 7.make_any模版函数 8.std::any_cast函数 9.总结 1.引言 C三剑客之s…

开源与闭源AI模型的对决:数据隐私、商业应用与社区参与

引言 在人工智能&#xff08;AI&#xff09;领域&#xff0c;模型的发展路径主要分为“开源”和“闭源”两条。这两种模型在数据隐私保护、商业应用以及社区参与与合作方面各有优劣&#xff0c;是创业公司、技术巨头和开发者们必须仔细权衡的重要选择。那么&#xff0c;面对这些…

[面试题]软件测试性能测试的常见指标在Linux系统中,一个文件的访问权限是 755,其含义是什么

1、选出属于黑盒测试方法的选项&#xff08;ABC&#xff09; A.决策表 B.边界值分析 C.正交法 D.分支覆盖 E.语句覆盖 F.条件覆盖 黑盒测试&#xff08;Black-box testing&#xff09;&#xff0c;又称为功能测试或数据驱动测试&#xff0c; 是一种不涉及软件内部结构和内部特…

优化问题基础知识

目录 线性规划(LP)整数线性规划(ILP)混合整数线性规划(MILP)非线性规划(NLP)整数非线性规划(INLP)混合整数非线性规划(MINLP)分组背包问题&#xff08;MCKP&#xff09;启发式算法在线算法长期优化李雅普诺夫算法随机优化块坐标下降法&#xff08;Block Coordinate Descent&…

当前API面临的安全风险,有什么安全措施

在当今信息化高速发展的时代&#xff0c;API&#xff08;应用程序编程接口&#xff09;技术已成为企业数字化转型的基石&#xff0c;它连接着各种服务、传输数据并控制系统&#xff0c;成为现代数字业务环境不可或缺的一部分。然而&#xff0c;随着API的广泛应用&#xff0c;其…

Vue3+ts(day07:pinia)

学习源码可以看我的个人前端学习笔记 (github.com):qdxzw/frontlearningNotes 觉得有帮助的同学&#xff0c;可以点心心支持一下哈&#xff08;笔记是根据b站上学习的尚硅谷的前端视频【张天禹老师】&#xff0c;记录一下学习笔记&#xff0c;用于自己复盘&#xff0c;有需要学…

一文读懂RDMA: Remote Direct Memory Access(远程直接内存访问)

目录 ​编辑 引言 一、RDMA的基本原理 二、RDMA的主要特点 三、RDMA的编程接口 四、RDMA的代码演示 服务器端代码&#xff1a; 客户端代码&#xff1a; 五、总结 引言 RDMA&#xff0c;全称Remote Direct Memory Access&#xff0c;即远程直接内存访问&#xff0c;是…

海山数据库(He3DB)数据仓库发展历史与架构演进:(一)传统数仓

从1990年代Bill Inmon提出数据仓库概念后经过四十多的发展&#xff0c;经历了早期的PC时代、互联网时代、移动互联网时代再到当前的云计算时代&#xff0c;但是数据仓库的构建目标基本没有变化&#xff0c;都是为了支持企业或者用户的决策分析&#xff0c;包括运营报表、企业营…

【Qt 学习笔记】Qt常用控件 | 布局管理器 | 表单布局Form Layout

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Qt常用控件 | 布局管理器 | 表单布局Form Layout 文章编号&#xff1a…

黑马点评3——优惠券秒杀

&#x1f308;hello&#xff0c;你好鸭&#xff0c;我是Ethan&#xff0c;一名不断学习的码农&#xff0c;很高兴你能来阅读。 ✔️目前博客主要更新Java系列、项目案例、计算机必学四件套等。 &#x1f3c3;人生之义&#xff0c;在于追求&#xff0c;不在成败&#xff0c;勤通…

2024最新流媒体在线音乐系统网站源码| 音乐社区 | 多语言 | 开心版

简介&#xff1a; 2024最新流媒体在线音乐系统网站源码| 音乐社区 | 多语言 | 开心版 下载地址 https://www.kuaiyuanya.com/product/article/index/id/33.html 图片&#xff1a;