• 用户
    • root
      • 权限特殊
      • 超级管理员
      • 无限的能力
    • 普通用户
      • 权限有限
  • 终端-terminal
    • 类型
      • 控制台:/dev/console
      • 串行终端:/dev/tty
      • 虚拟终端:tty
      • 图形终端
      • 伪终端:pty
    • 查看当前终端设备
      • tty
  • shell介绍
    • 接口类型
      • GUI:图形化
      • CLI:shell程序
    • shell是Linux系统的用户界面,提供用户与内核进行交互的一种接口,接收用户的指令并送入内核执行
    • shell是一种高级程序设计语言,提供了变量,函数,判断条件,循环等
    • 查看shell类型
      • echo ${SHELL}
      • cat /etc/shells 显示当前系统使用的所有shell
  • 设置主机名
    • 临时生效:hostname NAME
    • 永久生效:hostnamectl set-hostname NAME
  • 命令提示符prompt
    • 默认
      • 管理员# 普通用户#
      • 查看默认格式 echo $PS1
    • 修改提示符范例 ```shell centos: echo ‘PS1=”[\e[1;32m][\t [\e[1;33m]\u[\e[35m]@\h[\e[1;31m] \W[\e[1;32m]][\e[0m]\$”‘ > /etc/profile.d/env.sh ubuntu: echo “PS1=’[\e[1;35m][\u@\h \W]\$[\e[0m]‘“ >> .bashrc

提示符格式说明 \e 控制符\033 \u 当前用户 \h 主机名简称 \H 主机名 \w 当前工作目录 \W 当前工作目录基名 \t 24小时时间格式 \T 12小时时间格式 ! 命令历史数

  1. # 开机后命令历史数
  1. - **执行命令**
  2. - **执行命令过程**
  3. - **输入命令后,shell程序找到键入命令所对应的可执行代码或者程序,分析后交给内核分配资源将其运行起来**
  4. - **可执行的命令**
  5. - **内部命令**
  6. - **由shell自带,通过某命令形式提供,用户登录后自动加载并常驻内存中**
  7. - **help 内部命令**
  8. - **enable 管理内部命令**
  9. - **enable cmd 启用内部命令**
  10. - **enable -n cmd 禁用内部命令**
  11. - **enable -n 查看所有禁用的内部命令**
  12. - **外部命令**
  13. - **在文件系统路径下由对应的可执行程序文件,当执行时才从磁盘加载主机内存中,执行完成后从内存删除**
  14. - **查看外部命令路径**
  15. - **which -a **
  16. - **whereis **
  17. - **hash缓存表**
  18. - **初始为空,外部命令执行后,记录至hash表中,再次执行该命令,首先查看hash表中是否存在,否则去PATH下寻找,以此来提高命令的调用速率**
  19. - **用法**
  20. - **hash 显示hash缓存**
  21. - **hash -l 显示hash缓存,可作为输入使用**
  22. - **hash -p path name 将命令全路径path起别名为NAME**
  23. - **hash -t name 打印缓存中name 的路径**
  24. - **hash -d name 删除name缓存**
  25. - **hash -r 清除缓存**
  26. - **区别内部外部命令**
  27. - **type COMMAND**
  28. - **命令别名**
  29. - **alias 显示当前shell进程所有可用的命令别名**
  30. - **alias NAME = 'VALUE' 设置别名**
  31. - **unalias 取消别名, unalias -a 取消全部别名**
  32. - **在命令行中定义的别名,只对当前shell进程有效**
  33. - **永久有效设置**
  34. - **~/.bashrc 仅对当前用户生效**
  35. - **/etc/bashrc 对所有用户生效**
  36. - **若别名同原命令同名,执行原命令可添加一个斜杠**
  37. - **命令格式**
  38. - **多个选项及多个参数和命令之间使用空白符进行分隔**
  39. - **取消和结束命令执行 ctrl+c ctrl+d**
  40. - **多个命令可以使用;分割**
  41. - **一个命令可以用 \ 分成多行**
  42. - **简单命令**
  43. - **查看硬件信息**
  44. - **查看CPU**
  45. - **lscpu **
  46. - **cat /proc/cpuinfo**
  47. - **查看内存大小**
  48. - **free**
  49. - **cat /proc/meminfo**
  50. - **查看硬盘和分区情况**
  51. - **lsblk**
  52. - **cat /proc/partitions**
  53. - **查看系统版本信息**
  54. - **查看系统架构**
  55. - **arch**
  56. - **查看内核版本**
  57. - **uname -r**
  58. - **查看操作系统发行版本**
  59. - **cat /etc/readhat-release**
  60. - **cat /etc/os-release**
  61. - **lsb_release -a **
  62. - **lsb_release -is / -cs / -rs**
  63. - **cat /etc/issue**
  64. - **日期和时间**
  65. - **时钟**
  66. - **系统时钟:由Linux内核通过CPU的工作频率进行**
  67. - **硬件时钟:主板**
  68. - **clock hwclock**
  69. - **-s 以硬件时钟为准,校正系统时钟**
  70. - **-w 以系统时间为准,校正硬件时间**
  71. - **date**
  72. - **时区**
  73. - **列出时区 timedatectl list-timezones**
  74. - **设置时区 timedatectl set-timezone Asia/Shanghai**
  75. - **时区状态 timedatectl status**
  76. - **ll /etc/locatiome **
  77. - **cat /etc/timezone**
  78. - **日历**
  79. - **cal -y **
  80. - **cal 月份 年**
  81. - **关机重启**
  82. - **关机:halt poweroff**
  83. - **重启:reboot **
  84. - **-f 强制**
  85. - **-p 切断电源**
  86. - **shutdown**
  87. - **-r 重启**
  88. - **-h 关机**
  89. - **-c 取消关机**
  90. - **登录信息查看命令**
  91. - **whoami : 显示当前登录有效用户**
  92. - **who : 系统当前所有的登录会话**
  93. - **w: 系统当前所有的登录会话及所作操作**
  94. - **cat /etc/motd**
  95. - **输出信息**
  96. - **echo**
  97. - **-E 不支持、解释功能**
  98. - **-n 不自动换行**
  99. - **-e 启用\字符的解释功能**
  100. ```shell
  101. 启用命令选项-e,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出
  102. \a 发出警告声
  103. \b 退格键
  104. \c 最后不加上换行符号
  105. \e escape,相当于\033
  106. \n 换行且光标移至行首
  107. \r 回车,即光标移至行首,但不换行
  108. \t 插入tab
  109. \\ 插入\字符
  110. \0nnn 插入nnn(八进制)所代表的ASCII字符
  111. \xHH插入HH(十六进制)所代表的ASCII数字(man 7 ascii)
  112. "\033[字符背景颜色;字体颜色m字符串\033[0m"
  113. \033[0m 关闭所有属性
  114. \033[1m 设置高亮度
  115. \033[4m 下划线
  116. \033[5m 闪烁
  117. \033[7m 反显
  118. \033[8m 消隐
  119. \033[nA 光标上移n行
  120. \033[nB 光标下移n行
  121. \033[nC 光标右移n列
  122. \033[nD 光标左移n列
  123. \033[x;yH 设置光标位置x行y列
  124. \033[2J 清屏
  125. \033[K 清除从光标到行尾的内容
  126. \033[s 保存光标位置
  127. \033[u 恢复光标位置
  128. \033[?25l 隐藏光标
  129. \033[?25h 显示光标
  130. \033[2J\033[0;0H 清屏且将光标置顶
  • 字符集和编码
    • 查看ascii
      • man ascii
    • 修改LANG变量实现中文语言提示
      • LANG=zh_CN.UTF-8
  • 命令行扩展
    • 单引号:强引用,六亲不认,变量和命令都不识别,当成普通字符串
    • 双引号:弱引用,不能识别命令,可以识别变量
    • 反引号:可以执行命令
  • 括号扩展
    • {}实现打印重复字符串
    • 关闭扩展
      • set +B 关闭
      • set -B 开启
  • tab补全

    • 命令补全
      • 内部命令
      • 外部命令:bash根据定义环境变量的路径,查找然后执行
      • 命令的子命令补全,需要安装bash-completion
    • 路径补全
    • 双击TAB
      1. command 2Tab 所有子命令或文件补全
      2. string2Tab string开头命令
      3. /2Tab 显示所有根目录下一级目录,包括隐藏目录
      4. ./2Tab 当前目录下子目录,包括隐藏目录
      5. *2Tab 当前目录下子目录,不包括隐藏目录
      6. ~2Tab 所有用户列表
      7. $2Tab 所有变量
      8. @2Tab /etc/hosts记录 centos7 不支持)
      9. =2Tab 相当于ls A centos7不支持)
  • 命令行历史

    • history
      ```shell -c: 清空命令历史 -d offset: 删除历史中指定的第offset个命令 n: 显示最近的n条历史 -a: 追加本次会话新执行的命令历史列表至历史文件 -r: 读历史文件附加到历史列表 -w: 保存历史列表到指定的历史文件 -n: 读历史文件中未读过的行到历史列表 -p: 展开历史参数成多行,但不存在历史列表中 -s: 展开历史参数成一行,附加在历史列表后

HISTSIZE:命令历史记录的条数 HISTFILE:指定历史文件,默认为~/.bash_history HISTFILESIZE:命令历史文件记录历史的条数 HISTTIMEFORMAT=”%F %T whoami “ 显示时间和用户 HISTIGNORE=”str1:str2*:…” 忽略str1命令,str2开头的历史 HISTCONTROL:控制命令历史的记录方式 ignoredups 是默认值,可忽略重复的命令,连续且相同为“重复” ignorespace 忽略所有以空白开头的命令 ignoreboth 相当于ignoredups, ignorespace的组合 erasedups 删除重复命令

持久保持写入/etc/profile中

  1. - ** 调用命令行历史**
  2. ```shell
  3. 重复前一个命令使用上方向键,并回车执行
  4. 按 !! 并回车执行
  5. 输入!-1 并回车执行
  6. 按 Ctrl+p 并回车执行
  7. !:0 执行前一条命令(去除参数)
  8. !n 执行history命令输出对应序号n的命令
  9. !-n 执行history历史中倒数第n个命令
  10. !string 重复前一个以“string”开头的命令
  11. !?string 重复前一个包含string的命令
  12. !string:p 仅打印命令历史,而不执行
  13. !$:p 打印输出 !$ (上一条命令的最后一个参数)的内容
  14. !*:p 打印输出 !*(上一条命令的所有参数)的内容
  15. ^string 删除上一条命令中的第一个string
  16. ^string1^string2 将上一条命令中的第一个string1替换为string2
  17. !:gs/string1/string2 将上一条命令中所有的string1都替换为 string2
  18. 使用up(向上)和down(向下)键来上下浏览从前输入的命令
  19. ctrl-r来在命令历史中搜索命令
  20. (reverse-i-search)`’:
  21. Ctrl+g:从历史搜索模式退出
  22. #要重新调用前一个命令中最后一个参数
  23. !$ 表示前一个命令中最后一个参数
  24. Esc, . 点击Esc键后松开,然后点击 .
  25. Alt+ . 按住Alt键的同时点击 .
  26. command !^ 利用上一个命令的第一个参数做command的参数
  27. command !$ 利用上一个命令的最后一个参数做command的参数
  28. command !* 利用上一个命令的全部参数做command的参数
  29. command !:n 利用上一个命令的第n个参数做command的参数
  30. command !n:^ 调用第n条命令的第一个参数
  31. command !n:$ 调用第n条命令的最后一个参数
  32. command !n:m 调用第n条命令的第m个参数
  33. command !n:* 调用第n条命令的所有参数
  34. command !string:^ 从命令历史中搜索以 string 开头的命令,并获取它的第一个参数
  35. command !string:$ 从命令历史中搜索以 string 开头的命令,并获取它的最后一个参数
  36. command !string:n 从命令历史中搜索以 string 开头的命令,并获取它的第n个参数
  37. command !string:* 从命令历史中搜索以 string 开头的命令,并获取它的所有参数
  • bash快捷键

    1. Ctrl + l 清屏,相当于clear命令
    2. Ctrl + o 执行当前命令,并重新显示本命令
    3. Ctrl + s 阻止屏幕输出,锁定
    4. Ctrl + q 允许屏幕输出,解锁
    5. Ctrl + c 终止命令
    6. Ctrl + z 挂起命令
    7. Ctrl + a 光标移到命令行首,相当于Home
    8. Ctrl + e 光标移到命令行尾,相当于End
    9. Ctrl + f 光标向右移动一个字符
    10. Ctrl + b 光标向左移动一个字符
    11. Ctrl + xx 光标在命令行首和光标之间移动
    12. Alt + f 光标向右移动一个单词尾
    13. Alt + b 光标向左移动一个单词首
    14. Ctrl + u 从光标处删除至命令行首
    15. Ctrl + k 从光标处删除至命令行尾
    16. Alt + r 删除当前整行
    17. Ctrl + w 从光标处向左删除至单词首
    18. Alt + d 从光标处向右删除至单词尾
    19. Alt + Backspace 删除左边单词
    20. Ctrl + d 删除光标处的一个字符
    21. Ctrl + h 删除光标前的一个字符
    22. Ctrl + y 将删除的字符粘贴至光标后
    23. Alt + c 从光标处开始向右更改为首字母大写的单词
    24. Alt + u 从光标处开始,将右边一个单词更改为大写
    25. Alt + l 从光标处开始,将右边一个单词更改为小写
    26. Ctrl + t 交换光标处和之前的字符位置
    27. Alt + t 交换光标处和之前的单词位置
    28. Alt + # 提示输入指定字符后,重复显示该字符#次
  • 帮助用法

    • whaits 显示命令的简短描述
      • 生成数据库:mandb
    • 命令帮助
      • 内部命令
        • help COMMAND
        • man bash
      • 外部命令
        • COMMAND —help
        • info COMMAND
    • man
      • 中文man
        • 安装man-pages man-pages-zh-CN

      ```shell 不同类型的帮助称为不同的“章节”,统称为Linux手册,man 1 man 1:用户命令 2:系统调用 3:C库调用 4:设备文件及特殊文件 5:配置文件格式 6:游戏 7:杂项 [root@centos8 ~]#cal -h Usage: cal [options] [[[day] month] year] cal [options] [root@centos8 ~]#strace —help strace: invalid option — ‘-‘ Try ‘strace -h’ for more information. [root@centos8 ~]#openssl —help Invalid command ‘—help’; type “help” for a list. [root@centos8 ~]#date -h date: invalid option — ‘h’ Try ‘date —help’ for more information. [root@centos8 ~]#shutdown -h Shutdown scheduled for Fri 2020-03-20 08:26:27 CST, use ‘shutdown -c’ to cancel. 8:管理类的命令 9:Linux 内核API man命令的配置文件:

      CentOS 6 之前版 man 的配置文件

      /etc/man.config

      CentOS 7 之后版 man 的配置文件

      /etc/man_db.conf

      ubuntu man 的配置文件

      /etc/manpath.config

man 帮助段落说明 NAME 名称及简要说明 SYNOPSIS 用法格式说明 [] 可选内容 <> 必选内容 a|b 二选一 { } 分组 … 同一内容可出现多次 DESCRIPTION 详细说明 OPTIONS 选项说明 EXAMPLES 示例 FILES 相关文件 AUTHOR 作者 COPYRIGHT 版本信息 REPORTING BUGS bug信息 SEE ALSO 其它帮助参考 man命令的操作方法:使用less命令实现 space, ^v, ^f, ^F: 向文件尾翻屏 b, ^b: 向文件首部翻屏 d, ^d: 向文件尾部翻半屏 u, ^u: 向文件首部翻半屏 RETURN, ^N, e, ^E or j or ^J: 向文件尾部翻一行 y or ^Y or ^P or k or ^K:向文件首部翻一行 q: 退出

:跳转至第#行

1G: 回到文件首部 G:翻至文件尾部 /KEYWORD 以KEYWORD指定的字符串为关键字,从当前位置向文件尾部搜索;不区分字符大小写 n:下一个 N:上一个 ?KEYWORD 以KEYWORD指定的字符串为关键字,从当前位置向文件首部搜索;不区分字符大小写 n:跟搜索命令同方向,下一个 N:跟搜索命令反方向,上一个 ```

  1. - ** 常用选项**
  2. - **列出所有帮助**
  3. - **man -a keyword**
  4. - **搜索man手册**
  5. - **man -k keyword**
  6. - <br />