目录
操作系统的架构
Shell层是与用户直接交互的界面。用户可以在提示符下输入命令行,由Shell解释执行并输出相应结果或者有关信息。Shell层作为命令解释器,允许用户通过系统提供的命令来与内核进行交互。
- 用户
- 核外程序(Shell层)
- 内核
- 硬件
Shell
- Linux系统中运行的一种特殊程序
- 在用户和内核之间充当 “翻译官”
- 用户登录Linux系统时,会自动加载一个Shell程序
- Bash是Linux系统中默认使用的Shell程序
- 文件位于 /bin/bash
Shell的作用
- 接收用户输入的命令
- 解释命令
- 传递给系统内核执行
Linux命令的分类
-
内部命令
- shell解释器自带的命令,执行效率高,速度快
-
外部命令
- shell解释器不自带的,安装某些包的时候,被安装到系统的命令
内部命令 | 外部命令 |
集成于Shell解释器程序内部的一些特殊指令,也成为内建(Built-in)指令 | Linux系统中能够完成特定功能的脚本文件,或二进制程序 |
数据Shell的一部分 | 数据Shell解释器程序之外的命令 |
没有单独对应的系统文件 | 每个外部命令对应了系统中的一个文件 |
自动载入内存,可以直接使用 | 必须知道其对应的文件位置,由Shell加载后才能执行 |
Linux命令行的格式
- 通用的命令行使用格式
- 关键字 [选项] [参数]
-
关键字
- 命令执行功能
- 是整条命令中最关键的一部分
- 唯一确定一条命令
- 区分大小写
-
选项
- 调节输入方式
- 短格式选项:使用 “-” 符号引导
- 长格式选项:使用 “--” 符号引导
-
参数
- 命令执行的对象
ls -a:一个字母做选项:短格式
ls --help 一个单词做选项:长格式
命令
基本命令
命令 | 说明 |
ip a | 查看IP地址 |
hash | 查看输入过的命令次数 |
pwd | pwd:print working directory 打印 当前工作的 目录 |
cd [路径] | 切换指定目录 cd:change directory |
\ | 强制换行,当输入很长的命令可以在想换行的地方输入\ 直接回车可以换行输入 |
查看相关命令
命令 | 说明 |
enable | 查看所有内部命令 |
enable | wc -l | 查看内部命令的行数 wc:word count -l:line - 行数 |
type [cd] | 查看cd命令的类型是外部还是内部命令 显示:cd 是 shell 内嵌 |
type [ls] | 查看ls是内部还是外部命令 显示:ls 是 `ls --color=auto' 的别名 |
man [ls] | 查看ls命令手册 man:manu |
which [ls] | 查看ls命令的文件位置 显示:alias ls='ls --color=auto' /usr/bin/ls |
ls | ls:list; 查看当前目录下所有文件,不包括以.开头的隐藏文件 蓝色字体代表改文件是目录 |
ls -a /opt | 查看 /opt 所有文件和目录,包括隐藏文件(以.开头的文件) |
ls -l | 以长格式显示当前目录信息 |
ll [绝对路径] | 详细显示当前或指定目录下信息 |
ll -d | 只显示当前目录下的目录 |
ll -h | h:human 人性化的打印当前目录信息(文件带字节单位) |
ll -i | 加上每个文件的唯一标识编号(inode / i节点)并显示该目录信息 |
du | du:disk usage - 磁盘用量 disk:硬盘 usage:利用率 |
du -a [/opt] | 显示/opt目录占用的磁盘空间大小,还要显示其下目录和文件占用磁盘空间的大小 |
du -ah | 同-a,带字节单位,更人性化 |
du -s | s:summary - 总共 不能和 -a 一起使用 显示该目录总磁盘占用量 |
du -sh | 用更人性化的字节显示该目录总磁盘占用量 |
cat 文件名 | 打印该文件内容 |
编辑相关指令
命令 | 说明 |
vi /etc/TAB | 在vi 查看 /etc/ 忘记了后面的目录名时 连续按两下TAB键来列出目录下的文件 |
vim [路径] | 用vim编辑器编辑文件 |
操作文件相关命令
命令 | 说明 |
mkdir | mk:make - 创建; 制作 dir:directory 创建目录 |
mkdir -p /root/aaa/bbb/ccc/ddd | 创建目录时,将整个目录树一同创建出来 |
touch 文件名 | touch:触摸 如果touch的文件存在就更新时间戳,如果touch的文件不存在就创建文件 |
ln -s 源绝对路径 [目标绝对路径] | ln:link - 链接 -f:强制 软链接:-s ; 可以针对文件和目录,能跨分区 硬链接:不加-s 默认创建为硬链接,只针对文件吗,不能跨分区创建硬链接 当源文件和链接文件不在一个路径,要用绝对路径。 源文件和链接文件在一个路径内,可以用相对路径。 |
cp -f 源文件 绝对路径[/修改后的名字] | -f:强制复制,如果目标路径有同名文件将直接覆盖,没有提示弹出 -f在当前目录的.bashrc文件内删除对应cp命令才生效 -r:拷贝目录 复制文件到指定位置 |
rm -rf 文件名.后缀 | 删除当前目录下指定文件 rm:remove -r:递归,如果是目录用r,如果是文件不用r,如果都有加上r -f:强制删除 |
查询相关命令
命令 | 说明 |
find /opt | 查找该目录下的目录和文件 |
find /etc/ -name "ifcfg-ens33" | 查找该目录下所有文件以子目录内所有文件名字为ifcfg-ens33的文件位置 |
find /etc/ -name *.conf | 查找 /etc/ 目录下后缀名为 .conf 的所有文件 |
find /etc/ -name re*.conf | 查找 /etc/ 目录下 开头为re,后缀名为 .conf 的所有文件 |
find /boot -type d | 查找 /boot 目录下 类型为directory的所有目录及子目录 |
find /boot -size +1024k -a -name "vm*" | 查找 /boot 目录下 文件大小大于1024k 且 名称以vm为开头的所有文件 -a:and |
find /boot -size +1024k -o -name "vm*" | 查找 /boot 目录下 文件大小大于1024k 或 名称以vm为开头的所有文件 -o:or |
find /dev/ -type c | 查找 /dev/ 目录下所有的字符设备文件 |
常用快捷键
快捷键 | 说明 |
Ctrl + U | 删除 所处输入位置 之前的全部文本 |
Ctrl + K | 删除 所处输入位置 之后的全部文本 |
Ctrl + C | 取消当前命令(cancel) |
Ctrl + L | 清屏(clear) |
Ctrl + A | 将光标位置移动到最前方(左) |
相关命令概述
路径
绝对路径
从根开始输入路径
相对路径
从当前位置开始输入路径
ll对应文件信息
当用ll命令查看目录内容时,最左侧会显示一串字母组成的文件类型
示例:drwxr-xr-x.
第一个字母:文件类型
第一个字母代表文件的类型,d rwxr-xr-x.
文件类型 | 说明 |
d | 目录 |
- | 普通文件 |
l | 连接文件 |
b | 块文件(存储文件) |
c | 字符文件(键盘) |
r | read(读) |
w | write(写) |
x | execute(执行) |
文件属性
第一个字母开始,往后的字母每三个为一组
rwx r-x r-x
属主 属组 其他
- 属主:我是谁的
- 属组:我是哪个组的(包含多个用户的)
- 其他:既不是属主,也不是属组