05 实用指令
5.1 指定运行级别
运行级别说明:
0:关机
1:单用户【找回丢失密码】
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图形界面
6:系统重启
● 常用级别为:3和5
● 修改默认运行级别:
● /etc/inittab 中的 id:5:initdefault:更改数字
运行级别示意图:
5.2 切换到指定运行级别的指令
● 基本语法:
init [0123456]
【案例】通过init来切换不同的运行级别,比如:5->3,然后关机
# init 3
# init 5
# init 0
5.3 帮助指令
● 基本语法:
man 【命令/配置文件】(功能:获取帮助信息)
【案例】查看ls命令的帮助信息
# man ls
5.3 help指令
基本语法:
help 命令 (功能:获得shell内置命令的帮助信息)
【案例】查看cd命令的帮助信息
# help cd
5.4 文件目录类
5.4.1 pwd指令
● 基本语法:
pwd (功能:显示当前工作目录的绝对路径)
5.4.2 ls指令
● 基本语法:
ls [选项] [目录/文件]
● 常用选项
-a :显示当前目录所有的文件和目录,包括隐藏的。
-b :以列表的方式显示信息
【案例】查看当前目录的所有内容信息
# ls
# ls -l
# ls -al
5.4.3 cd指令
● 基本语法:
cd [参数] (功能:切换到指定目录)
● 如何理解绝对路径和相对路径?
【思考题】当前工作目录为/root,我们希望进入到/home下
● 绝对路径:/home 即从根目录开始定位
● 相对路径:../home 从当前工作目录开始定位到需要的目录去
● 常用参数:
# cd ~ / cd 回到自己的家目录
# cd .. 回到当前目录的上一级目录
【案例1】使用绝对路径切换到root目录
# cd /root
【案例2】当前目录/usr/lib,使用相对路径到/root
# cd ../../root
【案例3】回到家目录
# cd
# cd ~
5.4.4 mkdir指令
mkdir是make directory的缩写,用于创建目录
● 基本语法:
mkdir [选项] 目录名
● 常用选项:
-p :创建多级目录
【案例1】创建一个目录 /home/dog
# mkdir /home/dog
【案例2】创建多级目录 /home/animal/tiger
# mkdir -p /home/animal/tiger
5.4.5 rmdir指令
rmdir 用于删除空目录
● 基本语法:
rmdir [选项] 空目录名
【案例】删除一个目录 /home/dog
# rmdir /home/dog
注意:
rmdir只能删除空目录
删除非空文件:
rm -rf 目录名
5.4.6 touch指令
touch指令用于创建空文件
● 基本语法:
touch 文件名
【案例】创建一个空文件hello.txt
# touch hello.txt
5.4.7 cp指令
cp指令拷贝文件到指定目录
● 基本语法:
cp [选项] source dest
source:源目录
dest:目标目录
● 常用选项
-r :递归复制整个文件夹
【案例1】将 /home/aaa.txt 拷贝到 /home/bbb 目录下。
# touch aaa.txt
# mkdir bbb
# cp aaa.txt bbb/
【案例2】将 /home/test 整个目录拷贝到 /home/zwj 目录
# cp -r test/ zwj/
【案例3】强制覆盖不提示的方法:\cp
# \cp -r test/ zwj/
5.4.8 rm指令
● 基本语法:
rm [选项] 文件名/目录名
● 功能:
删除要文件或者目录
● 常用选项
-r :递归删除整个文件夹
-f :强制删除不提示
【案例1】将 /home/aaa.txt 删除
# rm aaa.txt
【案例2】递归删除整个文件夹 /home/bbb
# rm -rf bbb
5.4.9 mv指令
mv 移动文件与目录或重命名
● 基本语法:
mv oldNameFile newNameFile (功能:重命名)
mv /temp/movefile/tagerFolder (功能:移动文件)
【案例1】将 /home/aaa.txt 文件重命名为 pig.txt
# cd /home
# mv aaa.txt pig.txt
【案例2】将 /home/pig.txt 文件移动到 /root 目录下
# cd /home
# mv pig.txt /root/
5.4.10 cat指令
cat 查看文件内容,只读
● 基本语法
cat [选项] 要查看的文件
● 常用选项
-n:显示行号
【案例】/etc/profile 文件内容,并显示行号
# cat -n /etc/profile | more
注意:
cat 只能浏览文件,而不能修改文件,为了方便浏览。 管道命令 | more
5.4.11 more指令
● more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。
● 基本语法
more 文件名
● 快捷键
浮点
操作 | 功能说明 |
空白键(sapce) | 向下翻一页 |
Enter | 向下翻一行 |
q | 离开more |
Ctrl + F | 向下滚动一屏 |
Ctrl + B | 返回上一屏 |
= | 输出当前行的行号 |
f | 输出文件名和当前文件的行号 |
【案例】采用more查看文件
# more /etc/profile
5.4.12 less指令
● less指令用来分屏查看文件内容,它的功能与more类似,但是比more更加强大,支持各种终端。
● 基本语法
less 文件名
● 快捷键
操作 | 功能说明 |
空白键(sapce) | 向下翻一页 |
[pagedown] | 向下翻一行 |
[pageup] | 向上翻一行 |
/字串 | 向下搜索[字串]功能:n-向下查找 N-向上查找 |
?字串 | 向上搜索[字串]功能:n-向上查找 N-向下查找 |
q | 离开less程序 |
5.4.13 >指令 和 >>指令
● >指令:会将原来的文件内容覆盖
● >>指令:不会覆盖,而是追加到文件的尾部
【案例1】ls -l > 文件名
# ls -l > a.txt
# more a.txt
【案例2】ls -al >> 文件名
# ls -l >> b.txt
【案例3】cat 文件1 > 文件2
# cat /etc/profile > c.txt
5.4.14 echo指令
● echo输出内容到控制台
● 基本语法
echo [选项] [输出内容]
【案例1】使用echo指令输出环境变量,输出当前的环境路径
# echo $PATH
【案例2】使用echo输出hello,world!
# echo "hello, world!"
5.4.15 head指令
● head显示文件开头部分内容,默认显示前10行。
● 基本语法
head 文件名
head -n 5 文件名 (功能:查看文件前5行内容)
【案例】查看/etc/profile的前面5行代码
# head -n 5 /etc/profile
5.4.16 tail指令
● tail输出文件尾部内容,默认输出后10行
● 基本语法
tail 文件
tail -n 5 文件
tail -f 文件 (功能:实时追踪该文档的所有更新,工作经常使用)
【案例1】查看 /etc/profile 最后5行的代码
# tail -n 5 /etc/profile
【案例2】实施监控mydate.txt ,看到文件有变化时,是否看到,实时的追加日期。
# tail -f mydate.txt
5.4.17 ln指令
● ln 软连接指令也称符号连接,类似于windows里的快捷键,主要存放了连接其他文件的路径
● 基本语法
ln -s [源文件/目录] [软连接名] (功能:给源文件创建一个软连接)
【案例1】在 /home 目录下创建一个软连接 linkToRoot,连接到 /root 目录
# ln -s /root linkToRoot
【案例2】删除软连接 linkToRoot
# rm -rf linkToRoot
注意:
● 删除软连接文件时,不要带“ / ”,否则提示,资源忙。
● 使用 pwd 指令查看目录时,看到的仍然时软连接所在目录。
5.4.18 history指令
● 查看已经执行过历史命令,也可以执行历史指令
● 基本语法
history
【案例1】显示所有的历史命令
# history
【案例2】显示最近使用过的10个指令
# history 10
5.5 时间日期类
5.5.1 date指令 - 显示日期
● date指令用于显示当前时间
● 基本语法
date (功能:显示当前时间)
date +%Y (功能:显示当前年份)
date +%m (功能:显示当前月份)
date +%d (功能:显示当前时哪一天)
date "+%Y-%m-%d%H:%M:%S" (功能:显示年月日时分秒)
【案例1】显示当前时间
# date
【案例2】显示当前年月日
# date "+%Y %m %d"
# date "+%Y-%m-%d"
【案例3】显示当前年月日时分秒
# date "+%Y-%m-%d%H:%M:%S"
5.5.2 date指令 - 设置日期
● 基本语法
date -s 字符时间
【案例】将当前的系统时间设置为:2018-10-10 11:22:22
# date -s "2018-10-10 11:22:22"
5.5.3 cal指令
● 查看日历指令
● 基本语法
cal [选项] (功能:不加选项,显示本月日历)
【案例1】显示当前日历
# cal
【案例2】显示2021年日历
# cal 2021
5.6 搜索查找类
5.6.1 find指令
● find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或目录显示在终端。
● 基本语法
find [搜索范围] [选项]
● 选项
选项 | 功能 |
-name<查询方式> | 按照指定的文件名查找模式查找文件 |
-user<用户名> | 查找属于指定用户名所有文件 |
-size<文件大小> | 按照指定的文件大小查找文件 |
【案例1】按文件名:根据名称查找 /home 目录下的 hello.txt 目录文件
# find /home -name hello.txt
【案例2】按拥有者:查找 /opt 目录下,用户名称为 nobody 的文件
# find /opt -user nobody
【案例3】查找整个linux系统大于20m的文件(+n 大于 -n 小于 n 等于)
# find / -size +20M
【案例4】查询 / 目录下,所有的 .txt 文件
# find / -name *.txt
5.6.2 locate指令
● locate 指令的特点
1)可以快速定位文件路径。
2)利用事先建立的系统中所有文件名称及路径的 locate 数据库实现快速定位给定的文件。
3)无需遍历整个文件系统,查询速度较快。为了保证查询查询结果的准确度,管理员必须定期更新 locate 时刻。
● 基本语法
locate 搜索文件
● 特别说明
由于locate指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb 指令创建locate数据库。
【案例】使用 locate 指令快速定位 hello.txt 文件所在目录
5.6.3 grep指令 和 管道符号
● grep 过滤查找, | 管道符 表示将前一个命令的处理结果传递给后面的命令处理
● 基本语法
grep [选项] 查找内容 源文件
● 常用选项
-n 显示匹配行及行号
-i 忽略字母大小写
【案例】请在 hello.txt 文件中,查找 "yes" 所在行,并显示行号
5.7 压缩和解压类
5.7.1 gzip / gunzip 指令
● gzip 用于压缩文件
● gunzip 用于解压文件
● 基本语法
gzip 文件 (功能:压缩文件,只能将文件压缩为*.gz)
gunzip 文件.zip
【案例】将 /home 下的 hello.txt 文件进行压缩
# gzip hello.txt
【案例2】将 /home 下的 hello.txt.gz 文件进行压缩
# gunzip hello.txt.gz
注意:
使用gzip压缩后,不保留源文件。
5.7.2 zip/unzip 指令
● zip 用于压缩文件
● unzip 用于解压文件
● 基本语法
zip [选项] XXX.zip 压缩内容 (功能:压缩文件和目录的命令)
unzip [选项] XXX.zip (功能:解压缩文件)
● zip常用选项
-r :递归压缩,即压缩目录
● unzip常用目录
-d<目录> : 指定解压后文件的存放目录
【案例1】将 /home 下的所有文件进行压缩 mypackage.zip
# zip -r mypackage.zip /home/
【案例2】将 mypackage.zip 解压到 /opt/tmp 目录下
# unzip -d /opt/tmp/ mypackage.zip
5.7.2 tar指令
● tar 打包指令,最后打包的文件是 .tar.gz 的文件。
● 基本语法
tar [选项] XXX.tar.gz 打包内容
选项说明:
选项 | 说明 |
-c | 产生 .tar 打包文件 |
-v | 显示详细信息 |
-f | 指定压缩后的文件名 |
-z | 打包同时压缩 |
-x | 解包 .tar 文件 |
【案例1】压缩多个文件,将 /home/a1.txt 和 /home/a2.txt 压缩成 a.tar.gz
【案例2】将 /home 的文件夹,压缩成 myhome.tar.gz
# tar -zcvf myhome.tar.gz /home/
【案例3】将 a.tar.gz 解压到当前目录
# tar -zxvf a.tar.gz
【案例4】将 myhome.tar.gz 解压到 /opt/ 目录下
# tar -zxvf myhome.tar.gz -C /opt/
5.8 总结
指令 | 功能 |
init [0123456] | 切换运行级别 |
man [命令/配置文件] | 获取帮助信息 |
help 命令 | 获得shell内置命令的帮助信息 |
pwd | 显示当前工作目录的绝对路径 |
ls [选项] [目录/文件] | 当前目录的所有内容信息 |
cd [参数] | 切换到指定目录 |
mkdir 要创建的目录 | 创建目录 |
mkdir -p 目录名 | 创建多级目录 |
touch 文件名 | 创建空文件 (.txt) |
cp [选项] source dest | 拷贝文件 -> 指定目录 |
-r :递归复制整个文件夹 | |
rm [选项] 文件名/目录名 | 删除文件 或 目录 |
-r:递归删除整个文件夹 -f :强制删除不提示 |
|
mv oldNameFile newNameFile | 重命名 |
mv /temp/movefile /tagerFolder | 移动文件 |
cat [选项] 文件 | 查看文件内容,只读 |
-n:显示行号 | |
more 文件 | 以全屏幕的方式按页显示文本文件的内容 |
less 文件 | more类似,但是比more更加强大,支持各种终端 |
> | 会将原来的文件内容覆盖 |
>> | 不会覆盖,尾部追加 |
echo [选项] [输出内容] | 输出内容到控制台 |
head 文件 | 显示文件开头部分内容,默认显示前10行 |
head -n 5 文件 | 查看文件前5行内容 |
tail 文件 | 输出文件尾部内容,默认输出后10行 |
tail -n 5 文件 | 查看文件后5行内容 |
tail -f 文件 | 实时追踪该文档的所有更新,工作经常使用 |
ln -s [源文件/目录] [软连接名] | 给源文件创建一个软连接 |
history | 查看已经执行过历史命令,也可以执行历史指令 |
date | 显示当前时间 |
date +%Y | 显示当前年份 |
date +%m | 显示当前月份 |
date +%d | 显示当前时哪一天 |
date "+%Y-%m-%d%H:%M:%S" | 显示年月日时分秒 |
date -s "2018-10-10 11:22:22 | 将当前的系统时间设置为:2018-10-10 11:22:22 |
cal [选项] | 显示本月日历 |
find [搜索范围] [选项] | 将从指定目录下,将满足条件的文件或目录显示在终端 |
-name<查询方式> 按照指定的文件名查找模式查找文件 -user<用户名> 查找属于指定用户名所有文件 -size<文件大小> 按照指定的文件大小查找文件 |
|
locate 搜索文件 | 快速定位文件路径(事先建立数据库 updatedb |
grep [选项] 查找内容 源文件 | 过滤查找 |
grep 过滤查找 , | 管道符 将前一个命令的处理结果传递给后面的命令处理 -n 显示匹配行及行号 -i 忽略字母大小写 |
|
gzip 文件 | 压缩文件,只能将文件压缩为 .gz(压缩后。不保留源文件) |
gunzip 文件.zip | 用于解压文件 |
zip [选项] XXX.zip 压缩内容 | 压缩文件和目录的命令 |
-r :递归压缩,即压缩目录 | |
unzip [选项] XXX.zip | 解压缩文件 |
-d<目录> : 指定解压后文件的存放目录 | |
tar [选项] XXX.tar.gz 打包内容 | 打包指令,最后打包的文件是 .tar.gz 的文件 ( -zvxf ) |