文章目录
- 前言--Shell
- 一、linux命令概念
- 二、常用命令
-
- 1、常用快捷键/辅助操作
- 2、获取命令帮助
- 3、切换目录 cd命令
- 4、查询目录内信息 ls命令
- 5、创建命令别名 alias命令
- 6.统计所占用磁盘的大小------du
- 7.创建目录/文件 mkdir/touch 命令
- 8.创建链接文件 ln命令
- 9.复制文件或目录内容 CP命令
- 10.移动文件或目录内容 mv命令
- 11.删除文件或目录 rm命令
- 12.查找命令文件(外部)所在目录 which命令
- 13. 查找文件或目录 find命令
- 14.修改语言
- 15.查看文件内容 cat命令/more命令/less命令
- 16.统计文件内容 wc命令
- 17.检索和过滤文件内容 grep命令
- 18.压缩命令 gzip bzip2
- 19.制作归档文件 tar命令
- 三 vi编辑器 基础知识
前言–Shell
学习linux之前必须要知道Shell是什么,是如何工作的
- shell是linux系统中运行的一种特殊程序
- 在用户和内核之间充当“翻译官”,将输入的命令转换成计算机语言(二进制)
- shell会在用户登录linux系统的时候,自动加载
- shell程序在linux系统中默认使用Bash,bash文件位于/bin/bash
一、linux命令概念
1、分类
按照Shell可分为内部命令和外部命令
2、格式
命令字 [选项] + [参数]
命令字:
一条命令中最主要的部分
选项:
(选择以什么样的方式执行命令)
分为长选项和短选项
- 短格式选项:使用“-”符号引导 (多个单字符选项可以组合在一起使用)
- 长格式选项:使用“–”符号引导
参数:
(命令字要执行的对象)

