linux实用指令(上)

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

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

运行级别

级别概述

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

  2. 运行级别介绍:

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

    vim /etc/inittab 
    

    运行结果:

切换运行级别

  1. 语法:

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

    运行结果:

    切换为图形化界面:

    运行结果:

  3. 特殊级别:

    • 级别0:关机

      init 0
      

      运行结果:

    • 级别6:重启

      init 6
      

      运行结果:

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

    vim /etc/inittable  # 在该文件中将系统运行级别修改为3,系统每次重启后运行级别均为3
    

init 3 # 命令行中执行init3,系统重启后运行级别与/etc/inittable中一致,未必是3


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

## 面试题

> 如何找回丢失的root密码?

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

2. 操作:

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

  <img src="https://cdn.jsdelivr.net/gh/xingjiahui/CDN@latest/2020/09/24/3f4c878dc981bf7cee98de474c48bb59.png" width="70%"/>

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

  <img src="https://cdn.jsdelivr.net/gh/xingjiahui/CDN@latest/2020/09/24/4e3928c2246059f685b4ac4ab34b097e.png" width="70%"/>

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

  <img src="https://cdn.jsdelivr.net/gh/xingjiahui/CDN@latest/2020/09/24/6c89232f77dcd7c9fce53b46b3287256.png" width="70%"/>

- 使用passwd命令修改密码:

  <img src="https://cdn.jsdelivr.net/gh/xingjiahui/CDN@latest/2020/09/24/7e6e92a15ab5757764a2fd907cdf163c.png" width="70%"/>

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

# 帮助指令

## 介绍

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

## man指令

1. 语法:

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

    man ls
    

    运行结果:

    注意:按q退出man指令

help指令

  1. 语法:

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

    help cd
    

    运行结果:

文件目录类

pwd

  1. 语法:

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

ls

  1. 语法:

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

    ls -al
    

    运行结果:

cd

  1. 语法:

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

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

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

      cd /root
      
    • 回到上一级

      cd ..
      
    • 回到家目录

      cd ~
      

mkdir

  1. 语法:

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

    • /home目录下创建dog目录

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

      mkdir -p /animal/tiger
      

rmdir

  1. 语法:

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

    • 删除空目录tiger:

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

      rm -rf animal/
      

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

touch

  1. 语法:

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

    • 创建一个空文件hello.txt

      touch hello.txt
      

      运行结果:

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

      touch hello1.txt hello1.txt
      

cp

  1. 语法:

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

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

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

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

      运行结果:

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

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

    
    运行结果:
    
    <img src="https://cdn.jsdelivr.net/gh/xingjiahui/CDN@latest/2020/09/24/4c9beb97ad3b9de5561da90015918b8e.png" width="70%"/>
    
    如何跳过询问,强制覆盖?使用\cp命令
    
    ```shell
    \cp -r /root/test/ home/
    

    运行结果:

rm

  1. 语法:

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

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

      rm linux.txt
      

      运行结果:

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

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

      运行结果:

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

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

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

      运行结果:

mv

  1. 语法:

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

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

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

      mv nihao.cpp /home/animal/
      

cat

  1. 语法:

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

    cat -n /etc/profile
    

    运行结果:

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

    cat -n /etc/profile | more
    

    运行结果:

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

more

  1. 语法:

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

    more /etc/profile
    

    运行结果:

    快捷键:

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

less

  1. 语法:

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

    less /etc/profile
    

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

>和>>

  1. 含义:

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

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

      ls -l > a.txt
      

      运行结果:

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

      ls >> a.txt
      

      运行结果:

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

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

      运行结果:

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

      echo "hello world" > a.txt
      

      运行结果:

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

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

      运行结果:

echo

  1. 语法:

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

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

    运行结果:

head

  1. 语法:

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

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

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

      运行结果:

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

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

      运行结果:

tail

  1. 语法:

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

    • 显示/etc/profile后5行:

      tail -n 5 /etc/profile
      

      运行结果:

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

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

      运行结果:

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

ln

  1. 语法:

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

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

      ln -s /root linkToRoot
      

      运行结果:

      软链接的使用:

      cd linkToRoot/
      

      运行结果:

    • 软链接的删除:

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

history

  1. 语法:

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

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

      history 6
      

      运行结果:

    • 执行第286行指令:

      !286
      

      运行结果:


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

创作不易,感谢支持!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值