• Linux基础命令及命令历史


    (一)Linux系统上的文件类型

    使用ls命令的结果中,最左边一位表示文件类型:

    • -:常规文件,在其它程序中用f表示,可以继续使用file命令查看常规文件的类型
    • d:目录文件/directory
    • b:块设备文件/block device,支持以“block”为单位进行随机访问
    • c:字符设备文件/character device,支持以“character”为单位进行线性访问
      • ls命令查询设备文件时,结果中显示到的不是大小,而是两个数字,称为主号和次号,一般用8位二进制表示,逗号分隔
      • 主号:major number/主设备号,用于标识设备类型,进而确定要加载的驱动程序
      • 次号:minor number/次设备号,用于标识同一种类型下的不同的具体设备
    • l:符号链接文件/symbolic link
    • p:命名管道/pipe
    • s:套接字文件/socket

    (二)基本命令

    • 命令类型
      • 外部命令:每个命令都有一个对应的文件,命令名就是文件名
      • 内部命令:Bash等shell命令自带很多命令,所以内部命令是指shell的内部命令,而shell本身是一个外部命令
      • 查看命令类型的方法是:type COMMAND。结果中,外部命令显示文件路径(但是未必总是如此,因为有些命令有别名),内部命令显示builtin。
      • 注:命令可以有别名,别名可以与原名相同,此时原名被隐藏,可以加反斜线使用原命令,比如ls其实是ls --color=auto,此时原来的ls被隐藏了,可以用ls调用原来的ls
      • 使用alias命令可以查看命令别名列表
      • 定义别名的方法是:alias 别名='命令';如果命令中间没有空格,可以不加引号,这种方式只对当前shell有效,登出之后就失效了(具有时间限制和范围限制)。如果想永久有效,需要添加到配置文件中。
      • 撤销别名的方法是:unalias 别名;
    • Which命令
      • 显示命令的完整路径
    • Whereis命令
      • 显示命令的二进制文件,源码文件,手册页的位置
      • -b:仅搜索二进制文件路径
      • -m:仅搜索手册页路径
    • who命令
      • 显示登陆系统的用户信息,例如下面表示有两个用户通过伪终端登陆,一个通过虚拟终端登陆。显示格式为:用户名,终端,时间,远程登陆主机的ip(本机登陆不显示ip)

            root   pts/0    2015-12-10 09:25(172.16.100.100)

            root   pts/1    2015-12-10 09:25(172.16.100.100)

            root   tty1    2015-12-10 09:25

      • who -b:显示系统此次启动的时间
      • who -r:显示系统运行级别
    • w命令
      • 增强版的who,不光能显示登陆系统的用户信息,还能显示他们当前正在干什么

    (三)bash的基础特性

    • 命令历史:shell进程会在其会话中保存此前用户提交执行过的命令
      • 使用history命令即可查看命令历史
      • 定制history的功能,可以通过环境变量实现
        • HISTSIZE:shell进程可以保留的命令历史的条数
        • HISTFILE:持久保存命令历史的文件。每个用户的家目录里都有一个隐藏文件.bash_history,在每次用户登出时,都会将内存中的命令历史写进该文件。history命令显示的内容包括两部分,文件中的和当前内存中的。
        • HISTFILESIZE:文件所能保存的历史条数
      • history n:显示最近n条命令历史
      • -c:清空内存中的命令历史
      • -d offset n:清除指定命令历史
      • -r:从文件读取命令历史到内存中
      • -w:把内存中的命令追加到历史文件中
      • 调用命令历史列表中的命令:
        • !#:再一次执行历史列表中的第#条命令
        • !!:再一次执行上一条命令
        • !String:再一次执行历史列表中最近一次以string开头的命令
      • 调用上一条命令的最后一个参数:
        • 先按“esc”键,再按“.”号键
        • 或者在参数的位置输入“!$”
      • 控制命令历史记录的方式:
        • 环境变量:HISTCONTROL
        • 可以有三种取值:
          • 默认ignoredups:忽略重复,只有相邻一样才被认为是重复
          • ignorespace:忽略以空白字符开头的命令,所以我们可以在某个命令前面加空格从而让它不被记录
          • ignoreboth:以上两者同时生效
          • 改变HISTCONTROL值的方式:HISTCONTROL=ignorespace,因为值里没有空格,所以不需要加引号。只对当前shell会话有效。
  • 相关阅读:
    JZOJ 4043. 【雅礼集训2015Kzf】洪水
    JZOJ 5451.Genocide
    P4719 【模板】"动态 DP"&动态树分治
    [NOIP2018 提高组] 保卫王国
    【NOIP2017提高组正式赛】列队
    vuex的总结
    height:100vh
    从URL输入到页面展现到底发生什么
    JS的空数组是true还是false(内附JS类型转换表)
    Vue拼图验证组件使用教程
  • 原文地址:https://www.cnblogs.com/jacky1982/p/7617146.html
Copyright © 2020-2023  润新知