目录
Linux命令基础
Linux的哲学思想
优点,优势
1.一切都是一个文件(包括硬件,文本,二进制,源代码)
2.系统中拥有小型,单一用途的程序(一个程序只负责做好自己的本职工作)
3.当遇到复杂任务,通过不同功能用途的程序组合起来完成
4.避免令人困惑的用户界面就是没有复杂的图形界面
5.连配置文件都存储在文本中,方便增删改查
6.不在乎后缀名,有没有都无所谓,不是通过后缀名来定义文件的类型
Shell
1.Linux系统中运行的一种特殊程序
2.在用户和内核之间充当“翻译官”
3.在用户登录Linux系统时,自动加载一个Shell程序
4.Bash是Linux系统中默认使用的Shell程序
翻译官:将人类使用的高级语言转换成二进制让机器能够听明白
Linux命令的分类
内部命令与外部命令的区别
内部命令 | 外部命令 |
集成于Shell解释器程序内部一些特殊指令,也称为内建(Built-in)指令 | Linux系统中能够完成特定功能的脚本文件或二进制程序 |
属于Shell的一部分 | 属于Shell解释器程序之外的命令 |
没有单独对应的系统文件 | 每个外部命令对应了系统中的一个文件 |
自动载入内存,可以直接使用 | 必须知道其对应的文件位置,由Shell加载后才能执行 |
内部命令的优先级大于hash大于外部命令
type加命令可以查看命令是内部和外部
Linux命令执行过程
判断是否是内部命令 如果是 直接执行 如果不是
hash表中 查找 如果有 并且找的到 直接执行,找不到报错
外部命令 执行
Linux命令行的格式
通用的命令使用格式
命令字 【选项】 【参数】 英文字符区分大小写
1.命令字
是整条命令中最关键的一部分
唯一确定一条命令
2.选项
短格式选项:使用“-”符号引导 通常一个字母
长格式选项:使用“--”符号引导 通常完整的单词
(多个单字符选项可以组合在一起使用)
3.参数
命令字的处理对象
可以是文件名、目录(路径)名或用户名等内容
个数可以是零到多个
ls | 空格 | -l | 空格 | /opt |
编辑Linux命令行
编辑Linux命令行的辅助操作
- tab键:自动补齐
按一次如果结果唯一,自动当补齐
如果结果不唯一,按两次,显示所有的结果给你选择
- 上下键:回看之前执行的命令
- Ctrl+C:停止命令
- Ctrl+U:清空到行首
- Ctrl+K:清空到行尾
- Ctrl+A:光标跳跃到行首
- Ctrl+E:光标跳跃到行尾
- Ctrl+L:清屏
- 反斜杠“\”:强制换行
- Ctrl+W:从当前光标删除到开头
- ALT+D:从当前光标删除末尾
- Ctrl+S/Ctrl+Q:锁屏/解锁
Linux命令帮助
获得命令帮助的方法
内部命令help
- 查看Shell内部命令的帮助信息
命令的“--help”选项
- 适用于大多数Linux外部命令
使用man命令阅读手册页
- 使用“↑”、“↓”方向键滚动一行文本
- 使用Page Up和Page Down键翻页
- 按Q或q键退出阅读环境
- 按“\”键查找内容,n向下 n向上
man手册
1章节 命令的解释 默认打开的
5章节 文件的格式
help
格式说明
- []表示可选项
- CAPS或<>表示可变化的数据
- ....表示一个列表可加多个一个或多个
- x|y|z表示或的意思
- -abc是-a -b -c(有些命令选项有先后顺序) 多个-abc一般而言是没有顺序先后 绝大多数试试没有的,只有少数分先后)
只能查看内部命令的使用方法 Itar -zxfv tar zxfv -区分前后 解压压缩
--help
查看外部命令帮助
[root@loca lhost ~]# ls --help
[root@loca lhost dev]# useradd --help
目录与文件基础操作
查看当前的工作目录-pwd
显示用户当前所在的工作目录位置
pwd
示例
[root@localhost ~]# pwd
/root
切换工作目录-cd
将用户的工作目录更改到其他位置
格式 | 说明 |
cd 目标位置 | 切换到目标位置 |
cd ~ | 若不指定目标位置,切换到当前用户的宿主目录 |
cd | 若不指定目标位置,切换到当前用户的宿主目录 |
cd- | 切换到上一次执行cd命令之前所在的目录 |
超级管理员 家目录
/root
普通用户是
/home/和用户同名的文件
绝对路径 已根开头的路径叫绝对路径
相对路径 不是已根开头的路径
/斜杠 写在路径的开头 代表 根文件夹 不在开头 只代表分隔符
相对路径的表现方式
表现形式 | 说明 | 示例 |
直接使用目录名或文件名 | 表示当前工作目录的子目录、文件的位置 | grub.conf |
以一个点号“.”开头 | 表示以当前的工作目录作为起点 | ./grud.conf |
以两个点号“..”开头 | 表示以当前目录的上一级目录(父目录)作为起点 | ../vmlinuz |
以“~用户名”形式开头 | 表示以指定用户的宿主目录作为起点 | ~teacher |
列表显示目录内容-ls
显示目录中内容,包括子目录和文件相关属性信息
- ls [选项] [文件或目录]
常用选项
- -l、-a、-A、-d、-h、-R、--color
结合通配符:匹配文件名
- “?”:匹配文件名中的一个未知字符
- “*”:匹配文件名中的任意多个字符
ls 不单独使用
list 显示文件列表
-l 长格式显示
-a 显示隐藏文件
-d 只显示当前目录
-R 递归显示
-A 显示隐藏文件 不包括 .和..
- rwxr-xr-x 1 root root 368 11月 1 10:13 cdcy.sh
第一子字段 - 普通文件
7大文件类型
- | 普通文件 |
d | 文件夹 |
l | 连接方式 快捷方式 |
p | 管道文件 |
s | 套接字 |
b | 块设备 |
c | 字符文件 |
第二字段 权限 读写执行
第三字段 硬连接数
第四字段 所有者
第五字段 所属组
第六字段 文件大小
第七字段 最后一次修改时间
第八字段 文件名
ls -a 显示隐藏文件 包括.和..
-d 只显示当前文件夹
ls -R递归显示
-h 人性化 加单位
-t 时间显示
-r 倒序
-S 文件大小
-i inode 身份照 证号
设置别名-alias 自定义命令=‘原始命令’
通过别名机制化简化常用的、比较长的命令
alias命令别名=命令
示例
alias myls=“ls -alh”
unalias 别名命令 删除别名
命令完整执行过程
当你执行命令时,首先判断你是不是别名,如果是,直接执行,如果不是
判断是否是内部命令,是,直接执行,如果不是
去看hash表 如果hash表有 直接执行 有,但是找不到 报错
去外部命令 规定的文件夹找命令 如果没有 报错
统计目录及文件空间占用情况-du
统计指定目录(或文件)所占磁盘空间的大小
du [选项] [文件或目录...]
常用选项
选项 | 说明 |
-a | 统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录 (列出所有文件,个体显示) |
-h | 以更人性化的方式(默认以KB计数,但不显示单位)显示出统计结果 (只显示总量) |
-s | 只统计所占空间总的(Summary)大小,而不是统计每个子目录、文件的大小 (人性化显示) |
--max-depth=n(-d 1) | 最大显示到第n层 |
--exclude | 不计入统计 |
-a和-s不能同时使用
创建新目录-mkdir
创建新的空目录
mkdir [选项] 目录位置及名称
-p:递归建立
创建空文件-touch命令
- 文件存在刷新文件时间
- 文件不存在建立新的空文件
- 文件名最长255个字节
- 包括路径在内文件名称最长4095
- 文件名建议使用大小写字母数字组成,特殊字符和目录名和文件不推荐使用
创建链接文件-ln
- 为文件或目录建立链接文件,类型于Windows系统快捷方式
- 链接文件类型
软链接(又称为符号链接)
硬链接
硬链接与软连接文件
对比项 | 硬链接 | 软连接 |
本质 | 本质是同一个文件 | 本质不是同一个文件 |
inode(身份证号) | 相同 | 不同 |
连接数 | 创建新的硬链接,链接数会增加,删除硬链接,链接数减少 | 删除,新建都不会改变 |
文件夹 | 不支持 | 支持 |
删除源文件 | 只是链接数减一,但链接文件的访问不受影响 | 无法访问连接文件 |
文件类型 | 和源文件相同 | 链接文件和源文件无关 |
文件大小 | 和源文件相同(指向硬盘上的同一个文件) | 源文件的路径的长度 |
复制文件或目录-cp
- 将需要复制的文件或目录(源)重建一份,并保存为新的文件或目录
- 常用选项
选项 | 说明 |
-f | 覆盖目标同名文件或目录时不进行提醒,直接强制复制 (强制复制) |
-i | 覆盖目标同名文件或目录时提醒用户确认 (有同名文件提醒覆盖) |
-p | 复制时保持源文件的权限、属主及时间标记等属性不变 (保留权限) |
-r | 复制目录时必须使用此选项,表示递归复制所有文件及子目录 (递归 复制文件夹一定要加) |
-a | 完整保留所有的信息 |
-v | 可视化 |
-u | 相当于增备,差异备份(只对文件夹起作用) |
删除文件或目录-rm
- 删除指定的文件或目录
rm [选项] 要删除的文件或目录
- 常用选项
-f、-i、-r
移动文件或目录-mv
- 将指定的文件或目录转移位置
- 如果目标位置与源位置相同,则相当于执行重命名操作
mv [选项] ... 源文件或目录...目标文件或目录
查找命令/文件存放目录-which
搜索范围友环境变量PATH绝对(echo $PATH)
查找文件或目录-find
命令特点
- 精确查找
- 实时查找
- 支持查找条件居多
采用递归方式,根据目标的名称、类型、大小等不同属性进行精细查找
find 范围 查找的条件 处理动作
常用查找条件类型
查找类型 | 关键字 | 说明 |
按名称查找 | -name | 根据目标文件的名称进行查找,允许使用“*”及“?”通配符 |
按文件大小查找 | -size | 根据目标文件的大小进行查找 一般使用“+”、“-”号设置超过或小于指定的大小作为查找条件 常用于的容量单位包括kB(注意k是小写)、MB、GB |
按文件属主查找 | -user | 根据文件是否属于目标用户进行查找 |
按文件类型查找 | -type | 根据文件的类型进行查找 文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等 |
按inode号 | -inum | 根据文件inode号查找 |
按权限查找 | -perm | 按文件权限查找 |
最大搜索目录深度 | -maxdepth level | 将你的文件已分级的形式查找 |
最小搜索目录深度 | -mindepth level | 同上 find /etc -maxdepth 2 -mindepth 2 |
使用find命令实现多个查找条件
各表达式之间使用逻辑运算符
- “-a”表示而且(and)
- “-o”表示或者(or)