一、shell介绍
1、shell是Linux系统中运行的一种特殊程序,在用户和内核之间充当“翻译官”,接收用户输入的命令,并将命令翻译成计算机语言,传递给内核执行调用相关硬件资源。
2、用户登录Linux系统时,自动加载一个Shell程序。
3、Bash是Linux系统中默认使用的Shell程序,文件位于/bin/bash。
二、Linux命令的分类
内部命令:集成于shell,属于shell的一部分;没有独立的系统文件;会随着shell自动加载到内存,可以直接使用。
外部命令:由一个二进制程序文件或脚本文件组成;属于shell之外的命令,每个外部命令都要有一个对应的系统文件;需要让shell知道文件位置才能自动加载(即将文件放入到PATH环境变量指定的目录中)。
内部命令和外部命令的区别:
通过help命令可以查询所有命令,如图所示:
help <内部命令>
<命令字> --help
man <命令字>
判断一个命令是否为内部命令用 type xx 格式查询,例如查询help是否是内部命令,输入type help,如下图所示:
vi是外部命令,有独立的文件,如下图所示:
外部命令存放于 echo $PATH, 一个一个找,找到为止,找不到就报无命令
内部命令的开启和关闭:
enable 开启内部命令
enable -n 关闭内部命令
三、Linux命令行的格式
通用命令行格式:命令字+【选项】+【参数】 (英文字母区分大小写)(其中选项和参数是可选项,有些命令可以省略,例如ls命令)
命令字:
是整条命令中最关键的一部分,能够唯一确定一条命令。
选项:
短格式选项:使用“-”符号引导
长格式选项:使用“--”符号引导
注:多个短格式选项可以组合再一起使用(长格式不可以)。如图所示:
参数:
命令字的处理对象,可以是文件名、目录(路径)名或用户名等内容,个数可以是零到多个。
四、编辑Linux命令行
编辑Linux命令行的辅助操作:
- Tab 键:自动补齐
- 反斜杠“\”:强制换行
- Ctrl +U组合键: 清空至行首
- Ctrl + K组合键: 清空至行尾
- Ctrl + L组合键:清屏
- Ctrl + C组合键:取消本次命令编辑
- Ctrl + a组合键:切换到行首
- Ctrl + e组合键:切换到行尾
获得命令帮助的方法
内部命令help:
查看Shell内部命令的帮助信息
命令的“--help”选项:
适用于大多数Linux外部命令
使用man命令阅读手册页:
使用“向上箭头”、“向下箭头”(ENTER)方向键滚动一行文本
使用Page Up和Page Down (空格) 键翻页
按Q或q 键退出阅读环境
按”/”键查找内容,n键向下查找,N键向上查找
查看当前工作目录: pwd
示例:
切换工作目录:
格式 | 说明 |
cd 目标位置 | 切换到目标位置 |
cd~ cd | 若不指定目标位置,则切换到当前用户的宿主目录 |
cd- | 切换到上一次执行 cd 命令之前所在的目录 |
相对路劲表现形式:
表现形式 | 说明 | 示例 |
直接使用目录名或文件名 | 表示当前工作目录中的子目录、文件的位置 | grub.conf |
以一个点号“.”开头 | 表示以当前的工作目录作为起点 | ./grub.conf |
以两个点号".."开头 | 表示以当前目录的上一级目录 (父目录)作为起点 | ../vmlinuz |
以“~用户名”形式开头 | 表示以指定用户的宿主目录作为起点 | ~teacher |
以“~”形式开头 | 表示以当前用户的宿主目录作为起点 |
以绝对路径:
根目录 / 为起点的路径,如 /usr/local/bin/cfssl
列表显示目录内容ls
显示目录中内容,包括子目录和文件相关属性信息
格式:【ls 选项】 【文件或目录】
常用选项:
-l 以长格式的形式显示文件/子目录的属性
-a/-A 显示目录中所有的隐藏文件,-A不显示 . 和 ..
-h 以人性化的方式显示文件/子目录大小(默认单位为字节)
-d 查看目录本身
-R 以递归的方式显示目录中所有子目录的内容
-t 以时间排序显示,默认从最新到最老的方式
-r 反向排序
-i 显示文件/目录的 inode 号--color: 在字符模式中以颜色区分不同的文件。默认已开启,通常情况下,深蓝色表示目录,白色表示一般文件,绿色表示可执行的文件,黄色表示设备文件,红色表示压缩文件。
注:ls -l显示文件属性一共有 7 个字段分别是:文件类型(d表示目录;l表示软链接;c表示设备文件)+权限位 文件硬链接数/目录的子目录数 属主 属组 文件大小 文件修改时间 文件名
例如:-rwxr-xr-x. 1 root root 215840 11月 6 2016 zip
其中 -为文件类型,这里表示普通文件
“rwxr-xr-x.”表示权限位,"r"可读 “w”可写 “x”表示可操作
“1”表示文件硬链接数或者目录的子目录数
“root root”两个字段分别表示属主和属组
“215840”表示文件大小
“11月 6 2016”表示时间
“zip”表示文件名
通配符
*表示任意长度的任意字符
?表示一个任意字符
[XXXX]表示列表中的任意一个字符
ls x*表示列出以x开头的文件;ls x*x表示列出以x开头并以x结尾的文件,其中中间长度任意;
ls x?x表示列出以x开头和结尾的文件并且中间为个数为1的任意字符,如下图所示。
ls x[xxxx]x表示以x开头结尾且任选列表中一个字符的文件,例如:
[root@localhost opt] # ls 1[12345]1
111
设置别名-alias
创建别名命令:alias 别名命令='命令字 [选项] [参数]' (“=”两边不能有空格)
取消别名命令:unalias 别名命令
显示所有的别名命令:alias
例:
统计目录及文件空间占用情况-du
作用:统计指定目录(或文件) 所占用磁盘空间的大小
格式 du +【选项】+【文件或目录】
常用选项:
选项 | 说明 |
-a | 统计目录及其所有子目录和文件的占用大小 |
-s | 仅统计目录本身的占用大小,不能和 -a 选项同时使用 |
-h | 以人性化的方式显示占用大小(默认单位为KB) |
-d1 --max-depth=1 | 仅统计目录中的第一层子目录的占用大小 |