Linux的世界 -- 初次接触和一些常见的基本指令

一、Linux的介绍和准备

1、简单介绍下Linux的发展史

  • 1991年10月5日,赫尔辛基大学的一名研究生Linus Benedict Torvalds在一个Usenet新闻组(comp.os.minix)中宣布他编制出了一种类似UNIX的小操作系统,叫Linux。新的操作系统是受到另一个UNIX的小操作系统——Minix的启发,该系统是由一名叫Andrew S Tanenbaum的教师开发的。读者也许猜想所发布的这个系统应该是Linux的0.01版本,实际上不是这样。真正的Linux 0.01版本并没有 被发布,原因是0.01版本不实用。Linus仅仅在第一个Linux的FTP站点ftp://nic.funet.fi)上提供过这个版本的的源代码。
  • Torvalds于10月5日发布的这个Linux版本被称为0.02版,它能够运行GNU Bourne Again Shell(bash)和GNU 的C编译程序(gcc)以及为数不多的其它语言。Torvalds绝对没有想到他设想的一种能够针对高级业余爱好者和黑客们的操作系统已经产生,这就是人们所称的Linux。
  • Linux发布时的版本是0.02,后来又有0.03版,然后又跳到0.10版。因为世界各地越来越多的程序员都开始开发Linux,它已经达到0.95版。这就意味着正是公布1.0版本的时间已经为期不远了。正式的1.0版本是在1994年公布的.

 

 

2、Linux的不同版本

  • Debian

Debian运行起来极其稳定,这使得它非常适合用于服务器。 debian这款操作系统无疑并不适合新手用户,而是适合系统管理员和高级用户。

  • Ubuntu

Ubuntu是Debian的一款衍生版,也是当今最受欢迎的免费操作系统。Ubuntu侧重于它在这个市场的应用,在服务器、云计算、甚至一些运行Ubuntu Linux的移动设备上很常见。Ubuntu是新手用户肯定爱不释手的一款操作系统。

  •  红帽企业级Linux

这是第一款面向商业市场的Linux发行版。它有服务器版本,支持众多处理器架构,包括x86和x86_64。红帽公司通过课程红帽认证系统管理员/红帽认证工程师(RHCSA/RHCE),对系统管理员进行培训和认证

  • CentOS

CentOS是一款企业级Linux发行版,它使用红帽企业级Linux中的免费源代码重新构建而成。这款重构版完全去掉了注册商标以及Binary程序包方面一个非常细微的变化。有些人不想支付一大笔钱,又能领略红帽企业级Linux;对他们来说,CentOS值得一试。此外,CentOS的外观和行为似乎与母发行版红帽企业级Linux如出一辙。 CentOS使用YUM来管理软件包。

  • Fedora

小巧的Fedora适合那些人:想尝试最先进的技术,等不及程序的稳定版出来。其实,Fedora就是红帽公司的一个测试平台;产品在成为企业级发行版之前,在该平台上进行开发和测试。Fedora是一款非常好的发行版,有庞大的用户论坛,软件库中还有为数不少的软件包。

  • Kali Linux

Kali Linux是Debian的一款衍生版。Kali旨在用于渗透测试。Kali的前身是Backtrack。用于Debian的所有Binary软件包都可以安装到Kali Linux上,而Kali的魅力或威力就来自于此。此外,支持Debian的用户论坛为Kali加分不少。Kali随带许多的渗透测试工具,无论是Wifi、数据库还是其他任何工具,都设计成立马可以使用。Kali使用APT来管理软件包。

 

 

3、 环境准备

我这里使用的是Xshell + 云服务器的一个组合

xhell  -->  

 

二、一些基本的指令

1、who -- 查询在当前机器中有几个用户登录使用

 

2、whoami -- 查询当前登陆的用户是谁

 

 

3、ssh 用户名 @ + ip地址  -- 通过ssh协议链接到远程服务器

 

输入指令后会弹出一个框,要求输入用户相对应的密码

 

 输入密码成功后,就可以正常使用了

 

4、ifconfig -- 查看Linux主机ip地址

 

5、clear -- 清除当前终端上显示的内容 

6、键盘上的上、下方向键 -- 翻阅之前输入过的指令

 

 

7、

复制:Ctrl + Insert

粘贴: Shift + Insert

全屏: Alt + Enter

终止程序运行:Ctrl + C

 

三、Linux的常见指令

1、ls指令 -- 对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息

用法: ls [选项] [目录或者文件]