- 命令字的处理对象
- 可以是文件名、目录(路径)名或用户名等内容
- 个数可以是零到多个
二、常用命令
1、常用快捷键/辅助操作
2、获取命令帮助
2.1 help命令
长格式用法 --help
例如:cat --help
2.2 man 命令(查看手册)
例如:man cat
- 使用“↑”、“↓”(ENTER)方向键滚动一行文本
- 使用Page Up和Page Down(空格)键翻页
- 按Q或q键退出阅读环境
- 按“/”键查找内容,n键向下查找,N键向上查找
3、切换目录 cd命令
- cd 目标位置 切换到目标位置
- cd ~或cd 若不指定目标位置,切换到当前用户的宿主目录
- cd - 切换到上一次执行cd命令之前所在的目录
3.1绝对路径/相对路径
简而言之
绝对路径是从根目录‘/’为起点 一层层的递归到目标目录
相对路径是以当前目录为起点
- 而相对路径也有数个表现形式:
4、查询目录内信息 ls命令
使用格式与常规命令相同
- ls +[选项] +[文件或目录.…]
- 也可目录内直接使用 ls查询本目录内内容
4.1 结合使用的常用选项:
(也可使用ls --help查询更多使用方法)
4.2 与通配符结合使用
-
“?”:代表任意一个字符,且至少1个
-
“*”:代表任意数个字符,可以是0个或者1个或者多个
-
“[ ]”:表示可以匹配字符组中的任意一个字符 [abc]、[a-f]
4.3 ls -l (ll)命令解读
第1字段:文件属性字
第一个字符代表文件的类型:
"_"表示该文件是一个普通文件
"d”表示该文件是一个目录
"1"表示该文件是一个软链接文件。类似于windows下的快捷方式
第1字符的后面9个字母(3个一段)表示该文件或目录的权限位:
r表是读(查看、下载)、w表示写(添加、更改、删除、上传)、x表示执行(运行文件、切换目录)
其中前三个表示文件拥有者(属主)的权限,中间三个表示文件所属组拥有的权限,最后三个表示其他用户拥有的权限。
第2字段:文件硬链接数
如果一个文件不是目录,此时这一字段表示这个文件所具有的硬链接数
如果是一个目录,则第2字段表示该目录所含子目录的个数。
如果新建一个空目录,这个目录的第二字段就是2,表示该目录下有两个子目录
第3字段:文件\目录拥有者
第4字段:文件\目录拥有者所在的组
第5字段:文件所占用的空间(默认以字节为单位)
如果是一个目录,则表示该目录的大小,而不是目录以及它下面的文件的总大小。
Linux系统中一切皆文件,因此目录也是一种文件。
第6字段:文件\目录最近访问或修改时间
第7字段:文件名
如果是一个符号链接(软链接文件),那么会有一个“->”箭头符号,后面根一个它指向的文件名
5、创建命令别名 alias命令
alias + 命令别名=‘命令’ (“=”两边不能有空格)
作用为 使偏长或经常使用的命令进行简化
例如配置网卡的命令
alias mynet='vim /etc/sysconfig/network-scripts/ifcfg-ens33'
可以通过type查询 ‘mynet’
那么下次再配置网卡时 只需输入‘mynet’即可
6.统计所占用磁盘的大小------du
统计指定目录(或文件)所占用磁盘空间的大小
命令格式为:
- du [选项] [文件或目录…]
- 统计指定目录(或文件)所占用磁盘空间的大小
6.1、常用选项
ps:-a和-s不能同时使用
- du - -max-depth=1 统计当前目录下的子目录
- du - -max-depth=1 [/目录] 统计指定目录
7.创建目录/文件 mkdir/touch 命令
7.1、mkdir 创建空目录
命令格式:
- mkdir [选项] 目录名称
- mkdir -p 目录 子目录 子子目录(嵌套创建多个目录)
7.2、touch 创建空文件
命令格式:
- touch 文件名
PS:touch命令还可以刷新文件时间标记
8.创建链接文件 ln命令
为文件或目录建立链接文件,类似于windows系统的快捷方式
命令格式
- 软连接 ln -s 源文件或目录 链接文件或目标位置
- 硬链接 ln 源文件或目录 链接文件或目标位置
8.1、软连接
需要注意的是 创建软连接文件需要用绝对路径 否则源文件移动了位置链接文件失效
8.2、硬链接
8.3 、软连接/硬链接区别
图示如下:
PS:硬链接在实际生产环境中几乎不会使用,因为它相当于起个别名,复制文件内容 并不节约空间
9.复制文件或目录内容 CP命令
命令格式
- cp [选项] 源文件或目录 目标文件或目录
常用选项
- -f 覆盖目标同名文件或目录时不进行提醒,直接强行复制
- -i 覆盖目标同名文件或目录时提醒用户确定
- -p 复制时保持源文件的权限、属主及时间标记等属性不变
- -r 复制目录时必须使用,表示递归复制所有文件及子目录
PS:复制多个文件或目录时,目标位置必须为目录,且目标目录必须已存在
10.移动文件或目录内容 mv命令
命令格式
- mv [选项] 源文件或目录 目标文件或目录
11.删除文件或目录 rm命令
命令格式
- rm [选项] 要删除的文件或目录
常用选项 - -f 删除文件或目录时不进行提醒,而直接强行删除
- -i 删除文件或目录时提醒用户确定(y确定删除,n不删除)
- -r 删除目录时必须使用次选项,表示递归删除整个目录数(谨慎使用)
- rm-rf * (删库跑路)
12.查找命令文件(外部)所在目录 which命令
命令格式:
- which 命令|程序名 默认当找到第一个目标后不再继续查找
- which -a 命令|程序名 在所有搜索路径中查找
13. 查找文件或目录 find命令
命令格式
- find [查找范围(文件或子目录的目录位置)] [查找条件表达式(条件类型)]
查找类型
- 按名称查找 -name 根据目标文件的名称进行查找,允许使用“*”和“?”通配符
- 按文件大小查找 -size 根据目标文件的大小进行查找
一般使用“+”、“-”号设置超过或小于指定大小作为查找条件
常用的容量单位包括kB(注意k是小写)、MB、GB - 按文件属主查找 -user 根据文件是否属于目标用户进行查找
- 按文件类型查找 -type 根据文件类型进行查找
文件类型包括
普通文件(f)
目录(d)
块设备文件(b)
字符设备文件(c)等
块设备文件(b):成块读取数据的设备(硬件,内存,光驱)
字符设备文件(c):按单个字符读取数据的设备(键盘,鼠标) - find命令也可以实现多个查找
各表达式之间逻辑运算符
“-a”表示而且(and)
“-o”表示或者(or)
例如:查找/root目录下 大小大于1k 以及a开头的所有文件
find中的-exec的用法
-exec参数后面跟的是Linux命令,它是以分号“;”为结束标志,由于各个系统中分号会有不同的意义,因此在分号前面加上反斜杠转义符“\”。
{}代表前面find查找出来的文件名
例如:
查找/root目录下名为a开头的所有文件 并用ls -l显示出来
find /root -name "a*" -exec ls -l {
} \;
14.修改语言
#设置系统语言为中文
localectl set-locale LANG=zh_CN.utf8
#查看当前系统使用的语言
localectl [status]
System Locale: LANG=zh_CN.UTF-8
VC Keymap: cn
X11 Layout: cn
15.查看文件内容 cat命令/more命令/less命令
15.1、cat命令
命令格式:
- cat [选项] 文件名
常用选项:
- -n 对所有输出的行数编号
- -b 对空白行不编号
- -s 将所有连续的多个空行替换为一个空行
15.2、more命令
相对于整个显示文件内容的cat命令(若为大文件可能会引起系统卡顿)
more命令更为实用(分页显示文件内容)
命令格式:
- more [选项] 文件名
常用操作
- Enter 向下逐行滚动
- 空格键 向下翻一屏
- b 向上翻一屏
- q 退出
- 详细操作可查看man手册
15.3、less命令
与more命令类似 但比more命令多了些扩展功能
命令格式:
less [选项] 文件名
常用操作:
- Page Up: 向上翻页
- Page Down: 向下翻页
- / :查找内容
- n :下一个内容
- N: 上一个内容
- ↑: 向上滚动
- ↓: 向下滚动
- Enter: 向下逐行滚动
- 空格键: 向下翻一屏
- b: 向上翻一屏
- q: 退出
总结:
more: 顾名思义显示更多
less: 由于more不能后退,就取more的反义词less加上后退功能
所以Linux里流传着这样一句话:“less is more”.
总结下more 和 less的区别:
- less可以按键盘上下方向键显示上下内容,more不能通过上下方向键控制显示
- less不必读整个文件,加载速度会比more更快
- less退出后shell不会留下刚显示的内容,而more退出后会在shell上留下刚显示的内容
15.4、补充 head/tail命令
head命令
作用:查看文件开头的一部分内容(默认为10行)
格式:
head -n 文件名 (n为行数)
tail命令
作用:查看文件结尾的少部分内容(默认为10行)
tail -n 文件名
tail -f 文件名 (跟踪文件尾部内容的动态更新)
可以用tail -f命令监控日志文件
例如:
16.统计文件内容 wc命令
命令格式:
wc [选项] 目标文件
常用/默认选项:
- -l: 统计行数
- -w: 统计单词个数
- -c:统计字节数
如命令后不带选项 则默认这为三个选项
查询出的数字分别是 -l 行数、-w 单词个数、-c 字节数
17.检索和过滤文件内容 grep命令
作用:在文件中查找并显示包括指定字符串的行
命令格式:
grep [选项] 查找条件 目标文件
常用选项
- -i 查找时不区分大小写
- -v 显示不包含匹配文本的所有行(反向查询,反向匹配)
- -n 显示匹配行及行号
- -c 只输出匹配到的总行数(不是匹配到的次数)
- -e 实现可多个查找条件的匹配,逻辑or关系
- -E 支持使用扩展正则表达式,相当于使用egrep命令
查找条件设置
- 要查找的字符串以双引号括起来
- “^……”表示以……开头,“……$”表示以……结尾
- “^$”表示空行
示例:查找text01文件里以Q开头或者以S结尾的内容
18.压缩命令 gzip bzip2
命令格式
压缩格式:gzip [-9] 文件名
bzip2 [-9] 文件(这里的-9是压缩比例,9的压缩比例最高)
解压缩
解压缩格式:gzip -d .gz格式的压缩文件 等同于 gunzip 文件名.gz
bzip2 -d .bz2格式的压缩文件 等同于 bunzip2 文件名.bz2
ps:gzip和bzip2为两种不同的压缩文件格式
19.制作归档文件 tar命令
tar:(tape archive )命令用于备份文件。
tar 是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。
命令格式:
tar [选项] 归档文件名 源文件或目录;
tar [选项] 归档文件名 [-C 目标目录]
常用选项:
- -c 创建.tar格式的包文件
- -x 解开.tar格式的包文件
- -C 解压时指定释放的自标文件夹
- -f 表示使用归档文件
- -p 打包时保留文件及目录的权限
- -P 打包时保留文件及目录的绝对路径
- -t 列表查看包内的文件
- -v 输出详细信息、(Verbose )
- -j 调用bzip2程序进行压缩或解压
- -z 调用gzip 程序进行压缩或解压
举例:
将aa、AAAAA制作名为AAA 格式为gzip的归档文件
将AAA.tar.gz文件 解压缩到指定目录 /opt/CC目录中
三 vi编辑器 基础知识
作用:创建或修改文本文件;维护Linux系统中的各种配置文件
linux中最常用的文本编辑器有两个:
vi:类似UNIX操作系统的默认文本编辑器
vim:vim是vi文本编辑器的增强版
工作模式
vi编辑器由三种工作模式:命令模式、输入模式、末行模式。
三种模式互相切换方式:
命令模式下通过a i o等命令进入编辑/输入模式
输入/末行模式下通过esc键进入命令模式
命令模式下通过shift+:键进入末行模式
命令模式切换输入模式常用按键:
- a 在当前光标位置之后插入内容
- i 在当前光标位置之前插入内容
- o 在光标所在行之下插入一个新行内容
- O 在光标所在行之上插入一个新行内容
- A 在所在行的行尾插入内容
- I 在所在行的行首插入内容
命令模式下快捷键及命令:
末行模式下移动/复制
:1,8 m(move) 9 //将1至8行的内容移动到第9行下
:1,8 co(copy) 9 //将至8行的内容复制到第9行下