当前位置: 首页 > news >正文

Linux-编写一个自己的命令

前言

(1)在Linux中,我们对文件路径进行操作都需要输入命令。那么,有人可能就会有疑惑了,命令是什么东西?我们是否也可以创造出自己的命令呢?答案是可以的。命令本身其实就是可执行文件。但是与普通的可执行文件的不同之处在于,命令的可执行文件必须在PATH变量中。(这个后面会介绍)
(2)学习这一章时候,需要先学习Linux入门操作指令介绍(配合Windows理解)和Linux_vim编辑器入门级详细教程。
(3)这一章会先介绍环境变量的修改,然后再编写一个自己的命令
(4)相关视频教程:Linux环境变量讲解;Linux编写第一个自己的命令;

什么是环境变量

(1)概念:环境变量是系统预设值的参数。 Linux 是一个多用户的操作系统(比如有普通用户和root用户), 所以每一个用户也都有自己的环境变量。 举例: 比如我们之前学习的命令不管在哪个路径下输入, 都是可以执行成功的(比如ls命令,无论是在home路径下还是Desktop路径下都可以执行), 因为系统已经把命令的搜索路径提前设置好了。
注意:概念部分看看不懂没关系,留个印象。
(2)常用变量 PATH 决定了要去哪个路径下去寻找我们的程序或者命令, 在以后的开发过程中, 我们要经常修改这个变量。

echo指令

(1)功能:将输入的参数打印出来
(2)如果我们写入echo $PATH即可将PATH变量的参数打印出来。(也就是说,指令的可执行文件存放在这些路径中)

修改环境变量

临时修改

(1)命令格式: export 变量=新增的变量值: $变量
例如现在我想将桌面设置为新曾环境变量,输入:export PATH=/home/book/Desktop/:$PATH
(2)临时改变表示如果我们现在关闭终端,再重新打开终端,新增的变量将会消失。

永久修改

(1)vi .bashrc--->再文件最后一行加入export PATH=/home/book/Desktop/:$PATH--->:wq保存退出--->source .bashrc
(2)如果想取消修改,vi .bashrc--->删除export PATH=/home/book/Desktop/:$PATH--->:wq保存退出--->source .bashrc--->关闭终端然后重新打开

每一个用户也都有自己的环境变量

上面说了,每一个用户都有自己的环境变量。此时我们在book用户下更改了环境变量,在root环境下就没有。

在Linux中编写第一个自己的命令

编写一个可执行程序

首先用vim编辑器写一个.c文件,然后用gcc编译

命令与普通的可执行文件的区别

上面说了,Linux中的命令其实就是可执行文件。只不过这些命令与普通的可执行文件的区别在于,命令可以在任何目录下执行,而普通的可执行文件只能在当前目录下执行。

将普通可执行文件变成命令

方法一

变为命令

首先我们需要查看PATH中有哪些变量--->然后将普通的可执行文件复制到PATH中的一个路径里面

删除命令

这个时候,可能有人又不想要这个命令了。只需要找到这个可执行文件存放的目录,然后将其删除即可。

方法二

我们可以将存放普通可执行文件的路径,加入到PATH变量中。因为是用于演示,所以我使用临时将当前目录加入PATH变量中。

相关文章:

Linux-编写一个自己的命令

前言(1)在Linux中,我们对文件路径进行操作都需要输入命令。那么,有人可能就会有疑惑了,命令是什么东西?我们是否也可以创造出自己的命令呢?答案是可以的。命令本身其实就是可执行文件。但是与普…...

Nacos架构篇 - Distro协议

Distro 它是 Nacos 社区自研的一种 AP 分布式协议(也是最终一致性协议)。它面向临时实例,保证了在某些 Nacos 节点宕机后,整个临时实例处理系统依旧可以正常工作。作为一种有状态的中间件应用的内嵌协议,Distro 保证了…...

和月薪3W的聊过后,才知道自己一直在打杂...

前几天和一个朋友聊面试,他说上个月同时拿到了腾讯和阿里的offer,最后选择了阿里。 我了解了下他的面试过程,就一点,不管是阿里还是腾讯的面试,这个级别的程序员,都会考察项目管理能力,并且权重…...

关于Ubuntu18.04 root账户登录的问题

关于Ubuntu18.04 root账户登录的问题一、 Ubuntu 18.04添加root用户登录1. 设置root用户2. 修改/root/.profile3. 修改/etc/pam.d目录下的gdm-autologin和gdm-password4. 修改50-ubuntu.conf5. 登录root账户二、Ubuntu18.04不能远程使用root账户登录的问题1. 修改sshd_config2.…...

