本文章最初发布在 XJHui’s Blog,未经允许,任何人禁止转载!

注意:最新修改版本已发布在 这里,点击前往查看!

运行级别

级别概述

  1. 系统运行级别示意图:

  2. 运行级别介绍:

    • 0关机
    • 1单用户【找回root密码】
    • 2多用户状态【无网络服务】
    • 3多用户状态,有网络服务【常用】
    • 4保留
    • 5图形界面【常用】
    • 6重启
  3. 查看当前系统运行级别:

    1
    vim /etc/inittab 

    运行结果:

切换运行级别

  1. 语法:

    1
    init [0,6]  # 不要使用4,因为4未被指定
  2. 实例:

    运行结果:

    切换为图形化界面:

    运行结果:

  3. 特殊级别:

    • 级别0:关机

      1
      init 0

      运行结果:

    • 级别6:重启

      1
      init 6

      运行结果:

  4. 两种修改方式的区别:

    1
    vim /etc/inittable  # 在该文件中将系统运行级别修改为3,系统每次重启后运行级别均为3
    1
    init 3  # 命令行中执行init3,系统重启后运行级别与/etc/inittable中一致,未必是3

    注意:如果编辑/etc/inittable将系统运行级别设置为0,系统会无限重启!如何解决?看完下面的面试题就知道了

面试题

如何找回丢失的root密码?

  1. 原理:进入单用户模式(系统运行级别为1),修改root密码(进入单用户模式不需要输入root密码)

  2. 操作:

    • 服务器启动时,按下enter键,输入e,上下移动光标选中第二行,再输入e:

    • 下图命令行中输入 空格1,按下回车,输入b:

    • 成功进入系统(无需root密码):

    • 使用passwd命令修改密码:

  3. 安全:该方法只能在服务器操作(不可远程)且一般的人也接触不到服务器,所以足够安全。个人电脑,安全??

帮助指令

介绍

当对某个命令不熟悉时,可以使用linux提供的帮助指令来了解这个命令的使用方法。

man指令

  1. 语法:

    1
    man [命令或配置文件]  # 获取该命令的使用方法以及其它信息
  2. 案例:查看ls命令的帮助信息

    1
    man ls

    运行结果:

    注意:按q退出man指令

help指令

  1. 语法:

    1
    help 命令  # 获取该命令的使用方法以及其它信息
  2. 实例:查看cd目录作用

    1
    help cd

    运行结果:

文件目录类

pwd

  1. 语法:

    1
    pwd  # 显示当前工作目录的绝对路径
  2. 案例:显示当前工作目录

ls

  1. 语法:

    1
    2
    3
    4
    ls  # 显示当前目录下所有文件和文件夹
    ls -l # 显示文件和文件夹的详细信息,可简写为ll
    ls -lh # 显示文件和文件夹的详细信息,大小非字节
    ls -al # 显示所有文件(含隐藏文件)的详细信息
  2. 案例:查看当前路径下所有文件详细信息:

    1
    ls -al

    运行结果:

cd

  1. 语法:

    1
    cd 目录  # 切换到指定路径
  2. 绝对路径和相对路径:当前所在路径为/root要求切换到/home路径下

    • 绝对路径:/home
    • 相对路径:../home(..代表返回上一级目录)
  3. 案例:

    • 使用绝对路径切换到root目录

      1
      cd /root
    • 回到上一级

      1
      cd ..
    • 回到家目录

      1
      cd ~

mkdir

  1. 语法:

    1
    mkdir -p[可选,创建多级目录] 目录名  # 创建文件夹
  2. 案例:

    • /home目录下创建dog目录

      1
      mkdir /home/dog
    • /home目录下创建/animal/tiger

      1
      mkdir -p /animal/tiger

rmdir

  1. 语法:

    1
    rmdir 目录名  # 只能删除空目录
  2. 案例:

    • 删除空目录tiger:

      1
      rmdir tiger/
    • 删除非空目录animal:

      1
      rm -rf animal/

      注意:rmdir不能删除非空目录,可以使用rm -rf命令代替

touch

  1. 语法:

    1
    touch 文件名  # 创建空文件
  2. 案例:

    • 创建一个空文件hello.txt

      1
      touch hello.txt

      运行结果:

    • 一次创建多个文件 hello1.txt hello2.txt

      1
      touch hello1.txt hello1.txt

cp

  1. 语法:

    1
    cp -r[递归复制] source dest  # 将source拷贝到dest路径中
  2. 案例:

    • 将aaa.txt移动到/root/test/中:

      1
      mv aaa.txt /root/test/
    • 将/root/test目录拷贝到/home中:

      1
      cp -r /root/test /home  # 递归复制

      运行结果:

    • 再次执行上个案例的拷贝命令:

      1
      cp -r /root/test /home  # 递归复制

      运行结果:

      如何跳过询问,强制覆盖?使用\cp命令

      1
      \cp -r /root/test/ home/

      运行结果:

