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

news2024/11/15 11:09:06

一、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.coloradmin.cn/o/1925028.html

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

相关文章

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

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

C#创建windows服务程序

步骤 1: 创建Windows服务项目 打开Visual Studio。选择“创建新项目”。在项目类型中搜索“Windows Service”并选择一个C#模板(如“Windows Service (.NET Framework)”),点击下一步。输入项目名称、位置和其他选项,然后点击“创…

C++ | Leetcode C++题解之第232题用栈实现队列

题目&#xff1a; 题解&#xff1a; class MyQueue { private:stack<int> inStack, outStack;void in2out() {while (!inStack.empty()) {outStack.push(inStack.top());inStack.pop();}}public:MyQueue() {}void push(int x) {inStack.push(x);}int pop() {if (outStac…

秋招突击——7/9——MySQL索引的使用

文章目录 引言正文B站网课索引基础创建索引如何在一个表中查看索引为字符串建立索引全文索引复合索引复合索引中的排序问题索引失效的情况使用索引进行排序覆盖索引维护索引 数据库基础——文档资料学习整理创建索引删除索引创建唯一索引索引提示复合索引聚集索引索引基数字符串…

网络安全——防御课实验二

在实验一的基础上&#xff0c;完成7-11题 拓扑图 7、办公区设备可以通过电信链路和移动链路上网(多对多的NAT&#xff0c;并且需要保留一个公网IP不能用来转换) 首先&#xff0c;按照之前的操作&#xff0c;创建新的安全区&#xff08;电信和移动&#xff09;分别表示两个外网…

基础小波降噪方法(Python)

主要内容包括&#xff1a; Stationary wavelet Transform (translation invariant) Haar wavelet Hard thresholding of detail coefficients Universal threshold High-pass filtering by zero-ing approximation coefficients from a 5-level decomposition of a 16Khz …

win10系统更新后无法休眠待机或者唤醒,解决方法如下

是否使用鼠标唤醒 是否使用鼠标唤醒 是否使用键盘唤醒

【Java开发实训】day03——方法的注意事项

目录 一、方法的基本概念 二、void和return关键字 三、单一返回点原则 四、static方法使用说明 &#x1f308;嗨&#xff01;我是Filotimo__&#x1f308;。很高兴与大家相识&#xff0c;希望我的博客能对你有所帮助。 &#x1f4a1;本文由Filotimo__✍️原创&#xff0c;首发于…

《Windows API每日一练》9.25 系统菜单

/*------------------------------------------------------------------------ 060 WIN32 API 每日一练 第60个例子POORMENU.C&#xff1a;使用系统菜单 GetSystemMenu函数 AppendMenu函数 (c) www.bcdaren.com 编程达人 -------------------------------------------…

Java02--基础概念

一、注释 注释是在程序指定位置添加的说明性信息 简单理解&#xff0c;就是对代码的一种解释 1.单行注释 格式: //注释信息 2.多行注释 格式: /*注释信息*/ 3.文档注释 格式: /**注释信息*/ 注释使用的细节: 注释内容不会参与编译和运…

九盾安防丨如何判断叉车是否超速?

在现代物流和生产流程中&#xff0c;叉车是提高效率和降低成本的关键工具。然而&#xff0c;叉车的高速行驶也带来了安全隐患&#xff0c;这就要求我们对其进行严格的安全管理。九盾安防&#xff0c;作为业界领先的安防专家&#xff0c;今天就为大家揭晓如何判断叉车是否超速&a…

OpenCV距离变换函数distanceTransform的使用

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

VMware_centos8安装

目录 VMware Workstation Pro的安装 安装centos VMware Workstation Pro的安装 正版VMware 17百度网盘下载链接 (含秘钥) 链接&#xff1a;https://pan.baidu.com/s/16zB-7IAACM_1hwR1nsk12g?pwd1111 提取码&#xff1a;1111 第一次运行会要求输入秘钥 秘钥在上边的百度网盘…

【Leetcode】最小数字游戏

你有一个下标从 0 开始、长度为 偶数 的整数数组 nums &#xff0c;同时还有一个空数组 arr 。Alice 和 Bob 决定玩一个游戏&#xff0c;游戏中每一轮 Alice 和 Bob 都会各自执行一次操作。游戏规则如下&#xff1a; 每一轮&#xff0c;Alice 先从 nums 中移除一个 最小 元素&…

docker安装nginx并配置https

参考 docker安装nginx并配置https-腾讯云开发者社区-腾讯云 (tencent.com) 证书的生成 参见&#xff1a;SpringBoot项目配置HTTPS接口的安全访问&#xff08;openssl配置&#xff09;_配置接口访问-CSDN博客 步骤 1: 拉取Nginx镜像 docker pull nginx 好使的镜像如下&#x…

DockerCompose拉取DockerHub镜像,并部署OpenMetaData

参考博主&#xff1a;http://t.csdnimg.cn/i49ET 一、DockerCompose拉取DockerHub镜像 方法一&#xff08;不太行&#xff09;&#xff1a; 在daemon.json文件中添加一些国内还在服务的镜像站&#xff08;可能某些镜像会没有&#xff09; ([ -f /etc/docker/daemon.json ] ||…

RK3568笔记三十五:LED驱动开发测试

若该文为原创文章&#xff0c;转载请注明原文出处。 字符设备驱动程序的基本框架&#xff0c;主要是如何申请及释放设备号、添加以及注销设备&#xff0c;初始化、添加与删除 cdev 结构体&#xff0c;并通过 cdev_init 函数建立 cdev 和 file_operations 之间的关联&#xff0c…

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

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

Python中的数据容器及其在大数据开发中的应用

在Python编程中&#xff0c;数据容器是存储和组织数据的基本工具。作为大数据开发者&#xff0c;了解并灵活运用各种容器类型对于高效处理大规模数据至关重要。今天&#xff0c;我们将从Set出发&#xff0c;探讨Python中的各种数据容器&#xff0c;以及它们在大数据处理中的应用…

社交App iOS审核中的4.3问题:深入分析与解决策略

社交App审核中的4.3问题&#xff1a;深入分析与解决策略 在iOS应用开发和审核过程中&#xff0c;开发者经常会遇到苹果审核4.3问题。这一问题往往涉及应用的设计和内容重复性&#xff0c;导致应用被拒绝上架。为了帮助开发者更好地理解和解决这一问题&#xff0c;本文将对4.3问…