02-Linux基础和帮助

目录

1 Linux基础

1.1 用户类型

1.2 终端

1.3 交互式接口

1.4 设置主机名

1.5 命令提示符

1.6 执行命令

1.7 常用命令

1.7.1 查看硬件信息

1.7.2 查看系统版本信息

1.7.3 日期和时间

1.7.4 关机和重启

1.7.5 用户登录信息查看命令

1.7.6 文本编辑

1.7.7 会话管理

1.7.8 输出信息echo

1.7.9 历史命令

1.7.10 调用历史命令或参数

1.7.11 特殊符号扩展

1.7.12 bash快捷键

2 获得帮助

2.1 whatis

2.2 查看命令帮助

2.3 man命令


1 Linux基础

1.1 用户类型

  • root 用户:权限巨大,已接近完整的系统控制
  • 普通用户:针对系统的操作权限有限

1.2 终端

终端类型:

  • 控制台终端: /dev/console
  • 串行终端:/dev/ttyS#
  • 虚拟终端:tty:teletypewriters, /dev/tty#,tty 可有n个,Ctrl+Alt+F#
  • 图形终端:startx, xwindows
  • 伪终端:pty:pseudo-tty , /dev/pts/# 如:SSH远程连接

查看当前的终端设备:

  • tty 命令可以查看当前所在终端

1.3 交互式接口

交互式接口:

  • 启动终端后,在终端设备附加一个交互式应用程序。

交互式接口类型:

  • GUI:图形化接口
  • GLI:命令行接口,在Linux中也就是shell程序

什么是shell:

  • Shell 是Linux系统的用户界面,提供了用户与内核进行交互操作的一种接口。
  • 它接收用户输入的命令并把它送入内核去执行。
  • shell也被称为LINUX的命令解释器。
  • shell还是一种高级编程语言,通过编写shell脚本能够进行批量的处理和自动化维护等工作。

常见的各种shell类型:

  • sh:Steve Bourne
  • bash:Bourne-Again Shell,GPL,CentOS 和 Ubuntu 默认使用
  • csh:c shell , C 语言风格
  • ksh :Korn Shell, AIX 默认 shell
  • zsh: MacOS默认shel

查看当前所使用的shell:

显示系统支持的所有shell类型:

1.4 设置主机名

使用hostname命令可以查看主机名或临时设置主机名

 修改主机名持久生效:

  • 通过命令:hostnamectl set-hostname 主机名
  • 通过vi/vim编辑文件修改:/etc/hostname

注意事项:

  • 主机名尽量不要使用下划线,带下划线的主机名会对某些运行的程序有影响。

1.5 命令提示符

查看命令提示符格式:

修改命令提示符:

PS1="\[\e[1;5;41;33m\][\u@\h \W]\\$\[\e[0m\]"

PS1="\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\\$"

提示符格式说明:

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

提示符格式实现持久保持:

  • 写入到当前用户家目录的.bashrc文件中
  • 写入到/etc/profile文件中,或etc/profile.d目录下创建以.sh的任意文件中
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

1.6 执行命令

shell中可执行的两类命令:

  • 内部命令:由shell自带的,而且通过某命令形式提供
  • 外部命令:在文件系统路径下有对应的可执行程序文件

判断命令类型:

  • 使用type命令可以判断命令的类型,给出命令路径则是外部命令,反之。
  • -a 选项查看是否存在对应内部和外部命令

enable 管理内部命令

  • 启用内部命令:enable cmd
  • 禁用内部命令:enable –n cmd
  • 查看所有禁用的内部命令:enable –n

查看外部命令的路径:

  • whereis用来定位指令的二进制程序、源代码文件和man手册页等相关文件的路径。
  • which用于查找并显示给定命令的绝对路径,PATH变量中保存了查找命令时需要遍历的目录。

hash缓存机制:

  • 在Linux中有一个hash缓存表,系统初始hash表为空,当外部命令执行时,默认会从PATH路径下寻找该命令,找到后会将这条命令的路径记录到hash表中,当再次使用该命令时,shell解释器首先会查看hash表,存在将执行之,如果不存在,将会去PATH路径下寻找,利用hash缓存表可大大提高命令的调用速率。

hash 命令常见用法:

  • hash 显示hash缓存
  • hash -l 显示hash缓存,可作为输入使用
  • hash -p path name 将命令全路径path起别名为name
  • hash -t name 打印缓存中name的路径
  • hash -d name 清除name缓存 hash -r 清除缓存

命令起别名:

  • 显示当前shell进程所有可用的命令别名:alias
  • 定义别名:alias NAME='VALUE'

取消别名:

  • unalias 别名
  • -a 选项取消所有别名

别名永久生效:写入到文件中

  • 仅对当前用户:~/.bashrc
  • 对所有用户有效:/etc/bashrc

执行命令的注意事项:

  • 多个选项以及多参数和命令之间使用空白字符分隔
  • 取消和结束命令执行:Ctrl+c,Ctrl+d
  • 多个命令可以用 ";" 符号分开
  • 一个命令太长可以用\分成多行

1.7 常用命令

1.7.1 查看硬件信息

查看CPU信息:

  • lscpu
  • cat /proc/cpuinfo

查看内存大小:

  • free(-h选项使用计量单位进行人性化显示)
  • cat /proc/meminfo

查看硬盘分区情况:

  • lsblk
  • cat /proc/partitions

1.7.2 查看系统版本信息

查看内核版本:

  • uname -r

查看操作系统发行版本:

  • cat /etc/os-release
  • lsb_release -a
  • cat /etc/redhat-release(红帽系列)

1.7.3 日期和时间

Linux的两种时钟

  • 系统时钟:由Linux内核通过CPU的工作频率进行的
  • 硬件时钟:主板

