第一话·Linux入门必看之·用一首歌的时间带你认识她~

Posted kikokingzz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第一话·Linux入门必看之·用一首歌的时间带你认识她~相关的知识,希望对你有一定的参考价值。

 🌕写在前面 


  • 🍊博客主页:kikoking的江湖背景
  • 🎉欢迎关注🔎点赞👍收藏⭐️留言📝
  • 🌟本文由 kikokingzz 原创,CSDN首发!
  • 📆首发时间:🌹2021年12月24日🌹
  • 🆕最新更新时间:🎄2021年12月24日🎄
  • ✉️坚持和努力一定能换来诗与远方!
  • 🙏作者水平很有限,如果发现错误,请留言轰炸哦!万分感谢感谢感谢!、

  • 🍒关于为什么现在开Linux?

  • 关注我的大佬们可能知道,我之前有开了一篇操作系统的文章,对付408考试是绰绰有余了,但是那只是纸上功夫,编程技术我们既要笔杆子硬,上机操作也必须硬,因此接下来我会通过Linux的实战过程中穿插和附带操作系统的408知识,希望各位可以关注本栏目哦~
  • 💎这是一篇有关操作系统的入门文章:💎用一首圣诞歌的时间·入门操作系统吧~💎


目录

 🌕写在前面 

🍒关于为什么现在开Linux?

🔥1.后端VS前端

🔥2.企业为什么选择使用Linux作为后台服务器? 

开源会让系统更安全还是更糟糕呢?

🔥3.为什么要学好Linux?

🔥4.如何学好Linux?

🔥5.OS概念,定位

🔥命令行方式VS图形界面方式

🍊为什么选用命令行的方式呢?

🍊命令行方式

🔥配置一个云服务器 

✅登录XSHELL

✅1.pwd指令:显示当前目录

✅2.ls指令:显示该目录下所有子目录与文件

🍊ls:显示当前目录

🍊ls -a:显示所有文件,包括隐藏文件

🍓.    一个点代表——>当前目录

🍓..   两个点表示——>上级目录

🍓/ 表示为——>根目录

✅路径

✅3.cd指令

🍊cd ~ 进入当前用户的主工作目录

🍊cd -返回最近访问目录

✅4.touch指令

🍊touch -d  使用指定的日期时间,而非现在的时间

✅5.ll指令

🍓目录:第一个列的第一个字母为d的是目录

🍓普通文件:第一列的第一个字母为“-”的是普通文件

✅6.mkdir指令:新建目录(文件夹)

🍊mkdir -p 一次生成一串路径(只包含目录)

🍊tree 通过树状结构显示目录结构

🍓安装 tree

🍓tree的实现

✅7.rmdir指令:删除空目录

✅8.rm指令:删除文件或目录

🍊rm 删除文件

🍊rm -f 强制删除文件

🍊rm -r 递归删除非空目录

🍊rm -rf 强制递归删除非空目录


🔥1.后端VS前端


前端:前端就是我们直接接触到的一些app(手机里的微信、抖音、淘宝、QQ)

后端服务器:Linux操作系统跑在后端服务器上,为微信、抖音、淘宝、qq提供后台服务

✨✨✨我是分割线✨✨✨ 

🔥2.企业为什么选择使用Linux作为后台服务器? 


Linux:免费、开源、稳定高效

阿里云、腾讯云、亚马逊aws业务,说白了就是给企业提供Linux后台云服务的

开源会让系统更安全还是更糟糕呢?

kiko:系统会变得更安全、更稳定!超nice!

✨✨✨我是分割线✨✨✨ 

🔥3.为什么要学好Linux?


1.会Linux是一种职业化的表现(铁汁,你职业吗?)

2.学习Linux本质是对平台的学习,该平台会横跨多学科,会将我们学到的大量知识进行整合,从而形成对技术框架的全认知

3.企业大量使用,会倒逼招聘对Linux提出一定要求,为了招聘要求,我们需要对Linux方面进行准备

✨✨✨我是分割线✨✨✨ 

🔥4.如何学好Linux?


Linux是一个注重实操的学科,具有很强的平台性,所以除了需要底层的操作系统、计算机网络、组成原理等原理性知识外,还需要多多在Linux中进行各种实操

·基础理论:操作系统、计算机网络、组成原理

·基础操作:基本指令/权限,Linux环境编程(基本编程、系统编程、网络编程)

✨✨✨我是分割线✨✨✨ 

🔥5.OS概念,定位


资源链接:用一首圣诞歌的时间·入门操作系统吧~

具体了解可以点击上方链接

✨✨✨我是分割线✨✨✨

