一、实用指令
1、指定运行级别
作者在设计linux之初,给linux设置了6个运行级别
0:关机 [可用于关机]
1:单用户(找回丢失密码)
2:多用户 无网络服务
3:多用户 有网络服务 【用的最多】
4:保留【未启用】
5:图形界面
6:重启
常用运行界别是3和5,要修改默认的运行级别可通过改文件的方式实现
系统运行级别指定文件:/etc/ininttab
下的 id : 5: initdefault
切换到指定运行级别的指令**init [1,2,3,4,5,6]**
2、面试题
如何找回丢失的root密码?
- 进入到单用户模式,然后修改密码
- 【因为进入单用户模式,root不需要密码就可以登录】
- 【在开机的时候,在引导时,输入回车键,然后看到界面,输入 e 在看到一个新的界面,高亮到选中第二行(编辑内核),输入e ,在新的界面输入 1 ,然后在输入一个回车键 ,再次输入一个b,这时就会进入到单用户模式】
- 【这时我们就进入到单用户模式,使用 passwd root 来修改root的密码】
3、帮助指令
当我们对某个指令不熟悉的时候,可以使用linux提供的帮助指令,来了解指令的使用**man**
获得帮助信息
- 基本语法:
**man 命令或者配置文件**
- 例如:
man ls
【在linux以 . 开头的文件就是隐藏文件 】
help(获得shell内置命令的帮助信息)基本语法
**help 命令**
- 例如:
help cd
百度帮助更直接,建议直接百度
二、指令-文件目录类
1、pwd
指令:显示当前工作目录的绝对路径,
- 基本语法:
**pwd**
功能描述:显示当前工作目录的绝对路径,【可以看到目前是在哪个目录下面】
2、
ls
指令 :显示当前目录下的文件基本语法:
**ls 【选项】 【目录或文件】**
常用选项:
-a
:显示当前目录所有的文件和目录,包括隐藏的【在linux 以 . 开头的文件就是隐藏文件 】-l
:以列表的方式显示信息-al
:上面的合体
3、
cd
指令 :切换到指定目录基本语法:
**cd 【参数】**
- 功能描述:切换到指定目录
常用选项:
- 绝对路径和相对路径【相对路径不是 / 开头】
- 例如相对路径回到上一级目录的home目录
cd ../home
- 例如相对路径回到上一级目录的home目录
**cd~**
或者**cd**
:回到自己的家目录**cd ..**
:回到当前目录的上一级目录
4、
mkdir
指令 :用于创建目录- 绝对路径和相对路径【相对路径不是 / 开头】
基本语法:
**mkdir 【选项】 要创建的目录**
- 功能描述:用于创建目录【make directory】,默认情况下,只能一级一级的创建
- 常用选项:-p:创建多级目录
- 案例:
- 创建一个home下面的dog目录
**mkdir /home/dog**
- 创建多级目录[同时创建了animal和 pig两个目录]【需要root权限】
**mkdir -p /home/animal/pig**
- 创建一个home下面的dog目录
5、rmdir
指令:删除空目录
- 基本语法:
**mrdir 【选项】 要删除的空目录**
- 案例: 删除一个目录/home/dog [这是一个空目录]
rmdir /home/dog
- 使用细节:
- rmdir 删除的是空目录,如果目录下面有内容 是无法删除的
- 提示:如果需要删除非空目录,需要使用
**rm -rf 要删除的目录**
6、touch
指令:创建空文件
- 基本语法:
**touch 文件名称**
- 案例:
- 创建一个空文件hello.text
touch hello.text
- 同时创建两个文件
touch ok1.txt ok2.txt
- 创建一个空文件hello.text
7、cp
指令:拷贝 复制 copy
- 基本语法:
**cp 【选项】 准备拷贝的文件 目标地址**
- 常用选项:-r 递归复制整个文件夹
- 案例:把/home/aaa.txt文件拷贝到 /home/bbb目录下
**cp /home/aaa.txt /home/bbb**
- 一定要注意你当前的目录位置,然后要准备的的定位 源目录和目标目录
- 案例:把/home/aaa.txt文件拷贝到 /home/bbb目录下
使用细节:
- 强制覆盖不提示的方法:
** \cp**
- 强制覆盖不提示的方法:
8、rm
指令 :移除文件或目录
- 基本语法:
**rm 【选项】 要删除的文件或目录**
- 常用选项:
-r
:递归删除整个文件夹-f
:强制删除不提示
使用细节:删除目录时,需要加上
-r
案例:删除home下的bbb目录
rm -rf bbb //工作目录是在home
9、
mv
指令:移动文件与目录或重命名基本语法:
**mv 原来的名字 新的名字 **
【改名,需要在当前目录】**mv /目录/文件 /移动到此路径下(只有路径)**
【移动文件】
10、
cat
指令:查看文件内容 【只能浏览 不能修改】基本语法:
**cat 【选项】 要查看的文件**
- 常用选项:
-n
显示行号 使用细节:cat一般会带上一个
| more
联合使用cat -n /etc/profile | more
【分页显示,一页一页的显示】 | 管道符 【| more 管道命令】
11、
more
指令: 文本过滤器以全屏幕的方式按页显示文本文件的内容
基本语法:
**more 要查看的文件**
操作 | 功能说明 |
---|---|
空格键 | 代表向下翻一页 |
Enter | 代表向下翻一行 |
q | 代表立刻离开,不再显示该文件内容 |
Ctrl + f | 向下滚动一屏 |
Ctrl + b | 返回上一屏 |
= | 输出当前行的行号 |
:f | 输出文件名和当前行的行号 |
12、less
指令 :
分屏查看文件内容,和more类似,比more强大 【看大型日志文件使用较好】
- 在使用less查看文件时,并不是一次将整个文件加载之后再显示,而是根据显示需要加载内容,
**对于显示大型文件具有较高的效率**
- 基本语法:
**less 要查看的文件**
| 操作 | 功能说明 | | —- | —- | | 空格键 | 向下翻动一页 | | ↓ | 向下翻动一行 | | ↑ | 向上翻动一行 | | /字串 | 向下搜寻 【字串】 n 向上 N 向下 | | ?字串 | 向上搜寻【字串】 n 向上 N 向下 | | q | 离开less |
13、**>**
指令和**>>**
指令
**>输出重定向 >> 追加**
- 基本语法:
**ls -l > 文件**
【功能描述:列表的内容写入文件 a.txt中 (覆盖写)】如果文件不存再就创建
**ls -al >> 文件**
【功能描述:列表的内容追加到文件 aa.txt的末尾】**cat 文件1 > 文件2**
【功能描述:将文件1的内容覆盖到文件2】**echo "内容" >> 文件**
【功能描述:将文件1的内容覆盖到文件2】- >覆盖写, >> 追加写
14、**cal**
指令 :显示日历信息
15、**echo 指令**
:输出内容到控制台
- 基本语法:echo 【选项】 【输出内容】
- 输出环境变量:echo $PATH
- 输出HelloWorld:echo HelloWorld
16、head
指令:显示文件的开头部分
默认情况下head指令显示文件的前10行内容
- 基本语法:
**head 文件(查看文件头10行内容)**
**head -n 5 文件(查看文件头5行内容,5可以是任意数)**
- 例如:
head /etc/profile
17、tail
指令:默认情况下显示文件后10行的内容
- 基本语法:
**tail 文件**
(查看文件后10行内容)**tail -n 5 文件**
(查看文件后5行内容)**tail -f 文件**
(实时追踪文档的所有更新)
- 易学习用户输入指令后,可以检测到 root用户对该文件的更新
18、ln
指令:软链接/符号链接
类似windows的快捷方式**基本语法: ln -s 【原文件或目录】 【软链接名】 (给原文件创建一个软链接)**
案例:
- 在/home目录下创建一个软链接 linkToRoot, 链接到 /root目录
ln -s /root linkToRoot
- 删除软链接 linkToRoot
rm -f linkToRoot
使用细节:使用pwd查看当前的工作空间还是在此工作空间下
19、history
指令:查看已经执行过的历史命令
也可以执行历史指令
- 基本语法:
**history**
(功能描述:查看已经执行过的历史命令) - 案例:
- 显示所有的历史命令
history
- 显示最近使用过的10个指令
history 10
- 执行历史编号为5的指令
- !5
- 显示所有的历史命令
三、指令-时间日期类
1、date
: 显示当前时间
- 基本语法:
**date **``**(显示当前时间)**
date +%Y ``(先后当前年分)
date +%m ``(显示当前月份)
date +%d ``(显示当前是那一天)
date "+%Y-%m-%d %H:%M:%S" ``(显示年月日``时分秒)
- 设置日期的基本语法
**date -s 字符串时间**
- 案例:设置系统时间
date -s 2020-9-27 12:12:00
2、cal
指令:查看日历指令
- 基本语法:
**cal 【选项】**
(功能描述:不加选项,显示本月日历) - 应用案例:
- 显示当前日历
- cal
- 显示2020年整一年的日历
- cal 2020
四、指令-搜索查找类
1、find
指令:从指定目录向下递归的遍历其各个子目录,将满足条件的目录或文件显示在终端
基本语法:**find 【搜索范围】 【选项】**
选项:
选项 | 功能 |
---|---|
-name<查询方式> | 按照指定的文件名查找模式查找文件 |
-user<用户名> | 查找属于指定用户名所有文件 |
-size<文件大小> | 按照指定的文件大小查找文件 |
应用案例:
- 按文件名:查找/home目录下的hello.txt文件
find /home -name hello.txt
【可以使用 通配符来替代 例如 .txt】
- 按拥有者,查找/opt目录下,用户名称为nobody的文件
find /opt -user nobody
- 查找整个linux系统下大于20m的文件( +n 大于 -n小于 n 等于)
find / -size +20M
[M一定要大写,M是兆 。k是多少kb,k要小写]
- 查找根目录下所有的txt文件
find / -name *.txt
2、locate
指令: 快速定位文件路径。
快速的原理:locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个系统文件,查询速度较快,但是为了保证查询结果的准确性,管理员要定期更新locate时刻
基本语法:**locate 文件名**
特别说明:
- locate是基于数据库查询,所以第一次运行之前需要使用updatedb指令创建locate数据库
案例:
- 使用locate指令快速查询hello.txt文件所在目录
update
locate hello.txt
3、grep
指令和 |
管道符号
**grep**
:过滤查找
管道符 **|**
:表示将前一个命令的处理结果输出传递给后面的命令处理
基本语法: **grep 【选项】 查找内容 源文件**
选项:
选项 | 功能 |
---|---|
-n | 显示匹配行及行号 |
-I | 忽略字母大小写 |
案例:
请在hello.txt中,查找yes所在行,并且显示行号cat hello.txt | grep -n yes
五、指令-压缩和解压缩
1、gzip
和 gunzip
指令
gzip 用来压缩文件, gunzip用来解压文件
基本语法:**gzip 文件**
【压缩文件,只能将文件压缩为 *.gz 文件】压缩完后 原文件不保留**gunzip 文件**
【解压缩文件】
案例:
- 使用gzip压缩hello.java文件
gizp hello.java
- 使用gunzip解压缩 hello.java.gz 文件
gunzip hello.java.g
2、zip 和 unzip 指令
- zip用于压缩文件,
- unzip用于解压文件,这两个在项目打包发布中很有用
- 基本语法:
**zip 【选项】 xxx.zip 将要压缩的内容**
【功能描述:压缩文件和目录的命令】**unzip 【选项】 xxx.zip**
【功能描述:解压缩文件】
- zip常用选项:
-r
递归压缩,压缩目录时使用zicd - unzip常用选项 :
-d
<目录> : 指定压缩后文件存放目录 - 应用案例:
- 压缩Hello.java文件
zip Hello.zip Hello.java
- 将/home 下的所有文件压缩成 mypackage.zip
zip mypackage.zip /home/
- 将mypackage.zip解压到 /opt/tmp 目录下
unzip -d /opt/tmp/ mypackage.zipdfsdf
- 压缩Hello.java文件
3、tar 指令:打包指令,最后打包后的文件是 .tar.gz 的文件
基本语法:**tar 【选项】 xxx.tar.gz 打包的内容**
(功能描述:打包目录,压缩后的文件格式为 xxx.tar.gz)
选项说明:
选项 | 功能 |
---|---|
-c | 产生 .tar 打包文件 |
-v | 显示详细信息 |
-f | 指定压缩后的文件名 |
-z | 打包同时压缩 |
-x | 解包报 .tar文件 |
案例:
- 压缩多个文件,将/home/al.txt 和 /home/a2.txt 压缩成a.tar.gz
**tar -zcvf a.tar.gz a1.txt a2.txt**
- 将/home目录压缩成myhome.tar.gz
tar -zcvf myhome.tar.gz /home/
- 将a.tar.gz解压到当前目录
tar -zxvf a.tar.gz
- 将myhome.tar.gz解压到 /opt/ 目录下
tar -zxvf myhome.tar.gz -C /opt/
【解压到的目录 事先要有】