> 技术文档 > 【Linux系统】萌新看过来!一篇文章带你走进Linux世界

【Linux系统】萌新看过来!一篇文章带你走进Linux世界

【Linux系统】萌新看过来!一篇文章带你走进Linux世界 🚀个人主页:奋斗的小羊 🚀所属专栏:Linux 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~

【Linux系统】萌新看过来!一篇文章带你走进Linux世界

目录

  • 前言
  • 💥1、初识Linux
    • 💥1.1 什么是操作系统?
    • 💥1.2 各种操作系统对比
    • 💥1.3 现代Linux应用
    • 💥1.4 Linux常用版本
  • 💥2、Linux 和 Windows 目录结构对比
    • 💥2.1 文件系统组织方式
    • 💥2.2 目录命名和功能划分
    • 💥2.3 目录访问方式
    • 💥2.4 优缺点
  • 💥3、Linux简单指令
    • 💥3.1 mkdir指令
    • 💥3.2 ls指令
    • 💥3.3 pwd指令
    • 💥3.4 touch指令
    • 💥3.5 cd指令
    • 💥3.6 rmdir 指令和 rm 指令
    • 💥3.7 man指令
    • 💥3.8 cp指令

前言

可能很多刚开始接触Linux的童鞋们和我一样,在这之前对Linux并不熟悉,只知道Linux是一个操作系统,之外一概不知。没关系,问题不大,本篇文章将会带你初步的认识Linux,了解Linux的相关背景和一些简单的指令,让你从一个小萌新成为一个大萌新。
本文使用Xshell远程登录Linux服务器,CentOS系统。


💥1、初识Linux

💥1.1 什么是操作系统?

【Linux系统】萌新看过来!一篇文章带你走进Linux世界

操作系统(Operating System,简称OS)是计算机系统中最为关键和基础的软件之一。它是计算机硬件与用户或应用程序之间的桥梁,负责管理计算机的硬件资源,为上层应用程序提供一个稳定、高效且安全的运行环境。
简而言之,操作系统是计算机正常运作的基石,让用户能够方便、高效地使用计算机。


💥1.2 各种操作系统对比

简单来说Linux就是一种自由和开放源代码的类Unix操作系统。我们大部分同学最熟悉的操作系统是Windows,也有少部分同学对macOS情有独钟,相比而言我们和Linux之间好像十分陌生。既然我们要学习Linux,那Linux与Windows、macOS等操作系统相比,有哪些优势呢?

  • 开源性:Linux的源代码是公开的,这使得它成为了一个全球性的开源项目,吸引了大量开发者的参与和贡献。相比之下,Windows和macOS等商业操作系统则通常保持源代码的封闭性。

  • 多用户、多任务:Linux支持多用户操作,每个用户都可以有自己的登录账号和权限,同时系统可以执行多个任务,如运行多个程序、处理多个网络请求等。这种特性使得Linux非常适合作为服务器操作系统。

  • 稳定性和安全性:Linux内核设计精良,能够长时间稳定运行,同时提供了丰富的安全机制和工具,保护系统免受恶意攻击。这使得Linux在需要高稳定性和安全性的应用场景中备受青睐。

  • 可定制性:由于Linux的开源特性,用户可以根据自己的需求对系统进行定制和裁剪,以适应不同的应用场景。这种灵活性是商业操作系统所难以比拟的。


💥1.3 现代Linux应用

在现代计算机领域,Linux的应用范围非常广泛,涵盖了服务器、数据中心、嵌入式系统、移动设备、桌面计算等多个领域。

  • 服务器和数据中心:由于其稳定性、安全性和可扩展性,Linux成为许多大型互联网公司和企业的首选服务器操作系统。Linux提供了强大的网络功能、高级的服务器软件和工具,可以构建高性能、可靠的服务器架构。
  • 嵌入式系统:Linux在嵌入式系统领域也有广泛应用。嵌入式Linux可以运行在各种设备上,如智能手机、平板电脑、网络路由器、物联网设备等。Linux提供了丰富的硬件支持、设备驱动程序和开发工具,使得开发者能够构建高度定制化和功能丰富的嵌入式系统。
  • 桌面计算:尽管在个人电脑领域Windows和macOS占据主导地位,但Linux也提供了多个桌面环境(如GNOME、KDE等)和发行版(如Ubuntu、Fedora等),可以满足不同用户的需求。许多技术专业人员、开发者和研究人员选择在Linux桌面上工作。
  • 云计算和容器化:Linux在云计算和容器化领域发挥着重要作用。许多云服务提供商使用Linux作为其基础设施的操作系统,同时Linux也推动了容器化技术的发展,如Docker和Kubernetes等。这些技术为应用程序的部署和管理提供了轻量级、可移植和可扩展的解决方案。