常用选项:

  • -a 列出目录下的所有文件,包括以 . 开头的隐含文件(Windows系统下也一样)。

  • -d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录

  • -i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件

  • -k 以 k 字节的形式表示文件的大小。ls –alk 指定文件

  • -l 列出文件的详细信息。(不包含隐藏文件)

  • -n 用数字的 UID,GID 代替名称。 (介绍 UID, GID)

  • -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)

  • -r 对目录反向排序。

  • -t 以时间排序。

  • -s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)

  • -R 列出所有子目录下的文件。(递归)

  • -1 一行只输出一个文件。

 

注意:

ls指令中,ls -l 与 ll 是等价的,这两个命令作用都是一样的 。ll命令就像是ls -l的别名

 

补充:

什么是文件

这就是我们新建的一个文本文档,也可以叫做文件。

我们可以看到这个新建的文本文档的大小是0KB,那我们是不是就可以认为这个文本文档不会占用磁盘空间呢?答案是错的,就算我们不在文档里面写入数据,文档也会在磁盘中站有一小部分内存

那为什么大小为空的文件却能占有磁盘的一小部分内存呢?那是因为文件不仅仅只有文件的内容,除了文件的内容,计算机还得记录文件的名字文件的修改时间文件的格式等等。而刚才说的这些内容全部叫做文件的属性文件的属性也是数据,也得被计算机记录下来

因此我们可以得出一个结论: 文件 = 文件内容 + 文件属性 

所以当我们对文件进行修改时,无非就是两种情况:一是对文件的内容进行修改,二是对文件的属性进行修改

文件属性:文件的大小,文件的名字。文件的最后修改时间,文件的权限。这些属性表示了文件的基本信息。

文件内容:文件的内容实际上就是我们从键盘上输入的数据,通常是以二进制存储。这些数据也可以有很多种分类,譬如图片,音频,视频,文本等等。

 

. 和 .. 文件

 在Linux系统和Windows系统中,一个隐藏文件通常是以 .开头。而这些隐藏文件通常是不会显示出来,如果我们想要看到隐藏文件到底长什么样,我们就得进行相应的操作才能让隐藏文件显现出来。

在Windows系统中,我们需要在文件夹中点击相应的按钮就能让隐藏文件显现出来:


然而,在Linux系统中我们就需要输入相对应的命令ls -l -a 或者是 ll -a才能看到隐藏文件:

关于 . 和 .. 的解释就到这,我将会在后面的cd指令中再详细讲解 . 和 ..

2、 pwd指令 -- 显示用户当前所在的目录

语法: pwd

功能:显示用户当前所在的目录

这就表示我现在在根目录底下的root目录底下的110这个目录中。

 

3、 cd指令 -- 切换目录

语法:cd 目录名

功能:改变工作目录。将当前工作目录改变到指定的目录下

路径的知识:

我们先得了解什么是目录?(我们可以叫路径,也可以叫目录。两者没多大差别)

目录就是由文件路径分隔符文件夹或者目录构成的字符串

Linux中整体目录和文件的构成:

Linux的整体目录结构是一颗多叉树的样子:

1、叶子节点: 一定是普通文件或者是空目录

2、路上结点: 非叶子节点,一定是目录

3、访问一个文件的本质:需要先找到它;找到文件的本质就是在一颗多叉树中进行结点遍历和查找!

 

然而在不同系统中,目录的表示方式也会有所不同

Windows系统:D:\STUDy\Linux\linux\test_7_8

Linux系统:/root/110

这又涉及到另一个知识点:什么是路径分隔符

 

了解完什么是路径后,接下来我们就来了解路径的分类

路径分为两类:一类是文件路径,另一类是目录路径。

区分这两个路径的唯一方法就是看路径的最后是文件或者为空还是目录。

 什么是相对路径,什么是绝对路径

相对路径:相对于自身所在的目录作为一个参考点,让我们来定位一个文件的路径


绝对路径:从根目录/开始,直接定位一个叶子文件。(在系统当中,无论当前你所处在哪个目录,使用绝对路径后,都能唯一定位到一个叶子文件)。


分析图:

在上面讲解相对路径时出现的 . 和 .. 到底是什么 ?我现在就来解释

在Linux中,无论是文件还是目录。它里面都会存在两个隐藏文件:一个是. ,另一个则是 ..

  •  .(当前路径): 当我们输入的命令行中带有 .这个符号,那就代表着这条命令会涉及到当前用户所在的目录。譬如当我们输入ll . 这个指令时,系统就会列出当前目录下的子目录和文件。

  • ..(上级路径): 当我们输入的命令行中带有 ..这个符号,那就代表着这条命令会涉及到当前用户所在的目录的父目录。譬如当我们输入ll . .这个指令时,系统就会列出当前目录的父目录下的子目录和文件。

讲完有关路径的知识后,想必对后面要学习的指令会提供很大的帮助

 cd指令:

经过两次cd指令后,我们从110这个目录返回到了根目录