相关命令

  • date :显示和设置系统时钟
  • clock:显示硬件时钟;-s以硬件时钟为准,校正系统时钟;-w以系统时钟为准,校正硬件时钟

时区文件:

  • /etc/localtime(通过软连接的方式指向时区)

设置时区:

1.7.4 关机和重启

关机:

  • halt
  • powerof

重启:

  • reboot

关机或重启shutdown:

  • -r: 重启
  • -h: 关机

1.7.5 用户登录信息查看命令

  • whoami: 显示当前登录有效用户
  • who: 系统当前所有的登录会话
  • w: 系统当前所有的登录会话及所做的操作

1.7.6 文本编辑

  • vi/vim 文本编辑工具之神
  • nano 工具可以实现文本的编辑,上手容易,适合初学者
  • gedit 工具是图形工具

1.7.7 会话管理

screen会话管理:

  • 创建新screen会话:screen –S [SESSION]
  • 加入screen会话:screen –x [SESSION]
  • 退出并关闭screen会话:exit
  • 剥离当前screen会话:Ctrl+a,d
  • 显示所有已经打开的screen会话:screen -ls
  • 恢复某screen会话:screen -r [SESSION]

screen的两个实用场景:

  • 在运行某个重要命令或程序时,可以避免命令行窗口的关闭导致命令或程序的中断。
  • 在运维工作过程中,遇到系统故障问题,可以使用screen会话管理,协同同事进行排查。

1.7.8 输出信息echo

常用选项:

  • -E (默认)不支持 \ 解释功能
  • -n 不自动换行
  • -e 启用 \ 字符的解释功能

范例:打印带有颜色的字符

1.7.9 历史命令

  • 当执行命令后,系统默认会在内存记录执行过的命令
  • 当用户正常退出时,会将内存的命令历史存放对应历史文件中,默认是~/.bash_history
  • 登录shell时,会读取命令历史文件中记录下的命令加载到内存中

history 命令常用选项:

  • -c: 清空命令历史

命令历史相关环境变量:

  • HISTSIZE:命令历史记录的条数
  • HISTFILE:指定历史文件,默认为~/.bash_history
  • HISTFILESIZE:命令历史文件记录历史的条数
  • HISTTIMEFORMAT="%F %T `whoami`" 显示时间和用户
  • HISTIGNORE="str1:str2*:…" 忽略str1命令,str2开头的历史
  • HISTCONTROL:控制命令历史的记录方式

环境变量的值:

  • ignoredups 是默认值,可忽略重复的命令,连续且相同为“重复”
  • ignorespace 忽略所有以空白开头的命令
  • ignoreboth 相当于ignoredups, ignorespace的组合
  • erasedups 删除重复命令

范例:保存命令历史环境变量,实现查看命令历史时显示时间

echo -e 'export HISTCONTROL=ignoreboth \nexport HISTTIMEFORMAT="%F %T"' >> .bash_profile 

1.7.10 调用历史命令或参数

重复前一个命令方法

  • 使用上方向键并回车执行
  • 按 !! 并回车执行
  • 输入 !-1 并回车执行
  • 按 Ctrl+p 并回车执行

调用历史参数

  • !^  调用上一个命令的第一个参数
  • !$ 调用上一个命令的最后一个参数
  • !*  调用上一个命令的全部参数

1.7.11 特殊符号扩展

反引号扩展:``

  • 把一个命令的输出打印给另一个命令的参数:``等价于$()
  • 区别在于``不利于嵌套

比较 “ ” ,‘ ’, ``三者区别:

  • 单引号:六亲不认,变量和命令都不识别,都当成了普通的字符串
  • 反向单引号:变量和命令都识别
  • 双引号:不能识别命令,可以识别变量

括号扩展:{ }

  • {} 可以实现打印重复字符串的简化形式

1.7.12 bash快捷键

  • Ctrl + l 清屏,相当于clear命令
  • Ctrl + o 执行当前命令,并重新显示本命令
  • Ctrl + s 阻止屏幕输出,锁定
  • Ctrl + q 允许屏幕输出,解锁
  • Ctrl + c 终止命令
  • Ctrl + a 光标移到命令行首
  • Ctrl + e 光标移到命令行尾
  • Ctrl + xx 光标在命令行首和光标之间移动
  • Ctrl + u 从光标处删除至命令行首
  • Ctrl + k 从光标处删除至命令行尾
  • Alt + r     删除当前整行

2 获得帮助

2.1 whatis

  • whatis 使用数据库来显示命令的简短描述
  • 刚安装后不可立即使用,需要制作数据库,centos7:mandb

2.2 查看命令帮助

内部命令帮助:

  • help COMMAND
  • man bash

外部命令帮助:

  • COMMAND --help 或 COMMAND -h
  • 使用手册:man COMMAND
  • info COMMAND

2.3 man命令

man 提供命令帮助的文件,手册页存放在/usr/share/man

中文man需安装包

  • man-pages
  • man-pages-zh-CN

man 页面分组为不同的“章节”,统称为Linux手册,

  •  1:用户命令
  • 2:系统调用
  • 3:C库调用
  • 4:设备文件及特殊文件
  • 5:配置文件格式
  • 6:游戏
  • 7:杂项
  • 8:管理类的命令
  • 9:Linux 内核API

man 帮助段落说明:

  • NAME 名称及简要说明
  • SYNOPSIS 用法格式说明
  • [] 可选内容
  • <> 必选内容
  • a|b 二选一
  • { } 分组
  • ... 同一内容可出现多次
  • DESCRIPTION 详细说明
  • OPTIONS 选项说明
  • EXAMPLES 示例
  • FILES 相关文件
  • AUTHOR 作者
  • COPYRIGHT 版本信息
  • REPORTING BUGS bug信息
  • SEE ALSO 其它帮助参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值