rm

  1. 语法:

    1
    rm -r[可选,递归删除] f[可选,强制删除不提示] 文件名/目录  # 移除文件或目录
  2. 案例:

    • 删除/root/linux.txt文件:

      1
      rm linux.txt

      运行结果:

    • 删除/root/windows.txt文件:

      1
      rm -f windows.txt  # 不提示,强制删除

      运行结果:

      注意:和上一个案例区分,加上-f则不再询问是否删除

    • 删除/root/bbb(非空)目录:

      1
      rm -rf /root/bbb  # 强制递归删除非空目录

      运行结果:

mv

  1. 语法:

    1
    2
    mv 文件名 文件名  # 重命名
    mv 文件名 路径 # 移动文件
  2. 案例:

    • 将文件hello.cpp重命名为nihao.cpp:

      1
      mv hello.cpp nihao.cpp
    • 将文件nihao.txt移动到/home/animal目录下:

      1
      mv nihao.cpp /home/animal/

cat

  1. 语法:

    1
    cat -n[可选,显示行号] 文件名  # 查看文件内容
  2. 案例:查看/etx/profile文件内容,并显示行号

    1
    cat -n /etc/profile

    运行结果:

    注意:执行cat命令后,文件内容会被一次显示,使用管道符|可分页显示

    1
    cat -n /etc/profile | more

    运行结果:

    注意:按空格键可向下翻页,此方法不支持向上翻页,按q退出more指令

more

  1. 语法:

    1
    more 文件名  # 全屏方式按页显示文本文件内容
  2. 案例:采用more指令查看文件 /etc/profile

    1
    more /etc/profile

    运行结果:

    快捷键:

    • 下翻一行:enter
    • 下翻页:空格、ctrl+f
    • 上翻页:b、ctrl+b
    • 退出more:q

less

  1. 语法:

    1
    less 文件名  # 按需加载,适合大文件的查看
  2. 案例:使用less命令查看/etc/profile的内容

    1
    less /etc/profile

    快捷键与more基本相同,使用 /字符串 实现查询功能,n向下查询,N向上查询

>和>>

  1. 含义:

    • > (输出重定向):会将文件原来的内容覆盖
    • >>(追加写):不覆盖而是追加到文件的尾部
  2. 案例:

    • 将ls -l指令显示的内容写入到a.txt文件中:

      1
      ls -l > a.txt

      运行结果:

    • 将ls 指令显示的内容追加写到a.txt文件中:

      1
      ls >> a.txt

      运行结果:

    • 将/etc/profile的内容写入到b.txt文件中:

      1
      cat /etc/profile > b.txt  # 与cat|more|less等命令搭配使用

      运行结果:

    • hello world 覆盖写入到a.txt文件中:

      1
      echo "hello world" > a.txt

      运行结果:

    • 请在当前目录(/home)打印/root的文件列表:

      1
      ls -l /root  # 打印其他路径下的文件目录,可以不cd到该路径下

      运行结果:

echo

  1. 语法:

    1
    echo 变量/文本  # 输出环境变量、文本
  2. 案例:输入linux的path路径

    1
    echo $PATH  # $PATH与windows下的path环境变量类似

    运行结果:

  1. 语法:

    1
    head -n 5[可选,显示指定行数] 文件名  # 显示文件开头内容,默认显示前10行 
  2. 案例

    • 使用head命令显示/etc/profile文件的内容:

      1
      head /etc/profile  # 默认显示前10行

      运行结果:

    • 使用head命令显示/etc/profile文件的前5行:

      1
      head -n 5 /etc/profile  # 显示具体行数要加参数-n

      运行结果:

tail

  1. 语法:

    1
    2
    3
    tail 文件  # 默认显示文件后10行内容
    tail -n x 文件 # 与head类似也可以使用参数-n来显示具体后n行内容
    tail -f 文件 # 实时追踪该文档的所有更新,工作中很常用
  2. 案例:

    • 显示/etc/profile后5行:

      1
      tail -n 5 /etc/profile

      运行结果:

    • 实时追踪c.txt文件的变化:

      1
      # 在虚拟机中向c.txt文件追加写入内容,并在xshell中使用tail -f监控文件变化

      运行结果:

      注意:使用快捷键ctrl+c退出追踪

ln

  1. 语法:

    1
    ln -s [原文件或目录] [软链接]  # 给原文件创建一个软链接(类似windows中个快捷方式)
  2. 案例:

    • /root目录下创建一个软链接,链接到/root目录:

      1
      ln -s /root linkToRoot

      运行结果:

      软链接的使用:

      1
      cd linkToRoot/

      运行结果:

    • 软链接的删除:

      1
      rm -rf linkToRoot  # 注意:删除软链接时最后不要添加/

history

  1. 语法:

    1
    2
    3
    history  # 显示所有历史指令
    history 5 # 显示最近执行的5条指令
    !123 # 执行history中第123条指令
  2. 案例:

    • 显示最近执行的6条指令:

      1
      history 6

      运行结果:

    • 执行第286行指令:

      1
      !286

      运行结果:


不足之处,欢迎留言,会及时回复,及时更正!

创作不易,感谢支持!