linux基本功系列之alias命令实战

news2024/11/16 18:34:11

本文目录

文章目录

  • 前言🚀🚀🚀
  • 一. alias命令介绍
  • 二. 语法格式及常用选项
  • 三. 参考案例
    • 3.1 查看系统已经存在的别名
    • 3.2 设置别名的操作
    • 3.3 取消别名
    • 3.4 alias的全局生效和当前用户生效
  • 四. 使用命令的注意事项
  • 总结

前言🚀🚀🚀

想要学好Linux,命令是基本功,企业中常用的命令大约200多个,不管是写shell脚本还是管理操作系统,最常用的命令必须要牢牢掌握,像我们以前学乘法口诀一样,烂熟于心,唯有如此,才能打牢基础。
💓 知识最重要的是记忆
💓 入门须知: 想要人生从容,必须全力以赴,努力才是你最终的入场券🚀🚀🚀
💕 最后: 努力成长自己,愿我们都能在看不到的地方闪闪发光 ,一起加油进步🍺🍺🍺

一. alias命令介绍

alias命令用来设置指令的别名。

作用: 我们可以使用该命令可以将一些较长的命令进行简化。

使用alias时,用户必须使用单引号 ‘ ‘ 将原来的命令引起来,防止特殊字符导致错误。

alias命令的作用只局限于该次登入的操作,相当于临时变量。

若要每次登入都能够使用这些命令别名,则可将相应的alias命令存放到bash的初始化文件 /etc/bashrc中。

二. 语法格式及常用选项

先来查看一下帮助文档

[root@mufenggrow ~]# help alias
alias: alias [-p] [名称[=值] ... ]
    定义或显示别名。
    
    不带参数时, `alias' 以可重用的格式
    `alias 名称=值'在标准输出设备上打印别名列表。
    
    否则,对于每个给定值的名称定义一个别名。
    值末尾的空格会使下一个词被检测
    作为别名替换展开。
    
    选项:
      -p	以可重用的格式打印所有的已定义的别名
    
    退出状态:
    除非一个没有定义的名字被作为参数提供,否则 alias 
    返回值为真。

可以看到alias只有一个-p参数

在这里插入图片描述

接下来,我们进行案例的测试:

三. 参考案例

3.1 查看系统已经存在的别名

linux操作系统中,默认预设了一些拥有别名的命令,我们可以使用alias -p进行查看:

[root@mufenggrow ~]# alias -p
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@mufenggrow ~]# 

可以看到,系统中cp -i的别名是cp,也就意味着我们执行cp命令和执行cp -i是一样的。

-i参数通常的是英文 --interactive 的缩写,常见释义如下:

在这里插入图片描述
在我们使用一些危险的命令的时候,比如rm命令删除,有交互提示是否删除,肯定是最保险的选择,所以默认带有i参数。

3.2 设置别名的操作

一些比较长的命令,我们习惯上使用别名,操作会更简单一点。

[root@mufenggrow ~]# alias vimnet='grep IPADDR /etc/sysconfig/network-scripts/ifcfg-ens32 '
[root@mufenggrow ~]# vimnet
#IPADDR=192.168.1.101

可以看到,我们设置了别名后,可以直接执行别名,就可以获得想要的信息。

3.3 取消别名

取消别名我们使用的命令是unalias. unalias命令是是为shell内建命令。

如果需要取消任意一个命令别名,则使用该命令别名作为指令的参数选项即可。

如果使用-a选项,则表示取消所有已经存在的命令别名。

我们查看下这个命令的帮助文档:

[root@mufenggrow ~]# help unalias 
unalias: unalias [-a] 名称 [名称 ...]
    从别名定义列表中删除每一个“名字‘。
    
    选项:
      -a	删除所有的别名定义.
    
    返回成功,除非“名字“不是一个已存在的别名

可以看到,只有一个-a参数

在这里插入图片描述

接下来我们取消下刚才执行的命令:

[root@mufenggrow ~]# unalias vimnet
[root@mufenggrow ~]# vimnet
bash: vimnet: 未找到命令...

可以看到取消完之后,就不会再有原来的命令了。

3.4 alias的全局生效和当前用户生效

对当前用户生效的配置文件在: ~/.bashrc
对所有用户生效的文件在 /etc/bash.rc

先来看看对当前用户生效的时候
在配置文件 ~/.bashrc中添加以下内容:

alias vimnet=‘cat /etc/passwd |wc -l’

在这里插入图片描述

执行查看结果:

[root@mufenggrow ~]# source .bashrc

[root@mufenggrow ~]# vimnet 
44

在当前用户可以执行,换成其他用户测试:

mufenggrow ~]# su - mufeng
[mufeng@mufenggrow ~]$ vimnet
bash: vimnet: 未找到命令...
[mufeng@mufenggrow ~]$ 

发现切换到其他用户则无法执行。

接下来,我们切换成全局变量来设置并测试:

