关于 Linux 的常用命令

news2024/12/24 21:12:24

目录

  • 前言
    • 什么是 Linux
    • 获得 Linux 环境
    • 为什么使用命令控制
    • 关于 XShell 下的复制粘贴
  • Linux 常用命令
    • ls (罗列文件)
    • cd (切换目录)
    • pwd (显示当前路径)
    • touch (创建一个空文件)
    • cat (读取文件内容)
    • man (查看用户手册)
    • echo (回显)
    • vim (文件编辑器)
    • mkdir (创建目录)
    • rm (删除目录/文件)
    • cp (复制)
    • mv (移动)
    • grep (字符串匹配)
    • ps (查看进程)
    • netstat (查看网络状态)

前言

什么是 Linux

Linux 是一个操作系统, 和 Windows 是 “并列” 的关系, 其实手机上的安卓系统就是 Linux.
我们日常使用的电脑都是 Windows 为主, 也有 mac 的.
Linux 的市场份额是比 Windows 更多的.

Linux 使用场景 :

  1. 服务器
  2. 嵌入式设备
  3. 移动端(手机)Android

Linux 准确来说是一个 “统称”, 或者可以认为是一个 “操作系统内核”.
一个完整的操作系统 = 操作系统内核 + 配套应用程序

于是有很多企业/组织, 基于 Linux 内核搭载不同的应用程序, 从而诞生了很多不同的 “操作系统”. 如下 :
在这里插入图片描述
我们使用的是基于 redhat 的社区免费版本 Centos

获得 Linux 环境

学习 Linux 首先得有一个 Linux 环境.
推荐大家买个云服务器, 最近阿里也在搞活动, 送几个月呢, 我这里使用的也是阿里送的云服务器.

买完服务器后就得到三个重要信息 :

  1. 服务器的外网 ip
  2. 服务器的管理员账号 (固定为 root)
  3. 管理员账户密码 (在阿里云网站上设置)

上述三个信息是我们登录 Linux 的关键.

接下来就是使用终端软件来连接 Linux 了, 常见的终端软件有 :
XShell, Putty, MobaXTerm, Iterm2 等等, 我这里使用的是 XShell.

下载好 XShell 后就可以与云服务器建立连接了.

  1. 点击文件
  2. 新建
  3. 输入一个名称, 然后输入服务器的外网 ip.
  4. 点击连接. 之后就是输入用户名和密码了.

连接成功后就是这样了 :
在这里插入图片描述
解释一下含义 :

root 是当前用户名
@ 是分隔符
iZ2vch4gaxbeiyox9kxkanZ 是主机名
~ 表示当前所在目录 (~ 在Linux中有特殊含义, 表示 home 目录, 是用户存放数据的目录)
#表示当前身份是管理员 ($ 表示普通用户)

为啥 ~ 表示 home 目录呢 ?
这个是因为早期键盘的 ~键 和 home键 是同一个按键.

为什么使用命令控制

为什么使用 Linux 是使用命令进行操作的呢 ?
既然和 Windows 并列, 那为啥不像 Windows 一样使用图形化的界面 ?

首先, Linux 是有图形化界面的, 但是我们实际工作中一般都不会使用.

图形化优势 : 简单易上手.
Linux 图形化界面是比较糟糕的, 非常简陋, bug多.

命令行优势 : 高效, 准确, 是生产力工具.

  1. 带宽占用非常低
  2. 系统资源占用也非常低
  3. 命令行适合使用脚本来实现批量的重复性的操作.

关于 XShell 下的复制粘贴

复制: ctrl + insert (笔记本的 insert 需要配合 fn 来按)
粘贴: shift + insert

ctrl + c / ctrl + v 是不行的.

按 crtl + l 是清屏.

Linux 常用命令

ls (罗列文件)

list 列出当前 目录 / 指定目录 包含哪些文件.(类似于双击目录)
在这里插入图片描述
可看到我这里在 home 目录下有三个文件, 其中蓝色代表目录, 白色代表普通文件.
该目录下, 本来是没有文件的, 都是自己创建的.

ls 后面跟上一个具体目录, 就可以查看指定目录的内容.
在这里插入图片描述
这里 / 表示根目录, 对比 Windows 就是 “此电脑”, 云服务器上任何一个文件都是从属于根目录的.

在这里插入图片描述
此处效果和直接敲 ls 是一样的, 因为 root 用户的 home 目录就是 /root, 也就是我们以 root 身份登录后, 默认所在目录. /root 目录就是 root 用户的 ~ 目录.

使用 ls -l 就可以看到目录中的细节了.
在这里插入图片描述
因为我们使用 ls -l 操作很频繁, 所以 Linux 提供了 ll 操作, 相当于 ls -l.
在这里插入图片描述

