希望文章能对你有所帮助,有不足的地方请在评论区留言指正,一起交流学习!

目录

1.环境搭建

1.1 服务器的购买

1.2 终端模拟器软件

1.3 连接服务器

1.4 普通用户的创建删除(密码设置)

2.简单聊一下Linux

2.1 Linux的诞生

2.2 Linux的介绍      

2.3 操作系统是什么

3 指令

3.1 常见使用的5个指令基本的使用

3.1.1 pwd指令

3.1.2 ls指令

3.1.3 mkdir指令

3.1.4 cd指令

3.1.5 touch指令

3.1.6 复制、粘贴和全屏切换 切换用户 退出服务器

3.2 基本指令

3.2.1 ls指令

3.2.2 pwd指令

3.2.3 cd指令

3.2.4 touch指令

3.2.5 mkdir指令(重要)

3.2.6 rmdir指令(重要)

3.2.7 rm指令(重要)包含通配符 * 的解释

3.2.8 man指令(重要)

3.2.9 cp指令(重要)含有echo的使用以及重定向和追加重定向的

3.2.10 mv指令 (等于windows的剪切)

3.2.11 cat指令(查看文件内容,不支持搜索)含有追加重定向 适合小文本

3.2.12 more指令(查看文件,只能向下查看,支持搜索)

3.2.13 less指令(支持下翻和上翻)(重要)

3.2.14 head指令 (默认显示头部10行,需指定)

3.2.15 tail指令(包含管道文件,和head类似)

3.2.16 who & whoami指令(查询登录终端的用户)

3.2.17 时间相关的指令(date指令,显示详细时间和时间戳以及转化)

3.2.17 Cal指令(日历)

3.2.18 find指令(find任意路径搜文件,whereis以及which只能搜索指令文件(特定路径))

3.2.19 grep指令(文本搜索指令/行文本过滤工具)

3.2.20 zip/unzip指令

3.2.21 tar指令(重要):打包/解包,不打开它,直接看内容

3.2.22 bc指令(计算器)

3.2.23 uname –r指令

3.2.24 重要的几个热键[Tab],[ctrl]-c, [ctrl]-d

3.2.25 关机

3.3  扩展

3.3.1 Linux指令是什么(可执行程序 ELF文件)

3.3.2 Linux 核心思想:一切皆文件

3.3.3 安装软件和卸载软件(删除和下载可执行程序)


        本章节主要包含Linux的云服务器的环境搭建,常见指令的学习;是一篇小白入门篇;其中涉及到的编程语言为C语言。

1.环境搭建

