一、Linux哲学思想
- 一切都是一个文件。容易看(包括硬件,文本,二进制,源代码)
- 系统中拥有小型,单一用途的程序。(一个程序只负责做好自己的本职工作)
- 当遇到复杂任务,通过不同功能用途的程序组合起来完成。
- 避免令人困惑的用户界面就是没有复杂的图形界面。
- 不在乎后缀名,有没有都无所谓,不是通过后缀名来定义文件的类型。
- 开源免费
二、Shell
shell 是一类程序的总称(bash、csh、sh等),是Linux系统中后台运行的一种特殊程序,也可以理解成一种特殊的软件,提供了用户与内核进行交互操作的一种接口
-
centos7 默认的shell 软件类型是:/bin/bash 翻译,补全,自带内部命令等功能 (bash是可以多开的,多开的bash相对是独立的)
-
cat /etc/shells 看到系统支持的shell类型
三、Linux命令的分类
1. 内部命令
- 内部命令和bash软件是一体的,bash中集成了很多命令
- 没有独立的文件
- 不用独立安装,系统自带
- 直接运行在内存里面,无需加载
特点:属于shell的一部分
2. 外部命令
- 不在shell软件中,由独立的执行文件
- 需要额外手动安装
- 系统需要知道命令文件的位置才可以运行
| 内部命令 | 外部命令 |
|---|---|
| 集成于Shell解释器程序内部的一些特殊指令,也称为内建(Built-in)指令 | Linux系统中能够完成特定功能的脚本文件或二进制程序 |
| 属于Shell的一部分 | 属于Shell解释器程序之外的命令 |
| 没有单独对应的系统文件 | 每个外部命令对应了系统中的一个文件 |
| 自动载入内存,可以直接使用 | 必须知道其对应的文件位置,由Shell加载后才能执行 |
help命令可以查看内部命令
enable #能看到所有的内部命令
enable -n #关闭内部命令
type #能区分命令类型 内部/外部
[root@lkk ~]# type cd
cd 是 shell 内嵌
[root@lkk ~]# type -a ls
ls 是 `ls --color=auto' 的别名
ls 是 /usr/bin/ls
hash 缓存空间
hash -d #删缓存里的命令 单独删除
hash -r #删除所有
hash
linux系统下会有一个hash表,当你刚开机时这个hash表为空,每当你执行过一条命令时,hash表会记录下这条命令的路径,就相当于缓存一样。第一次执行命令shel解释器默认的会从PATH路径下寻找该命令的路径,当你第二次使用该命令时,shell解释器首先会查看hash表,没有该命令才会去PATH路径下寻找。 hash表的作用 :大大提高命令的调用速率。
将缓存的外部命令移到其他默认的目录中,无法再次使用,需要清掉hash值之后 ,才可以继续使用。
路径
系统规定了几个文件夹,如果你的命令在这几个文件夹中,那么是不需要写路径的
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
cd 既属于内部(内存中)又属于外部(磁盘中),优先运行内部命令
ls运行
运行ls时,先判断是否是第一次运行
如果是第一次运行,先判断是外部还是内部,如果是内部直接执行,如果是外部则去规定的路径找,找到就执行,找不到就报错;
不是第一次运行,先判断是外部还是内部,如果是内部直接执行,如果是外部去查缓存,按照缓存提示去找,找到就执行,找不到直接报错。
- 如果执行一个命令报错,命令未找到,请问为什么?
1)没有安装该命令软件 → 解决:安装该命令
2)hash缓存有误 → 解决:清理hash表
3)不在指定路径下 → 解决:需要使用绝对路径,或者将命令复制到规定文件夹下
四、命令行格式
1. 命令字 [选项]... [参数]...
- 命令字 : 你执行任务,需要挑选相对于的命令
- 选项:修饰加强命令
短格式选项:使用“-”符号引导 通常 一个字母
长格式选项:使用“--”符号引导 通常完整的单词
- 参数:对谁使用该命令 1文件 2文件夹 3用户名
[ ]用方括号括起来代表可有可无
;可以隔开命令,执行多个命令
2. 编辑Linux命令行的辅助操作
| 快捷键 | 功能 |
|---|---|
| Tab 键 | 自动补齐(两次可以显示所有选项) |
| 反斜杠“\” | 强制换行或转义 |
| Ctrl+l | 清屏 |
| Ctrl+c | 取消本次命令编辑 |
| Ctrl+e 或 end 键 | 光标移到最后 |
| Ctrl+U | 清空至行首不包括当前光标处的 字符 |
| Ctrl+K | 清空至行尾包括当前光标处的字符 |
| Ctrl+a | 光标移到最前 |
| Ctrl+w | 从当前光标删除到开头 |
| ALT+d | 从当前光标删除末尾 |
| Ctrl+s/Ctrl+q | 锁屏/解锁 |
| 向上下箭头 | 回看执行过的命令 |
- Tab补全的对象是命令 或文件名。 什么样的命令可以补全? 1)内部命令 2)在规定路径下命令 echo $PATH
如果你的命令唯一,直接补全 ; 如果你的命令不唯一,会显示全部
五、获得命令帮助
1. help 内部命令
2. --help 适用于外部命令
3. 使用man命令阅读手册页
man分九个章节默认打开第一章节。
查看命令:man 1 命令/可执行程序 (1可以省略不写,因为默认打开第一章节)
查看文件格式:man 5 系统文件名