一、实用指令

1、指定运行级别

作者在设计linux之初,给linux设置了6个运行级别
0:关机 [可用于关机]
1:单用户(找回丢失密码)
2:多用户 无网络服务
3:多用户 有网络服务 【用的最多】
4:保留【未启用】
5:图形界面
6:重启
常用运行界别是3和5,要修改默认的运行级别可通过改文件的方式实现
系统运行级别指定文件:/etc/ininttab 下的 id : 5: initdefault
未命名图片.png

切换到指定运行级别的指令
**init [1,2,3,4,5,6]**

2、面试题

如何找回丢失的root密码?

  1. 进入到单用户模式,然后修改密码
  2. 【因为进入单用户模式,root不需要密码就可以登录】
  3. 【在开机的时候,在引导时,输入回车键,然后看到界面,输入 e 在看到一个新的界面,高亮到选中第二行(编辑内核),输入e ,在新的界面输入 1 ,然后在输入一个回车键 ,再次输入一个b,这时就会进入到单用户模式】
  4. 【这时我们就进入到单用户模式,使用 passwd root 来修改root的密码】

3、帮助指令

当我们对某个指令不熟悉的时候,可以使用linux提供的帮助指令,来了解指令的使用
**man** 获得帮助信息

  • 基本语法:**man 命令或者配置文件**
  • 例如:man ls
  • 【在linux以 . 开头的文件就是隐藏文件 】


    help(获得shell内置命令的帮助信息)

  • 基本语法 **help 命令**

  • 例如:help cd

百度帮助更直接,建议直接百度

二、指令-文件目录类

1、pwd指令:显示当前工作目录的绝对路径,

  • 基本语法: **pwd**
  • 功能描述:显示当前工作目录的绝对路径,【可以看到目前是在哪个目录下面】

    未命名图片.png

    2、ls指令 :显示当前目录下的文件

  • 基本语法:**ls 【选项】 【目录或文件】**

  • 常用选项:

    • -a :显示当前目录所有的文件和目录,包括隐藏的【在linux 以 . 开头的文件就是隐藏文件 】
    • -l:以列表的方式显示信息
    • -al :上面的合体

    未命名图片.png

    3、cd指令 :切换到指定目录

  • 基本语法: **cd 【参数】**

  • 功能描述:切换到指定目录
  • 常用选项:

    • 绝对路径和相对路径【相对路径不是 / 开头】
      • 例如相对路径回到上一级目录的home目录 cd ../home
    • **cd~** 或者 **cd**:回到自己的家目录
    • **cd ..** :回到当前目录的上一级目录

    未命名图片.png

    4、mkdir指令 :用于创建目录

  • 基本语法: **mkdir 【选项】 要创建的目录**

  • 功能描述:用于创建目录【make directory】,默认情况下,只能一级一级的创建
  • 常用选项:-p:创建多级目录
  • 案例:
    • 创建一个home下面的dog目录
      • **mkdir /home/dog**
    • 创建多级目录[同时创建了animal和 pig两个目录]【需要root权限】
      • **mkdir -p /home/animal/pig**

未命名图片.png

5、rmdir指令:删除空目录

  • 基本语法: **mrdir 【选项】 要删除的空目录**
  • 案例: 删除一个目录/home/dog [这是一个空目录]
    • rmdir /home/dog
  • 使用细节:
    • rmdir 删除的是空目录,如果目录下面有内容 是无法删除的
    • 提示:如果需要删除非空目录,需要使用 **rm -rf 要删除的目录**

6、touch指令:创建空文件

  • 基本语法:**touch 文件名称**
  • 案例:
    • 创建一个空文件hello.text
      • touch hello.text
    • 同时创建两个文件
      • touch ok1.txt ok2.txt


7、cp指令:拷贝 复制 copy

  • 基本语法:**cp 【选项】 准备拷贝的文件 目标地址**
  • 常用选项:-r 递归复制整个文件夹
    • 案例:把/home/aaa.txt文件拷贝到 /home/bbb目录下
      • **cp /home/aaa.txt /home/bbb**
    • 一定要注意你当前的目录位置,然后要准备的的定位 源目录和目标目录
  • 使用细节:

    • 强制覆盖不提示的方法:** \cp**

    未命名图片.png
    未命名图片.png

8、rm指令 :移除文件或目录

  • 基本语法:**rm 【选项】 要删除的文件或目录**
  • 常用选项:
    • -r:递归删除整个文件夹
    • -f:强制删除不提示
  • 使用细节:删除目录时,需要加上-r

  • 案例:删除home下的bbb目录

    • rm -rf bbb //工作目录是在home

    未命名图片.png

    9、mv指令:移动文件与目录或重命名

  • 基本语法:

    • **mv 原来的名字 新的名字 ** 【改名,需要在当前目录】
    • **mv /目录/文件 /移动到此路径下(只有路径)** 【移动文件】

    未命名图片.png

    未命名图片.png

    10、cat指令:查看文件内容 【只能浏览 不能修改】

  • 基本语法:**cat 【选项】 要查看的文件**

  • 常用选项:-n 显示行号
  • 使用细节:cat一般会带上一个| more 联合使用

    • cat -n /etc/profile | more 【分页显示,一页一页的显示】 | 管道符 【| more 管道命令】

    未命名图片.png

    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、gzipgunzip指令

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

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/ 【解压到的目录 事先要有】
未命名图片.png