基于jeecgboot的flowable的H5版本在演示系统发布

目前在NBCIO 亿事达企业管理平台上发布了H5的在线演示系统,欢迎大家批评指正。 在nbcio-vue nbcio-vue: NBCIO 亿事达企业管理平台前端代码,基于ant-design-vue-jeecg的前端版本: 3.0.0代码和和flowable6.7.2,初步完成了集流程设…...

【代码训练营】day44 | 完全背包理论 518. 零钱兑换 II 377. 组合总和 Ⅳ

所用代码 java 完全背包 01背包物品只能使用一次 – 倒序遍历 for(i 0; i < weight.length; i){ 物品for (j bagWeight; j > weight[i]; j--){ 背包dp[j] max(dp[j], dp[j-weight[i]] value[i])} }完全背包物品可以使用无限次 – 正序遍历 for(i 0; i < weigh…...

ICA简介:独立成分分析

1. 简介 您是否曾经遇到过这样一种情况&#xff1a;您试图分析一个复杂且高度相关的数据集&#xff0c;却对信息量感到不知所措&#xff1f;这就是独立成分分析 (ICA) 的用武之地。ICA 是数据分析领域的一项强大技术&#xff0c;可让您分离和识别多元数据集中的底层独立来源。 …...

②【Java 组】蓝桥杯省赛真题解析 [振兴中华] [三部排序] 持续更新中...

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ 蓝桥杯真题--持续更新中...一、振兴中华二、三…...

PostgreSql 视图

一、概述 视图&#xff08;View&#xff09;本质上是一个存储在数据库中的查询语句。视图本身不包含数据&#xff0c;也被称为虚拟表。 我们在创建视图时给它指定了一个名称&#xff0c;然后可以像表一样对其进行查询。 优势&#xff1a; 不保存数据&#xff0c;节省空间。减少…...

【PAT甲级题解记录】1150 Travelling Salesman Problem (25 分)

【PAT甲级题解记录】1150 Travelling Salesman Problem (25 分) 前言 Problem&#xff1a;1150 Travelling Salesman Problem (25 分) Tags&#xff1a;模拟 图的遍历 旅行商问题 Difficulty&#xff1a;剧情模式 想流点汗 想流点血 死而无憾 Address&#xff1a;1150 Travell…...

vue生命周期

vue生命周期是什么&#xff1f;Vue生命周期是指vue实例对象从创建之初到销毁的过程&#xff0c;vue所有功能的实现都是围绕其生命周期进行的&#xff0c;在生命周期的不同阶段调用对应的钩子函数可以实现组件数据管理和DOM渲染两大重要功能。我们来看一下官网给的vue生命周期的…...

排查解决Java进程占用内存过高

排查解决Java进程占用内存过高1 在项目部署运行之前1 检查JVM参数设置2 检查代码逻辑3 使用内存分析工具4 检查线程5 调整应用程序的设计7 调整硬件资源2 在项目部署运行之后1 在项目部署运行之前 1 检查JVM参数设置 检查JVM的启动参数设置&#xff0c;包括-Xmx和-Xms参数&am…...

一个基于 LKM 的 Linux 内核级 rootkit 的实现

博客已迁移至&#xff1a;https://gls.show/ GitHub链接 演示Slides overview rootkit是一种恶意软件&#xff0c;攻击者可以在获得 root 或管理员权限后安装它&#xff0c;从而隐藏入侵并保持root权限访问。rootkit可以是用户级的&#xff0c;也可以是内核级的。关于rootk…...

CAN工具 - ValueCAN - 基础介绍(续)

VSpy3&#xff08;Vehicle Spy 3的简写&#xff09;&#xff0c;作为一个常用的车载总线仿真工具&#xff0c;在车载网络领域也是有非常大的市场&#xff0c;前面也简单介绍过一些简单的功能&#xff0c;今天就再次介绍一些。什么是VSpy3&#xff1f;VSpy3是美国英特佩斯公司下…...

一个Laravel+vue免费开源的基于RABC控制的博客系统

项目介绍 CCENOTE 是一个使用 Vue3 Laravel8 开发的前后端分离的基于RABC权限控制管理的内容管理系统&#xff0c;由于作者本人比较喜欢写作的原因&#xff0c;因此开发了这个项目&#xff0c;后端使用的PHP的Laravel框架&#xff0c;并且整理了数据层与业务层&#xff0c;相…...

从 B 站出发,用 Chrome devTools performance 分析页面如何渲染

页面是如何渲染的&#xff1f;通常会得到“解析 HTML、css 合成 Render Tree&#xff0c;就可以渲染了”的回答。但是具体都做了些什么&#xff0c;却很少有人细说&#xff0c;我们今天就从 Chrome 的性能工具开始&#xff0c;具体看看一个页面是如何进行渲染的&#xff0c;以及…...

Java异常Throwable的分类

1. Exception&#xff1a;程序本身可以捕获并且可以处理的异常 编译时异常&#xff1a;编译期就会检查的异常&#xff0c;若调用的方法中throw了此类异常&#xff0c;则必须进行显式处理处理&#xff08;用try…catch捕获或者throws向上抛出&#xff09;&#xff0c;否则无法通…...

【mybatis的#和$使用和区别】

MyBatis是一种基于Java的持久层框架&#xff0c;用于将数据库操作和Java对象之间的映射进行处理。在MyBatis中&#xff0c;#和 $ 符号是用于SQL语句中的占位符。 在SQL语句中&#xff0c;#和 $ 符号都表示占位符&#xff0c;但它们的使用方式略有不同&#xff1a; # 符号 #符…...

感知趋势,洞察发展:2023(第十届)趋势与预测大会成功举办

2023年2月23日&#xff0c;运联年会&#xff1a;2023&#xff08;第十届&#xff09;趋势与预测大会在深圳机场凯悦酒店成功闭幕。自2014年开始&#xff0c;“运联年会&#xff1a;趋势与预测”已经连续举办九届。这场大会&#xff0c;既是一次行业性的“年终总结”&#xff0c…...

Spring-Aop核心技术

前言spring一直以来都是我们Java开发中最核心的一个技术&#xff0c;其中又以ioc和aop为主要技术&#xff0c;本篇文章主要讲一下aop的核心技术&#xff0c;也就是ProxyFactory技术的使用&#xff0c;而基本的jdk动态代理和cglib代理技术并不涉及&#xff0c;如有需要&#xff…...

webpack常用优化原理剖析

webpack常用优化原理剖析 按需加载代码配置原理CDN加速-externals代码配置GZIP压缩代码配置原理Tree Shaking代码配置原理按需加载 把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件. 代码配置 //定义了一个异步函数,由于函数不调用不执行,所…...

【现在努力还不晚】--MySQL数据库的数据模型

目录 1、关系型数据库&#xff08;RDBMS&#xff09; 特点 2、数据模型 在学习MySQL之前要了解一下数据库的数据模型&#xff0c;我们就知道在MySQL当中&#xff0c;数据是如何存储的&#xff0c;我们了解一下概念&#xff01; 1、关系型数据库&#xff08;RDBMS&#xff0…...

二手商品交易网站

技术&#xff1a;Java、JSP等摘要&#xff1a;随着科学技术和信息通讯的飞速发展&#xff0c;Internet极大地丰富和改变着我们生活的各个行业。随着Internet的普及应用&#xff0c;人们可以跨越时间和空间的限制&#xff0c;足不出户便能通过网络完成信息交流&#xff0c;而完成…...

第三阶段04-同步请求和异步请求,get/post,Josn,pojo,Session/Cookie,过滤器Filter

文章目录同步请求和异步请求客户端如何发出异步请求自定义模板代码Get和Post请求异步版本的注册和登录商品管理系统(异步版本)商品列表步骤:前后端分离为什么需要前后端分离?为什么以后不再使用同步请求?JSONPOJO会话对象Session如何记住登录状态后端的MVC会话管理Cookie通过…...

Spark学习:spark相似算子解析

spark算子 一、Map、Flatmap和MapPartition二、repartition和coalesce三、reduceByKey和groupByKey四、collect、take和first一、Map、Flatmap和MapPartition 算子作用map接收一个高阶函数f,对每个算子进行f操作flatmap接收一个高阶函数f,对每个元素进行f操作,形成一个大的集合…...

MySQL操作数据表-----------创建数据表(一)

在MySQL中创建数据库完成后&#xff0c;需要使用USE 数据库名的形式指定进行操作的数据库&#xff0c;然后再去执行创建数据表的SQL语句&#xff0c;也可以直接使用数据库名.数据表名的形式创建数据表。 1.创建空数据表 语法格式&#xff1a;CREATE TABLE [IF EXISTS] 表名 &…...

Java “框架 = 注解 + 反射 + 设计模式” 之 注解详解

Java ”框架 注解 反射 设计模式“ 之 注解详解 每博一文案 刹那间我真想令时光停住&#xff0c;好让我回顾自己&#xff0c;回顾失去的年华&#xff0c;缅怀哪个穿一身短小的连衣裙 和瘦窄的短衫的小女孩。让我追悔少年时代&#xff0c;我心灵的愚钝无知&#xff0c;它轻易…...

特斯拉4D雷达方案首次曝光!高阶智驾市场比拼安全冗余

随着L2级智能驾驶进入普及阶段&#xff0c;L3/L4级赛道正在成为各家车企的下一个竞争焦点。背后的最大难题&#xff0c;就是如何在成本可控的前提下&#xff0c;保证足够的安全。 高工智能汽车研究院监测数据显示&#xff0c;2022年度中国市场&#xff08;不含进出口&#xff…...

Echarts 每个柱子一种渐变色的象形柱状图

第023个点击查看专栏目录本示例是解决每个柱状图的每一个柱子都呈现一种渐变色&#xff0c;每个柱子的颜色都不同。这里同时采用了象形的柱状图效果。 文章目录示例效果示例源代码&#xff08;共125行&#xff09;相关资料参考专栏介绍示例效果 示例源代码&#xff08;共125行&…...

叠氮试剂79598-53-1,6-Azidohexanoic Acid,6-叠氮基己酸,末端羧酸可与伯胺基反应

●中文名&#xff1a;6-叠氮基己酸●英文名&#xff1a;6-Azidohexanoic Acid&#xff0c;6-Azidohexanoic COOH●外观以及性质&#xff1a;西安凯新生物科技有限公司供应的6-Azidohexanoic Acid浅黄色或者无色油状&#xff0c;叠氮化物可使用铜催化的Click化学与末端炔烃共轭&…...

wordpress海报功能/今天的新闻联播

一&#xff1a;基础设施之日志打印实战代码一 1-3万行代码&#xff0c;想收获多少就要付出多少&#xff0c;平衡 注意代码的保护&#xff0c;私密性 日志的重要性&#xff1a;供日后运行维护人员去查看、定位和解决问题&#xff1b; 新文件&#xff1a;ngx_printf.cxx以及n…...

wordpress 插件 扫描/如何免费做网站网页

1、选址多去走访调研 不同的顾客对水果的需求都不太一样&#xff0c;开店前的市场调查会对有很大的帮助。只要客流足够多&#xff0c;大家都有自己的位置&#xff0c;都方便的周边顾客的购买&#xff0c;谁也不能一家独大&#xff0c;大家都能分一杯羹&#xff0c;而且每年都有…...

做社群的网站有哪些/社交网络推广方法

传送门 咱先膜一下\(GXZ\)再说 我们先把序列从小到大排序&#xff0c;然后分情况讨论 无解是不存在的&#xff0c;从小到大输出所有数肯定可行 情况一&#xff0c;如果\(a[mid]a[mid1]\)&#xff0c;因为最终的中位数也是它们&#xff0c;那么我们可以让中位数一直等于\(a[mid]…...

wordpress用什么域名好/4a广告公司

DevExpress Winforms Controls 内置140多个UI控件和库&#xff0c;完美构建流畅、美观且易于使用的应用程序。无论是Office风格的界面&#xff0c;还是分析处理大批量的业务数据&#xff0c;DevExpress WinForms都能轻松胜任。DevExpress广泛应用于ECM企业内容管理、 成本管控、…...

wordpress的坑/网络seo排名

GET和POST是HTTP请求的两种基本方法form表单提交中的区别 get是从服务器上获取数据&#xff0c;post是向服务器传送数据。 get ->把 参数数据队列  加到 提交表单的action属性所指的 URL 中&#xff0c;值和表单内各个字段一 一对应。 post->是通过HTTPpost机制&…...

织梦手机网站有广告/太原seo网络优化招聘网

模板下载&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1_4z_Lg51jMT87RrRM6Qs3g 提取码&#xff1a;2gns 对MDK的AC6也做了支持&#xff1a; https://www.cnblogs.com/armfly/p/11256067.html 1、MDK使用MDK5.26及其以上版本。 2、IAR使用IAR8.30及其以上版本。 3…...