当我们在一个叶子文件想要跳转到另一个叶子文件或这个路上结点时,我们就可以使用cd指令搭配相对路径或者时绝对路径来进行跳转。

绝对路径

相对路径

 

 

 cd指令的扩展:

cd -  -- 返回最近访问的目录

cd ~ -- 进入家目录

什么是家目录

当用户进行登录后,默认登录所处的路径,就是当前用户的家目录。

tip:在未来,建议所写的代码,创建的文件都放在家目录中

在Linux中,登录的用户分为两种。一种是超级管理员root,另一种则是普通用户

用root登录:

用普通用户登录:

 

 4、touch指令 -- 创建文件或者

语法:touch [选项]... 文件...

功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。

  • -a 或--time=atime或--time=access或--time=use只更改存取时间。

  • -c 或--no-create 不建立任何文档。

  • -d 使用指定的日期时间,而非现在的时间。
  • -f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
  • -m 或--time=mtime或--time=modify 只更改变动时间。
  • -r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。-t 使用指定的日期时间,而非现在的时间。

补充指令:stat指令 + 文件名 --  查看文件更详细的信息

 

5、mkdir指令  --  创建目录

语法:mkdir [选项] dirname...

功能:在当前目录下创建一个名为 “dirname”的目录

  • -p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录 

 

6、rm指令 -- 删除文件和目录

rm命令可以同时删除文件或目录


语法:rm [-f-i-r-v][dirName/dir]

适用对象:所有使用者

功能:删除文件或目录

  • -f 即使文件属性为只读(即写保护),亦直接删除

  • -i 删除前逐一询问确认

  • -r 删除目录及其下所有文件

rm -r

rm -f -r

rm -i -r 

7、man指令 -- 访问Linux手册

Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。

访问Linux手册页的命令是man 语法: man [选项] 命令

  • -k 根据关键字搜索联机帮助
  • num 只在第num章节找
  • -a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕。

7.1  手册介绍

解释一下,面手册分为8章

  • 1 是普通的命令

  • 2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)

  • 3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件

  • 5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义

  • 6 是给游戏留的,由各个游戏自己定义

  • 7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明

  • 8 是系统管理用的命令,这些命令只能由root使用,如ifconfig

 

8、cp指令  --   复制文件或者目录

语法:cp [选项] 源文件或目录 目标文件或目录

功能: 复制文件或目录

说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息

9、mv指令 --  移动/重命名文件或者目录

mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。

语法: mv [选项] 源文件或目录 目标文件或目录

功能:

1. 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。

2. 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。

3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。

  • -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
  • -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!

移动

 

重命名

 

9.1 补充

当把文件或者目录拷贝/user/bin 这个目录下,就相当于在Linux系统中安装了个可执行程序


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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WGCLOUD的ping设备监测可以导入excel数据吗

可以的 WGCLOUD的v3.5.3版本,已经支持导入excel数据,如下说明 数通设备PING监测使用说明 - WGCLOUD

FreeRTOS学习(1)STM32单片机移植FreeRTOS

一、FreeRTOS源码的下载 1、官网下载 FreeRTOS官方链接 官方下载速度慢,需要翻墙,一般选择第一个 2、直接通过仓库下载 仓库地址链接 同样很慢,甚至打不开网页,也不建议使用这种方法。 3、百度网盘 链接:https:…

Java | Leetcode Java题解之第234题回文链表