🔥命令行方式VS图形界面方式


🍊为什么选用命令行的方式呢?

我们从历史角度向下推论一下:

a.最初是为了计算导弹弹道轨道——————>发明了第一台计算机:埃尼亚克

b.计算机发明出来是给人使用的,那么人该如何使用呢?

人把数据给计算机——>计算机内部运算——>将计算结果返给人  

[ 人——>机——>人] 这是一次人机交互的过程

c.键盘 VS 鼠标: 哪个先有呢?  打字机——>(早期键盘)——>键盘

综上所述,最初只能用键盘交互,所以只能通过输入命令的方式进行计算机数据交互,时间久了,就有了命令行的交互方式!

d.为什么鼠标会存在? 相比键盘,鼠标更符合人性,所见点击即所得(在商业上,注定是需要的);但是真正的推广还是由于图形化界面的产生

e.命令行VS图形化界面

图形化界面(不断迭代)——>手指——>语音——>意识

选择命令行的原因:

1.命令行更靠近历史的前期,因此命令行更靠近底层

2.企业的后端服务器硬件没有图形化界面,只能用命令行交互


🍊命令行方式

✨✨✨我是分割线✨✨✨ 

🔥配置一个云服务器 


 ✨✨✨我是分割线✨✨✨

✅登录XSHELL


·输入用户名和密码

1.普通用户和root用户(只有一个):普通用户名不能叫做root

2.普通用户的密码尽量不要和root一样

 ·成功登录

 ✨✨✨我是分割线✨✨✨

✅1.pwd指令:显示当前目录


·语法: pwd

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

·常用选项:无

默认登录,会登进自己的主工作目录 

Linux也叫做多用户操作系统!—— 可以给多个用户使用的

这里是向服务器请求资源,由于这边的目录分隔符是 / ,可见后台服务器所用的是Linux操作系统

 ✨✨✨我是分割线✨✨✨

✅2.ls指令:显示该目录下所有子目录与文件


·语法 ls [选项][目录或文件]

·功能对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。

·命令组合: cd + ls == windows里的双击查看文件夹内的内容


🍊ls显示当前目录

此处ls显示了当前目录中的所有文件,只有一个,该文件为kiko_class


🍊ls -a:显示所有文件,包括隐藏文件

仅仅以 “.”开头的文件,称为隐藏文件;下例中 .findme 为隐藏文件,仅在 ls -a 指令下才显示

🍓.    一个点代表——>当前目录

🍓..   两个点表示——>上级目录

🍓/ 表示为——>根目录

a.根目录是目录

退到不能再退时
[root@ecs-99730 ~]# cd ..
[root@ecs-99730 /]# pwd
/                         #根目录
[root@ecs-99730 /]# cd ..
[root@ecs-99730 /]# pwd
/
[root@ecs-99730 /]# cd ..
[root@ecs-99730 /]# pwd
/

根目录中包含了很多目录: 

根的目录结构就是一种树的数据结构

Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。

可见根目录作为树的根结点,可以放很多文件和目录作为其子结点:

目录树中的叶子结点:

1.普通文件,不能再被进入的文件

2.Linux中不存在空目录的,只要有目录里面就会包含"."".."

[root@ecs-99730 kiko_class]# mkdir empty     创建一个empty目录
[root@ecs-99730 kiko_class]# ls              显示当前目录下有哪些子目录和文件       
empty  file  filel  test1.c  test.c
[root@ecs-99730 kiko_class]# cd empty        进入empty目录
[root@ecs-99730 empty]# ls
[root@ecs-99730 empty]# ls -al               显示empty目录中的所有文件和目录(包括隐藏文件)
total 8
drwxr-xr-x 2 root root 4096 Dec 19 14:35 .   可见仍然有 . ->当前目录
drwxr-xr-x 3 root root 4096 Dec 19 14:35 ..  任然有 .. ->上一级目录
[root@ecs-99730 empty]# 

✨✨✨我是分割线✨✨✨

路径


从上图中可以得到,假如要访问test.c

//访问test.c的一些路径:

#绝对路径
/home/bit/test.c  
根目录->home目录->bit目录->test.c文件

#相对路径
dev/../home/bit/test.c
dev目录->返回到上一级目录(根目录)->home目录->bit目录->test.c文件

#相对路径
lib/../../home/bit/test.c
lib文件->返回到上一级usr目录->返回到上一级目录(根目录)->home目录->bit目录->test.c文件

🍓相对路径:可以有多种,容易失效

🍓绝对路径:/(根目录)开始的路径,只有一种路径,不会失效

1.基本上所有的操作系统文件管理,都采用的是树状结构,