在配置文件 /etc/bashrc中进行设置:

[root@mufenggrow ~]# vim /etc/bashrc
在这里插入图片描述
设置完成后,我们进行测试,测试前先要source一下:

[root@mufenggrow ~]# source /etc/bashrc

在root中执行:

[root@mufenggrow ~]# vimnet 
45

以上结果表示在root中可以执行。接下来我们到普通用户mefeng中进行测试:

@mufenggrow ~]# su - mufeng
上一次登录:三 118 12:32:57 CST 2023pts/0 上
[mufeng@mufenggrow ~]$ vimnet 
45
[mufeng@mufenggrow ~]$ 

可以看到在普通用户中也可以执行,说明设置的全局变量生效了。

四. 使用命令的注意事项

别名虽好,但也有它的弊端,比如定义的别名恰好和某个命令重名了,这就麻烦了,Shell 中执行的将永远都是别名。

如果我们想执行真正的那个命令而非别名,该怎么办呢?有三种方法可以解决这个问题:
方案一:使用命令的绝对路径。
方案二:切换到命令所在的目录,执行./command。
方案三:在命令前使用反斜线(\)。

这里仅显示ifconfig命令:

## 设置别名
[root@mufenggrow ~]# alias  ifconfig='ls'
## 执行命令发现执行的是别名
[root@mufenggrow ~]# ifconfig
anaconda-ks.cfg  initial-setup-ks.cfg  公共  模板  视频  图片  文档  下载  音乐  桌面
## 加上反斜杠来解决只能执行别名的情况
[root@mufenggrow ~]# \ifconfig
ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.101  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::d524:3f3e:45ed:79c3  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:07:39:cc  txqueuelen 1000  (Ethernet)
        RX packets 662509  bytes 959496840 (915.0 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 178133  bytes 12980086 (12.3 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

总结

💕💕💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!✨ ✨ ✨
🍻🍻🍻如果你喜欢的话,就不要吝惜你的一键三连了~

请添加图片描述
在这里插入图片描述

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

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

相关文章

行云洞见 | 为什么说云端IDE代表未来趋势?

原文作者&#xff1a;行云创新解决方案架构师 李楠 预知未来最可靠的方法是了解历史&#xff0c;让我们简单回顾下IDE的发展史。 所谓IDE&#xff0c;即集成开发环境&#xff0c;是软件开发人员在他们用于编程的计算机本地安装的应用程序。伴随着计算机编程语言从第一代机器语…

【NI Multisim 14.0虚拟仪器设计——放置虚拟仪器仪表(万用表)】

目录 序言 &#x1f34d;放置虚拟仪器仪表 &#x1f349;万用表 序言 NI Multisim最突出的特点之一就是用户界面友好。它可以使电路设计者方便、快捷地使用虚拟元器件和仪器、仪表进行电路设计和仿真。 首先启动NI Multisim 14.0&#xff0c;打开如图所示的启动界面&#x…

【虹科分享】虹科ATEasy软件,您的测试执行和开发专家!

测试和执行专家 虹科ATEasy是功能测试&#xff0c;自动测试系统&#xff0c;数据采集&#xff0c;过程控制和仪表系统的测试执行和快速应用开发框架。虹科ATEasy提供开发&#xff0c;部署和维护软件组件的所有必要工具&#xff0c;包括仪器驱动程序&#xff0c;测试程序&#x…

SGA与PGA的区别

前几天有被别人问到什么是SGA和PGA&#xff0c;说实在的&#xff0c;之前一直搞分布式&#xff0c;已经基本把单机里面的这两个概念忘记的差不多了&#xff0c;不过当时还是根据自己的一点数据库经验说了点七七八八&#xff0c;后来网上查了一下相关说明&#xff0c;发现自己的…

现货黄金与白银现货的区别

黄金与白银同为贵金属&#xff0c;二者均在人类货币史上担当过货币的功能&#xff0c;而现货黄金与白银现货作为其最重要的金融衍生品&#xff0c;都具备良好的收益性、流动性和的可操作性&#xff0c;都是比较理想的投资产品。那么和现货黄金和白银现货的区别在哪里呢?小编认…

C++初学者学习笔记

面向对象的程序设计 初步理解 相比较于面向过程的程序设计来说有更多的封装的函数可以使用&#xff0c;相比较来说会比较方便。但是如何去设计整个程序的思路也是需要一定的训练的。 C 简介 C 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言&#xf…

linux系统目录结构

在 Linux 或 Unix 操作系统中&#xff0c;所有的文件和目录都被组织成以一个根节点开始的倒置的树状结构。 文件系统的最顶层是由根目录开始的&#xff0c;系统使用 / 来表示根目录。在根目录之下的既可以是目录&#xff0c;也可以是文件&#xff0c;而每一个目录中又可以包含…

【荐书】C程序设计语言(第二版)

“在大多数人眼中&#xff0c;我是个一事无成、乖僻古怪、令人作呕的人。我毫无社会地位可言&#xff0c;也永远不会有。总之&#xff0c;我是底层人中的底层人。好吧&#xff0c;就算这些看法都完全正确&#xff0c;我也想有那么一天&#xff0c;通过我的作品向他们展示&#…

C++模板(函数模板,类模板)的基本使用与非类型模板参数与模板的特化

C模板模板初阶泛型编程函数模板函数模板概念函数模板格式函数模板的原理函数模板的实例化隐式实例化显式实例化&#xff1a;在函数名后的<>中指定模板参数的实际类型模板参数的匹配原则类模板类模板的定义格式类模板的实例化模板进阶非类型模板参数模板的特化概念函数模板…

【TypeScript】TS与Vue

TypeScript与Vue 文章目录TypeScript与VuedefineProps与TypescriptdefineEmits与Typescriptref与Typescriptreactive与Typescriptcomputed与Typescript事件处理与TypescriptTemplate Ref与Typescript可选链操作符非空断言参考链接&#xff1a;https://vuejs.org/guide/typescri…

【OpenGL学习】texture

纹理 一、什么是纹理&#xff1f; 引用百度百科的定义&#xff1a; 计算机图形学中的纹理既包括通常意义上物体表面的纹理即使物体表面呈现凹凸不平的沟纹&#xff0c;同时也包括在物体的光滑表面上的彩色图案&#xff0c;通常我们更多地称之为花纹。对于花纹而言&#xff0c…

ES6 课程概述⑦

文章目录Vuex_State安装使用State在 Vue 组件中获得 Vuex 状态mapState 辅助函数Vuex_Getter通过属性访问通过方法访问mapGetters 辅助函数Vuex_Mutation在组件中提交 Mutation提交载荷&#xff08;Payload&#xff09;对象风格的提交方式使用常量替代 Mutation 事件类型Mutati…

Spring Boot(五十六):基于Redis的搜索栏热搜功能

1 功能要求 使用SpringBoot和redis实现一个简单的热搜功能&#xff0c;具备以下功能&#xff1a; 搜索栏展示当前登陆的个人用户的搜索历史记录&#xff0c;删除个人历史记录用户在搜索栏输入某字符&#xff0c;则将该字符记录下来 以zset格式存储的redis中&#xff0c;记录该…

Flink DataSet API和DataStream API 对于WordCount的演示

文章目录准备工作Flink DataSet APIFlink DataStream API结论准备工作 pom依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-insta…

如何多人配音一个作品?这3招帮你快速实现

大家平时喜欢听书吗&#xff1f;听书是一种既能释放双眼&#xff0c;又能降低压力的放松方式。那么大家平时在听书的时候&#xff0c;有没有碰到过一些多人配音的小说&#xff1f;大家有好奇过这样的小说是怎么来的吗&#xff1f;今天&#xff0c;教大家多人配音怎么制作的&…

请问想考软考,零基础的话,哪个证书最好考呢

可以直接考中级&#xff0c;软考中级中也有适合零基础报考的&#xff0c;中级的含金量也比初级的高&#xff0c;初级的用途不太大&#xff0c;建议直接中级。 系统集成项目管理工程师&#xff0c;软考中级比较热门的一个科目&#xff0c;零基础的也适合相比较容易通过。 软考…

Fisher确切概率基本原理详解

Fisher确切概率 基本原理 比较两组有效率是否有差异。 在周边合计不变的情况下&#xff0c;计算实际频率变动时的Pi&#xff08;概率&#xff09;。然后计算累积概率&#xff0c;依据检验水平做推断。 累积概率的计算 以a从小到大的概率排序 左侧概率&#xff1a;现有样本…

【SpringCloud17】SpringCloud Alibaba入门简介

1.为什么会出现SpringCloud Alibaba Spring Cloud Netflix项目进入维护模式官网 1.1 什么是维护模式 将模块置于维护模式&#xff0c;意味着 Spring Cloud 团队将不会再向模块添加新功能。我们将修复 block 级别的 bug 以及安全问题&#xff0c;我们也会考虑并审查社区的小型 …

shell处理多盘跑fio(minimal)的结果脚本编写

作为一个专业测试storage的测试人员&#xff0c;除了对服务器&#xff0c;硬盘熟悉之外&#xff0c;还要对测试工具fio特别熟悉才行。如果在OEM或者专门的HDD&SSD厂家测试&#xff0c;会经常看到测试脚本里边&#xff0c;开发喜欢用fio minimal 模式&#xff0c;这样解析lo…

【GD32F427开发板试用】利用SPI驱动ADS8354

本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动&#xff0c;更多开发板试用活动请关注极术社区网站。作者&#xff1a;STY 前言 本文期望通过板载硬件SPI外加DMA传输的方式来实现对全差分同步采样模数转换器ADS8354的控制&#xff0c;并且将采集数据进行初步脉冲…