IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 别名机制alias详解——一个让你少敲键盘的偷懒方式 -> 正文阅读

[系统运维]别名机制alias详解——一个让你少敲键盘的偷懒方式

别名机制alias——让你少敲键盘的偷懒方式

样例环境

debian-kali-2021.2-amd64

Ubuntu-focal-liveserver-amd64

Debian10-buster

1.从一个例子开始:

ls 可谓我们在linux中最常使用的命令之一,我们常常使用 ls [各种参数] 来获悉当前路径下的内容

ls

但是我们也知道 ll 这个命令也同样是可以让我们获悉路径中的内容,在Ubuntu-focal中甚至还能知道各项内容的权限和分组:

在这里插入图片描述

但是我们使用 man ll 命令却没有任何内容,用 help ll 也是同样的无查询结果,也就是说明 ll 本身不是一个和 ls 等同地位的可执行程序命令,也不是一个系统内置函数。那它到底是什么?

这就是alias别名机制彰显其存在的地方了。

2.别名机制alias:

2.1 什么是alias:

? 首先alias不是一个独立的可执行程序(你可以man alias试试,看看是不是没有结果),它是一个shell所带的内置函数。通过man bash 并在内容中搜索alias可以看见alias的详细描述:

alias

介绍中有跟我们说明了:alias是一个可以让我们可以用一个字符串替换一个命令的功能。它有一个由shell维护的别名列表,我们可以通过alias、unalias往其中添加或删除别名。

一言蔽之:alias就是shell提供给我们的让我们少敲一些又臭又长命令的偷懒助手,有了alias我们就可以给那些我们不太愿意敲的(可能很常用的)命令起小名提高效率.

2.2 alias怎么用:

  1. alias的帮助文档:

    alias是 shell内置函数,所以查看它的帮助文档命令是 help alias

    help

  2. 查看别名:

    #查看所有别名:
    alias
    alias -p
    #查看某一别名
    alias 别名
    

    根据help的结果,查看alias可以使用的命令为: alias -p 但是实际操作时单单输入alias 同样也能够获得同样的效果:

    check

    这里我们就解决了开篇 ll 命令之问:ll 是添加进aliases list中的 ls -alF 的别名,理论上我们想把它定义成什么样,就能定义成什么样。

  3. 定义/删除 我们自己的别名:

    定义:

    alias 别名=替换命令
    

    我们尝试生成一个 sayhi 别名,每次sayhi的时候就让系统 echo helloword!

    sayhi

    可见成功添加alias之后,sayhi的结果如我们所预期的一样,并且列表中出现了我们的新命令。

    删除:

    unalias 别名
    

    unalias

    如上文所述操作,删除别名成功

2.3 alias的注意事项:

  • alias一但添加就会覆盖同名的命令:

    比如我们输入ls的时候,因为别名将ls替换为了ls --color=auto,所以我们看到的ls标准输出内容都是有对文件和文件夹进行了颜色区分的结果。

    而当我们有时候必须要使用被替换的原本命令时,有以下方法:

    #绝对路径方法
    $ /bin/vi test.sh #可以先which [command]得知命令的绝对地址
     
    #明确指定当前路径的方法,本质上也是绝对路径法
    $ cd /bin
    $ ./vi ~/test.sh
     
    #使用反斜线的方法
    $ cd
    $ \vi test.sh
    

    下图可见原本的ls命令是没有颜色区别的,单独的ls命令被覆盖了:

    compare

  • 手动alias添加的命令是临时性的:

    我们之前alias添加的别名sayhi哪怕不用unalias清除掉,在重启之后它也会自动消失,以防我们增加过多过于重复的别名。

  • 永久保存自定义alias:

    那么肯定有不少别名是我们想要永久保存的,毕竟每次重新设置一遍别名也太痛苦了,还不如手敲。为了实现这一点我们先观察 ~/.bashrc 文件,其中有对应的alias内容:

    # Alias definitions.
    # You may want to put all your additions into a separate file like
    # ~/.bash_aliases, instead of adding them here directly.
    # See /usr/share/doc/bash-doc/examples in the bash-doc package.
    
    if [ -f ~/.bash_aliases ]; then
        . ~/.bash_aliases
    fi
    

    根据这个文件的提示,我们把所有的别名设置方案加入到($HOME)目录下的 .bash_aliases 文件中(如果系统中没有这个文件,你就可以创建一个)这样设置后,用命令source ~/.bashrc,这样操作之后无论怎样重启系统,都不会影响设置的别名了。

    当然你也可以将.bashrc文件修改,让其中的.bash_aliases 更改为你自定义的其他名称,也可以在.bashrc文件里面直接增加alias的内容(当然,为了.bashrc文件的简洁性和可读性,我们还是建议选择创建并更改.bash_aliases文件)

    同时要注意一点: 因为这个永久更改内容是在用户家目录下进行的,所以当用户切换的时候,永久保存的alias名单也会有变化。

  • 不同的发型版本有不同的初始alias:

    比如kali、Ubuntu-focal和Debian10之间的默认alias就有相当的差距:

    kali:

kali

Ubuntu-focal:

ubuntu

Debian10:

Debian

参考文献:

alias命令_Linux alias命令:给命令定义别名

第二章:Linux服务器系统使用基础

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-02-05 22:03:22  更:2022-02-05 22:05:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 5:57:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码