当前位置: 首页 > news >正文

Linux常用命令大全(超详细!!!)

文章目录

  • 1.Linux是什么
    • 1.1 关于Linux我们主要学习什么
    • 1.1 学习Linux常见命令的前置知识
  • 2. Linux常见命令
    • 2.1 ls命令
    • 2.2 cd命令
    • 2.3 pwd命令
    • 2.4 touch命令
    • 2.5 cat命令
    • 2.6 echo命令
    • 2.7 vim命令
    • 2.8 mkdir 命令
    • 2.9 rm命令
    • 2.10 cp命令
    • 2.11 mv命令
    • 2.12 grep命令
    • 2.13 ps命令
    • 2.14 netstat命令
  • 3. Linux常见面试题

1.Linux是什么

在学习Linux的常用命令之前,我们先介绍下Linux是什么——Linux也是一种操作系统,和Windows是“并列”关系。

1.1 关于Linux我们主要学习什么

1.基础命令:Linux 虽然也有图形化界面, 但是在 服务器 / 嵌入式设备上往往都是通过命令行的方式操作的. 因此学习
Linux 命令就是使用 Linux 的重要基础.
2. 部署Javaweb项目:我们自己写的 web 程序, 要想让其他的用户能够访问, 就需要发布到服务器上. 这是我们接下里重点学习
的内容(下一节介绍)

1.1 学习Linux常见命令的前置知识

学习Linux常见命令之前,我们可以先了解一下以下的知识:
在这里插入图片描述

2. Linux常见命令

2.1 ls命令

ls : 列出当前目录/指定目录下都有哪些文件,相当于我们Windows中双击某个目录去查看里面的文件。

  • ls

列出当前目录下有哪些文件,如图:

在这里插入图片描述
其中的蓝色的是目录,白色的是文件。

  • ls list

其中list为指定目录,ls后面跟一个具体的目录,表示列出指定目录下有哪些文件,如图:
在这里插入图片描述
其中的"/“表示Linux中的根目录,与我们Windows系统中的"此电脑"类似。
需要注意的是,当我们查看指定目录的时候就不用加”/",ls后面直接跟上目录即可,不然就出现了下面的错误。
在这里插入图片描述

  • ls -l

显示文件的详细信息
在这里插入图片描述
值得注意的是,Linux也为我们提供了"ll"命令,和"ls -l"命令是一样的,后续我们可以使用"ll"命令即可。

  • ls -a

列出目录下的所有文件,包括以 . 开头的隐含文件。
在这里插入图片描述

2.2 cd命令

cd:切换当前目录(change directory),相当于我们Windows中双击某个目录。
cd后面要跟上我们要切换的目录的路径,可以是绝对路径也可以是相对路径。其中绝对路径是以/开头,而相对路径是以./(表示当前目录)或…/(表示当前目录的上一级)开头,其中的./也是经常省略的

  • cd /
    绝对路径的方式
    在这里插入图片描述
  • cd ./
    相对路径的方式(从当前路径开始)
    在这里插入图片描述
    ./也可以省略,如下图:
    在这里插入图片描述
  • cd ../
    相对路径的方式(从当前路径的上一级开始)
    比如按我们上面的举例,我们现在所在目录为forum,上一级为home目录,即/root。我们所在的~目录就是/root目录。我们现在切换到root下的log目录,操作如下:
    在这里插入图片描述
    在这里插入图片描述
  • cd
    cd后面什么都不加的情况下,此时就会回到home目录,类似于我们打游戏的时候的回城。
    在这里插入图片描述

2.3 pwd命令

在上面我们介绍了cd命令,是切换目录的,很多时候我们切换过几次目录后就可能不知道我们具体所在的目录了,这个pwd命令就是防止我们迷路的。

  • pwd
    显示当前目录的完整路径
    在这里插入图片描述

2.4 touch命令

  • touch 文件名
    用来创建一个文件
    在这里插入图片描述