题目: 题解: class Solution {public boolean isPalindrome(ListNode head) {if (head null) {return true;}// 找到前半部分链表的尾节点并反转后半部分链表ListNode firstHalfEnd endOfFirstHalf(head);ListNode secondHalfStart reverseList(firs…

百度智能云将大模型引入网络故障定位的智能运维实践

物理网络中,某个设备发生故障,可能会引起一系列指标异常的告警。如何在短时间内从这些告警信息中找到真正的故障原因,犹如大海捞针,对于运维团队是一件很有挑战的事情。 在长期的物理网络运维工作建设中,百度智能云通…

OpenCV距离变换函数distanceTransform的使用

操作系统:ubuntu22.04OpenCV版本:OpenCV4.9IDE:Visual Studio Code编程语言:C11 功能描述 distanceTransform是OpenCV库中的一个非常有用的函数,主要用于计算图像中每个像素到最近的背景(通常是非零像素到零像素&…

数据结构(4.1)——串的存储结构

串的顺序存储 串(String)的顺序存储是指使用一段连续的存储单元来存储字符串中的字符。 计算串的长度 静态存储(定长顺序存储) #define MAXLEN 255//预定义最大串为255typedef struct {char ch[MAXLEN];//每个分量存储一个字符int length;//串的实际长…

【机器学习】精准农业新纪元:机器学习引领的作物管理革命

📝个人主页🌹:Eternity._ 🌹🌹期待您的关注 🌹🌹 ❀目录 🔍1. 引言📒2. 精准农业的背景与现状🍁精准农业的概念与发展历程🍂国内外精准农业实践案…

MySQL-ubuntu环境下安装配置mysql

文章目录 什么是数据库?一、ubuntu环境下安装mysql二、配置mysql配置文件1.先登上root账号2.配置文件的修改show engines \G; mysql和mysqld数据库的基础操作登录mysql创建数据库显示当前数据库使用数据库创建表插入students表数据打印students表数据select * from …

自动驾驶中的人机互相接管问题讨论

一、背景 人机接管(human takeover)是指在自动驾驶过程中,当系统遇到超出其处理能力或预设安全阈值的情况时,将控制权交还给驾驶员的过程。这一环节的设计直接关系到自动驾驶技术的实用性与安全性,是目前研究和实践中…

RequestContextHolder多线程获取不到request对象

RequestContextHolder多线程获取不到request对象,调用feign接口时,在Feign中的RequestInterceptor也获取不到HttpServletRequest问题解决方案。 1.RequestContextHolder多线程获取不到request对象 异常信息,报错如下: 2024-07-0…

Linux:Linux网络总结(附下载链接)

文章目录 下载链接网络问题综合问题访问一个网页的全过程?WebSocket HTTPHTTP基本概念GET与POSTHTTP特性HTTP缓存技术HTTP的演变HTTP1.1 优化 HTTPSHTTP与HTTPS有哪些区别?HTTPS解决了HTTP的哪些问题?HTTPS如何解决的?HTTPS是如何…

鸿蒙系统在服装RFID管理中的应用:打造智能零售新时代

​随着物联网技术的迅速发展,服装零售行业正面临着新的变革与挑战。鸿蒙系统作为新一代智能操作系统,结合RFID技术,为服装行业提供了高效、智能的管理解决方案。常达智能物联,作为RFID技术的领先企业,致力于将鸿蒙系统…

每日一练:奇怪的TTL字段(python实现图片操作实战)

打开图片,只有四种数字:127,191,63,255 最大数字为255,想到进制转换 将其均转换为二进制: 发现只有前2位不一样 想着把每个数的前俩位提取出来,组成新的二进制,然后每…

设计模式之外观模式(Facade)

Facade设计模式,也称为外观模式,是一种结构型设计模式,它主要用于为子系统中的一组接口提供一个统一的高层接口,从而使得子系统更加容易使用。以下是关于Facade设计模式的详细介绍: 一、定义 Facade模式为多个复杂的…

MVC之 IHttpModule管道模型《二》

》》》注意:在http请求的处理过程中,只能调用一个HttpHandler,但可以调用多个HttpModule。 HTTP Modules ASP.NET请求处理过程是基于管道模型的,这个管道模型是由多个HttpModule和HttpHandler组成,当请求到达HttpMod…

昇思25天学习打卡营第10天 | 使用静态图加速

昇思25天学习打卡营第10天 | 使用静态图加速 文章目录 昇思25天学习打卡营第10天 | 使用静态图加速动态图的开启方式静态图的开启方式基于全局context的开启方式基于修饰器的开启方式 总结打卡 AI编译框架分为两种运行模式: 动态图模式: 计算图的构建和计…

智慧校园信息化大平台整体解决方案PPT(75页)

1. 教育信息化政策 教育部印发《教育信息化2.0行动计划》,六部门联合发布《关于推进教育新型基础设施建设构建高质量教育支撑体系的指导意见》,中共中央、国务院印发《中国教育现代化2035》。这些政策文件强调了教育的全面发展、面向人人、终身学习、因…

【Python】爬虫实战01:获取豆瓣Top250电影信息

本文中我们将通过一个小练习的方式利用urllib和bs4来实操获取豆瓣 Top250 的电影信息,但在实际动手之前,我们需要先了解一些关于Http 请求和响应以及请求头作用的一些知识。 1. Http 请求与响应 HTTP(超文本传输协议)是互联网上…

微软Win11 24H2七月更新补丁KB5040435发布!附下载

系统之家于7月10日发出最新报道,微软为Win11用户发布了24H2版本七月的最新更新补丁KB5040435。用户升级系统后,会发现版本号升至 26100.1150。此次更新针对远程身份验证拨入用户服务(RADIUS)协议与 MD5冲突等问题进行修复。接下来跟随小编看看此次更新的…

LabVIEW中modbusTCP怎样才能和profibusDP通信?

在LabVIEW中,Modbus TCP和Profibus DP是两种不同的工业通信协议,要实现这两者之间的通信,可以采用网关设备进行协议转换,或者通过一个中间设备(如PLC)进行数据桥接。以下是实现此通信的一些方法&#xff1a…