3 命令别名与历史命令

在早期DOS年代,可以使用 cls 清楚我们屏幕上的信息,但是在Linux当中使用的是 clear 清楚画面。那么我们可不可以让cls等于clear呢?在Bash当然可以,这样的操作成为 命令别名,我们输入的每一条指令都会被记录下来,成为 历史命令

3.1 命令别名配置:alias unalias

命令别名的意思就是:将系统存在的命令赋予新的别名,可以一同使用
一般在一下几种情况会用到我们的命令别名:

(1)管用命令特别长的时候:

举个例子来说,让我们要查询隐藏的文档,并且需要长的列出一页一页的翻看,那我们下达的命令为 ls -al | more , 每次都这样输入真的很麻烦,那我们可以通过 命令别名进行配置

# 例子1:使用alias简洁命令
[tanzitao@node03 ~]$ alias lm='ls -al | more'  <-- 雀食节省了很多的空间

(2)可以预防我们误操作:

我们经常会去删除文件等,可能我们有时候脑子一抽就把整个文件夹里的所有文件都删除了

# 例子2:使用alias预防误操作
[tanzitao@node03 ~]$ alias rm='rm -i'       <-- 这样设置后每次删除都会询问再次确认删除

(3)查看我们所有的命令别名

# 例子3:alias查看所有的命令别名
[tanzitao@node03 ~]$ alias
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 lm='ls -al | more'
alias ls='ls --color=auto'
alias rm='rm -i'            <-- 刚刚设置的内容就存在啦
alias vi='vim'              <-- vi和vim 不太一样 vim可以额外做一些语法检测和颜色显示,默认的root是单纯使用vi而已
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'# 可以看到系统内置了许多的命名别名

(4)取消命令别名

    # 例子4:unalias取消命令别名[tanzitao@node03 ~]$ rm 123.txt                 <-- 保留例2中的别名rm: remove regular empty file '123.txt'? yes    <-- 删除前需要用户确认[tanzitao@node03 ~]$ unalias rm                 <-- 使用unalias取消命名[tanzitao@node03 ~]$ rm 456.txt                 <-- 直接删除,没有询问

3.2 历史命令:history

在bash当中提供有命令历史的服务,可以查询我们曾经下达过的命令,使用 history 就可以完成操作,不过这里我们先用命令别名简化下我们的命令

[tanzitao@node03 ~]$ alias h='history'              <-- 命令别名 活学活用[tanzitao@node03 ~]$ history [n]
[tanzitao@node03 ~]$ history [-c]
[tanzitao@node03 ~]$ history [-raw] histfiles
选项与参数:
n   :数字,意思是『要列出最近的 n 笔命令行表』的意思!
-c  :将目前的 shell 中的所有 history 内容全部消除
-a  :将目前新增的 history 命令新增入 histfiles 中,若没有加 histfiles ,则默认写入 ~/.bash_history
-r  :将 histfiles 的内容读到目前这个 shell 的 history 记忆中;
-w  :将目前的 history 记忆内容写入 histfiles 中!

(1)使用history查看所有的历史

# 例子1:列出目前内存的所有history记忆 注意!当前内存[tanzitao@node03 ~]$ h
...                         <-- 前面省略
159  history
160  alias h='history'
161  h                      <-- 当前命令

列出的信息信息当中一共有两行:
第一行:命令所在当前shell当中为第几个命令
第二行:命令本身

(2)使用history n查看进n调命令

# 例子2:列出近5条命令
[tanzitao@node03 ~]$ h 5
158  rm 456.txt
159  history
160  alias h='history'
161  h
162  h 5

(3)使用history -w写入数据

# 例子3:立刻将当前数据写入histfile当中
[tanzitao@node03 ~]$ h -w               <-- 默认会写入到 "./bash_history"当中
[tanzitao@node03 ~]$ echo $HISTSIZE     <-- 查看HISTESIZE最多保留多少条记录
1000

在正常的情况下,历史命令的读取与记录是这样的:

  • 当我们以 bash 登录 Linux 主机之后,系统就会自动的调动文件 ~/.bash_history 读取曾经的命令,至于命令的数量就有 环境变量 HISTFILESIZE 决定了

  • 假设我这次登陆主机后,共下达过 100 次命令,等我注销时, 系统就会将 101~1100 这总共 1000 笔历史命令更新到 ~/.bash_history 当中 也就是说,历史命令在我注销时,会将最近的 HISTFILESIZE 笔记录到我的纪录文件当中

  • 当然,也可以用 history -w 强制立刻写入的,但是 ~/.bash_history 记录的笔数永远都是 HISTFILESIZE 那么多,旧的信息会被主动的拿掉, 仅保留最新的

(4)"!"命令的使用