创建完之后Linux并没有给我们任何反馈,这些肯定就会有人疑惑了,那它到底创建成功没有呢?其实创建成功了,在Linux中有一句话就是这么说的,没有消息就是最好的消息(no news is good news)。我们也可以通过上面介绍的ls命令进行查看当前目录下的文件,如下图:

在这里插入图片描述

2.5 cat命令

  • cat

查看文件内容
在装好的Linux下都有yum.conf文件,我们就拿这个文件进行举例,如下图:我们先切换到etc目录,然后查看其中yum.conf文件的内容

在这里插入图片描述
需要注意的是cat读取一些简单短小的文件可以,但当读取非常大的文件的时候就不适用了。

2.6 echo命令

echo: 用来写文件

  • echo 内容 > 文件名
    这里的">"则是重定向的意思。需要注意的是echo的写入方式不是以追加的方式,而是清空文件内容再进行写入。
    在这里插入图片描述
    正如我们上面说的,没有消息就是最好的消息,当我们通过echo命令写入文件后,并没有任何反馈,我们可以使用上述介绍的cat命令查看111.txt文件的内容来验证是否写入成功,结果发现是写入成功的。

2.7 vim命令

在上面我们介绍了cat命令是查看文件内容的,echo命令是往文件中写内容的,但他们都是针对简单短小的文件的,如果是针对复杂的文件进行复杂的编辑,那么应该怎么处理呢?这就可以用到我们的vim命令了,它就相当于Linux上的文本编辑器,和我们经常使用的记事本类似。
这里我们介绍vim的三个最基本的用法。

  1. 打开文件
  2. 编辑文件
  3. 保存退出
  • 打开文件 : vim 文件名/文件路径
    以我们上面创建的111.txt文件为例,如下图:
    在这里插入图片描述
    进来之后就可以看到以下界面。
    在这里插入图片描述
    到了这里很多人就开始敲键盘进行编辑了,结果发现在键盘上敲了半天没有反应,这是为什么呢?
    这是vim 打开文件后默认是普通模式. 普通模式下键盘的按键表示一些特殊功能的快捷键. 我们 需要进入插入模式才能进行文本编辑.

  • 编辑文件
    按下 i 键可以进入到插入模式. (左下角提示 --INSERT-- ) 然后就可以像记事本一样正常编辑了.
    在这里插入图片描述

  • 保存退出:先按esc回到普通模式再输入":wq" 再按回车。
    在编辑完文件后我们发现并没有"×"让我们关闭页面,也不能使用ctrl+s保存文件,在Linux中我们是先通过"esc"按键回到"普通模式"然后输入":wq"进行退出。
    在这里插入图片描述

2.8 mkdir 命令

mkdir:创建目录(make directory)

  • mkdir 目录名
    创建一个目录,与我们Windows中新建一个文件夹类似。

在这里插入图片描述

  • mkdir -p 目录1/目录2/目录3

同时我们也可以递归创建目录,比如我们要创建aa//bb/cc,如下图:
在这里插入图片描述
在这里插入图片描述

2.9 rm命令

rm:删除目录/删除文件

  • rm 文件名

这是指删除指定的文件,一般在我们删除时,Linux都会提示我们是否确认删除,确认一下即可,如图:

在这里插入图片描述

  • rm -r 目录名

在上面我们提到直接使用rm+文件名可以直接删除文件,但当我们这样删除一个目录的时候,Linux则会提示不能删除,这是一个目录。如下图:

在这里插入图片描述
此时就需要用到rm -r 进行递归删除这个目录和该目录里的所有文件,如下图:
在这里插入图片描述

细心的小伙伴这个时候就会发现,当我们递归删除一个目录的时候,每删除一个目录系统都会询问是否删除,那当我们要递归删除一个成千上万的目录的时候也需要这样一个一个的确定吗,答案是否定的,这就是我们接下来要介绍的命令了

  • rm -rf 目录名

这里的f表示的是强制删除,当加上之后我们再进行删除的时候系统就不会一次次的确定了。如下图,我们先递归依次创建出aa,bb,cc目录,然后再进行递归删除。
在这里插入图片描述