-l 叫做 “命令行参数”, 当然还有其他命令行参数 :
在这里插入图片描述
参数和参数在之间至少用一个空格来分割. (除了 -l, 其他命令行参数都用的较少)

cd (切换目录)

change directory 的缩写, 也就是切换目录.
Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件.

cd 后面跟上要切换的目录路径 (绝对路径和相对路径都可)
Linux 中, 绝对路径是 / 开头的, 相对路径是以 ./ , …/ 开头的, 其中./ 可以省略.

在这里插入图片描述
可以看到, 当前目录由 ~, 变为了 /

注意下面操作下的目录变化 :
在这里插入图片描述
如果直接 cd 后面不接什么, 则是直接回到 home 目录.

cd 和 ls 整个 Linux中最常用的两个命令.

pwd (显示当前路径)

pwd 是防止用户迷路的, 有时候用户 cd 太多了, 把自己也绕晕了, 这时候敲 pwd 显示当前完整路径.

就像点击 Windows 文件上的路径一样.
在这里插入图片描述
在这里插入图片描述

touch (创建一个空文件)

创建一个 333.txt 文件 :
在这里插入图片描述

可以看到该文件大小为0, 是个空文件.
在这里插入图片描述

cat (读取文件内容)

cat 对简单短小的文件读取效果好, 如果文件大了, 很长, 那 cat 就不方便.
如果文件大小为零, 即使 cat 了, 也不会有内容.

在这里插入图片描述
有时候输入的文件名很长, 就可以打出前几个字母, 然后按 tab 就可以补全了.

man (查看用户手册)

如果我们想具体了解某个命令的用法, 就可敲 man 指令, 如 : man cat
输入回车后, 就会跳转到用户手册, 退出按 q.

echo (回显)

echo 意思是回显, 我们可以在命令中输入要显示的内容, 然后回车就会显示出该内容.
在这里插入图片描述
当然, 我们也可以用来写文件 :
在这里插入图片描述
这里要注意, 每次写文件的时候, 都会清空原有内容.
在这里插入图片描述

总结 : echo 和 cat 这样的命令, 只是适合对简单文件进行操作.
如果文件复杂, 或者文件编辑需求复杂, 那就不适合了.
其实 echo 和 cat 指令很有用, 比如 : 当我们使用脚本批量处理很多简单操作的时候.

vim (文件编辑器)

如果是针对复杂文件, 进行复杂编辑, 那么就可以用到 vim 了.
vim 是 Linux 自带的文本编辑器, 相当于 Windows 的记事本.

这里只介绍 vim 的三种基本用法 :

  1. 打开文件
  2. 编辑文件
  3. 保存退出
  1. 打开文件 : 使用 vim 加文件名 / 文件路径.
  2. 编辑文件

打开 : hello.txt 文件 :
在这里插入图片描述
回车后就会跳转到编辑画面, 这个时候 vim 处在普通模式, 此时键盘按键都是快捷键, 我们得切换到插入模式, 才是输入文本.
按 i, 即可进入插入模式, 这个模式就类似于记事本了.

  1. 保存退出 : 写完后, 按 Esc 键退出插入模式, 再输入 :w 就是保存, 再输入 :q 就是退出了, 当然可以一起输入 :wq, 保存并退出.

通过 cat 可以看到刚刚输入的内容 :
在这里插入图片描述

mkdir (创建目录)

mk -> make
dir -> directory
相当于 Windows 中, 鼠标右键, 新建目录.

rm (删除目录/文件)

remove 删除文件 / 删除目录
使用 rm -r 是递归删除, 即删除该目录下的所有子文件和子目录.
在这里插入图片描述
可以看到, 使用 rm -r 删除要逐个文件询问是否删除, 遇到大文件就很麻烦.
我们可以使用 rm -rf 进行强制删除, 不会询问了.

在这里插入图片描述
我们也可以使用通配符 * 来删除当前目录所有文件.
在这里插入图片描述

注意 : rm 操作很危险 !!!
在 Linux 中, 没有回收站这个概念, 删除了就没有了.
如果我们把根目录删了就完了, 就是这个命令 : rm -rf / , 这个命令一出, 系统都跑不起来了.
如果误敲了, 只能重装系统了.
虽然大家都知道, 但还是会神不知鬼不觉的敲了.
具体啥场景下会敲错呢 ?

情况一 :
我现在要删除一个文件 :
在这里插入图片描述
这样删是没问题的, 但就怕多敲了一个空格 : rm -rf / root/777
可以看到在第一个 / 后面跟了一个空格, 这时候 Linux 就认为你要删除两个目录 :
一个是 /
一个是 ./root/777 (./ 省略了)
这就真寄了.

