Linux基础知识
(1)什么是 shell?
首先shell的英文含义是“壳”;
它是相对于内核来说的,因为它是建立在内核的基础上,面向于用户的一种表现形式,比如我们看到一个球,见到的是它的壳,而非核。
Linux中的shell,是指一个面向用户的命令接口,表现形式就是一个可以由用户录入的界面,这个界面也可以反馈运行信息
(2)常用的 shell 有哪些?如何查看系统默认使用的 shell?
① sh Bourne shell
② csh C shell
③ ksh Korn shell
④ bash Bourne Again shell

注意:
$后面要写大写字母
环境变量的名称通常用大写字母来定义。实际上用小写字母来定义环境变量也不会报错,只是习惯上都是用大写字母来表示的。
首先说明一下,在Windows下是不区分大小写的,所以在Windows下怎么写都能获取到值。
而Linux下不同,区分大小写,无论是变量还是命令,大小写都会导致输出的值不一样。比如环境变量ENV和env可以定义不同的值,到最后输出这两个变量时也会不一样。
几种常见的SHELL介绍
https://blog.csdn.net/chuanzhilong/article/details/52586342
(3)内置 shell 命令 vs. 外部 shell 命令
内部命令:内部命令被构建在shell之中。当执行shell命令时,内部命令的执行速度非常快。这是因为没有其他的进程因为执行这条命令而被创建。比如说,当我们执行“cd”命令时,没有进程被创建。在执行过程中只是简单的改变当前的目录。
外部命令:外部命令并没有被构建在shell中。这些可执行的外部命令保存在一个独立的文件当中。当一个外部命令被执行时,一个新的进程即被创建同时命令被执行。比如说,当我们执行“ls”(通常被保存在/bin目录下)命令时,然后/bin/ls被执行
直接运行help可以查看所有的内置命令
我抽取help查询出来的内置命令验证,我感觉help的排版有些小问题 但是我暂时没有找到解决的办法,排版的问题可能对我理解文档有干扰,我查询了WHILE的类型结果是关键字


内部命令和外部命令参考资料摘自
https://blog.csdn.net/jiushijie1207/article/details/46972405
(4)shell 命令的使用方法
方法一直接在终端输入命令,平时进入目录cd直接在命令行终端中写入
方法二建立一个文本文件在里面
下面以方法二演示:
首先建立普通的文本,然后通过vi编辑,在里面写两条很简单的shell命令,最后用bash执行


(5)什么是文件系统?它的作用是什么?
Linux文件系统中的文件是数据的集合,文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux 用户和程序看到的文件、目录、软连接及文件保护信息等都存储在其中。作用就是存储数据还有文件系统结构。
Linux和windows的文件系统有很多不同,详情参见
https://baike.baidu.com/item/Linux%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F/10986747
(6)linux 支持的文件系统格式有哪些?
Linux系统核心可以支持十多种文件系统类型,比如Btrfs、JFS、
ReiserFS、ext、ext2、ext3、ext4、ISO9660、XFS、Minx、MSDOS、UMSDOS、VFAT、NTFS、HPFS、NFS、SMB、SysV、PROC等。
(7)linux 的目录结构,主要子目录的用途?

/bin
bin是binary的缩写。这个目录存放着使用者最经常使用的命令。例如cp、ls、cat,等等。
/boot
这里存放的是启动Linux时使用的一些核心文件。
/dev
dev是device(设备)的缩写。这个目录下是所有Linux的外部设备。
/etc
这个目录用来存放系统管理所需要的配置文件和子目录。
/home
用户的主目录。
/lib
这个目录里存放着系统最基本的动态链接共享库。
/lost+found
这个目录平时是空的,当系统不正常关机后,这里就成了一些无家可归的文件的避难所。/mnt
这个目录是空的,系统提供这个目录是让用户临时挂载别的文件系统。
/proc
这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。这个目录的内容不在硬盘上而是在内存里。
/root
系统管理员(也叫超级用户)的主目录。
/sbin
s就是Super User的意思,这里存放的是系统管理员使用的管理程序。
/tmp
用来存放一些临时文件
/var
这个目录中存放着那些不断在扩充着的东西,为了保持/usr的相对稳定,那些经常被修改的目录可以放在这个目录下。
/usr
这是最庞大的目录,我们要用到的应用程序和文件几乎都存放在这个目录下。
可以通过命令查看文件系统的结构
-L这个选项表示显示的层数 后面是1层就是根结构 显示2层结构太长 通过-d可以只显示目录


Linux基础命令练习
1.echo命令(我对这个命令的看法就是打印字符串内容,感觉很low)
echo命令用于在shell中打印shell变量的值,或者直接输出指定的字符串。linux的echo命令,在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的,因此有必要了解下echo的用法echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。


这里面的“;”要注意使用如果不使用的话,根据上面操作可以看出解释认为这是一个字符串
2.who命令(这里我结合echo来更好的理解who)


上面是两个命令终端可以通过在其中一个终端的echo命令传递给另外一个终端信息并让它来显示
这里比较“高大上”的一个名词恐怕就是TTY这个单词是Teletype的缩写,这里我姑且认为“2”和“18”两个伪终端的编号,(这里我在想Linux作为并发的系统是不是也体现在终端的并行上,可能在这个认识上有很大问题,但是目前水平有限,难以深究)
Linux中tty、pty、pts的概念区别
https://www.cnblogs.com/zengkefu/p/5558851.html
3.对-d -l -h等选项的理解

-d显示目录
-h大小以K为单位
-l显示9个字段的列表
Linux实验总结
总的来说这次实验大的收获就是练习了命令,但是练习过程中发现命令真的是太多了,也许看着文档、参考资料上能打的出来,但是脱离开来还真不一定能记住一些奇怪的命令,就比如说有一个命令显示时间格式我真脱离文档就忘。
我觉得Linux命令学习只能记住一些平时用的着的命令,而一些很少用到的命令要依靠文档的使用,文档才是学习命令的长久老师。但是Linux文档中好多都是英语,就拿此次实验来说看type ls出来的alias,我愣是不知道什么意思,这个词再文档中经常出现都没去想注释,知道用到这条命令才想到要去查看。
最后给自己一个提醒吧,多去操作,才能熟能生巧。