2.一般来说绝对路径,我们在配置文件中使用的最多,因为不论配置文件在哪里,路径都是唯一且有效的

✨✨✨我是分割线✨✨✨

✅3.cd指令


·语法:cd 目录名

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


🍊cd ~ 进入当前用户的主工作目录

·此处例子中的主工作目录是 /root

[root@ecs-99730 empty]# pwd     //当前所在目录为:
/root/kiko_class/empty          //root目录下的->kiko_class目录中的->empty目录
[root@ecs-99730 empty]# cd ~    //返回主工作目录->root目录
[root@ecs-99730 ~]# pwd         //直接显示为root目录
/root

🍊cd -返回最近访问目录

·此处 cd - 返回的是时间上最近访问的目录

[root@ecs-99730 ~]# pwd
/root
[root@ecs-99730 ~]# cd /root/kiko_class/empty
[root@ecs-99730 empty]# pwd         //时间点1.此时处于/root/kiko_class/empty目录下
/root/kiko_class/empty
[root@ecs-99730 empty]# cd /root/kiko_class  //前往root目录下的kiko_class目录
[root@ecs-99730 kiko_class]# pwd
/root/kiko_class                   //时间点2.此时处于/root/kiko_class目录下
[root@ecs-99730 kiko_class]# cd -  //“-”记录的是最近你从哪个路径来的,保存时间上最近路径
/root/kiko_class/empty     //对于时间点2来说,它的时间上的最近路径就是时间点1的路径
[root@ecs-99730 empty]#    //因此cd前往的就是/root/kiko_class/empty  

✨✨✨我是分割线✨✨✨

✅4.touch指令


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

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


🍊touch -d  使用指定的日期时间,而非现在的时间

·常用选项

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

✨✨✨我是分割线✨✨✨

✅5.ll指令


[root@ecs-99730 kiko_class]# ll
total 4
drwxr-xr-x 2 root root 4096 Dec 19 14:35 empty
-rw-r--r-- 1 root root    0 Dec 18 21:48 file    //文件属性 + 文件名
-rw-r--r-- 1 root root    0 Dec 18 21:48 filel
-rw-r--r-- 1 root root    0 Dec 18 21:48 test1.c
-rw-r--r-- 1 root root    0 Dec 18 21:38 test.c
[root@ecs-99730 kiko_class]# ls -l
total 4
drwxr-xr-x 2 root root 4096 Dec 19 14:35 empty
-rw-r--r-- 1 root root    0 Dec 18 21:48 file
-rw-r--r-- 1 root root    0 Dec 18 21:48 filel
-rw-r--r-- 1 root root    0 Dec 18 21:48 test1.c
-rw-r--r-- 1 root root    0 Dec 18 21:38 test.c
[root@ecs-99730 kiko_class]# 

问题1:如果我在win下创建一个空文件,这个文件占不占用磁盘空间呢?

答:即便上面新建的文本文档大小为0KB,但仍占用空间! 因为 文件 = 文件内容 + 属性

那么属性是数据吗?是!因此仍然占有空间


问题2:文件的类别,是文件的属性吗?

答:文件的类别是文件的属性,需要被保存起来!windos和Linux保存文件的方式有差别:

windows:通过文件名后缀区分文件类型的

Linux:文件类型和文件后缀没有直接关系!但是我们依旧保留这种做法,为了照顾人的习惯

例如在 Linux中 a.out, a.exe可以表示同一个文件,后缀不影响文件类型


问题3Linux用什么来区分文件类型呢?

🍓目录:第一个列的第一个字母为d的是目录

drwxr-xr-x 2 root root 4096 Dec 19 14:35 empty

🍓普通文件:第一列的第一个字母为“-”的是普通文件

-rw-r--r-- 1 root root    0 Dec 18 21:48 test1.c

✨✨✨我是分割线✨✨✨

✅6.mkdir指令:新建目录(文件夹)


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

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

[root@ecs-99730 kiko_class]# mkdir anana    //新建一个anana目录
[root@ecs-99730 kiko_class]# ll
total 8//验证 anana到底是不是目录:
drwxr-xr-x 2 root root 4096 Dec 19 17:07 anana //第一列的第一个字母为d 所以anana是目录
drwxr-xr-x 2 root root 4096 Dec 19 14:35 empty
-rw-r--r-- 1 root root    0 Dec 18 21:48 file
-rw-r--r-- 1 root root    0 Dec 18 21:48 filel
-rw-r--r-- 1 root root    0 Dec 18 21:48 test1.c
-rw-r--r-- 1 root root    0 Dec 18 21:38 test.c