💥1.4 Linux常用版本

  • Ubuntu
    特点:Ubuntu是最常见和广泛使用的Linux发行版之一,以易用性和友好的用户界面而闻名。它适用于个人用户和企业用户,提供长期支持(LTS)版本和定期发布的版本。
    应用场景:桌面和服务器环境。

  • CentOS
    特点:CentOS是一种基于Red Hat Enterprise Linux(RHEL)源代码的免费版本,注重稳定性和安全性。它被广泛用于服务器环境,并提供长期支持。
    应用场景:企业级应用和服务器。

  • Fedora
    特点:Fedora是由社区驱动的Linux发行版,也是Red Hat公司的测试平台。它提供了最新的软件包和技术,适用于开发者和技术爱好者。Fedora采用了快速的发布周期,每六个月发布一个新版本。
    应用场景:开发者和技术爱好者。

  • Debian
    特点:Debian是一个稳定、安全且广泛使用的Linux发行版,以其包管理系统(APT)而闻名,提供了大量的软件包选择。Debian有三个主要版本:稳定版、测试版和不稳定版,用户可以根据自己的需求选择合适的版本。
    应用场景:服务器和桌面环境。

  • Kali Linux
    特点:Kali Linux是专为网络安全和渗透测试而设计的发行版,内置了大量的安全工具和资源。
    应用场景:安全专业人员和渗透测试爱好者。

【Linux系统】萌新看过来!一篇文章带你走进Linux世界


💥2、Linux 和 Windows 目录结构对比

💥2.1 文件系统组织方式

1、 Windows

  • Windows采用层次化的目录结构,类似于一棵树
  • 根目录通常是某个驱动器(如C:\\),但系统也可以安装在其他驱动器上
  • 文件和文件夹按照树状结构组织,用户可以通过路径访问特定的文件或文件夹

2、Linux

  • Linux采用单一的虚拟文件系统(VFS),这是一个树状结构,以根目录(/)开始
  • 启动系统后,VFS会识别出各个硬盘,并将硬盘的分区挂载到VFS的某个子目录上
  • 用户通过访问这些挂载点来访问硬盘上的数据和文件

💥2.2 目录命名和功能划分

1、Windows

  • Windows目录:通常位于C:\\Windows,包含操作系统的核心文件,如系统文件、驱动程序和系统配置
  • Program Files:存放安装的应用程序的目录,可能是C:\\Program Files或C:\\Program Files (x86)(用于32位应用程序在64位系统上运行)
  • Users目录:包含用户文件和配置文件,每个用户都有一个独立的子文件夹,以其用户名命名
  • Documents、Desktop等:用户文档和桌面上的图标、快捷方式分别存放在Users目录下的相应子文件夹中

