Linux5-bash基础特性之命令历史

Linux系统上的文件类型

-:常规文件,即f
d:directory,目录文件
b:block device,块设备文件,支持以“block”为单位进行随机访问
c:character device,字符设备,支持以“character”为单位进行线性访问
major number:主设备号,用于标识设备类型,进而确定要加载的驱动程序
minor number:次设备号,用于标识同一类型中的不同设备,主设备号与次设备号用逗号分隔
l:符号链接文件,类似Windows的快捷方式
p:pipe,命名管道
s:socket,套接字文件

基本命令

命令根据其是否在文件系统上存在一个与之对应的同名的文件,可以将命令分为外部命令和内部命令

  • 内部命令(shell内部命令):builtin
  • 外部命令:显示为命令文件路径
  • 注意:命令可以有别名,别名可以与原名相同,此时原名被隐藏,此时如果要运行原命令,则使用\COMMAND
    在这里插入图片描述
    如果就想运行命令本身该如何???
\ls

在这里插入图片描述

命令别名

获取系统上别名命令的列表

alias

在这里插入图片描述
在这里插入图片描述

定义别名

使用alias定义,定义的别名只对当前shell进程有效

alias NAME='COMMAND'

在这里插入图片描述

撤销别名

仅对当前shell有效(第一,有时间限定,shell进程终止即失效;第二,有范围限定,当前shell有效)

unalias NAME

在这里插入图片描述

which命令

  • 显示命令的完整路径
    在这里插入图片描述
  • 使用格式

which [options] programname

which which
which ls
which --skip-alias ls #忽略别名
\which ls #which 本身就是忽略别名的

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

扫描二维码关注公众号,回复: 13123219 查看本文章

where命令

  • 显示二进制程序的路径、源码文件及手册
    在这里插入图片描述
  • 使用格式

whereis [options] name…

常用选项

-b:仅搜索二进制程序
-m:仅搜索手册文件路径

whereis ls

在这里插入图片描述

whereis -b ls #只显示ls自身即可
whereis -m ls#只显示手册的路径

在这里插入图片描述

who命令

  • 查看登录当前系统的相关用户信息
    在这里插入图片描述
who -b #系统此次启动的时间

在这里插入图片描述

who -r #运行级别

在这里插入图片描述

w命令

  • 可被认为是增强版的who命令。,用于显示谁登陆了,且正在干什么
    在这里插入图片描述

bash shell的基础特性

命令历史

  • shell进程会在其会话中保存此前用户提交执行过的命令
history #查看此前执行命令的列表

在这里插入图片描述
在这里插入图片描述

  • 定制history的功能,可通过所谓的环境变量实现:
    【1】HISTSIZE:shell进程可保留的命令历史的条数
    在这里插入图片描述
    【2】HISTFILE:持久保存命令历史的文件
    shell启动以后它所执行的所有命令都保存在内存当中,只有用户登出时才会保留进去,所以使用history命令能看到的既包括这个文件中的又包括内存中的,但是打开文件的话只能看到文件中的看不到内存中的,每一个用户登录时,命令历史它的shell会首先从命令历史文件中加载此前所有的命令到内存中来,而后新的命令就补充在内存命令的后面,所以使用history看到的是整个内存中的历史
    在这里插入图片描述
    【3】HISTFILESIZE: 命令历史文件的大小
    在这里插入图片描述
  • history的很多功能特性也可以自己手动运行,history有很多选项可以完成对命令历史的管理功能
    命令用法:
    【1】history [-c] [-d 偏移量] [n]: 操作命令历史中的多少条命令
    【2】history -anrw [文件名]:操作历史文件
    【3】history -ps 参数 [参数…]:定义history命令自己的工作特性
    在这里插入图片描述
    -c:清空命令历史
    -d offset: 删除指定命令历史
    -d offset n: 从offset这个位置开始往后删除多少个
    -r: 从文件读取命令历史至历史列表中
    -w: 把历史列表中的命令追加至历史文件中
  • history #:显示最近的#条命令
    在这里插入图片描述
history -d 256 3 #从256条起删除三条

在这里插入图片描述
在这里插入图片描述

history 10 #只显示最近10条

在这里插入图片描述
如何调用命令历史列表中的命令:
【1】上下键,回车
【2】!#:再一次执行历史列表中的第#条命令
在这里插入图片描述
【3】!!:再一次执行上条命令
在这里插入图片描述
【4】!STRING:再依次执行命令历史列表中最近一个以STRING开头的命令
在这里插入图片描述
attention:命令的重复执行有时候需要依赖于幂等性(重复执行多次的效果是相同的)
如何调用上一条命令的最后一个参数:【】快捷键:ESC+, 【2】!$
在这里插入图片描述
控制命令历史记录的方式:
环境变量:HISTCONTROL,其取值有三个:
【1】ignoredups:忽略重复的命令
【2】ignorespace:忽略以空白字符开头的命令
【3】ignoreboth:以上两者同时生效
修改变量的值:NAME=‘VALUE’,这种修改仅对当前shell进程有效
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44520665/article/details/114866853