2.10 cp命令

cp: 复制文件或目录

  • cp 源文件 目标文件

现在我们有一个111.txt文件,我们现在将它复制一份命名为222.txt,操作如下:
在这里插入图片描述
需要注意的是,拷贝操作有时也是很危险的,如果我们拷贝的目标文件已经存在,此时进行拷贝就会出现 “覆盖” 的情况。

  • cp -r 源目录 目的目录

上面我们介绍的是复制文件,当然cp命令也是可以复制目录的,加一个 -r 即可。
已知我们已经有一个aaa目录,里面有一个text.txt文件,我们现在将aaa目录拷贝到bbb目录,操作如下:
在这里插入图片描述

2.11 mv命令

mv: 移动或重命名文件或目录

  • mv 源文件 目标文件

上面我们已经有一个bbb目录,里面有一个text.txt文件,我们现在将这个text.txt文件移到到ccc目录下并重命名为text2.txt,操作如下
在这里插入图片描述
上面介绍的是将一个文件移到到其他目录下,如果移到的源文件和目标文件本身就在同一个目录下,此时就相当于给这个文件改名字,和Windows中的重命名类似。我们现在将ccc目录下的text2.txt文件重命名为text.txt,操作如下:

在这里插入图片描述

  • mv 源目录 目标目录

和上面的rm命令不同的是,我们移动目录的时候不用加-r表示递归移动,直接移动即可。现在我们将ccc目录移到到bbb目录下,操作如下:
在这里插入图片描述

2.12 grep命令

grep: 字符串匹配

  • grep 字符串 文件名

快速搜索某个文件中是否包含某个特定字符串。操作如下:
在这里插入图片描述
同时,grep还可以在多个文件中搜索,具体操作如下:
在这里插入图片描述
当然,grep不仅有搜索的功能,它还能搭配不同的命令进行联动,这也就是我们接下来要介绍的几种命令。

2.13 ps命令

ps : 查看进程

  • ps

这样直接通过ps能查看的内容非常有限,通常要使用一些固定选项。
在这里插入图片描述

  • ps aux
    列出系统中的所有进程(关于aux我们可以通过man查看帮助手册了解——man aux)
    在这里插入图片描述
  • ps aux | grep mysql
    在上面我们介绍grep的时候说过它通常是和其他命令搭配使用的,这就是其中的一种,通过该命令我们就可以查看包含mysql的进程。
    在这里插入图片描述

2.14 netstat命令

netstat:用来查询网络状态

  • netstat anp
    在这里插入图片描述
  • netstat -anp | grep java

这个就是查询我们Java进程的网络状态
在这里插入图片描述

3. Linux常见面试题

  1. 说说你常用的Linux命令有哪些?
  2. Linux如何给定进程名,查看进程的pid?
  3. Linux给定进程名,如何查看进程的绑定的端口号?
    第一个我们就不多说了,就介绍一下自己常用的命令即可。
    第二个比如我们要查看mysql进程的pid就用到了上面的ps命令:
  • ps -aux | grep mysql
    第三个比如我们查看Java进程的端口号就用到netstat命令:
  • netstat -anp | grep java
    这次的分享就到这里结束了,下一节我们将介绍如何将自己的项目部署到服务器上让别人都可以通过我们给的地址进行访问,感谢支持!

相关文章:

Linux常用命令大全(超详细!!!)

文章目录 1.Linux是什么1.1 关于Linux我们主要学习什么1.1 学习Linux常见命令的前置知识 2. Linux常见命令2.1 ls命令2.2 cd命令2.3 pwd命令2.4 touch命令2.5 cat命令2.6 echo命令2.7 vim命令2.8 mkdir 命令2.9 rm命令2.10 cp命令2.11 mv命令2.12 grep命令2.13 ps命令2.14 nets…...

TDD测试驱动开发

