Linux介绍和命令使用

news2024/11/15 18:05:40

目录

目录

一、Linux简介

1.1 主流操作系统

1.2 Linux 发展历史

1.3 Linux系统版本

二、Linux安装

三、Linux 目录结构

四、Linux常用命令

4.1 基础常用命令说明

4.2 Linux 命令使用技巧

4.3 Linux 命令格式

4.4 进阶重点常用命令

4.4.1 拷贝移动命令

4.4.2 打包压缩命令

4.4.3 文本编辑命令

4.4.4 查找命令

4.4.5 查看系统的进程命令

4.4.6 管道命令(|)


一、Linux简介

1.1 主流操作系统

不同领域的主流操作系统,主要分为以下这么几类: 桌面操作系统、服务器操作系统、移动设备操作系统、嵌入式操作系统。在这些领域中,先看看下列具有代表性的操作系统:

  • 桌面操作系统

操作系统

特点

Windows

用户数量最多

MacOS

操作体验好,办公人士首选

Linux

用户数量少(桌面操作系统,Linux使用较少)

  • 服务器操作系统

操作系统

特点

Unix

安全、稳定、付费

Linux   (linux is not unix)

安全、稳定、免费、占有率高

Windows Server

付费、占有率低

  • 移动设备操作系统

操作系统

特点

Android

基于 Linux 、开源,主要用于智能手机、平板电脑和智能电视

IOS

苹果公司开发、不开源,用于苹果公司的产品,例如:iPhone、 iPad

  • 嵌入式操作系统

操作系统

特点

Linux

机顶盒、路由器、交换机

1.2 Linux 发展历史

Linux系统诞生于1991年,由Linus Torvalds创建并发布第一个内核版本,随后与GNU项目合作形成完整操作系统。发行版如Slackware、Debian、Red Hat相继出现,开源社区的积极贡献和商业支持推动了Linux在各领域的广泛应用。Linux发展的关键人物和关键事件如下:

  1. Linus Torvalds(林纳斯·托瓦兹):Linus Torvalds 是 Linux 内核的创始人,他于1991年开始编写 Linux 内核,并于同年8月发布了第一个版本。他的工作和领导使得 Linux 内核得以迅速发展。
  2. GNU 项目:在Linux之前,GNU项目早已开始了自由操作系统的开发。1983年,理查德·斯托曼创立了GNU项目,旨在创建一个完全由自由软件组成的操作系统。尽管GNU项目提供了大量的用户空间工具和库,但缺乏一个完整的内核。
  3. Linux 发布:1991年,Linus Torvalds发布了第一个 Linux 内核的版本,即0.01版,它只能在个人计算机上运行。随着时间的推移,Linux 内核逐渐发展壮大,添加了更多的功能和支持。
  4. GNU/Linux 合作:GNU 项目和 Linux 内核的合作成为 Linux 发展历史上的一个重要转折点。GNU 项目的用户空间工具和库与 Linux 内核相结合,形成了完整的操作系统。因此,人们通常将 Linux 系统称为 GNU/Linux。
  5. 发行版的出现:1993年,第一个 Linux 发行版——Slackware 诞生,其后出现了诸如 Debian、Red Hat 等各种不同的发行版,为用户提供了更多的选择和便利。
  6. 开源社区的发展:Linux 的成功离不开开源社区的贡献和支持。众多开发者和志愿者积极参与 Linux 内核和相关项目的开发、测试和维护,为 Linux 系统的不断改进和发展贡献了力量。
  7. 商业支持:随着 Linux 在服务器领域的日益普及,一些公司开始提供与 Linux 相关的商业支持和服务,如 Red Hat、SUSE 等,推动了 Linux 在企业市场的发展。
  8. 广泛应用:Linux 系统已经被广泛应用于服务器、个人计算机、超级计算机、嵌入式系统、移动设备等各个领域,成为当今世界上最流行的操作系统之一。
1.3 Linux系统版本

Linux系统的版本分为两种,分别是:内核版 和 发行版。

1). 内核版(托瓦兹团队研发的产品称为内核版)

  • 由Linus Torvalds及其团队开发、维护
  • 免费、开源
  • 负责控制硬件

2). 发行版(基于内核版进行升级改造)

  • 基于Linux内核版进行扩展
  • 由各个Linux厂商开发、维护
  • 有收费版本和免费版本

通常使用的Linux操作系统,实际上选择的是Linux的发行版本。在linux系统中,有各种各样的发行版本,下面罗列部分常见的版本:

发行版本

Logo

特点

Ubuntu

以桌面应用为主

RedHat

