【Linux基础知识】

144 阅读3分钟

一、Linux哲学思想

  • 一切都是一个文件。容易看(包括硬件,文本,二进制,源代码)
  • 系统中拥有小型,单一用途的程序。(一个程序只负责做好自己的本职工作)
  • 当遇到复杂任务,通过不同功能用途的程序组合起来完成。
  • 避免令人困惑的用户界面就是没有复杂的图形界面。
  • 不在乎后缀名,有没有都无所谓,不是通过后缀名来定义文件的类型。
  • 开源免费

二、Shell

shell 是一类程序的总称(bash、csh、sh等),是Linux系统中后台运行的一种特殊程序,也可以理解成一种特殊的软件,提供了用户与内核进行交互操作的一种接口

shell.png

  • 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 系统文件名

4. info

5. 百度