为什么需要TDD? 传统开发方式,带来大量的低质量代码,而代码质量带来的问题: 1.在缺陷的泥潭中挣扎 开发长时间投入在缺陷的修复中,修复完依赖测试做长时间的回归测试 2.维护困难,开发缓慢 比如重复代码&am…...

huggingface镜像站

huggingface下载太慢,大模型文件太大。用huggingface_hub镜像。 pip install -U huggingface_hub pip install huggingface-cli export HF_ENDPOINThttps://hf-mirror.com huggingface-cli download --resume-download shenzhi-wang/Llama3-8B-Chinese-Chat --loc…...

Java中如何实现数据库连接池优化?

Java中如何实现数据库连接池优化? 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将深入探讨在Java应用程序中如何实现数据库连接池优化&am…...

002 SpringMVC入门项目搭建

文章目录 HelloController.javaspringmvc.xmlweb.xmlpom.xmlhello.jsp http://localhost:8080/showView http://localhost:8080/showData HelloController.java package com.springmvc.controller;import org.springframework.stereotype.Controller; import org.springframewo…...

为什么要使用多线程(并发编程)

目录 1.上下文的切换 1.1 什么是上下文切换 2. 并发编程的死锁问题 2.1 死锁产生的原因 2.2 避免死锁的方法 3.资源限制的挑战3.1 什么是资源限制 并发编程的目的是为了让程序更快,大家都知道并不是开启的线程越多越快,因为开启的线程越多随即面临…...

Unity编辑器工具---版本控制与自动化打包工具

Unity - 特殊文件夹【作用与是否会被打包到build中】 Unity编辑器工具—版本控制与自动化打包工具: 面板显示:工具包含一个面板,用于展示软件的不同版本信息。版本信息:面板上显示主版本号、当前版本号和子版本号。版本控制功能…...

amis-editor 注册自定义组件

建议先将amis文档从头到尾,仔细看一遍。 参考:amis - 低代码前端框架 amis 的渲染过程是将 json 转成对应的 React 组件。先通过 json 的 type 找到对应的 Component,然后把其他属性作为 props 传递过去完成渲染。 import * as React from …...

(上位机APP开发)调用华为云命令API接口给设备下发命令

