Linux 常用命令
一、Linux命令概述
1.Shell
-
linux系统中运行的一种特殊程序
-
在用户和内核之间充当“翻译官”
-
用户登录linux系统时,自动加载一个shell程序
-
bash是CentOS系统中默认使用的shell程序
-
文件位于/bin/bash
-
2.Linux命令的分类
-
内部命令
-
集成于 Shell 解释器程序内部的一些特殊指令,也称为内建(Built-in)指令
-
属于 Shell 的一部分
-
没有单独对应的系统文件
-
自动载入内存,可以直接使用
-
-
外部命令
-
Linux系统中能够完成特定功能的脚本文件或二进制程序
-
属于 Shell 解释器程序之外的命令
-
每个外部命令对应了系统中的一个文件
-
必须知道其对应的文件位置,由 Shell 加载后才能执行
-
-
注意:
-
Linux系统将存放外部命令、程序的目录默认添加到 “搜索路径”中当使用位于这些目录中的外部命令时,用户不需要指定具体的位置
-
3.Linux 命令行的格式
-
通用的命令行使用格式
-
命令字
-
是整条命令中最关键的一部分
-
唯一确定一条命令
-
-
选项
-
短格式选项:使用“-”符号引导(结构简单,输入快捷)
-
多个单字符选项可以组合在一起使用
-
-
长格式选项:使用“--”符号引导 (意义明确,容易记忆)
-
-
参数 rm
-
命令字的处理对象
-
可以是文件名、目录(路径)名或用户名等内容
-
个数可以是零到多个
-
-
-
注意:
-
Linux命令环境中,对英文字符的处理是区分大小写的
-
一些 Linux命令字对于同一功能会同时提供长、短两种格式的选项
-
两种格式可以混用
-
在实际使用Linux命令行的过程中,“选项”和“参数”的称谓经常混淆,甚至前后顺序也允许颠倒,但一般不会影响到命令的执行效果
-
4.编辑 Linux 命令行
-
编辑 Linux 命令行的辅助操作
-
Tab 键
-
反斜杠“\”
-
Ctrl+u 快捷键
-
Ctrl+k 快捷键
-
Ctrl+l 快捷键 --清屏
-
Ctrl+c 快捷键 --中止程序
-
Ctrl+ a --光标到命令最前面
-
Ctrl+e --光标到命令最后面
-
Ctrl+z --将服务在后台挂起
-
5.获得命令帮助的方法
-
问题
-
如何能快速、正确使用命令完成操作?
-
-
方法
-
使用help 命令 /查看内部命令
-
使用“--help”选项 /查看外部命令
-
使用man 手册页
-
二、目录和文件基本操作
-
常用的基本操作
-
查看及切换目录
-
创建目录和文件
-
复制、删除移动目录和文件
-
查找目录和文件
-
1.查看及切换目录
①.查看当前的工作目录-pwd
-
显示用户当前所在的工作目录位置
-
[root@localhost ~]# pwd
/root
-
②.切换工作目录-cd
-
将用户的工作目录更改到其他位置
-
cd 目标位置--切换到目标位置
-
cd --若不指定目标位置,切换到当前用户的宿主目录
-
cd - --切换到上一次执行cd命令之前所在的目录
-
cd . --当前目录
-
cd .. --上级目录
-
③.绝对路径与相对路径
-
绝对路径:最准确,但麻烦。路径以“/”开始
-
相对路径:简单方便,路径不以“/”开始
-
相对路径的表现形式
表现形式 | 说明 | 示例 |
---|---|---|
直接使用目录名或文件名 | 当前工作目录中的子目录、文件的位置 | grub.conf |
以一个点号“.”开头 | 以当前的工作目录作为起点 | ./grub.conf |
以两个点号“..”开头 | 以当前目录的上一级目录(父目录)作为起点 | ../vmlinuz |
以“~用户名”形式开头 | 以指定用户的宿主目录作为起点 | ~/teacher |
④.列表显示目录内容-ls
-
显示目录中内容,包括子目录和文件相关属性信息
-
ls [选项] [文件或目录… ]
-
-
常用选项
-
-l:显示详细信息
-
-a:显示子目录和文件,包括"."开头的隐藏目录和隐藏文
-
-A:不显示包括"."开头的隐藏目录和隐藏文
-
-d:显示该文件或目录本身属性
-
-h:以单位显示文件或目录大
-
-R:以递归的方式显示目录以及子目录的所有内
-
--color:为查询结果添加颜色进行显示)
-
-
结合通配符
-
“?”:匹配文件名中的一个未知字符
-
“*”:匹配文件名中的任意多个字符
-
⑤.alias 命令
-
通过别名机制简化常用的、比较长的命令
-
alias 命令别名=命令
-
-
设置myls 为ls -alh的别名
-
alias myls=‘ls – alh’(别名是myls)
-
-
取消别名定义:
-
unalias myls
-
⑥.统计目录及文件空间占用情况-du
-
统计指定目录(或文件)所占用磁盘空间的大小
-
du [选项] [文件或目录… ]
-
-
常用选项
-
-a:统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录
-
-h:显示出目录或文件的大小(K、M),默认的大小单位为字节(KB)
-
-s:只统计每个参数所占用空间总的大小,而不是统计每个子目录、文件的大小
-
2.创建目录和文件
①.创建新目录 – mkdir
-
创建新的空目录
-
mkdir [选项] 目录位置及名称
-
mkdir -p /home/{A,B}/abc
-
以上命令为在home下创建A,B两个文件夹及在其中创建abc文件夹
-
-
②.创建空文件 – touch
-
更新文件的时间标记
-
经常用于创建多个新的空文件
-
touch 文件…
-
但是一般常用创建文件命令是vim
-
③.创建链接文件 – ln
-
为文件或目录建立链接文件
-
文件类型
-
软链接
-
能对文件或目录生效,做快捷方式,原始文件被删除后快捷方式失效
-
又称为符号链接
-
类似于Windows系统的快捷方式
-
-
硬链接
-
只能对文件,相当于文件复制,但是数据会同步,删除一个对另一个没有影响
-
-
软链接 | 硬链接 | |
---|---|---|
删除原始文件后 | 失效 | 仍旧可用 |
使用范围 | 适用于文件或目录 | 只可用于文件 |
保存位置 | 与原始文件可以位于不同的文件系统中 | 必须与原始文件在同一个文件系统(如一个Linux分区)内 |
-
创建软链接
-
ln [-s] 源文件或目录… 链接文件或目标位置
-
ln -s /bin/bzip2 /bin/wx/
-
-
注意
-
在链接时,要使用绝对路径
-
3.复制、删除、移动目录和文件
①.复制文件或目录-cp
-
将需要复制的文件或目录(源)重建一份,并保存为新的文件或目录
-
cp [选项]… 源文件或目录… 目标文件或目录…
-
-
常用选项
-
-f:覆盖目标同名文件或目录时不进行提醒,直接强制复制
-
-i:覆盖目标同名文件或目录时提醒用户确认
-
-p:复制时保持源文件的权限,属主及时间标记等属性不变
-
-r:复制目录时必须使用此选项,表示递归复制所有文件及子目录
-
-
注意
-
复制多个文件或目录时,目标位置必须是目录,且目标目录必须已存在
-
②.删除文件或目录-rm
-
删除指定的文件或目录
-
rm [选项] 要删除的文件或目录…
-
-
常用选项
-
-f:即使文件属性设为只读也直接删除,不逐一确认,此外忽略不存在的文件,不产生提示。
-
-i:删除之前逐一询问确认。
-
-r:递归删除目录及其内容。
-
-rf:命令强制删除包括目录 不提醒
-
-
注意
-
不要直接删除系统中已有的目录或配置文件,以避免出现意外故障
-
③.移动文件或目录-mv
-
将指定的文件或目录转移位置
-
如果目标位置与源位置相同,则相当于执行重命名操作
-
mv [选项] … 源文件或目录… 目标文件或目录
-
4.查找目录和文件
①.查找命令/文件存放目录-which
-
搜索范围由环境变量 PATH 决定(echo $PATH)
-
which 命令|程序名
-
which -a 命令|程序名
-
-
命令演示
-
which Is
-
which cd
-
②.查找文件或目录-find
-
采用递归方式,根据目标的名称、类型、大小等不同属性进行精细查找
-
find [查找范围] [查找条件表达式]
-
查找范围:查找文件或子目录的目录位置
-
查找条件表达式:查找条件类型
-
-
-
常用查找条件类型
查找类型 | 关键字 | 说明 |
---|---|---|
按名称查找 | -name | 根据目标文件的名称进行查找,允许使用“*”及“?”通配符 |
按文件大小查找 | -size | 根据目标文件的大小进行查找 一般使用“+”、“-”号设置超过或小于指定的大小作为查找条件 常用的容量单位包括 kB(注意 k 是小写)、MB、GB |
按文件属主查找 | -user | 根据文件是否属于目标用户进行查找 |
按文件类型查找 | -type | 根据文件的类型进行查找 文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等 块设备是指成块读取数据的设备(如硬盘、内存等),字符设备是指按单个字符读取数据的设备(如键盘、鼠标等) |
-
使用 find 命令实现多个查找条件
-
各表达式之间使用逻辑运算符
-
“-a”表示 而且(and)
-
“-o”表示 或者(or)
-
find /boot -size +1024k -a -name “vmlinuz”
-
find /boot -size +1024k -o -name “vmlinuz”
-
-
-
目录和文件管理
一、查看和检索文件
1.查看文件内容
①查看文件内容cat 命令
-
cat命令
-
用途:显示出文件的内容
-
当文件内容较多时,使用cat命令往往只能看到文件的最后一部分内容,而无法分页逐屏显示
-
cat [选项] 文件名 …
-
-
②查看文件内容more命令
-
more命令
-
用途:全屏方式分页显示文件内容
-
more命令结合管道操作使用时(例如:ls -R /etc | more)无法向上翻页
-
more [选项] 文件名 …
-
-
-
交互操作方法
-
按Enter键向下逐行滚动
-
按空格键向下翻一屏
-
按q键退出
-
③查看文件内容less命令
-
less 命令
-
用途:与 more 命令相同,但扩展功能更多
-
less [选项] 文件名 …
-
-
-
交互操作方法
-
Page Up 向上翻页,Page Down 向下翻页
-
按“/”键查找内容,“n”下一个内容,“N”上一个内容
-
其他功能与 more 命令基本类似
-
④查看文件内容 head、tail 命令
-
head命令
-
用途:查看文件开头的一部分内容(默认为10行)
-
head -n 文件名 …
-
-
-
tail命令
-
用途:查看文件结尾的少部分内容(默认为10行)
-
tail -n 文件名 …
-
tail -f 文件名
-
-
-
对比讲解head、tail的用法
-
tail命令结合“-f”选项使用时,可以用于跟踪日志文件末尾的内容变化,实时显示更新的日志内容
-
2.统计和检索文件内容
①统计文件内容 wc 命令
-
wc命令
-
用途:统计文件中的单词数量(Word Count)等信息
-
wc [选项]... 目标文件...
-
-
-
常用命令选项
-
-l:统计行数
-
-w:统计单词个数
-
-c:统计字节数
-
wc命令未指定选项时,默认相当于”-lwc“,会同时统计行数、单词数、字节数(含空格、回车等符号)
-
②检索和过滤文件内容 grep 命令
-
grep命令
-
用途:在文件中查找并显示包含指定字符串的行
-
grep [选项]... 查找条件 目标文件
-
-
-
常用命令选项
-
-i:查找时忽略大小写
-
-v:反选,输出与查找条件不相符的行
-
-A 1:表示查看包含指定字符串及后一行
-
-B 2:表示查看包含指定字符串及前两行
-
-C 1:表示查看包含指定字符串及前后一行
-
-c:统计指定字符串在文件中出现的行数
-
-
查找条件设置
-
要查找的字符串以双引号括起来
-
“^……”表示以……开头,“……$”表示以……结尾
-
“^$”表示空行
-
二、压缩/解压缩
1.使用压缩和解压缩工具
①压缩命令 gzip、bzip2 命令
-
gzip命令、bzip2命令
-
用途:制作压缩文件、解开压缩文件
-
制作压缩文件
-
gzip [-9] 文件名…
-
bzip2 [-9] 文件名...
-
-
解开压缩文件
-
gzip -d .gz格式的压缩文件
-
bzip2 -d .bz2格式的压缩文件
-
-
-
-
常用命令选项
-
-9、-d
-
-
注意
-
gzip和bzip2命令使用的压缩算法各不相同,一般来说bzip2的压缩效率要好一些
-
对比讲解gzip和bzip2命令的用法,注意说明生成文件的后缀名称
-
gzip和bzip2命令使用的压缩算法有一定区别,但命令使用格式基本类似,通常认为bzip2的压缩效率要更好一些
-
这两个命令工具通常并不单独使用,而是与tar命令结合起来使用
-
②压缩命令 gunzip、bunzip2 命令
-
gunzip 命令
-
gunzip 等价于 gzip –d
-
gzip -d mkfile.gz
-
-
或
-
gunzip mkfile.gz
-
-
-
bunzip2 命令
-
bzip2和bunzip2命令的用法与gzip、gunzip命令基本相同
-
2、使用 tar 归档和释放工具
①归档命令tar命令
-
tar命令
-
用途:制作归档文件、释放归档文件
-
tar [选项] ... 归档文件名 源文件或目录
-
tar [选项]... 归档文件名 [-C 目标目录]
-
-
-
常用命令选项
-
-c:创建 .tar 格式的包文件
-
-x:解开.tar格式的包文件
-
-v:输出详细信息
-
-f:表示使用归档文件
-
-p:打包时保留原始文件及目录的权限
-
-t:在不解压包的情况下看包内内容
-
-C:解包时指定释放的目标文件夹
-
-z:调用gzip程序进行压缩或解压
-
-j:调用bzip2程序进行压缩或解压
-
-
注意
-
制作归档文件的意思是将许多零散的文件做成一个包(可以压缩,也可以不压缩)
-
小写字母“-p”选项用于保持原始文件权限等信息,大写字母“-P”选项用于保持原始文件的绝对路径,参考“man tar”帮助
-
使用tar命令时,选项前的“-”号引导字符可以省略
-
在实际的备份工作中,通常在归档的同时也会将包文件进行压缩(见下页),以便节省磁盘空间
-
三、使用 vi 文本编辑器
1.vi 编辑器的工作模式
①文本编辑器 vi 命令
-
文本编辑器的作用
-
创建或修改文本文件
-
维护 Linux 系统中的各种配置文件
-
-
Linux中最常用的文本编辑器
-
vi:类UNIX操作系统的默认文本编辑器。
-
vim:vim是vi文本编辑器(一般简称为vi编辑器)的增强版本
-
②vi 编辑器的工作模式
-
三种工作模式
-
命令模式、输入模式、末行模式
-
-
不同模式之间的切换
-
结合图示介绍vi编辑器的三种工作模式,相当于图形软件窗口中的不同界面,不同的模式中能够对文件进行的操作也不相同
-
1)命令模式:启动vi编辑器后默认进入命令模式,该模式中主要完成如光标移动、字符串查找,以及删除、复制、粘贴文件内容等相关操作
-
2)输入模式:该模式中主要的操作就是录入文件内容,可以对文本文件正文进行修改、或者添加新的内容。处于输入模式时,vi编辑器的最后一行会出现“-- INSERT --”的状态提示信息
-
3)末行模式:该模式中可以设置vi编辑环境、保存文件、退出编辑器,以及对文件内容进行查找、替换等操作。处于末行模式时,vi编辑器的最后一行会出现冒号“:”提示符
-
2.命令模式中的基本操作
①命令模式中的基本操作1
操作类型 | 操作键 | 功能 |
---|---|---|
光标方向移动 | 方向键上下左右 | 上、下、左、右 |
翻页 | Page Down或Ctrl+F | 向下翻动一整页内容 |
Page Up或Ctrl+B | 向上翻动一整页内容 | 向上翻动一整页内容 |
行内快速跳转 | Home键或“^”、数字“0” | 跳转至行首 |
End键或“$”键 | 跳转到行尾 | 跳转到行尾 |
行间快速跳转 | 1G或者gg | 跳转到文件的首行 |
G | 跳转到文件的末尾行 | 跳转到文件的末尾行 |
#G | 跳转到文件中的第#行 | 跳转到文件中的第#行 |
行号显示 | :set nu | 在编辑器中显示行号 |
:set nonu | 取消编辑器中的行号显示 | 取消编辑器中的行号显示 |
②命令模式中的基本操作2
操作类型 | 操作键 | 功能 |
---|---|---|
删除 | x或Del | 删除光标处的单个字符 |
dd | 删除当前光标所在行 | 删除当前光标所在行 |
#dd | 删除从光标处开始的#行内容 | 删除从光标开始的#行内容 |
d^ | 删除当前光标之前到行首的所有字符 | 删除当前光标之前到行首的所有字符 |
d$ | 删除当前光标处到行尾的所有字符 | 删除当前光标处到行尾的所有字符 |
复制 | yy | 复制当前行整行的内容到剪贴板 |
#yy | 复制从光标处开始的#行内容 | 复制从光标处开始的#行内容 |
粘贴 | p | 将缓冲区中的内容粘贴到光标位置处之后 |
P | 粘贴到光标位置处之前 | 粘贴到光标位置处之前 |
③命令模式中的基本操作3
操作键 | 功能 |
---|---|
/word | 从上而下在文件中查找字符串“word” |
?word | 从下而上在文件中查找字符串“word” |
n | 定位下一个匹配的被查找字符串 |
N | 定位上一个匹配的被查找字符串 |
④命令模式
操作键 | 功能 |
---|---|
u | 按一次取消最近的一次操作 多次重复按u键,恢复已进行的多步操作 |
U | 用于取消对当前行所做的所有编辑 |
ZZ | 保存当前的文件内容并退出vi编辑器 |
3.末行模式中的基本操作
①末行模式1
功能 | 命令 | 备注 |
---|---|---|
保存文件 | :w | 保存修改的内容 |
:w /root/newfile | 另存为其它文件 | 另存为其他文件 |
退出vi | :q | 未修改退出 |
:q! | 放弃对文件内容的修改,并退出vi | 放弃对文件内容的修改,并推出vi |
保存文件退出 vi | :wq | 保存修改的内容并退出 |
②末行模式2
命令 | 功能 |
---|---|
:e ~/install.log | 打开新的文件进行编辑 |
:r /etc/filesystems | 在当前文件中读入其他文件内容 |
③末行模式3
命令 | 功能 |
---|---|
:s /old/new | 将当前行中查找到的第一个字符“old” 串替换为“new” |
:s /old/new/g | 将当前行中查找到的所有字符串“old” 替换为“new” |
:#,# s/old/new/g | 在行号“#,#”范围内替换所有的字符串“old”为“new” |
:% s/old/new/g | 在整个文件范围内替换所有的字符串“old”为“new” |
:s /old/new/c | 在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认 |