情况二(更隐秘) :
编写 xshell 脚本的时候, 可能需要定义一个变量, 比如 : DIR=hello.txt
当我删除这个变量的时候就是 : rm -rf /$DIR, 注意 这个时候如果变量未定义, 那么 $DIR 就相当于空字符串了, 命令也就相当于 : rm -rf /

cp (复制)

copy 复制.
cp 要复制文件 目标目录
在这里插入图片描述
还可以通过 cp 进行重命名, 当然它不是自己重命名, 而是复制一份, 并将复制的改个名字 :
在这里插入图片描述

注意 : 如果拷贝的文件已经存在, 则会将原有文件覆盖.

当然 cp 还可以复制目录, 复制目录时, 加上 -r ( r 表示递归, 将所有子目录子文件都复制)

mv (移动)

类似于 cp, 也是这种形式 : mv 要移动的文件 目标目录
当命令是这种形式时 : mv hello.txt world.txt
就是单纯的重命名了, 可以理解为边移动, 边改名.
Linux 中, 没有单独的命令进行重命名, 就是通过 mv 来完成的. (mv 也可以移动目录, 不需要加 -r)
mv 操作是非常快的, 文件路径只是一个属性, 修改路径就是修改这个文件的属性, 很快的.

Linux 中, 没有回收站, 经常用来模拟回收站, 想删除某个东西, 并不是直接 rm, 而是将其移动到一个单独目录中.

grep (字符串匹配)

快速搜索某个文件中, 是否包含某个特定字符串.
在这里插入图片描述
加上 -n 可以显示字符串出现在该文件哪一行, -n 也可以放 grep 后面.

grep 也可以在多个文件中进行搜索.
在这里插入图片描述
" * " 表示当前目录下所有文件.
-R 表示递归搜索, 如果该目录下还有目录, 就会进入子目录搜索.

grep 不仅仅可以搜索文件内容, 还可以和其它命令联动.

ps (查看进程)

ps 用于查看当前系统上运行的进程, 可与 grep 联动.
ps aux 列出系统中所有进程.
ps aux | grep “进程名” 查看某个进程. grep 起到筛选的作用.
在这里插入图片描述
前面 3690818 是身份标识 pid, 后面的字符串是 mysql 对应的服务器进程, 注意, 每次敲的命令本身也是一个进程, 对照上图, 就是 root 对应的进程.

ps aux | grep “进程id” 根据 pid 来查询进程.
在这里插入图片描述

netstat (查看网络状态)

netstat 查看系统上的网络状态.
netstat -anp , 显示所有.
一般我们都是关注其中一部分信息, 搭配 grep 来查询.
在这里插入图片描述
:::3306 是本端的 ip 和端口, ::: 是 ipv6 的写法.
::: * 是对端 ip 和端口
3690818 是进程的 pid

面试常考 :
通过 ps 来查看某个进程的 pid.
通过 netstat 查看某个进程绑定的端口号.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/745295.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数仓常见问题以及解决方案yyds

文章目录 01 数据仓库现状业务系统侧【上游】数仓内部数据应用测【下游】 02 如何解决问题业务系统侧【上游】数仓内部 03 体系化架构设计一致性维度一致性事实数据应用侧【下游】 建设可视化的取数平台 大家好,我是脚丫先生 (o^^o) 看到几篇不错的文章&#xff0c…

App Inventor 2 从.aia项目文件中提取.aix拓展包

从.aia项目文件中提取.aix拓展包的步骤 如果看到一个项目中,用到了拓展,但拓展的帮助中没有原链接,这时就可以考虑从项目文件中进行提取: 导出项目.aia文件: 在电脑的“下载”目录查看.aia项目文件: 将.a…

写在2023年年中

写在2023年年中 收拾旧山河再出发 很久没有写规划了,博客也很少写,着实是太懒了。想想自己年纪也不小了,加上程序员的环境越来越不好,总得想想自己的出路不是。 目标 提升系统设计能力保持算法刷题能力(一般面试需要)知识输出能…

RabbitMQ工作模式代码示例及用SpringBoot整合RabbitMQ

一,RabbitMQ的工作模式 RabbitMQ 的工作模式是指 RabbitMQ 中不同的消息传递方式,包括简单模式、工作队列模式、发布订阅模式、路由模式和主题模式 。这些工作模式适用于不同的应用场景。详细的文档可参照RabbitMQ的官网:RabbitMQ: easy to u…

基于JavaSwing+MySQL的员工工资管理系统

点击以下链接获取源码: https://download.csdn.net/download/qq_64505944/88042468?spm1001.2014.3001.5503 JDK1.8 MySQL5.7

虚拟与现实的交融:VR与数字孪生的融合之道

VR即虚拟现实(Virtual Reality)和数字孪生(Digital Twin)是当今科技领域的两大热门概念,VR以其沉浸式的体验和逼真的虚拟环境,让用户身临其境,开启了全新的交互方式和感官体验;而数字…