一、功能说明 通过调用华为云IOT提供的命令下发API接口,实现下面界面上相同的功能。调用API接口给设备下发命令。 二、JavaScript代码 function sendUnlockCommand() {var requestUrl = "https://9bcf4cfd30.st1.iotda-app.cn-north-4.myhuaweicloud.com:443/v5/iot/60…...

排序算法系列一:选择排序、插入排序 与 希尔排序

目录 零、说在前面 一、理论部分 1.1:选择排序 1.1.1:算法解读: 1.1.2:时间复杂度 1.1.3:优缺点: 1.1.4:代码: 1.2:插入排序 1.2.1:算法解读&#x…...

【快速排序】| 详解快速排序 力扣912

🎗️ 主页:小夜时雨 🎗️专栏:快速排序 🎗️如何活着,是我找寻的方向 目录 1. 题目解析2. 代码 1. 题目解析 题目链接: https://leetcode.cn/problems/sort-an-array/ 我们上道题讲过快速排序的核心代码&a…...

游戏推荐: 植物大战僵尸杂交版

下载地址网上一搜就有. 安装就能玩. 2是显血. 4显示植物血, 5是加速. 都是左手主键盘的按钮, 再按是取消. 比较刺激: ps: 设置里面还能打开自动收集阳光和金币....

微调和rag的区别?

微调和RAG(Retrieval-Augmented Generation)在多个维度上存在显著的区别。以下是它们之间的主要差异: 1. **知识维度**: - RAG对知识的更新时间和经济成本更低。它不需要训练,只需要更新数据库即可。 - RAG对知识的掌控…...

CVPR讲座总结(二)-探索图像生成基础模型的最新进展探索多模态代理的最新进展:从视频理解到可操作代理

引言 在CVPR24上的教程中,微软高级研究员Linjie Li为我们带来了多模态代理的深入探索。这些代理通过整合多模态专家和大语言模型(LLM)来增强感知、理解和生成能力。本文总结了Linjie Li的讲座内容,重点介绍了多模态记忆、可操作代…...

为什么要禁用透明大页面

在安装CDH(Clouderas Distribution Including Apache Hadoop)环境时,禁用透明大页面(Transparent HugePages,THP)是一个推荐的系统优化步骤。以下是禁用透明大页面的一些原因: 1. **性能影响**…...

Element 页面滚动表头置顶

在开发后台管理系统时,表格是最常用的一个组件,为了看数据方便,时常需要固定表头。 如果页面基本只有一个表格区域,我们可以根据屏幕的高度动态的计算出一个值,给表格设定一个固定高度,这样表头就可以固定…...

对于CDA一级考试该咋准备??!

一、了解考试内容和结构 CDA一级考试主要涉及的内容包括:数据分析概述与职业操守、数据结构、数据库基础与数据模型、数据可视化分析与报表制作、Power BI应用、业务数据分析与报告编写等。 CDA Level Ⅰ 认证考试大纲:https://edu.cda.cn/group/4/thread/174335 …...

如何使用PHP和Selenium快速构建自己的网络爬虫系统

近年来,随着互联网的普及,网络爬虫逐渐成为了信息采集的主要手段之一,然而,常规的爬虫技术不稳定、难以维护,市面上的纯web网页爬虫也只能在静态页面上进行操作。而php结合selenium可达到动态爬虫的效果,具…...

intellij idea安装R包ggplot2报错问题求解

1、intellij idea安装R包ggplot2问题 在我上次解决图形显示问题后,发现安装ggplot2包时出现了问题,这在之前高版本中并没有出现问题, install.packages(ggplot2) ERROR: lazy loading failed for package lifecycle * removing C:/Users/V…...

【C++】初识C++(一)

一.什么是C C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度 的抽象和建模时,C语言则不合适。为了解决软件危机, 20世纪80年代, 计算机界提出了OOP(object o…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)

目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关&#xff0…...

Element Plus 表单(el-form)中关于正整数输入的校验规则

目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入&#xff08;联动&#xff09;2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解

在 C/C 编程的编译和链接过程中&#xff0c;附加包含目录、附加库目录和附加依赖项是三个至关重要的设置&#xff0c;它们相互配合&#xff0c;确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中&#xff0c;这些概念容易让人混淆&#xff0c;但深入理解它们的作用和联…...

PHP 8.5 即将发布:管道操作符、强力调试

前不久&#xff0c;PHP宣布了即将在 2025 年 11 月 20 日 正式发布的 PHP 8.5&#xff01;作为 PHP 语言的又一次重要迭代&#xff0c;PHP 8.5 承诺带来一系列旨在提升代码可读性、健壮性以及开发者效率的改进。而更令人兴奋的是&#xff0c;借助强大的本地开发环境 ServBay&am…...

《Docker》架构

文章目录 架构模式单机架构应用数据分离架构应用服务器集群架构读写分离/主从分离架构冷热分离架构垂直分库架构微服务架构容器编排架构什么是容器&#xff0c;docker&#xff0c;镜像&#xff0c;k8s 架构模式 单机架构 单机架构其实就是应用服务器和单机服务器都部署在同一…...

写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里

写一个shell脚本&#xff0c;把局域网内&#xff0c;把能ping通的IP和不能ping通的IP分类&#xff0c;并保存到两个文本文件里 脚本1 #!/bin/bash #定义变量 ip10.1.1 #循环去ping主机的IP for ((i1;i<10;i)) doping -c1 $ip.$i &>/dev/null[ $? -eq 0 ] &&am…...

表单设计器拖拽对象时添加属性

背景&#xff1a;因为项目需要。自写设计器。遇到的坑在此记录 使用的拖拽组件时vuedraggable。下面放上局部示例截图。 坑1。draggable标签在拖拽时可以获取到被拖拽的对象属性定义 要使用 :clone, 而不是clone。我想应该是因为draggable标签比较特。另外在使用**:clone时要将…...