应用最广泛、收费

CentOS

RedHat的社区版、免费

openSUSE

对个人完全免费、图形界面华丽

Fedora

功能完备、快速更新、免费

红旗Linux

北京中科红旗软件技术有限公司开发

二、Linux安装

Linux系统的安装方式,主要包含以下两种:

方式

概述

场景

物理机安装

直接将操作系统安装到服务器硬件

企业开发中,使用的服务器基本都是采用这种方式

虚拟机安装

通过虚拟机软件安装

在学习阶段,没有自己服务器,而又需要学Linux,就可以安装在虚拟机上(或者购买云服务商的云服务器)

虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能、运行在完全隔离环境中的完整计算机系统。常用虚拟机软件:

  • VMWare
  • VirtualBox
  • VMLite WorkStation
  • Qemu
  • HopeddotVOS

三、Linux 目录结构

在Linux系统中,存在目录概念,但Linux的目录结构和Windows的目录结构是存在比较多的差异。在Windows目录下,是一个一个的盘符(C盘、D盘、E盘),目录是归属于某一个盘符的。而Linux系统中的目录有两个特点:

  • / 是所有目录的顶点
  • 目录结构像一颗倒挂的树

Linux 和 Windows的目录结构对比:

Linux的目录结构如下:

根目录/ 下各个目录的作用及含义说明:

编号

目录

含义

1

/bin

存放二进制可执行文件

2

/boot

存放系统引导时使用的各种文件

3

/dev

存放设备文件

4

/etc

存放系统配置文件,  比如:安装jdk,安装maven、配置环境变量

5

/home

用户的主目录,存放用户的个人资料的。比如:linux是一个多用户的操作系统,创建了zhangsan用户,那么在home目录里面有zhangsan文件夹。

6

/lib

存放程序运行所需的共享库和内核模块

7

/opt

额外安装的可选应用程序包所放置的位置

8

/root

超级管理员的主目录

9

/sbin

存放二进制可执行文件,只有root用户才能访问

10

/tmp

存放临时文件

11

/usr

安装软件主要存储在该目录中

12

/var

存放运行时需要改变数据的文件,例如日志文件

四、Linux常用命令

4.1 基础常用命令说明

Linux系统中,最常用的命令包含以下几个:

序号

命令

对应英文

作用

1

ls [目录名]

list

查看当前目录下的内容

2

pwd

print work directory

查看当前所在目录

3

cd [目录名]

change directory

切换目录

4

touch [文件名]

touch

如果文件不存在,创建文件

5

mkdir [目录名]

make directory

创建目录

6

rm [文件名]

remove

删除指定文件

  • ls

指令解读:

ls 查看当前目录下的内容(文件及目录) list列表缩写

ls / 查看指定目录(/)下的内容

ls -a 查看所有内容,包含隐藏的内容 a是all的缩写

ls -al 列表方式查看

ll -a 列表方式查看,简洁方式 ll 与 ls -l 相等

  • pwd

指令解读:

pwd 查看当前所在目录 print work directory

  • touch

指令解读:

touch 1.txt 创建文件1.txt

touch 2.txt 3.txt 4.txt 一次性创建文件2.txt,3.txt,3.txt

  • mkdir

指令解读:

mkdir 01 创建文件夹01

mkdir aa bb cc 一次性创建多个目录

mkdir -p dd/ff 如果父目录dd不存在就先创建父目录dd,之后创建子目录ff

  • rm

指令解读:

rm 4.txt 删除文件 (删除文件时,需要确认,输入y, 代表确定)

rm -f 4.txt 强制删除,不会问是否删除

rm 目录名 默认忽略这个命令,不会删除

rm -rf 目录名 recusion是r的缩写,代表递归,这样就可以递归删除当前目录下子文件和子目录