可见也可以进入anana目录中:


🍊mkdir -p 一次生成一串路径(只包含目录)

·使用mkdir -p只能建立一连串的目录

[root@ecs-99730 test]# mkdir test1/test2/test3/file.c
mkdir: cannot create directory ‘test1/test2/test3/file.c’: No such file or directory
//直接使用mkdir建立一连串的目录,没法建立
[root@ecs-99730 test]# mkdir -p test1/test2/test3/file.c //使用mkdir -p 建立成功
[root@ecs-99730 test]# ls
test1
[root@ecs-99730 test]# cd test1
[root@ecs-99730 test1]# ls
test2
[root@ecs-99730 test1]# cd test2
[root@ecs-99730 test2]# ls
test3
[root@ecs-99730 test2]# cd test3
[root@ecs-99730 test3]# ll
total 4
drwxr-xr-x 2 root root 4096 Dec 19 17:29 file.c  //第一个字母为d——>file.c是目录
[root@ecs-99730 test3]# 


🍊tree 通过树状结构显示目录结构

🍓安装 tree

一般来说XSHELL不自带tree命令,需要自己安装。安装只需要输入以下代码即可:

[root@ecs-99730 kiko_class]# yum install -y tree

🍓tree的实现

输入命令查看root目录下的所有子目录和文件

[root@ecs-99730 kiko_class]# tree /root

✨✨✨我是分割线✨✨✨

✅7.rmdir指令:删除空目录


/root/kiko_class
├── anana
├── empty
├── file
├── filel
├── test
│   └── test1
│       └── test2
│           └── test3
│               └── file.c
├── test1.c
└── test.c
[root@ecs-99730 kiko_class]# pwd
/root/kiko_class
[root@ecs-99730 kiko_class]# rmdir empty  //rmdir 负责删除空目录
[root@ecs-99730 kiko_class]# tree .
.
├── anana
├── file
├── filel
├── test
│   └── test1
│       └── test2
│           └── test3
│               └── file.c
├── test1.c
└── test.c
//从上图中发现,empty目录被删除了

[root@ecs-99730 kiko_class]# rmdir test //尝试删除非空目录test目录
rmdir: failed to remove 'test': Directory not empty //报错显示:目录非空,无法用rmdir指令删除

 ✨✨✨我是分割线✨✨✨

✅8.rm指令:删除文件或目录


🍊rm 删除文件

[root@ecs-99730 kiko_class]# ls
anana  file  filel  test1.c  test.c
[root@ecs-99730 kiko_class]# rm test.c //删除test.c文件
rm: remove regular empty file 'test.c'? 1  //是否确定删除? 1-确定
[root@ecs-99730 kiko_class]# ls
anana  file  filel  test1.c //可见test.c文件已被删除
[root@ecs-99730 kiko_class]# 

🍊rm -f 强制删除文件

·可以以普通用户的身份强制删除root编写的文件


🍊rm -r 递归删除非空目录

[root@ecs-99730 ~]# tree .
.
└── kiko_class
    ├── anana
    ├── file
    ├── filel
    ├── test
    │   └── test1
    │       └── test2
    │           └── test3
    │               └── file.c
    ├── test1.c
    └── test.c
[root@ecs-99730 kiko_class]# ls
anana  file  filel  test  test1.c  test.c
[root@ecs-99730 kiko_class]# rm -r test //递归删除test目录
rm: descend into directory 'test'? 1
rm: descend into directory 'test/test1'? 1
rm: descend into directory 'test/test1/test2'? 1
rm: descend into directory 'test/test1/test2/test3'? 1
rm: remove directory 'test/test1/test2/test3/file.c'? 1
rm: remove directory 'test/test1/test2/test3'? 1
rm: remove directory 'test/test1/test2'? 1
rm: remove directory 'test/test1'? 1
rm: remove directory 'test'? 1
[root@ecs-99730 kiko_class]# ls
anana  file  filel  test1.c  test.c //可见,此时test目录已被删除

🍊rm -rf 强制递归删除非空目录

rm -rf /   //强制删除根目录下的所有目录

以上是关于第一话·Linux入门必看之·用一首歌的时间带你认识她~的主要内容,如果未能解决你的问题,请参考以下文章

用一首圣诞歌的时间·入门操作系统吧~

4个步骤带你搞定大数据,Linux到大数据学习路线资料(绝对必看)

第一话·彻底搞清数据结构中的·逻辑结构&存储结构

第四话·数据结构必看之·单链表就这?

第五话·数据结构必看之·栈 真的这么简单?

计算机网络必看之·你确定了解传输层吗?