• 68046

    文章

  • 643

    评论

  • 65

    友链

  • 最近新加了换肤功能,大家多来逛逛吧~~~~
  • 喜欢这个网站的朋友可以加一下QQ群,我们一起交流技术。

shell介绍,命令历史,命令补全和别名,通配符,输入输出重定向,管道符和作业控制

撸了今年阿里、腾讯和美团的面试,我有一个重要发现.......>>

shell介绍

  • 可以使用 yum list |grep zsh 或者 yum list |grep ksh
  • 这样可以搜索 zsh 和 ksh ,有需要的话可以安装
  • 总之,默认使用的就是 .bash shell

命令历史

  • 输入过的命令会被保存在一个文件内
  • 在shell界面,使用 上方向键 可以往上查看之前输入过的命令
  • 这个保存命令的文件地址在用户家目录下面
  • 例子:root 用户的家目录就是 /root
  • 保存过往命令的文件名称是 .bash_history
  • 那么root用户保存过往命令的文件路径就在 /root/.bash_history
  • 使用 history 命令就可以查看记录了多少条过往命令
  • 上图可以看到,输入的最后一条命令是 history
  • 序号是1003,说明.bash_history已经记录了1003条过往命令
  • 不过 .bash_history 最多只能存储1000条命令
  • 往上翻,可以看到,命令是从序号 4 开始的
  • 因为记录到1003条命令,但只能存1000条命令,所以最前面的3条命令被删除了
  • 有一个系统内置的环境变量 HISTSIZE
  • 使用上图命令,可以看到返回的值是 1000
  • 所以 .bash_history 最大记录的命令数量为1000
  • 使用 history -c 命令可以清空当前 .bash_history 的内容
  • 不过 history -c 只是清空内存中的内容,写进硬盘的内容并不会被清空
  • 使用终端时输入的命令都是保存在内存里面的
  • 退出终端的时候才会被写入硬盘
  • HISTSIZE 环境变量可以被修改
  • 可以在 /etc/profile 文件中修改
  • vi 打开 profile 文件,然后找到上图中的这个变量
  • 将变量数值修改为自己想要的数值,然后保存退出
  • 不过现在修改还没有生效,需要执行命令 source /etc/profile
  • 这样修改才会生效,可以使用 echo $HISTSIZE 查看是否生效
  • 或者退出终端,然后重新进入后也会生效
  • 如果想把命令输入的时间也记录进 .bash_history
  • 可以使用上图的命令,首先赋值给环境变量 HISTTIMEFORMAT
  • "%Y%m%d %H:%M:%S " 代表时间的格式:年月日 时:分:秒
  • 使用 echo $HISTTIMEFORMAT 查看格式的值是否改变了
  • 可以看到下面返回的值是 "%Y/%m/%d %H:%M:%S "
  • 系统默认 HISTTIMEFORMAT 的值为空,所以新建一个终端这个变量的值是为空的
  • 如图,可以看到,再使用 history 命令查看记录在内存里面的过往命令
  • 每一条过往命令都增加了使用时间的记录
  • 如果希望永久保留这个设置,而不是每次打开终端都要重新设置一遍
  • 可以在 /etc/profile 文件里面设置这一个变量
  • 用 vim 打开 profile
  • 如图,找到 HISTSIZE,在它的下面增加一行,HISTTIMEFORMAT
  • 就把之前设置变量的格式复制到这里,然后保存退出
  • 然后需要 source /etc/profile 一下使其生效
  • 然后重新进入终端
  • 可以发现,默认 HISTTIMEFORMAT 的值已经是之前设置的格式了
  • 上图命令是对 .bash_history 文件追加 a 权限
  • 增加 a 权限后,这个文件就只能被追加信息,而不会被删除信息
  • 这样就可以无限的保存命令到这个命令历史文件里面了
  • 但是如果不正常退出终端的话,有可能过往命令会保存不全
  • 正常退出终端需要使用命令 logout 或者 exit

  • 命令 !! 会执行上一条命令,也就是说命令历史里面记录的最后一条命令
  • 比如使用 ls 命令后,再使用 !! 命令
  • 那么就会再执行一次 ls 命令,因为上一条命令是 ls

  • 命令 !n ,n代表数字
  • 使用命令 history 查看命令历史,每一条命令都有一个id号码
  • 例子,使用命令 !768 那么就会执行命令历史里面id为768的命令

  • 命令 !word ,word代表单词
  • 比如在命令历史里面,总共使用了3次 ls /root 命令
  • 然后使用命令 !ls
  • 那么就会执行命令历史里面最后一次 ls 命令
  • 也可以使用 !vim 或者 !echo
  • 那么也会执行命令历史里面最后一次使用 vim 或者 echo 的命令

 转载至链接:https://my.oschina.net/u/4150462/blog/3109107。

695856371Web网页设计师②群 | 喜欢本站的朋友可以收藏本站,或者加入我们大家一起来交流技术!

欢迎来到梁钟霖个人博客网站。本个人博客网站提供最新的站长新闻,各种互联网资讯。 还提供个人博客模板,最新最全的java教程,java面试题。在此我将尽我最大所能将此个人博客网站做的最好! 谢谢大家,愿大家一起进步!

转载原创文章请注明出处,转载至: 梁钟霖个人博客www.liangzl.com

0条评论

Loading...


发表评论

电子邮件地址不会被公开。 必填项已用*标注

自定义皮肤
注册梁钟霖个人博客