rm -rf /* 删除磁盘上所有资源,千万注意不要使用,否则需要重装系统

4.2 Linux 命令使用技巧

在我们使用Linux系统命令时,可以使用以下几个技巧:

1). Tab键自动补全

2). 连续两次Tab键,给出操作提示

3). 使用上下箭头快速调出曾经使用过的命令

4). 使用clear命令或者Ctrl+l快捷键实现清屏

4.3 Linux 命令格式

command [-options] [parameter]

说明:

command: 命令名

[-options]: 选项,可用来对命令进行控制,也可以省略

[parameter]: 传给命令的参数,可以是零个、一个或者多个

注意:

[ ] 代表可选

命令名、选项、参数之间有空格进行分隔

4.4 进阶重点常用命令
4.4.1 拷贝移动命令

命令:cp

作用: 用于复制文件或目录

语法: cp [-r] source dest

copy缩写

说明:

-r: 如果复制的是目录需要使用此选项,此时将复制该目录下所有的子目录和文件

举例:

cp hello.txt itcast/ 将hello.txt复制到itcast目录中

cp hello.txt ./hi.txt 将hello.txt复制到当前目录,并改名为hi.txt, ./代表当前目录

cp -r itcast/ ./itheima/ 将itcast目录和目录下所有文件复制到itheima目录下

cp -r itcast/* ./itheima/ 将itcast目录下所有文件复制到itheima目录下

命令:mv

作用: 剪切,重命名(如果目标位置已存在就是移动剪切,目标位置不存在就是重命名)

语法: mv source dest

说明:mv 命令既能够改名,又可以移动,具体是改名还是移动,系统会根据我们输入的参数进行判定(如果第二个参数dest是一个已存在的目录,将执行移动操作,其他情况都是改名)

举例:

mv hello.txt hi.txt 将hello.txt改名为hi.txt

mv hi.txt itheima/ 将文件hi.txt移动到itheima目录中

mv hi.txt itheima/hello.txt 将hi.txt移动到itheima目录中,并改名为hello.txt

mv itcast/ itheima/ 如果itheima目录不存在,将itcast目录改名为itheima

mv itcast/ itheima/ 如果itheima目录存在,将itcast目录移动到itheima目录中

4.4.2 打包压缩命令

压缩文件说明:

常用windows压缩文件格式: xxx.rar xxx.zip xxx.7z

常用linux压缩文件格式:

① 打包文件: xxx.tar 打包就是将多个资源目录或文件困在一起

② 打包并压缩文件: xxx.tar.gz 打包就是将多个资源目录或文件困在一起,并且会将数据压缩

名称:tar

作用: 对文件进行打包、解包、压缩、解压

语法: tar [-zcxvf] fileName [files]

包文件后缀为.tar表示只是完成了打包,并没有压缩(归档文件)

包文件后缀为.tar.gz表示打包的同时还进行了压缩

说明:

-z: z代表的是gzip,通过gzip命令处理文件,gzip可以对文件压缩或者解压

-c: c代表的是create,即创建新的打包文件

-x: x代表的是extract,实现从包文件中还原文件(解压)

-v: v代表的是verbose,显示命令的执行过程

-f: f代表的是filename,用于指定包文件的名称

举例:

打包

tar -cvf hello.tar ./* 将当前目录下所有文件打包,打包后的文件名为hello.tar

打包并压缩

tar -cvzf hello.tar.gz ./* 将当前目录下所有文件打包并压缩,打包后的文件名为hello.tar.gz

解包

tar -xvf hello.tar 将hello.tar文件进行解包,并将解包后的文件放在当前目录

tar -xvf hello.tar.gz 将hello.tar.gz文件进行解压,并将解压后的文件放在当前目录

tar -xvf hello.tar.gz -C /usr/local 将hello.tar.gz文件进行解压,并将解压后的文件放在/usr/local目录

4.4.3 文本编辑命令
  • 介绍

文本编辑的命令,主要包含两个: vi 和 vim,两个命令的用法类似。

vi命令是Linux系统提供的一个文本编辑工具,可以对文件内容进行编辑,类似于Windows中的记事本。它的语法是:vi fileName

说明:

1). vim是从vi发展来的一个功能更加强大的文本编辑工具,编辑文件时可以对文本内容进行着色,方便对文件进行编辑处理,所以实际工作中vim更加常用。

2). 要使用vim命令,需要我们自己完成安装。可以使用下面的命令来完成安装:`yum install vim`

  • vim使用

vim其实就是一个文本编辑器语法: vim fileName

说明:

1). 在使用vim命令编辑文件时,如果指定的文件存在则直接打开此文件。如果指定的文件不存在则新建文件。

2). vim在进行文本编辑时共分为三种模式,分别是 命令模式(Command mode),插入模式(Insert mode)和底行模式(Last line mode)。这三种模式之间可以相互切换。在使用vim时一定要注意当前所处的是哪种模式。

  • 三种模式

① 命令模式(不可编辑内容),命令模式下可以查看文件内容、搜索文本内容.

命令模式指令

含义

i 或 a 或 o

进入插入模式,i是光标前面插入,a是光标后面插入,o是在下一行插入

gg

定位到文本内容的第一行第一个字符

GG

定位到文本内容的最后一行

yy

复制当前行

p

粘贴当前行

dd

删除光标所在行的数据

ndd

删除当前光标所在行及之后的n行数据

u

撤销操作

shift+zz

保存并退出

/搜索的内容

在当前文件中搜索内容,符合的内容会高亮

② 插入模式

A. 插入模式下可以对文件内容进行编辑
B. 在命令模式下按下[i,a,o]任意一个,可以进入插入模式。进入插入模式后,下方会出现【insert】字样
C. 在插入模式下按下ESC键,回到命令模式

③ 底行模式

  1. 按下esc回到命令模式
  2. 在命令模式的基础上按下 shift+:
  3. 按下保存退出: :wq(保存退出)   :q!(强制退出不保存)

底行模式命令

含义

:wq

保存并退出  write  quit

:q!

不保存强制退出

:set nu

显示行号   number

:set nonu

取消行号显示

:n

定位到第n行, 如 :10 就是定位到第10行

④ 模式切换图

命令模式(查看内容 /搜索的内容) -------按下 :i a o ----> 插入模式(编辑文件) ------esc--->命令模式------->shift + : --------> 底行模式(保存退出 wq)

4.4.4 查找命令

名称:find

作用: 在指定目录下查找文件

语法: find dirName -option fileName

举例:

find . –name "*.java" 在当前目录及其子目录下查找.java结尾文件

find /itcast -name "*.java" 在/itcast目录及其子目录下查找.java结尾的文件

名称:grep

作用: 从指定文件中查找指定的文本内容,并且返回查找到的对应行数据

语法: grep word fileName

举例:

grep Hello HelloWorld.java 查找HelloWorld.java文件中出现的Hello字符串的位置

grep hello *.java 查找当前目录中所有.java结尾的文件中包含hello字符串的位置

grep -n hello Itheima.java -n显示行号

grep -ni hello Itheima.java -i 忽略大小写匹配内容

4.4.5 查看系统的进程命令
ps -ef    系统的所有的进程都展示出来  process

ps -aux 查询所有进行信息,并显示每个进程cpu耗用,内存耗用

top 查看整体的内存耗用

杀死进程
    kill -9(强制杀死)|-2(温和杀死)  进程id号

   -2 会先让程序保存在进行退出, 温和的退出
   -15 通知程序进行安全、干净的退出。退出前做一些准备工作:释放资源,临时文件清理。优雅的退出。
       但是-2 和 -15 在操作系统后台进程时系统可能认为是不良操作会导致退出失败。
   -9 强制退出。一定会退出

4.4.6 管道命令(|)
作用: 上一个命令的结果提供给下一个命令去使用。

语法:
    命令1 | 命令2 | 命令3 ...

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

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

相关文章

Linux下库函数、静态库与动态库

库函数 什么是库 库是二进制文件, 是源代码文件的另一种表现形式, 是加了密的源代码; 是一些功能相近或者是相似的函数的集合体. 使用库有什么好处 提高代码的可重用性, 而且还可以提高程序的健壮性;可以减少开发者的代码开发量, 缩短开发周期. 库制作完成后, 如何给用户…

【原创】Qt库open62541 MinGW编译

一、前言 为了统一公司的驱动层开发,准备采用OpcUA的方式转发底层数据,而服务器有Windows Server,也有CentOS,因此想用Qt开发一个基于MinGW的OpcUA Server,这样就能跨平台部署。这里记录一下,希望对你也有用…

【人工智能】人工智能 – 引领未来科技的潮流

写在前面 引言红利挑战结论 引言 人工智能是指使计算机系统表现出类似于人类智能的能力。其目标是实现机器具备感知、理解、学习、推理和决策等智能行为。人工智能的发展可以追溯到上世纪50年代,随着计算机技术和算法的不断进步,人工智能得以实现。 今天…

在C++的union中使用std::string(非POD对象)的陷阱

struct和union的对比 union最开始是C语言中的关键字,在嵌入式中比较常见,由于嵌入式内存比较稀缺,所以常用union用来节约空间,在其他需要节省内存的地方也可以用到这个关键字,写一个简单程序来说明union的用途 struc…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Stepper组件

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Stepper组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Stepper组件 鸿蒙(HarmonyOS)仅能包含子组件StepperIte…

SpringBoot和SpringMVC

目录 一、springboot项目 (1)创建springboot项目 (2)目录介绍 (3)项目启动 (4)运行一个程序 (5)通过其他方式创建和运行springboot项目 二、SpringMVC…

java学习06---方法

一 方法 方法(method)是程序中最小的执行单元 注意: 方法必须先创建才可以使用,该过程成为方法定义 方法创建后并不是直接可以运行的,需要手动使用后,才执行,该过程成为方法调用 二 方法的…

搭建macOS开发环境-1:准备工作

请记住: 最重要的准备工作永远是:备份数据 !!! 通过图形界面检查 Mac 的 CPU 类型: 在搭载 Apple 芯片的 Mac 电脑上,“关于本机”会显示一个标有“芯片”的项目并跟有相应芯片的名称: 通过命令行检查Mac的CPU类型 …

【Linux开发工具】yum命令详解

📙 作者简介 :RO-BERRY 📗 学习方向:致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 📒 日后方向 : 偏向于CPP开发以及大数据方向,欢迎各位关注,谢谢各位的支持 目录 1.概念2.yum的配置信…

Spring Cloud使用ZooKeeper作为注册中心的示例

简单的Spring Cloud应用程序使用ZooKeeper作为注册中心的示例&#xff1a; 1.新建模块&#xff1a; 2.勾选依赖&#xff1a; 3.在pom.xml文件中做出部分修改及添加Spring Cloud Zookeeper 依赖版本&#xff1a; 完整pom文件 <?xml version"1.0" encoding&q…

FlinkSql通用调优策略

历史文章迁移&#xff0c;稍后整理 使用DataGenerator 提前进行压测&#xff0c;了解数据的处理瓶颈、性能测试和消费能力 开启minibatch&#xff1a;"table.exec.mini-batch.enabled", "true" 开启LocalGlobal 两阶段聚合&#xff1a;"table.exec.m…

如何修复Mac的“ kernel_task” CPU使用率过高的Bug?

当计算机开始缓慢运行时&#xff0c;这从来都不是一件有趣的事情&#xff0c;但是当您弄不清它为何如此缓慢时&#xff0c;甚至会变得更糟。如果您已经关闭了所有程序&#xff0c;并且Mac上的所有内容仍然感觉像是在糖蜜中移动&#xff0c;这可能是令人讨厌的kernel_task导致高…

HTTP2: springboot启用http2

springboot http2应用条件 使用servlet 4.0jdk 9tomcat 9 springboot 开启h2 创建证书 创建脚本&#xff1a; keytool -genkey -keyalg RSA -alias wisely -keystore keystore.jks -storepass pass1234 -validity 4000 -keysize 2048添加springboot配置 server:port: 808…

假虚Telegram网站传播远控窃密木马

前言 今天下午朋友突然微信找到我说使用Telegram之后电脑卡的不行&#xff0c;让我看看&#xff1a; 电脑变卡&#xff0c;如果不是软件或系统问题&#xff0c;要么就是中了挖矿&#xff0c;要么就是中了远控木马&#xff0c;拿到样本分析之后&#xff0c;可以确认&#xff0c…

电子电器架构 —— 网关测试脚本分析

电子电器架构 —— 网关测试 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师(Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何 消耗你的人和事,多看一眼都是你的不对。非…

vue3-内置组件-KeepAlive

KeepAlive <KeepAlive> 是一个内置组件&#xff0c;它的功能是在多个组件间动态切换时缓存被移除的组件实例。 基本使用 默认情况下&#xff0c;一个组件实例在被替换掉后会被销毁。这会导致它丢失其中所有已变化的状态——当这个组件再一次被显示时&#xff0c;会创建…

猫头虎分享已解决Bug ‍ || TypeError: Cannot interpret ‘float‘ value as integer

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

【第二届 Runway短视频创作大赛】——截至日期2024年03月01日

短视频创作大赛 关于AI Fil&#xff4d; Festival竞赛概况参加资格报名期间报名方法 提交要求奖品附录 关于AI Fil&#xff4d; Festival 2022年成立的AIFF是一个融合了最新AI技术于电影制作中的艺术和艺术家节日&#xff0c;让我们得以一窥新创意时代的风采。从众多参赛作品中…

【人工智能】横扫市场的巨星大模型:探秘当今最热门的AI力量

今年&#xff0c;ChatGPT成了大家的明星&#xff0c;简直是个神奇的助手&#xff01;问什么问题&#xff0c;都秒回&#xff0c;写各种文字、甚至代码&#xff0c;简直是工作利器。而国内这半年AI领域热度不减&#xff0c;涌现了一批新公司和产品&#xff0c;大厂也在风头上。A…

第十个知识点:继承

在ES6之后&#xff0c;javascript引入了类的概念&#xff0c;也就是说与java相同&#xff0c;我们可以在js文件中创建类与对象&#xff0c;然后通过extend继承 <script>class Father {constructor(name) {//父类构造器this.name name;}speak(){//父类方法console.log(我…