副业做什么比较靠谱,不想只靠一个收入

科思创业汇 大家好,这里是科思创业汇,一个轻资产创业孵化平台。赚钱的方式有很多种,我希望在科思创业汇能够给你带来最快乐的那一种! 如今做一些副业能不能有一点安全感,分享一些可靠的副业,坚持下去&…

Abandoning the Bayer-Filter to See in the Dark 论文阅读笔记

这是CVPR2022的一篇暗图增强的文章,TCL AI Lab与福州大学,韩国延世大学,安徽大学的合作论文网络以黑暗环境下拍摄的color raw为输入,用一个de-bayer-filter module恢复无拜尔滤波器的raw data(文章认为拜尔滤波器使得光…

leetcode 987. 二叉树的垂序遍历(java)

二叉树的垂序遍历 leetcode 987. 二叉树的垂序遍历题目描述DFS 优先队列(堆)代码演示 二叉树专题 leetcode 987. 二叉树的垂序遍历 来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/vertical-orde…

AI文本标注的概念,类型和方法

我们每天都在与不同的媒介(例如文本、音频、图像和视频)交互,我们的大脑对收集到的信息进行处理和加工,从而指导我们的行为。在我们日常接触到的信息中,文本是最常见的媒体类型之一,由我们交流使用的语言构…

优化SQL查询实现高效数据检索(一)

大家好,SQL(结构化查询语言)可以帮助大家从数据库中收集数据,它是专为此而设计的,换句话说,它使用行和列来处理数据,让使用者能够使用SQL查询来操作数据库中的数据。 SQL查询 SQL查询是一系列…

11-2.箭头函数与函数的this问题

目录 1 箭头函数 1.1 基本使用 1.2 在只有一个参数的时候,小括号可以省略 1.3 只有一行时,可以省略大括号 1.4 只有一行时的return问题 1.5 直接返回一个对象 1.6 箭头函数使用剩余参数 2 this问题 2.1 直接打印this 2.2 fucntion定…

接口工具Postman知多少

目录 前言: Postman简介 如何使用Postman 1)主界面 2)测试用例的创建 3)请求结果 4)测试集的创建 使用方法: 前言: Postman是一个流行的API开发和测试工具,它提供了丰富的功…

38. QT在工控机Linux系统上调试机器人注意事项

1. QtCreator项目编译目录问题 当使用QtCreator创建一个新项目之后,对于代码编译产生的最终文件保存路径一般也会确定下来,QtCreator会帮助我们在同级目录下创建保存路径。例如下图:带有蓝色框的文件夹为项目源码,左侧的文件夹即为项目编译后产生的文件夹 如果在某种情况…

Unity | 向量、矩阵、齐次坐标

目录 一、向量点乘&叉乘 1.点乘 1.1 公式 1.2 几何意义 2.叉乘 2.1 公式 2.2 几何意义 二、矩阵点乘&叉乘 1.矩阵 2.矩阵的点乘 3.矩阵的叉乘 三、矩阵旋转 四、齐次坐标 一、向量点乘&叉乘 1.点乘 又称内积,结果是个标量, 1…

LIS医学检验信息系统 智慧检验实验室系统源码

医学检验信息系统(LIS)涵盖实验室的全部管理流程,包括从检验申请、标本采集、实验检测、报告发布的完整流程,以及质控管理、科室事务、试剂管理等功能,遵循医学实验室认可标准ISO15189的要求规范,适合各种实验机构的业务流程。 …

【MySQL】MySQL 数据类型,数值、日期和时间、字符串类型,创建数据表,删除数据表

作者简介: 辭七七,目前大一,正在学习C/C,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: 七七的闲谈 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖&#x1f…

在Windows server 2012上使用virtualBox运行CentOS7虚拟机,被强制暂停

文章目录 问题场景排查过程处理解决事后反思 问题场景 我们的平台服务使用docker部署,使用docker-compose进行管理,部署到CentOS7的服务器里平台部署到客户环境时,一小部分客户,使用自己机房或单独的服务器。很多客户不愿意采购新…

进程之间的数据交互(使用管道和套接字实现进程通信)

本篇目录 进程通信的方法有哪些C语言使用管道实现进程通信使用管道进行实时通信 C语言使用套接字进行进程通信 进程通信的方法有哪些 进程通信是指在操作系统中,不同进程之间进行数据传递、信息共享和协调工作的方法。以下是常见的进程通信方法: 管道&a…

Linux网络第五章——YUM和NFS共享服务—YUM

YUM简介: 是一个专门为了解决包的依赖关系而存在的软件包管理器。 可以一键下载,一键安装和卸载。yum 是改进型的 RPM 软件管理器, 它解决了 RPM 所面临的软件包依赖问题。 yum 在服务器端存有所有的 RPM 包,并将各个包之间的依…