2、Linux

  • 根目录(/): 所有目录和文件的起点,包含了许多重要的子目录
  • /bin: 存放所有用户都可以使用的Linux基本操作命令
  • /dev: 设备文件目录,主要存放系统中所有设备的相关信息
  • /etc: 系统配置文件目录,包含各种系统配置文件
  • /home:默认存放用户的宿主目录(除了root用户
  • /proc:虚拟文件系统,提供系统实时的信息,如CPU、内存、网络等
  • /sbin:系统管理相关的二进制文件存放目录,普通用户权限较小
  • /usr:安装除操作系统本身外的一些应用程序或组件
  • /var:存放经常变化的文件,如日志文件、数据库文件等

💥2.3 目录访问方式

1、Windows

  • 使用驱动器字母(如C:\\)和路径来访问文件和文件夹
  • 路径分隔符是反斜杠(\\)

2、Linux

  • 使用根目录(/)和路径来访问文件和文件夹
  • 路径分隔符是正斜杠(/)
  • 用户可以通过挂载点访问硬盘上的数据和文件

💥2.4 优缺点

1、Windows

  • 优点: 用户存放东西的位置比较自由,系统结构简单便于新用户上手
  • 缺点: 数据组织方式可能显得凌乱,系统文件和用户文件之间容易相互干扰

2、Linux

  • 优点: 目录结构清晰,反映了系统运行机理,有助于高效组织数据和分类
  • 缺点: 对于初学者来说,可能需要一定时间适应其复杂的目录结构

💥3、Linux简单指令

关于Linux的指令,我们在前期学习的时候并不需要大量的去记,只需要学习一些简单的基本指令,先把Linux用起来,在这个过程中边学边用就可。本篇文章也只介绍大概20个简单的指令。
学习Linux,我们可以对比较为熟悉的Windows学习,同样是操作系统,它们有什么相同的地方,有什么不同的地方,在学习的过程中我们通过对比,可以更快的熟悉Linux。

💥3.1 mkdir指令

语法:mkdir [选项] dirname…
功能:在当前目录下创建一个名为“dirname”的目录(文件夹)

[root@hcss-ecs-8f13 ~]# mkdir dirname[root@hcss-ecs-8f13 ~]# lsdirname [root@hcss-ecs-8f13 ~]# 

空文件也占据磁盘空间。文件 == 内容 + 属性(文件名、大小、日期…)

  • -p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录
[root@hcss-ecs-8f13 dirname]# mkdir -p a/b/c[root@hcss-ecs-8f13 dirname]# pwd/root/dirname[root@hcss-ecs-8f13 dirname]# lltotal 4drwxr-xr-x 3 root root 4096 Sep 7 16:58 a-rw-r--r-- 1 root root 0 Sep 7 16:50 hello.txt[root@hcss-ecs-8f13 dirname]# lsa hello.txt[root@hcss-ecs-8f13 dirname]# cd a[root@hcss-ecs-8f13 a]# lsb[root@hcss-ecs-8f13 a]# cd b[root@hcss-ecs-8f13 b]# lsc[root@hcss-ecs-8f13 b]# 
[root@hcss-ecs-8f13 ~]# pwd/root[root@hcss-ecs-8f13 ~]# tree dirnamedirname├── a│ └── b│ └── c└── hello.txt3 directories, 1 file[root@hcss-ecs-8f13 ~]# 

💥3.2 ls指令

语法:ls [选项][目录或文件]
功能:对于目录,该命令列出该目录下的所有子目录和文件;对于文件,列出文件名和其属性

常用选项:

  1. -l: 列出文件的详细信息
  2. -a:列出目录下的所有文件,包括以 . 开头的隐藏文件
  3. -d:将目录象文件一样显示,而不是显示其下的文件
  • ls -l -als -a -lls -alls -la都是可以的
  • 目录和文件都是可以隐藏的,可以主动创建隐藏目录和隐藏文件
  • 在Linux中,任何一个目录(包括空目录),系统默认都会自带...(隐藏)目录
  • .表示当前目录,..表示上级目录

【Linux系统】萌新看过来!一篇文章带你走进Linux世界
Windows文件夹:
【Linux系统】萌新看过来!一篇文章带你走进Linux世界

上面的ls [选项]是默认当前自己的目录,也可以指定目录:

[root@hcss-ecs-8f13 /]# pwd/[root@hcss-ecs-8f13 /]# lsbin boot CloudrResetPwdAgent dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var[root@hcss-ecs-8f13 /]# ls -ltotal 64lrwxrwxrwx. 1 root root 7 Jul 7 14:23 bin -> usr/bindr-xr-xr-x. 5 root root 4096 Sep 1 18:43 bootdrwxr-xr-x 7 root root 4096 Jul 7 14:56 CloudrResetPwdAgentdrwxr-xr-x 19 root root 3020 Sep 1 18:46 devdrwxr-xr-x. 77 root root 4096 Sep 2 11:47 etcdrwxr-xr-x. 3 root root 4096 Sep 1 21:33 homelrwxrwxrwx. 1 root root 7 Jul 7 14:23 lib -> usr/liblrwxrwxrwx. 1 root root 9 Jul 7 14:23 lib64 -> usr/lib64drwx------. 2 root root 16384 Jul 7 14:23 lost+founddrwxr-xr-x. 2 root root 4096 Apr 11 2018 mediadrwxr-xr-x. 2 root root 4096 Apr 11 2018 mntdrwxr-xr-x. 2 root root 4096 Apr 11 2018 optdr-xr-xr-x 110 root root 0 Sep 1 18:46 procdr-xr-x---. 7 root root 4096 Sep 7 15:04 rootdrwxr-xr-x 24 root root 640 Sep 1 18:46 runlrwxrwxrwx. 1 root root 8 Jul 7 14:23 sbin -> usr/sbindrwxr-xr-x. 2 root root 4096 Apr 11 2018 srvdr-xr-xr-x 13 root root 0 Sep 5 23:15 sysdrwxrwxrwt. 9 root root 4096 Sep 7 03:31 tmpdrwxr-xr-x. 13 root root 4096 Jul 7 14:23 usrdrwxr-xr-x. 19 root root 4096 Jul 7 14:39 var[root@hcss-ecs-8f13 /]# ls -l /hometotal 4drwx------ 2 yjz yjz 4096 Sep 1 21:42 yjz[root@hcss-ecs-8f13 /]# ls /home -ltotal 4drwx------ 2 yjz yjz 4096 Sep 1 21:42 yjz[root@hcss-ecs-8f13 /]# 

💥3.3 pwd指令

语法: pwd
功能: 显示用户当前所在目录

[root@hcss-ecs-8f13 ~]# pwd/root[root@hcss-ecs-8f13 ~]# 

在Windows中,我们同样也可以得到当前所在目录:
【Linux系统】萌新看过来!一篇文章带你走进Linux世界

  • Windows下路径分隔符是:\\,Linux下路径分隔符是:/

💥3.4 touch指令

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


💥3.5 cd指令

语法: cd 目录名
功能: 改变工作目录,将当前工作目录改变到指定的目录下
举例:

  • cd … : 返回上级目录
  • cd /home/litao/linux/ : 绝对路径
  • cd …/day02/ : 相对路径
  • cd ~:进入用户家目
  • cd -:返回最近访问目录
[root@hcss-ecs-8f13 ~]# pwd/root[root@hcss-ecs-8f13 ~]# cd dirname[root@hcss-ecs-8f13 dirname]# pwd/root/dirname[root@hcss-ecs-8f13 mydir]# cd /root/dirname //绝对路径[root@hcss-ecs-8f13 dirname]# pwd/root/dirname[root@hcss-ecs-8f13 dirname]# cd[root@hcss-ecs-8f13 ~]# pwd/root[root@hcss-ecs-8f13 ~]# cd dirname //相对路径[root@hcss-ecs-8f13 dirname]# pwd/root/dirname[root@hcss-ecs-8f13 dirname]# cd .. //返回上级路径[root@hcss-ecs-8f13 ~]# pwd/root[root@hcss-ecs-8f13 ~]# cd mydir[root@hcss-ecs-8f13 mydir]# pwd/root/mydir[root@hcss-ecs-8f13 mydir]# cd .[root@hcss-ecs-8f13 mydir]# pwd/root/mydir[root@hcss-ecs-8f13 mydir]# cd ..[root@hcss-ecs-8f13 ~]# cd ..[root@hcss-ecs-8f13 /]# cd ..[root@hcss-ecs-8f13 /]# pwd[root@hcss-ecs-8f13 /]# ls -lad /dr-xr-xr-x. 19 root root 4096 Sep 1 18:46 / //可以看到‘/’也是一个目录[root@hcss-ecs-8f13 /]# 
  • Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。
    【Linux系统】萌新看过来!一篇文章带你走进Linux世界

cdcd ~:返回当前用户自己的家目录:

[root@hcss-ecs-8f13 /]# cd[root@hcss-ecs-8f13 ~]# pwd/root[root@hcss-ecs-8f13 ~]# cd ~[root@hcss-ecs-8f13 ~]# pwd/root[root@hcss-ecs-8f13 ~]# 

什么是家目录? 任何一个Linux用户,用特定的用户名登录系统,默认都在家目录下。

命令本质上就是系统中的一个普通文件,是一个可执行程序。

[root@hcss-ecs-8f13 ~]# which lsalias ls=\'ls --color=auto\'/usr/bin/ls[root@hcss-ecs-8f13 ~]# which pwd/usr/bin/pwd[root@hcss-ecs-8f13 ~]# which mkdir/usr/bin/mkdir[root@hcss-ecs-8f13 ~]# ls /usr/bin/pwd/usr/bin/pwd[root@hcss-ecs-8f13 ~]# ls /usr/bin/pwd -l-rwxr-xr-x 1 root root 33232 Nov 17 2020 /usr/bin/pwd[root@hcss-ecs-8f13 ~]# ls /usr/bin/ls -l-rwxr-xr-x 1 root root 117608 Nov 17 2020 /usr/bin/ls[root@hcss-ecs-8f13 ~]# pwd/root[root@hcss-ecs-8f13 ~]# /usr/bin/pwd/root[root@hcss-ecs-8f13 ~]# /usr/bin/lsdirname mydirtext.txt[root@hcss-ecs-8f13 ~]# 

【Linux系统】萌新看过来!一篇文章带你走进Linux世界

[root@hcss-ecs-8f13 ~]# alias abc=pwd[root@hcss-ecs-8f13 ~]# pwd/root[root@hcss-ecs-8f13 ~]# abc/root[root@hcss-ecs-8f13 ~]# alias def=ls[root@hcss-ecs-8f13 ~]# lsdirname mydir text.txt[root@hcss-ecs-8f13 ~]# defdirname mydir text.txt[root@hcss-ecs-8f13 ~]# 
  • 起别名是临时的,退出登录后起的别名就不能用了
[root@hcss-ecs-8f13 ~]# which llalias ll=\'ls -l --color=auto\'/usr/bin/ls[root@hcss-ecs-8f13 ~]# which lsalias ls=\'ls --color=auto\'/usr/bin/ls[root@hcss-ecs-8f13 ~]# lsdirname mydir text.txt[root@hcss-ecs-8f13 ~]# lltotal 8drwxr-xr-x 3 root root 4096 Sep 7 16:58 dirnamedrwxr-xr-x 2 root root 4096 Sep 6 18:16 mydir-rw-r--r-- 1 root root 0 Sep 7 15:04 text.txt[root@hcss-ecs-8f13 ~]# ls -ltotal 8drwxr-xr-x 3 root root 4096 Sep 7 16:58 dirnamedrwxr-xr-x 2 root root 4096 Sep 6 18:16 mydir-rw-r--r-- 1 root root 0 Sep 7 15:04 text.txt[root@hcss-ecs-8f13 ~]# 
  • ls -lll的效果是一样的,因为ll就是ls -l的别名

💥3.6 rmdir 指令和 rm 指令

rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除命令。
语法:rmdir [-p][dirName]
适用对象:具有当前目录操作权限的所有使用者
功能:删除空目录
常用选项:

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

rm命令可以同时删除文件或目录
语法:rm [-f-i-r-v][dirName/dir]
适用对象:所有使用者
功能:删除文件或目录
常用选项:

  1. -f 即使文件属性为只读(即写保护),亦直接删除
  2. -i 删除前逐一询问确认
  3. -r 删除目录及其下所有文件

💥3.7 man指令

Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。
语法: man [选项] 命令
常用选项

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

【Linux系统】萌新看过来!一篇文章带你走进Linux世界

按q退出。


💥3.8 cp指令

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

普通文件拷贝:

[root@hcss-ecs-8f13 ~]# pwd/root[root@hcss-ecs-8f13 ~]# lsdirname text.txt[root@hcss-ecs-8f13 ~]# cp text.txt dirname/[root@hcss-ecs-8f13 ~]# cd dirname[root@hcss-ecs-8f13 dirname]# lstext.txt[root@hcss-ecs-8f13 dirname]# cp text.txt copy.txt[root@hcss-ecs-8f13 dirname]# lscopy.txt text.txt[root@hcss-ecs-8f13 dirname]# 

目录拷贝:

[root@hcss-ecs-8f13 dirname]# cp dirname dirname.0cp: cannot stat ‘dirname’: No such file or directory[root@hcss-ecs-8f13 dirname]# pwd/root/dirname[root@hcss-ecs-8f13 dirname]# cd[root@hcss-ecs-8f13 ~]# pwd/root[root@hcss-ecs-8f13 ~]# cp -r dirname dirname.0[root@hcss-ecs-8f13 ~]# lsdirname dirname.0 text.txt[root@hcss-ecs-8f13 ~]# tree.├── dirname│ ├── copy.txt│ └── text.txt├── dirname.0│ ├── copy.txt│ └── text.txt└── text.txt2 directories, 5 files[root@hcss-ecs-8f13 ~]# cp -r dirname dirname.0[root@hcss-ecs-8f13 ~]# tree.├── dirname│ ├── copy.txt│ └── text.txt├── dirname.0│ ├── copy.txt│ ├── dirname│ │ ├── copy.txt│ │ └── text.txt│ └── text.txt└── text.txt3 directories, 7 files[root@hcss-ecs-8f13 ~]# 
  • 拷贝目录需要加-r