`
jimode2013
  • 浏览: 39397 次
社区版块
存档分类
最新评论

第十一章、认识与学习 BASH 命令别名与历史命令

 
阅读更多

命令别名与历史命令:

在 Linux 里面,使用 clear 来清除屏幕。


命令别名配置: alias, unalias

 

[root@www ~]# alias lm='ls -al | more'
[root@www ~]# alias rm='rm -i'
[root@www ~]# alias
alias cp='cp -i'
alias l.='ls -d .* --color=tty'
alias ll='ls -l --color=tty'
alias lm='ls -l | more'
alias ls='ls --color=tty'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --show-dot --show-tilde'

 vi 与 vim 是不太一样的,vim 可以多作一些额外的语法检验与颜色显示,默认的 root 是单纯使用 vi 。

[root@www ~]# unalias lm

 

例题:
DOS 年代,列出目录与文件就是 dir ,而清除屏幕就是 cls ,那么如果我想要在 linux 里面也使用相同的命令呢?
答:
 
alias cls='clear'
alias dir='ls -l'

历史命令:history

 

[root@www ~]# alias h='history'

 

[root@www ~]# history [n]
[root@www ~]# history [-c]
[root@www ~]# history [-raw] histfiles
选项与参数:
n   :数字,『要列出最近的 n 笔命令行表』!
-c  :将目前的 shell 中的所有 history 内容全部消除
-a  :将目前新增的 history 命令新增入 histfiles 中,若没有加 histfiles ,
      则默认写入 ~/.bash_history
-r  :将 histfiles 的内容读到目前这个 shell 的 history 记忆中;
-w  :将目前的 history 记忆内容写入 histfiles 中!

范例一:列出目前内存内的所有 history 记忆
[root@www ~]# history
# 前面省略
 1017  man bash
 1018  ll
 1019  history 
 1020  history
# 列出的信息当中,共分两栏,第一栏为该命令在这个 shell 当中的代码,
# 另一个则是命令本身的内容!

范例二:列出目前最近的 3 笔数据
[root@www ~]# history 3
 1019  history 
 1020  history
 1021  history 3

范例三:立刻将目前的数据写入 histfile 当中
[root@www ~]# history -w
# 在默认的情况下,会将历史纪录写入 ~/.bash_history 当中!
[root@www ~]# echo $HISTSIZE
1000

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

  • 当我们以 bash 登陆 Linux 主机之后,系统会主动的由家目录的 ~/.bash_history 读取以前曾经下过的命令,

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

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

 

[root@www ~]# !number
[root@www ~]# !command
[root@www ~]# !!
选项与参数:
number  :运行第几笔命令的意思;
command :由最近的命令向前搜寻『命令串开头为 command』的那个命令,并运行;
!!      :就是运行上一个命令(相当于按↑按键后,按 Enter)

[root@www ~]# history
   66  man rm
   67  alias
   68  man history
   69  history 
[root@www ~]# !66  <==运行第 66 笔命令
[root@www ~]# !!   <==运行上一个命令,本例中亦即 !66 
[root@www ~]# !al  <==运行最近以 al 为开头的命令(上头列出的第 67 个)

 


  • 同一账号同时多次登陆的 history 写入问题

同时开好几个 bash 接口,这些 bash 的身份都是 root 。 因为这些 bash 在同时以 root 的身份登陆, 因此所有的 bash 都有自己的 1000 笔记录在内存中。因为等到注销时才会升级记录文件, 最后注销的那个 bash 才会是最后写入的数据。如此一来其他 bash 的命令操作就不会被记录下来了 (其实有被记录,只是被后来的最后一个 bash 所覆盖升级了) 。

由于多重登陆有这样的问题,所以很多朋友都习惯单一 bash 登陆,再用工作控制 来切换不同工作! 这样才能够将所有曾经下达过的命令记录下来,也才方便未来系统管理员进行命令的 debug!


  • 无法记录时间

历史命令还有一个问题,那就是无法记录命令下达的时间。由于这 1000 笔历史命令是依序记录的, 但是并没有记录时间,所以在查询方面会有一些不方便。如果读者们有兴趣,其实可以透过 ~/.bash_logout 来进行 history 的记录,并加上 date 来添加时间参数,也是一个可以应用的方向!

 


 

分享到:
评论

相关推荐

    鸟哥的 Linux 私房菜第11章-认识与学习 BASH1

    在Linux中,Shell不仅是一个命令执行环境,它还提供了丰富的功能,如变量设定、数据流重定向、命令别名、历史命令记录等。 1. **硬件、核心与 Shell** 在计算机系统中,硬件执行实际的物理操作,而内核(Kernel)...

    Bash使用 文档.doc

    bash 中可以查看使用过的命令历史记录(history),并可以定义命令的别名(alias),以便快速地执行常用的命令。 五、重定向与管道命令 bash 中可以使用重定向符(&gt;、&gt;&gt;、&lt;、)和管道符(|)来重定向命令的输出...

    Bash Beginners Guide-中文版

    11. **Shell扩展**:探索Bash提供的高级特性,如命令替换、参数扩展、历史扩展等。 12. **脚本调试**:掌握如何使用`set`命令和`bash -x`选项进行脚本调试。 13. **权限和所有权**:理解文件的权限模式(如`rwx`)...

    Bash Pocket Reference, 2nd Edition(2016)

    ##### 第十一章:命令历史 - **历史记录**:解释了如何查看和管理命令历史记录。 - **历史替换**:说明了如何利用历史替换功能提高效率。 ##### 第十二章:可编程完成 - **自定义完成**:介绍了如何为自定义命令...

    bash shell高级编程

    16. **历史记录**:`history`命令列出历史命令,`!n`或`!-n`执行历史中的第n条命令。 17. **I/O重定向与 tee 命令**:`tee`命令可以同时将数据输出到屏幕和文件,例如`command | tee output.txt`。 18. **过程订阅...

    BASH官方文档BASH官方文档

    - **命令行参数**: `$0`到`$9`分别代表命令行中的第一个到第十个参数,`$*`和`$@`用于表示所有参数。 - **命令别名**: 可以通过`alias`命令创建命令的快捷方式。 - **历史记录**: BASH自动保存执行过的命令,可以...

    Bash Quick Reference

    Bash(Bourne-Again SHell)是一种广泛使用的Unix shell 和命令语言。本文档是针对Bash 2.02.0版本的快速参考指南,由Arnold Robbins编写,并感谢Chet Ramey(Bash维护者)的帮助和支持。此参考文档主要介绍了Bash的...

    鸟哥Linux私房菜

    11. **bash**:在第十一章全面介绍。bash(Bourne-Again Shell)是最常用的Linux shell之一,提供了丰富的功能和脚本支持。 12. **bashrc**:在第十一章第4.3节中描述。bashrc文件包含用户的shell配置选项和默认值...

    IBM AIX系列培训\IBM AIX系列培训 - 16 AU13第十五章 其他shell特点.zip

    在第十五章“其他shell特点”中,我们将会了解到shell作为用户与系统交互的界面,其在AIX环境中的独特特性和使用技巧。 shell是Unix和类Unix系统中的一种命令解释器,它允许用户通过文本命令来执行系统操作。在AIX...

    鸟哥linux私房菜

    - **head/history**:查看文件前几行(head)和命令历史记录(history),详情见第七章3.3节和第十一章3.2节。 #### I - **iconv/id**:字符编码转换工具(iconv)和用户信息查询(id),详情见第十章4.3节和第十...

    shell命令1-15pdf

    8. **脚本编写**:第十一章(11.pdf)可能教授如何编写Shell脚本,包括变量、函数、错误处理和脚本的执行权限。 9. **高级话题**:第十四章(14.pdf)和第十五章(15.pdf)可能包含更复杂的话题,如环境变量、别名...

    bash_shell_cheat_sheetV2_shell_

    n`: 重新执行历史记录中的第n条命令。 - `!!`: 重新执行上一条命令。 6. **环境变量** - `$HOME`: 用户主目录。 - `$PATH`: 搜索可执行文件的路径列表。 - `$PS1`: 提示符字符串,可以自定义。 7. **条件测试*...

    shell编程从入门到精通

    ### 第十一章:正则表达式和模式匹配 学习正则表达式的基础知识,以及如何在Shell中使用`grep`、`sed`和`awk`进行文本处理。 ### 第十二章:Shell函数库和模块化编程 了解如何编写可重用的函数库,以及如何通过`...

    计算机软件基础:06第一章UNIX_Cshell.doc

    《计算机软件基础》第六讲第一章主要讲解了操作系统中的Unix Shell,特别是C Shell的特点和使用。C Shell是一种Unix和类Unix系统中的命令解释器,它扩展了原始的B Shell功能,提供了更多的用户交互特性。 C Shell的...

    Unix课件

    第十一章:Unix工具与实用程序 最后,这一章可能会汇总各种实用工具,如find、du、top、ps等,以及系统管理任务,如备份、更新、性能监控等。 以上内容仅根据标题和描述推测,实际的课件可能根据教学需求有所调整。...

    《鸟哥的Linux私房菜》基础篇-知识整理-读后感

    第十一章是关于正则表达式的,这是文本处理和文件格式化处理的关键。读者将学习正则表达式的基础知识和扩展技巧,以及如何利用它们进行高效的数据匹配和处理。 第十二章涉及Shell脚本编程,读者将学习如何编写简单...

Global site tag (gtag.js) - Google Analytics