基础
linux的哲学思想
- 一切都是一个文件。(包括硬件,文本,二进制,源代码)
- 系统中拥有小型,单一用途的程序。(一个程序只负责做好自己的本职工作)
- 当遇到复杂任务,通过不同功能用途的程序组合起来完成。
- 避免令人困惑的用户界面就是没有复杂的图形界面。
- 连配置文件都存储在文本中,方便增删改查。
- 不在乎后缀名,有没有都无所谓,不是通过后缀名来定义文件的类型。
sell
shell是Linux系统中后台运行的一种特殊程序也可以理解成一种特殊的软件,提供了用户与内核进行交互操作的一种接口。
用户使用应用程序发布指令,比如使用浏览器访问网页;
shell去通知操作系统需要进行什么样的操作(相当于解释层);
内核相当于操作系统去指挥硬件;
硬件才能工作,否则无法交互。
[root@localhost las]$
root //表示用户
localhost //主机名
~ //家目录
# //管理员用户
$ //普通用户
las //当前所在目录
#关机命令:
1、halt //立刻关机
2、poweroff //立刻关机
3、shutdown -h now //立刻关机(root用户使用)
4、shutdown -h 10 //10分钟后自动关机
#重启:
reboot
init6
shutdown -r now
sh //切换shell环境
pstree //查看使用过的shell环境
shell与内、外部命令
shell 分为内部命令 和外部命令,一般先执行内部命令,再执行外部命令。
| 内部命令 | 外部命令 |
|---|---|
| 集成于Shell解释器程序内部的一些特殊指令,也称为内建(Built-in)指令 | Linux系统中能够完成特定功能的脚本文件或二进制程序 |
| 属于Shell的一部分 | 属于Shell解释器程序之外的命令 |
| 没有单独对应的系统文件 | 每个外部命令对应了系统中的一个文件 |
| 自动载入内存,可以直接使用 | 必须知道其对应的文件位置,由Shell加载后才能执行 |
一般内部命令存储在 PATH 中
echo $PATH //查看所有PATH路径
PATH默认为下列目录
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
可以用type命令来区分内外命令
[root@localhost /]# type cd cd 是 shell 内嵌 // 内嵌代表内部命令
[root@test1 /]# type -a ls
ls 是 `ls --color=auto' 的别名 //别名代表外部命令
ls 是 /usr/bin/ls //外部命令会有程序路径
ash 缓存空间
hash命令负责显示与清除命令运行时系统优先查询的哈希表(hash table)。
当执行hash命令不指定参数或标志时,hash命令向标准输出报告路径名列表的内容。此报告含有先前hash命令调用找到的当前shell环境中命令的路径名。而且还包含通过正常命令搜索进程调用并找到的那些命令。
命令选项:
| 选项 | 说明 |
|---|---|
| -d<指令> | 在哈希表中清除某个命令记录 |
| -r | 清除哈希表中的所有记录 |
| -l | 显示哈希表中的命令 |
| -p<指令> | 将具有完整路径的命令加入到哈希表中 |
| -t<指令> | 显示哈希表中命令的完整路径 |
将缓存的外部命令移到其他默认的目录中,无法再次使用,需要清掉hash值之后 ,才可以继续使用。
命令格式
命令字 空格 [选项] 空格 [参数]
- 命令字 是整条命令中最关键的一部分 唯一确定
- 选项 短格式选项:使用“-”符号引导 通常 一个字母 长格式选项:使用“--”符号引导 通常完整的单词
- 参数 命令字的处理对象 可以是文件名、目录(路径)名或用户名等内容 个数可以是零到多个 ;可以隔开命令,执行多个命令
命令行快捷键
| 快捷键 | 功能 |
|---|---|
| Tab键 | 自动补齐(两次可以显示所有选项) |
| 反斜杠“\” | 强制换行或转义 |
| Ctrl+a | 光标移到最前 |
| Ctrl+e | 光标移到最后 |
| Ctrl+U | 清空至行首不包括当前光标处的 字符 |
| Ctrl+K | 清空至行尾包括当前光标处的字符 |
| Ctrl+w | 从当前光标删除到开头 |
| ALT+d | 从当前光标删除末尾 |
| Ctrl+l | 清屏 |
| Ctrl+c | 取消本次命令编辑 |
| Ctrl+s/Ctrl+q | 锁屏/解锁 |
| 向上下箭头 | 回看执行过的命令 |
帮助命令
help 内部命令 //查看内部命令帮助
--help 外部命令 //查看外部命令帮助
man 命令 //查看命令结构
man分九个章节默认打开第一章节
查找区段的顺序。具体区段划分如下 所示:
区段1:用户指令
区段2:系统调用
区段3:程序库调用
区段4:设备
区段5:文件格式 shadow passwd fstab
区段6:游戏
区段7:杂项
区段8:系统指令
区段9:内核内部指令
区段n:Tcl或Tk指令
info 命令 //也可以查看相关的帮助信息
七类常见的 linux 的文件
| 第一个字符* | 文件类型* |
|---|---|
| - | 普通文件,包括纯文本文件、二进制文件、各种压缩文件等。 |
| d | 目录,类似 Windows 系统中的文件夹。 |
| b | 块设备文件,就是保存大块数据的设备,比如最常见的硬盘。 |
| c | 字符设备文件,例如键盘、鼠标等。 |
| s | 套接字文件,通常用在网络数据连接,可以启动一个程序开监听用户的要求,用户可以通过套接字进行数据通信。 |
| p | 管道文件,其主要作用是解决多个程序同时存取一个文件所造成的错误。 |
| l | 链接文件,类似 Windows 系统中的快捷方式。 |
根下文件及作用
bin 普通用户二进制 命令
etc 默认配置文件
mnt 挂载点文件夹
opt 第三方软件
root 超级管理员的家目录 ~ 当前用户的家目录
sbin 超级管理员使用的二进制命令
tmp 系统临时文件tmp
/var/log 日志
boot 开机启动必须的一些文件
dev 硬件 硬盘
proc 主要保存系统的内核、进程、外部设备状态和网络状态等
sys 系统
usr 应用程序和操作系统相关的文件