[tanzitao@node03 ~]$ !number
[tanzitao@node03 ~]$ !command
[tanzitao@node03 ~]$ !!
选项与参数:
number  :运行第几笔命令的意思;
command :由最近的命令向前搜寻『命令串开头为 command』的那个命令,并运行;
!!      :就是运行上一个命令(相当于按↑按键后,按 Enter[tanzitao@node03 ~]$ h 5
192  alias h='history'
193  h
194  h 5
195  h 3
196  h 5
[tanzitao@node03 ~]$ !194  <-- 运行第194的命令
[tanzitao@node03 ~]$ !!    <-- 运行上一个命令
[tanzitao@node03 ~]$ !h    <-- 运行最近一 al 为开头的命令

Linux的Bash——(三)命名别名与历史命令相关推荐

  1. linux bash gt,linux之bash的基础特性(一)--gt;命令历史(history命令),命令补全,路径补全...

    关于命令历史-->history 1.与之相关的环境变量:HISTSIZE,HISTFILE-->~/.bash_history,HISTFILESIZE,HISTCONTROL,HIST ...

  2. bash功能特性二 命令别名和历史命令

    一.历史命令 bash提供存储历史命令的功能,下面来详细介绍一下. 1.history命令 命令格式:history [options] options: 不带参数选项:显示所有使用过的命令: #(数 ...

  3. Linux基础——bash基础应用及文件系统基础命令

    (一).命令别名 alias用于获取当前用户可用的别名定义 [root@localhost ~]# alias alias cp='cp -i' alias egrep='egrep --color= ...

  4. 【Linux】命令别名与历史命令(alise\history)

    1. 命令别名(alise) 这个指令可以预防一些不小心误杀文件的情况发生,我们知道 root 可以移除 (rm) 任何数据!所以当你以 root 的身份在进行工作时,需要特别小心, 但是总有失手的时 ...

  5. Linux学习(三):管道相关命令

    学习目标 熟练掌握以下命令 1.cut 2.sort 3.wc 4.uniq 5.tee 6.tr 7.split 8.awk 9.sed / grep 熟练掌握以下命令 1.cut 准备工作 成绩表 ...

  6. 每天一个新知识之LInux的Bash

    文章目录 一.Bash的模式 二.Bash常用快捷键 三.Bash的标准输入输出 四.Bash的输入输出重定向 1.输出重定向 2.输入重定向 五.多命令的顺序执行 六.管道符 七.Bash中的通配符 ...

  7. Linux中bash

    1 查看可以使用的shell 2 查看命令是内置还是外部 3 shell变量 3.1 变量的显示: 3.2 变量的设置 3.3 变量取消 3.4 环境变量 3.5 自定义变量转环境变量 3.6 变量从 ...

  8. Linux提升系统安全性:历史命令 HISTSIZE

    在Linux中Shell环境的命令历史机制为用户提供了极大的便利,同时也给用户带来了潜在的风险.只要获得用户的命令历史文件,该用户的命令操作过程将会一览无余,如果曾经在命令行输入明文的密码,则无意中服 ...

  9. Linux下批量重命名文件

    Linux下批量重命名文件 通过rename命令批量重命名文件 基本语法 示例 1. 改变文件扩展名 2. 大写改成小写 3. 更改文件名模式 通过rename命令批量重命名文件 基本语法 renam ...

最新文章

  1. Python 列表拷贝
  2. Mysql重置初始密码的方法
  3. linux的mutex状态查询命令,如何断言std :: mutex是否已锁定?
  4. 面试官问:来实现一个Promise
  5. (计算机组成原理)第二章数据的表示和运算-第三节1:浮点数的表示
  6. EhCache 常用配置项详解
  7. html+css+js中的小知识点汇聚(无序 停更)
  8. lua html 转义字符,Lua中特殊字符过滤(UTF8编码)
  9. 挂载报错:“/dev/vda1 is apparently in use by the system;”
  10. [Oracle整理]树形查询(start with connect by)
  11. 一个完全免费的在线文字云网站
  12. 最新TIOBE编程语言排行:C语言第一,Python反超Java,挤进第二
  13. 高德导航过程中实时获取道路信息
  14. 国家标准中常出入的IDT、MOD、EQV、NEQ是啥意思
  15. oracle 列转行字符串,oracle 字符串列转行
  16. Pytorch实现人脸多属性识别
  17. 用USART来替代SPI,效果非常不错
  18. 【摘】UI设计中对比色颜色的选取
  19. S7-1200循环中断OB30的使用方法及示例程序
  20. 【Python 每日一技】根据序列中每个元素共同的数据域进行分组迭代

热门文章

  1. 标准的弯腿90度图片_桥架直角90度做法图片
  2. 东软睿道实训心得:女生更好学好技术
  3. android 如何判断去电或来电已经接通
  4. 7款神仙级非常漂亮的 Linux 操作系统UI,你都用过吗
  5. 速度与激情:雷军和小米手机的三国杀
  6. 搭建系统|为何我坚持要用Python搭建属于自己的股票量化交易系统
  7. mac 无法识别seagate硬盘、无法向其写入文件
  8. 排球制作html,3D教程-排球的制作
  9. 案例+图解带你一文读懂SVG
  10. 背完这446句,你的口语绝对不成问题了(推荐一个英语学习QQ群:102865269)