1.1 服务器的购买

         博主白嫖的是腾讯云,目前只能白嫖一个月(腾讯云腾讯云地址;之后可以购买一年的服务器,新人可以到七十多元,性价比是较高的。

        对于个人练习而言,上述的轻量级服务器已经足够使用了。当然购买服务器之后,一定要设置服务器的密码。建议密码大小混写、数字、再加上特殊符号。IPV4后面就是你的公网IP,然后重新设置密码。   

        

1.2 终端模拟器软件

        我使用的XSHELL软件,对于个人完全免费,仅需要使用邮箱注册即可.安装过程如下:

        浏览器搜索XSHELL,然后点击红框选中即可;也可以直接点击后面的点我直接进入。

        安装即可,没有其他特殊的选项,找个盘安装进去后就可以了。

        下载完成之后,可以先关闭除了填写邮件和名字的窗口,如实填写邮件按照软件上的操作步骤即可。

1.3 连接服务器

        点击新建会话,

        名称可以填写用途,以及服务器的公司。主机可以填写服务器的IP。然后打开会话。

        然后打开会话;点你刚才创建的会话。

        输入下述指令

ssh root@你的公网IP

        root为超级用户,输入你的服务器密码就要可以了。

来链接成功

1.4 普通用户的创建删除(密码设置)

第一行为添加用户,后面为test_user 为用户名; passwd重置密码;输入的密码需要两次一致且不会显示出来;uesrdel为删除用户操作。

实际已经删除,可以采用下面的方式删除文件夹。

2.简单聊一下Linux

2.1 Linux的诞生

        首台计算机名为埃尼阿克,于1946年2月14日诞生于美国的宾夕法尼亚大学,主要用作计算弹道轨,处于美苏冷战期间的军备竞赛。但是埃尼阿克的重达到了31吨。2.1

        摩尔定律,摩尔定律说的是:当价格不变时,单个芯片上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。这意味着电子科技产物的小型化,计算机的小型化。

        而计算机的初始研究用途是军事,因为时期为美苏争霸,政府也会推动,向研究机构以及高效投资成立专门的项目攻破技术,来推动技术的进步,但是政府的钱的也是有限的。

        因此,会将部分技术进行下放,商人会购买新技术;然后根据技术孵化出一批产品,对于计算机来说就是 计算机+操作系统了。随着市场的扩大,也会产生大量的企业,而国家可以通过税收的方式筹集钱款,再投资产品研发更新。

        在产品走向民用的过程中,诞生了优秀的公司,例如IBM(产品面向公司、高校、研究机构;拥有自己的操作系统(UNIX)和硬件)、苹果(产品面向个人,拥有自己的操作系统(MAC)和硬件)、微软(拥有自己的操作系统(Windows))和英特尔以及一些计算机制造商企业生产面向个人的电脑,性价比比较高。

        Linux的诞生

        在1991年赫尔辛基大学的雷纳斯托瓦兹使用了搭载UNIX的IBM的电脑;但是当时的电脑操作系统是收费的;因此,他就写了一份自己的操作系统,并且将其开源。Linux — Linux is not unix。在开源之后,便有很多的工程师、黑客无偿参与Linux的扩展和更新上。一直到现在,Linux一直在更新。

2.2 Linux的介绍      

      Linux开源的好处:免费、稳定、安全、快速、高效。被更多的专业人员使用。目前的安卓系统是由Google公司投资并研发的,其源于Linux内核。

        应用场景:互联网公司的服务器后端、智能设备中的使用(手机、智能手表等等)、以及嵌入式场景。

        Linux的版本分为内核以及商业化版本;很好区分,有自己logo的就是商业化版本,没有logo只有一串版本代号的就是Linux的内核。

        Linux 内核是操作系统的核心组件,负责管理硬件资源(如 CPU、内存、存储设备等)、提供进程调度、文件系统管理、网络通信等底层功能。商业发行版本基于 Linux 内核,整合了各类开源软件(如桌面环境、应用程序、开发工具等)并经过商业化优化的完整操作系统。Centos就是使用的Linux的内核,目前的Centos采用7.6的版本。免费的企业级的服务器的操作系统,注重稳定和长期支持。类比的话就是Linux就是发动机(内核),centos就是整车。

2.3 操作系统是什么

        上述是一张电脑的结构图;应用软件在操作系统指向,需要不同的软件来满足用户的不同的应用场景。而操作系统就是软硬件管理的平台

        操作系统的核心工作就是对下管理好软硬件资源,对上可以提供良好的操作、使用环境。

        操作系统就是介于计算机硬件和应用程序之间的一层系统软件,是计算机系统的 “灵魂”。

        一个好的操作系统的衡量的指标:稳定、高效、安全

        在计算机中所有的操作都会转换为硬件行为;

        1.printf -> 向显示器中打印数据,

        2.读取文件 ->  读取磁盘中的数据。

        3.打网络游戏 -> 向网卡中写入数据;

         所有的应用软件的操作都会自上而下贯穿计算机的软硬件结构;并且所有的软件操作行为都和操作系统有着间接或者直接的相关。

        Windows操作系统具有命令行和图形化界面;而Linux是纯命令行的,当然也有图形化商用版本的;先有指令再有的图形化界面,二者的本质是一样的;指令的操作更加贴近操作系统。先有键盘再有的鼠标(在GUI出现后广泛应用)。

3 指令

        本章节会总结常见的指令,例如 ls、pwd、mkdir、cd

3.1 常见使用的5个指令基本的使用

        在系统学习指令之前,大家不能一点儿也不会;因此我会列出一些常见的使用的指令,便于大家对新的指令进行测试理解。

        ls:列出该目录下的所有子目录与文件;

        pwd:显示当前文件目录;

        mkdir:在当前目录下创建新的目录;

        touch:在当前目录下创建新的文件;

        cd:转移到对应目录下。

3.1.1 pwd指令

   pwd:Print Working Directory(打印工作目录)的缩写,执行该命令会显示当前终端会话中所在的绝对路径 。

[root@VM-8-15-centos ~]# 

        连接后成功之后,输入pwd指令

解释

[root@VM-8-15-centos ~]# 

上述为命令行提示符

  • root :当前登录的用户名,root 是 Linux 系统的超级用户(管理员),拥有最高权限 。
  • @ :分隔符,无实际功能,用于连接用户名和主机名 。
  • VM-8-15-centos :主机名,标识这台 Linux 机器在网络或本地的名称 。
  • ~ :表示当前所在的工作目录,~ 是 root 用户家目录(/root )的简写 。
  • # :命令提示符的结尾符号,# 表示当前是以超级用户(root )身份登录;如果是普通用户,结尾符号通常是 $ 

        输出为

 /root 

        表明当前为超级用户且在其家目录下;可以先先记住root就是超级用户的家目录;后续在普通用户处会作解释。

3.1.2 ls指令

    ls 会显示当前工作目录(或指定目录)下的文件、文件夹(目录)名称 

        在之间的操作中,我先创建了一个test1的文件,在/root目录下,有test1的文件夹。

3.1.3 mkdir指令

        基本语法

mkdir  目录名

        pwd显示工作目录;ls当前目录中的文件;使用mkdir创建新的目录(文件夹);ls显示当前目录中的文件

3.1.4 cd指令

   cd 是 (Change Directory ),用于切换工作目录的命令。

基本语法

cd [目标目录路径]

        根据上述指令,root文件夹中有test1、test2两条指令;使用cd指令将工作目录切换到test1下

3.1.5 touch指令

        在Linux中文件夹又叫做目录,不属于普通文件,而touch就是用来创建普通文件的,例如 .txt . c文件。

        下面将在test1下创建 test.txt文件以及 hello.c文件。

3.1.6 复制、粘贴和全屏切换 切换用户 退出服务器
  • 复制Ctrl + Shift + C
  • 粘贴Ctrl + Shift + D
  • 全屏: alt + 回车
  • 切换用户:su + 用户名
  • 回到root账号 ctrl + d 
  • 退出服务器 :exit
  • 登录服务器:ssh 用户名@公网IP
  • 使用历史命令 游戏的上下键,ctrl +R是搜索历史命令。
3.2 基本指令

        在常用指令了解的情况下,我们开始深入的探讨更加深入的指令的使用方式,在这里的指令将会加上选项;指令的使用方式如下,

       [指令]   [选项]  [目录或文件]

        下面将从语法, 选项、功能上分析指令的使用。

3.2.1 ls指令(显示文件和目录的信息)

      (1) 语法

ls [选项] [目录或文件]

           可以将目录理解为文件夹;这里的文件就是指的是普通文件。

         【目录或文件】指定要查看的目录路径(默认当前目录);

         【选项】后续会介绍到。

     (2)功能

       对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。当指令后面没有加上目录或者文件的时候;默认显示当前目录中的文件和目录信息。

        (3)选项 

        -a  列出目录下的所有文件(包含目录和和文件),包括以 . 开头的隐含文件。

        上述指令中还是以之前的目录条件下为例;在目录中还会存在隐藏的文件,以点开头的文件称为隐藏文件。

        上述指令中;创建了两个点开头的隐藏文件。

下面说一下 一个点 和 两个点

两个点:当前路径的上级路径

        看红色的框中的就可以了;在cd dir1 之后的路径;然后再cd 两个点  返回上级路径。

        一个点:当前路径了。存在的意义,帮助用户定位当前目录下的一个文件。因为不同文件下的名字是可以一样的。下面是它的使用方式。

        我在hello.c中写入了一个可以打印hello的程序;使用cat指令显示文件内容;在使用gcc将文件hello.c编译生成 a.out;./a.out为执行这个文件。

        一个点就是指的是当前的目录;ls 和ls . 等效;cd 转到当前目录,目录的路径没有变化。

        -l 列出文件的详细信息。

  所对应的顺序       

    文件类型与权限 | 硬链接数 | 所有者 | 所属组 | 文件大小 | 最后修改时间 | 文件名

上述均为文件的属性,现阶段不用了解多少,只需要知道文件类型 以 d 开头的就是目录;以  - 开头的就是普通文件。当然文件属性也是数据,也要存储。

        文件的操作 = 对文件内容的操作+对文件属性的操作。

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

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

 上述指令中的 ls -d 显示为当前目录的文件信息; 加上一个目录的名字就是可以显示目录文件属性了。

其余的指令

  • -a 列出目录下的所有文件,包括以 . 开头的隐含文件。
  • -d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
  • -i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件 显示文件的inode
  • -k k 字节的形式表示文件的大小。ls –alk 指定文件
  • -l 列出文件的详细信息。
  • -n 用数字的 UID,GID 代替名称。 (介绍 UID GID
  • -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”
  • 示符号链接;“|”表示FIFOs“=”表示套接字(sockets)。(目录类型识别)
  • -r 对目录反向排序。
  • -t 以时间排序。
  • -s l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
  • -R 列出所有子目录下的文件。(递归)
  • -1 一行只输出一个文件。
3.2.2 pwd指令(显示当前的路径)

(1)语法

pwd

直接使用即可

(2)功能

          显示用户当前所在的目      。

(3)使用

3.2.3 cd指令(改变当前的路径)
   前提知识:
        Linux系统中,磁盘上的文件和目录被组成一棵多叉树,每个节点都是目录或文件。其叶子节点一定是空目录或者空目录文件,路上的节点一定是一个非空目录。所有对文件或者目录的增删查改,本质是对多叉树的增删查改。
        我们通常定位文件,通过路径来进行定位,因为路径具有唯一性;应为每一个节点都只有一个父节点。
       / 为路径分隔符 ,用于区分文件路径中的不同目录层级。
      在 Linux 中,路径采用 树形结构/ 用于分隔目录和文件的层级关系。        /目录的根目录。看下面的指令的执行。

        上述指令的执行程序,在执行完cd .. 返回上级目录的时候,还是在根目录的 / 下;无法在进行下一步了。
        在 Linux 的文件系统树形结构中, /root中的斜杠 /代表根目录 ,/ 是整个文件系统的最顶层目录。所有的文件和目录都挂载在根目录之下 。
        系统中的其他所有文件和目录,不管是普通用户的家目录(如  /home/user )、存放系统配置文件的  /etc 目录 ,还是用于存放临时文件的  /tmp 目录等,都是以根目录为起点,挂载在根目录下的不同位置,就如同树的枝干和枝叶从树根生长延伸出来一样。
         root是系统的超级管理员账号,也被称为 “根用户” 。
       说一下绝对路径和相对路径
绝对路径:从根目录(/)的开始到指定位置,具有路径的唯一性
相对路径:以当前所处的路径为起始参照位置,进行特定文件的定位。
绝对路径和相对路径在cd指令的演示,用于定位一个文件。
绝对路径

        从根目录开始,根据文件所在的位置,逐级寻找。
        相对路径:相对路径的定义和使用方式就更加的宽泛一些;没有从根目录开始寻找的都是相对路径。

https://guanjia.qq.com/nabtsem/diversion/sogou
https://guanjia.qq.com/nabtsem/diversion/sogou
上述是随机的网页,查找网页资源就是在服务器上找到对应的文件 本来就是文本文件,由于浏览器的渲染作用加入了图片渲染,呈现的图片和文字的效果。
(1)语法 :
cd 目录名
(2)功能
        改变工作目录。将当前工作目录改变到指 定的目录下。
(3)使用
  • cd .. : 返回上级目录
  • cd /home/litao/linux/ : 绝对路径
  • cd ../day02/ : 相对路径
  • cd ~:进入用户家目
  • cd -:返回最近访问目录。

        插入新的知识点 超级用户和普通用户:

        超级用户的家目录就是 /root   所有普通用户家目录都会存放在/home 目录下面;例如/home/xiaohei 这种类型, 最后面的是普通用户的名称。

3.2.4 touch指令(创建普通文件)

(1)语法

touch [选项]... 文件...

        …的意思可以有多个选项和文件。

(2)功能

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

(3)选项

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

(4)使用

    目前使用它创建文件即可。

创建多个文件

 

3.2.5 mkdir指令(重要)(创建目录文件,多级目录)

(1)语法

mkdir [选项] dirname...

(2)功能

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

(3)选项

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

(4)使用

        使用mkdir命令可以创建单级目录;加上选项可以创建多级目录

3.2.6 rmdir指令(重要)(删除目录)

(1)语法

rm :remove 

rmdir [-p][dirName]

(2)功能

        rmdir是一个与 mkdir 相对应的命令。 mkdir 是建立目录,而 rmdir是删除命令删除空目录

(3)选项

        -r 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。

(4)使用

        删除单个目录

        删除多级目录

3.2.7 rm指令(重要)包含通配符 * 的解释(删除文件和目录)

(1)语法

rm [-f-i-r-v][dirName/dir]

(2)功能:可以删除文件或目录单独使用rm的时候,只删除文件,删除目录需要加上-f选项。可以删除非空目录。

(3)选项

  • -f 即使文件属性为只读(即写保护),亦直接删除,强制删除
  • -i 删除前逐一询问确认
  • -r 删除目录及其下所有文件,递归删除
  • -v 显示删除过程的详细信息

(4)使用

删除普通文件

删除目录文件以及多级目录 需要加上 -r 选项

原因:目录为递归式定义 整体为树状结构,因此需要递归删除 -r   表示递归

删除一个目录文件

删除多级目录 并且询问 -r -i 选项

删除多级目录,是从叶子节点开始删除的,看的出来就是递归式删除的。

        在root超级用户下,如果只是使用rm会询问是否删除;但是加上-f选项是不会有询问的(即使加上 -i 选项也是没有询问的),(相当于强制删除)

ctrl+c 的作用 注释掉代码 ,不在运行代码;发送的2号信号给进程,终止当前前台进程。

通配符:使用 * 表示,它可以是一个字符也可以是一串字符串。删除一批文件,*可以代替数字,也可以代替txt字符串。

注意:删除的时候,要谨慎,Linux是没有回收站的,起始windows中的回收站是没有删除的文件,只是将文件挪到的回收站中,因为你在清理电脑的时候,回收站也是占内存空间的。

3.2.8 man指令(重要)(查询手册)

        服务器上的man手册是精简版本的,可以重新装一下man手册

(1)语法 全称 manual (手册

man [选项] 查找的内容

(2)功能

        Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问完成后,按下q键是退出访问手册。

3)选项

  • -k 根据关键字搜索联机帮助,搜索包含目标关键词的所有手册页;
  • num 只在第num章节找
  • -a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按q退出,他会继续往后面搜索,直到所有章节都搜索完毕。
  • -f 显示目标名称的简短描述(相当于 whatis 命令)
  • -w仅显示手册页的路径,不打开内容

手册分为8章

  1.  是普通的命令
  2. 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件);系统调用接口,上层软件用户访问操作系统的主要手段。
  3. 是库函数,如printf,fread,
  4.  是特殊文件,也就是/dev下的各种设备文件;
  5.  是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义;
  6.  是给游戏留的,由各个游戏自己定义;
  7. 是附件还有一些变量,比如向environ这种全局变量在这里就有说明;
  8. 是系统管理用的命令,这些命令只能由root使用,如ifconfig。

上述的章节需要进行安装操作 对于centos来说,使用下面这一行就可以了

sudo yum install man-pages glibc-manual

(4)使用

查询指令进入手册之后:

1.q为退出手册选项

2./+单词 和文件的CTRL+F一样搜索某一个单词

注意:Man + 查找对象 按照顺序查找,先查 1 号 手册,再查找  2 . 3

找到一个之后不在寻找了。要想查找C语言的接口的 printf 需要 man 3 printf。如下

1 号手册

3 号手册

3.2.9 cp指令(重要)含有echo的使用以及重定向和追加重定向的  (复制指令)

(1)语法

copy复制

cp [选项] 源文件或目录(src) 目标文件或目录(dest)
  • 源文件或目录:指定要复制的文件或目录,可以是单个文件,也可以是多个文件(通过空格分隔)。
  • 目标文件或目录:指定复制后的文件或目录存放位置。

(2)功能 :用于备份数据、移动文件到其他位置,复制配置文件

(3)选项:

  • -f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
  • -i 或 --interactive 覆盖文件之前先询问用户
  • -r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
  • -R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理。

(4)使用 

 前期准备:echo 指令 将字符串原生的打印在对应的显示器。

echo -n 为去掉换行符号,echo默认为具有换行符号。但是printf指令是没有的

        输出重定向符号 > 将本应该属于到屏幕文件字符串输入到 mytest.txt文件

        cat 打印文件内容,> 重定向符号,echo将后面的字符串输入到mytest.txt中。

cat查看目标文件内容。

        将mytest.txt文件复制并粘贴到当前目录下,形成备份mytest_backup.txt中.

注意:拷贝的文件和目标文件必须是不一样的。备份文件和源文件大小是一样的

拷贝到下级目录下

 注意:

在复制的目标文件没有的情况下,会默认创建目标文件,然后复制内容进去。

在同级目录下,文件名不能是一样的。 假如文件名字可以相同的存在,无法表示文件在该目录下的唯一性。 如果文件名一样,文件将不具有唯一性,绝对路径找不到了。

        可以复制粘贴到上级目录。

空目录的复制

多级目录以及包含普通文件

        凡是(空目录也要带上 -r)拷贝目录需要带上-r选项;-r具有递归的意思,拷贝或者删除都需要递归;当然除了可以复制目录也可以复制目录中的普通文件。在不同级别的用户下,输出指令对应的操作也是不一样的。有的会询问你是否会覆盖文件(多次拷贝)。

          -i 选项;将普通用户在复制文件的时候也可以有询问。上面是centos系统,下面是ubtuntu系统 + i 选项也没有询问。

 

        删除可以使用通配符 * 可以代表 点 前面和后面的。

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

(1)语法

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

(2)功能

1. mv 命令中第二个参数类型的不同(是目标文件还是目标目录), mv 命令将文件重命名或将其移至一个新的目录中。不会拷贝文件,只会重新命名文件。
2. 当第二个参数类型是文件时, mv 命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个, mv 命令将各参数指定的源文件均移至目标目录中。
4. 相当于剪切并且重命名,在没有新的名字的情况下,默认使用原来的名字;所有行为都是剪切;剪切并重新命名在语义上,普通文件和目录是一样的。

(3)选项

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

(4)使用

        修改文件的名字,重命名。

将文件移动到上一个级的目录;剪切复制粘贴到上一级目录。

目录的剪切重命名。统计目录 修改名字。

多级目录。

        剪切目录;将test1同级目录复制到test1下。

加上-i的时候碰见同名的文件会询问,不加-i会直接覆盖已有文件。(注意)

3.2.11 cat指令(查看文件内容,不支持搜索)含有追加重定向 适合小文本

(1)语法

:cat [选项][文件]

(2)功能:查看目标文件的内容

(3)选项    

  • -b 对非空输出行编号
  • -n 对输出的所有行编号
  • -s 不输出多行空行

(4)使用

        重定向 >  本来写入显示屏文件的内容,重定向到其他的文件的如下

       输出重定向:向目标文件进行写入的时候,覆盖写入;会清空文件中的内容;然后写入新的内容。

可以清空文件

追加重定向 >>

不清空文件的追加重定向 >> 在文件的结尾处输入

注意:重定向文件没有存在的时候,会直接创建新的文件

        重新定向符号自带换行;但是Linux中的printf指令(1号手册)没有带换行符。

       使用catcat什么也不加默认从键盘读取数据,然后显示到显示屏上。

        本来是从键盘中读取数据的,但是重定向,将开始从文件中读取数据并显示。效果一样

cat ht1.txt

        选项 -n;对文件内容的所有的行进行编号

       选项 - b 不对空行进行编号。

        选项 - s 对非空行进行编号  将多个连续的空行压缩到 一行

cat指令不是适合看大文本;适合看小文本;

cnt=1
while [ $cnt -le 10000 ]; do
    echo "hello world $cnt "
    ((cnt++))
done > test2.txt

        输出大文本;将10000行的 hello world输入到 ht3.txt;然后使用cat显示;发现屏幕无法提供足够的空间显示文件内容而且不能查看;查看需要自己查找,人眼搜索。

3.2.12 more指令(查看文件,只能向下查看,支持搜索)

(1)语法

more [选项][文件]

(2)功能 :more命令,功能类似 cat

(3)选项

  • -f 对输出的所有行编号
  • q 退出显示文件内容

(4)使用

        more ht3.txt 打开文件充满现在的屏幕;按enter向下翻;按q退出显示支持搜索

输入 / +搜索的内容自己跳转和man手册类型

        more -f - 80 ht3.txt 显示80行。 more -20 ht3.txt 显示20行。终端界面的最后一行为20/80

        还是可以搜索的;Skipping表示跳过了很多的数据行。

3.2.13 less指令(支持下翻和上翻)(重要)

(1)语法

less [参数] 文件

(2)功能:less与more类似,但使用less可以随意浏览文件,more仅能向下移动,却不能向上移动,而且less在查看之前不会加载整个文件。

(3)选项

  • -i  忽略搜索时的大小写
  • -N  显示每行的行号
  • /字符串:向下搜索字符串的功能
  • ?字符串:向上搜索字符串的功能
  • n:重复前一个搜索(与 /  ? 有关)
  • N:反向重复前一个搜索(与 /  ? 有关)
  • q:quit

        说明

         less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大
        less 的用法比起 more 更加的有弹性。在 more 的时候,不能向前面翻, 只能往后面看
        但若使用了 less 时,就可以使用 [pageup][pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!
        除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。

(4)使用

                                         

        可以上下翻,查找大文本(项目和日志)。

3.2.14 head指令 (默认显示头部10行,需指定)

(1)语法

head [参数]... [文件]... 

(2)功能:head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。

(3)选项

  •  -n<行数> 显示的行数 n 不是选项

(4)使用

        选项-20;显示20行。

3.2.15 tail指令(包含管道文件,和head类似)

(1)语法

tail[必要参数][选择参数][文件]

(2)功能:用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。

(3)选项

  • -f 循环读取
  • -n<行数显示行数

  (4)   使用

        默认显示倒数10行; -15 显示15行

重点:管道文件,内存级文件,也就是管道文件的内容不用落盘(刷新到磁盘上)此类型文件由OS管理OS创建。类似于自来水管道,一边输入一边截取(多少不一定)。

        截取文件ht3.txt20行到temp.txt;然后截取其中的倒数第12行。

        相当于管道;流出一部分,然后进行节流一段。

统计行数 指令 wc 可以统计文件的行数、单词数、字节数、字符数。

3.2.16 who & whoami指令(查询登录终端的用户)
whoami 

功能:仅输出当前终端的有效用户名(即当前执行该命令的用户身份),无任何其他参数、无多余输出,是最简洁的 “查当前用户” 命令。

使用:

# 实际登录用户是ubuntu,但用sudo提权后,有效用户变成root
$ whoami          # 实际用户:ubuntu
ubuntu
$ sudo whoami     # 有效用户:root
root

# 用su切换用户后,有效用户和实际用户一致
$ su zhangsan
$ whoami
zhangsan
$ sudo whoami     # 无效用户:zhangsan
zhangsan is not in the sudoers file. # 普通用户在没有加入 sudo组,因此不能提升权限




who 

        本身就是 “谁” 的意思,核心作用是显示当前所有登录到系统的用户信息(包括你自己和其他远程 / 本地登录的用户)。

  • 第一列:登录用户名(zhangsanlisi);
  • 第二列:登录终端(pts/0 、pts/1是远程终端,tty1 、tty2是本地物理终端);
  • 第三列:登录时间;
  • 第四列:登录来源(远程 IP)
3.2.17 时间相关的指令(date指令,显示详细时间和时间戳以及转化)
(1)使用
date [选项]... [+时间符号]
(2). 显示时间,
date +[时间类型]
  • %H : 小时(00..23)
  • %M : 分钟(00..59)
  • %S : 秒(00..61)
  • %X : 相当于 %H:%M:%S
  • %d : 日 (01..31)
  • %m : 月份 (01..12)
  • %Y : 完整年份 (0000..9999)
  • %F : 相当于 %Y-%m-%d

注意:输出的时间之间不能加入空格,bash 会认为是多个选项

(3)时间戳

时间戳,目的保证时间的统一,以格林威治时间为主。按照时差调整(东八区),1970年1月1日午夜0点到现在的秒数。

时间->时间戳:date +%s
时间戳->时间:date -d@0  

(4)修改时间

没有必要就不修改,而且普通用户无法做。

3.2.17 Cal指令(日历)

cal命令可以用来显示公历日历。

ubuntu 中没有此命令需要安装

sudo apt update
sudo apt install ncal
(1)使用
 cal [参数][月份][年份]
功能 : 用于查看日历等时间信息,只有一个参数,则表示年份 ,两个参数,则表示月份和年份
常用选项
  • -3 显示系统前一个月,当前月,下一个月的月历
  • -j  显示在当年中的第几天(一年日期按天算,从11号算起,默认显示当前月在一年中的天数)
  • -y  显示当前年份的日历

(2)例子

cal -3        //显示当前月以及前后一个月的日历
cal 10 2026 //显示2026年 10月份
cal 2026   //显示全年日历
cal -j 2026 //显示全年日历,日期列显示 1~365/366,而非 1~31
3.2.18 find指令(find任意路径搜文件,whereis以及which只能搜索指令文件(特定路径))
工具 核心作用 查找范围 速度 典型场景
which 可执行命令的绝对路径 $PATH 环境变量目录 最快 命令安装在哪(如 which python
whereis 找命令的二进制 / 手册 / 源码文件 系统预设目录(非全量) 较快 命令的完整相关文件(如手册)
find 全量查找任意文件 / 目录 指定路径(默认全系统) 最慢 按名称 / 大小 / 时间 / 权限找文

which — 找可执行命令的 “快捷方式” 

核心特点

  • 只找 $PATH 环境变量 里的可执行文件(命令);
  • 只返回第一个匹配的绝对路径;
  • 非命令类文件(如普通文本)查不到。

不是指令不会搜索

whereis — 找命令的 “全套文件”

核心特点

  • 查找范围:系统预设的命令目录(/bin、/usr/bin、/usr/share/man 等);
  • 输出内容:二进制文件(-b)、手册页(-m)、源码文件(-s);
  • find 快,比 which 信息全,但只针对系统命令
  • 默认情况全部查找

find — 全量文件查找 “万能工具” whereis 和 which底层封装的是find指令

核心特点

  • 查找范围:可指定任意路径(如 / 全系统、/home 家目录);
  • 查找条件:支持按名称、大小、时间、权限、属主等多维度筛选;
  • 速度最慢,但功能最全(可执行后续操作,如删除、复制)。
  • 默认为磁盘中的所有文件

在家目录的范围中 按照名字搜索文件

查某目录的时候报错 permission denied 权限约束

3.2.19 grep指令(文本搜索指令/行文本过滤工具)
语法: grep [ 选项 ] 搜寻字符串 /文件
功能: 在文件中搜索字符串,将找到的行打印出来
常用选项:
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容
du test2.txt

查看文件的大小 以kb为单位 -k 以kb为单位  -m 以MB为单位

查找包含9999的行,并且打印

带上行号

创建新的文件,使用过滤工具

-v选项,反向筛选

选型-i,忽略大小写

3.2.20 zip/unzip指令 

(1)安装:sudo apt install zip unzip  普通用户转到超级用户 su +用户名字

(2)使用:  
zip使用
zip file.zip file.txt  # 把 file.txt 压缩成 file.zip
zip all.zip file1.txt file2.jpg dir1/  # 同时压缩文件和目录
zip -r docs.zip ./documents/  # 递归压缩 documents 目录
zip -r test.zip ./test/ 把 test 目录及所有子文件压缩成 test.zip

unzip的使用

unzip test.zip  # 解压到当前目录
unzip test.zip -d /home/user/test/  # 解压到 /home/user/test/
unzip -l test.zip  # 查看压缩包内容输出示例:
# Archive:  test.zip
#   Length      Date    Time    Name
# ---------  ---------- -----   ----
#        12  2026-03-20 11:00   file.txt
#         0  2026-03-20 11:01   dir1/
# ---------                     -------
#        12                     2 files
(3)功能: 将目录或文件压缩成 zip 格式,uzip解压操作。
常用选项:
  • -r 递归处理,将指定目录下的所有文件和子目录一并处理
(4)为什么打包和压缩
  • 文件完整性
    • 多个文件 → 打包成一个整体文件,传输 / 备份时不容易丢失或遗漏文件。
    • 避免分散文件在拷贝、下载过程中出现缺失。
  • 节省空间与传输时间
    • 压缩后体积变小,可以减少存储占用空间,同时缩短下载 / 传输时间
    • 压缩 → 体积更小 → 下载更快、存储更省。
  • 常用的打包压缩工具
    • zip / unzip
      • 跨平台兼容(Windows/Mac/Linux 都能直接解压),适合通用场景。
      • 用法:zip -r 包名.zip 目录 压缩,unzip 包名.zip 解压。
    • tar
      • 核心是打包(把多个文件合成一个 .tar 文件),常和 gzip/bzip2 等压缩算法结合使用。
      • 常见组合:
        • tar -zcvf 包名.tar.gz 目录:打包 + gzip 压缩(最常用)
        • tar -jcvf 包名.tar.bz2 目录:打包 + bzip2 压缩(压缩比更高)
      • 解压:tar -zxvf 包名.tar.gz / tar -jxvf 包名.tar.bz2
(5)例子压缩

打包单个文件

打包多个文件

打包目录内容和多个文件 需要选项  -r 不然只是打包目录

查看压缩包内容

(6)解压

-d 选项 +路径 = 解压到指定的路径

3.2.21 tar指令(重要):打包/解包,不打开它,直接看内容

tar(tape archive)是 Linux 中最核心的文件打包 / 解包工具,支持打包、压缩、解压、预览等全流程操作。

参数 含义 常用组合
c 创建新的打包文件(create) czf(打包+压缩)/cf
x 解压文件(extract) xzf(解压解包)/xf
t 查看压缩包内容(list) tzf(查看压缩包/tf
z 用 gzip 压缩 / 解压(.tgz/.tar.gz) czf/xzf/tzf
j 用 bzip2 压缩 / 解压(.tar.bz2) cjf/xjf/tjf
f 指定文件名(必须放在参数最后) 所有组合都要加
v 显示详细过程(verbose) czvf/xzvf
-C 指定解压目录 xzf xxx.tgz -C /tmp(解压到某个路径下)

Linux 的压缩的包的格式有很多 .tgz  .bz2,.tgz是tgr.gz的合成。

  • tar:纯打包(仅合并文件,不减小体积)
  • .tar.gz/.tgz:先打包(tar)再用 gzip 压缩(减小体积)
  • .tar.bz2:先打包(tar)再用 bzip2 压缩(压缩率更高)
  • windows下经常使用的zip文件,上述linux环境下使用的。

使用最多的方式

操作场景 命令格式 示例
打包 + gzip 压缩 tar czf 目标文件名.tgz 源文件/目录 tar czf code.tgz d1 log.txt
预览压缩包内容 tar tzf 文件名.tgz tar tzf code.tgz
解压 + 解包 tar xzf 文件名.tgz tar xzf code.tgz
指定解压路径 tar xzf 文件名.tgz -C 目标路径 tar xzf code.tgz -C /tmp/test

打包压缩文件和查看打包压缩文件

解压到某一个路径下,当前目录下创建tmp目录文件,然后解压。

3.2.22 bc指令(计算器)

bc命令可以进行浮点运算

3.2.23 uname –r指令
(1)使用      uname [ 选项
(2)功能 uname 用来获取电脑和操作系统的相关信息。 uname可显示 linux 主机所用的操作系统的版本、硬件的名称等基本信息。
(4)常用选项:
-a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称

-r 显示的内核版本号

3.2.24 重要的几个热键[Tab],[ctrl]-c, [ctrl]-d
  • [Tab]按键---具有『命令补全』和『档案补齐』的功能

        单一命令,例如比较好识别的shut 按一下Tab 自动补全为 shutdown,但是ls这种太多,不容易补全。

  • [Ctrl]-c按键---让当前的程序『停掉』终止前台进程
  • [Ctrl]-d按键---通常代表着:『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外,他也可以用来取代exit(退出当前服务器)单次退出服务器,双次退出xsheel。 
3.2.25 关机
语法
shutdown [选项]  常见选项:
  • -h : 将系统的服务停掉后,立即关机。
  • -r : 在将系统的服务停掉之后就重新启动
  • -t sec -t 后面加秒数,亦即『过几秒后关机』的意思

一半是centos的root账户或者ubtuntu的ubtuntu使用才可以普通用户默认没有直接执行关机 / 重启操作的权限,系统要求进行交互式身份验证(即需要 sudo 提权)。

# 关机
sudo shutdown -h now

# 重启
sudo shutdown -r now

普通用户提升权限后,还是不能操作的。

3.3  扩展
3.3.1 Linux指令是什么(可执行程序 ELF文件) 在linux的环境下
  • 指令 = 可执行程序
    • 指令本质上就是编译好的可执行文件(二进制程序或脚本),和你自己写C/C++/Python 代码编译出的程序没有区别。
    • 例如:ls 对应 /usr/bin/lspwd 对应 /usr/bin/pwd,这些文件都存放在系统特定路径下。
  • 执行指令前要先 “找到它”,因此指令一定存在系统的某个地方
    • Shell 会根据 $PATH 环境变量定义的目录,去查找你输入的指令对应的可执行文件。
    • 只有找到该文件,系统才能加载并执行指令;如果找不到,就会提示 command not found

    使用file指令(判断文件类型),文件类型和自己写的mykill一直。和普通文件一样想要执行就要找到程序。

指令存在的位置

因此将我门缩写的程序的文件放入/usr/bin/目录下,我们程序也可以像指令一样运行,因为bash会从此路径下寻找指令。

3.3.2 Linux 核心思想:一切皆文件
  1. 万物皆文件
    • 普通文件、目录、硬件设备(显示器、键盘)、甚至指令本身,在 Linux 中都被抽象成 “文件”。
    • 它们都提供统一的读写接口(如 fread()/fwrite()),操作系统可以用相同的方式访问不同资源。只不过键盘文件只有写方法没有读方法。显示器反之。
  2. 指令也是文件
    • 指令是存放在 /bin/usr/bin 等路径下的可执行文件,符合 “一切皆文件” 的设计。
    • 你可以用 ls 查看指令文件的属性,用 file 命令查看它的类型。

总结

  • 指令本质可执行文件,存放在系统路径中,由 shell 查找并执行。
  • 设计哲学:一切皆文件,用统一的文件接口访问所有资源,简化系统设计。
3.3.3 安装软件和卸载软件(删除和下载可执行程序)

一、核心本质:一切皆 “可执行程序”

  • Linux 指令(如 lstar)、自己写的代码编译出的程序(如 mykill)、带图形界面的软件,本质上都是可执行程序,没有底层区别。
  • 它们的差异仅在于:是否带图形界面是否依赖系统库、调用方式是命令行还是鼠标点击

二、“安装软件” 的本质

把可执行程序(及依赖库 / 配置)放到系统能找到的路径下,让 Shell 或图形界面能定位并运行它。

Linux 下的做法

  • 不推荐:直接放到 /usr/bin(系统自带指令的目录,容易污染系统)。
  • 推荐
    1. 放到 /usr/local/bin(用户自定义软件的标准目录,默认在 $PATH 中)。
    2. 放到 ~/bin(用户家目录下的 bin 目录,需手动添加到 $PATH)。

Windows 下的对应逻辑

  • .exe 文件放到 C:\WindowsC:\Program Files 等目录,或把软件目录添加到系统 PATH 环境变量中。
  • 图形界面的 “快捷方式”,本质就是指向 .exe 的一个链接文件。

三、“卸载软件” 的本质

把可执行程序从系统路径中删除(同时清理关联的配置文件、库文件等)。

Linux 下的操作:直接删除相关文件程序。

Windows 下的对应逻辑

  • 手动删除 .exe(等价于Linux的elf文件) 及所在文件夹,或通过 “控制面板” 卸载(本质也是删除文件和注册表项)

总结:所有指令、软件、工具,本质都是可执行程序;安装就是 “把它放到系统能找到的路径”,卸载就是 “从路径中删掉它”;Windows 和 Linux 只是路径组织和启动方式不同,底层逻辑完全一致。

注意:不要污染系统目录

4.shell 命令以及运行原理

Linux Shell 与指令运行原理 

解答「Linux 是什么、为什么需要 Shell、Shell 做了什么、指令到底是怎么运行的」问题


(1)、核心前提:Linux 的本质,以及为什么用户不能直接使用内核?

  1. Linux 的严格定义:Linux 严格意义上指的是操作系统内核(Kernel),它是系统的核心,唯一能直接操作硬件、管理内存 / 进程 / 文件系统的底层程序

  2. 为什么普通用户不能直接使用内核?

    • 使用门槛极高内核只提供极其底层的系统调用接口,没有任何友好的交互方式,普通用户完全无法直接使用。

    • 安全风险不可控:用户直接操作内核,任何误操作、非法操作都可能直接导致系统崩溃、数据丢失,甚至破坏硬件。

  3. 解决方案:必须在用户和内核之间,加入一个专属的中间软件层—— 也就是 Shell(外壳程序),用户只能和这个中间层交互,由它和内核沟通


(2)、Shell 的技术定义与核心职责

1. 技术定义

Shell 就是命令行解释器(command Interpreter),是包裹在 Linux 内核外的「外壳程序」,也是用户和内核之间唯一的交互桥梁。我们常说的「命令行」,本质就是 Shell 程序提供的交互界面。

2. 两大核心职责

  1. 上行翻译:将用户输入的命令字符串,解析、翻译成内核能理解的系统调用,交给内核处理。

  2. 下行翻译:将内核执行后的结果、状态码,翻译成用户能看懂的内容,格式化后输出到终端。

3. 额外核心价值:系统安全守门人

Shell 会提前拦截用户的非法请求、越权操作、错误指令,不会把危险操作直接传递给内核,从根源上降低了用户操作导致系统崩溃的风险,变相保护了操作系统。


(3)、跨平台类比:Windows GUI 和 Linux Shell 本质完全一致

  • 在 Windows 中,我们从来不会直接操作 Windows 内核,而是通过图形界面(GUI) 完成操作:双击 D 盘盘符进入目录、双击图标运行程序,本质是图形界面把我们的鼠标点击操作,翻译成了内核能理解的请求,再交给内核执行。

  • 在 Linux 中,Shell 就等价于 Windows 的图形界面,唯一的区别只是交互方式:Windows 用鼠标点击,Linux 用命令行输入字符串。两者的核心作用完全一致 —— 都是用户和内核之间的交互中间层,做翻译和管控。


(4)、生活化比喻:理解角色关系

技术角色

比喻角色

核心职责

你(Linux 用户)

害羞的程序员

有诉求,但只能和媒婆沟通,不能直接找小花

Shell(我们常用的 bash)

王婆 / 媒婆

唯一的中间人,帮你传话、转达诉求,也帮你接收回复

Linux 内核

村头的小花

你最终的诉求对象,但你不能直接和她沟通,所有信息都必须通过媒婆转达

你在命令行输入指令,本质就是「你跟王婆说你的诉求」;终端输出结果,本质就是「王婆把小花的回复转达给你」。


(5)、命令行提示符与指令的本质

1. 命令行提示符拆解

以 lty@VM-0-10-ubuntu:~$ 为例,这是你和 Shell 交互的入口:

组成部分

含义

lty

当前登录的用户名

VM-0-10-ubuntu

当前机器的主机名

~

当前所在工作目录(~ 是当前用户的家目录)

$

命令行提示符(普通用户为 $,root 管理员用户为 #

核心认知:用户在命令行输入指令的过程,本质就是输入一串字符串,所有的解析、翻译、执行工作,都由 Shell 完成。

2. 指令的本质就是编译好的可执行程序 / 脚本,和我们自己写 C/C++ 代码编译出的程序,没有任何底层区别。

(6)、Linux 指令完整运行全流程

  1. 用户输入:在 bash 终端输入指令字符串(如 ls -l),按下回车,把你的诉求交给 Shell(王婆)。

  2. Shell 解析与查找:Shell 拆分指令名和参数,在 $PATH 环境变量的目录中,查找指令对应的可执行文件(如 /usr/bin/ls)。

  3. Shell 翻译请求:Shell 把用户的指令,翻译成 Linux 内核能识别的系统调用,转达给内核(小花)。

  4. 内核执行操作:内核接收请求,操作硬件、文件系统等底层资源,完成指令对应的实际工作。

  5. 内核返回结果:内核把执行后的结果数据、状态码,回传给 Shell(王婆)。

  6. Shell 格式化输出:Shell 把内核返回的结果,整理成用户能看懂的格式,输出到终端,完成整个指令执行流程。


(7)、补充:常见的 Shell 实现(可以不看)

不同的 Shell 就像不同的媒婆,核心的「传话、翻译」功能完全一致,差异主要体现在交互体验、扩展能力上:

  • bash:绝大多数 Linux 发行版的默认 Shell,也就是我们常说的「王婆」,兼容性最好、使用最广泛。

  • sh:最基础、最精简的 Shell,兼容性极强,几乎所有 Linux 系统都自带。

  • zsh:功能最丰富、可定制性最强的 Shell,支持更强大的自动补全、插件扩展,常搭配 Oh My Zsh 使用。


总结

  1. Linux 严格意义上是内核,用户无法直接使用,必须通过 Shell 这个中间层交互。

  2. Shell 的本质是命令行解释器,核心作用是「双向翻译」和「安全管控」,等价于 Windows 的图形界面。

  3. 指令的完整执行,就是「用户→Shell 翻译→内核执行→Shell 翻译回用户」的全流程。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