只有光头才能变强
这个学期开了Linux的课程了,授课的老师也是比较负责任的一位。总的来说也算是比较系统地学习了一下Linux了~~~
本文章主要是总结Linux的基础操作以及一些简单的概念~如果不熟悉的同学可下个Linux来玩玩(或者去买一个服务器玩玩【学生版的不是很贵】),对于开发者来说,能使用Linux做一些基本的操作是必要的!
那么接下来就开始吧,当然了我的Linux仅仅是入门水平,如果有错的地方还需请大家多多包涵,并不吝在评论区指出错误~
一、为什么我们要学习Linux相信大部分人的PC端都是用Windows系统的,那我们为什么要学习Linux这个操作系统呢???Windows图形化界面做得这么好,日常基本使用的话,学习成本几乎为零。
而Linux不一样,可能刚接触Linux的人会认为:Linux好麻烦哦,不好玩,都是字符界面。不直观、这个破系统是用来干嘛的~~
日常用的话Windows是比较顺手的,但是我们要知道的是:我们开发出来的程序一般都是放在Linux下运行的。
那可能就会有人提出疑问了:Windows同样是操作系统,为啥要放在Linux下,而不放在Windows下呢??相信Windows也是可以运行我们写出来的程序的。
我总结了Linux的几个优点:
免费
很多软件原生是在Linux下运行的,庞大的社区支持,生态环境好。
开源,可被定制,开放,多用户的网络操作系统。
相对安全稳定
参考资料:
https://www.zhihu.com/question/19738282
所以开发者选择了Linux来跑我们自己写出来的程序。
二、Linux的基础知识Linux系统的组成:
linux内核(linus 团队管理)
shell:用户与内核交互的接口
文件系统:ext3、ext4等。windows 有 fat32 、ntfs
第三方应用软件
2.1Shell的基本知识除了Shell、其他的都应该挺好懂的,那么Shell是什么东西呢???
Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口(命令解释器)
Shell可以执行:
内部命令
应用程序
shell脚本
使用type命令可以区分内部命令和外部命令
于是乎,我们利用Shell就可以干下面这些事了:
命令行解释(这是用得最多的!)
命令的多种执行顺序
通配符( wild-card characters )
命令补全、别名机制、命令历史
I/O重定向( Input/output redirection )
管道( pipes )
命令替换(` ` 或$( ) )
Shell编程语言( Shell Script )
Shell的主要版本有以下这么多:
我们常用(默认)的就是bash(bourne again shell)
使用ps命令观察正在执行的shell
2.2Linux基本目录结构在Windows下,会有基本的目录结构的:
Linux下也不例外了,也是有基本的目录结构的:
Linux 文件系统是一个目录树的结构,文件系统结构从一个根目录开始,根目录下可以有任意多个文件和子目录,子目录中又可以有任意多个文件和子目录
bin 存放二进制可执行文件(ls,cat,mkdir等)
boot 存放用于系统引导时使用的各种文件
dev 用于存放设备文件
etc 存放系统配置文件
home 存放所有用户文件的根目录
lib 存放跟文件系统中的程序运行所需要的共享库及内核模块
mnt 系统管理员安装临时文件系统的安装点
opt 额外安装的可选应用程序包所放置的位置
proc 虚拟文件系统,存放当前内存的映射
root 超级用户目录
sbin 存放二进制可执行文件,只有root才能访问
tmp 用于存放各种临时文件
usr 用于存放系统应用程序,比较重要的目录/usr/local 本地管理员软件安装目录
var 用于存放运行时需要改变数据的文件
2.3命令基本格式cmd [options] [arguments],options称为选项,arguments称为参数
选项和参数都作为Shell命令执行时的输入,它们之间用空格分隔开。
Linux是区分大小写的
一般来说,后面跟的选项如果单字符选项前使用一个减号-。单词选项前使用两个减号--
这是一般的情况,有些命令还是不归属这种规律的(相对较少)~~~
例子:ls -a和ls -all,a 单个字符使用一个-,一个单词all 使用两个--
在Linux中,可执行的文件也进行了分类:
内置命令:出于效率的考虑,将一些常用命令的解释程序构造在Shell内部。
外置命令:存放在/bin、/sbin目录下的命令
实用程序:存放在/usr/bin、/usr/sbin、/usr/share、/usr/local/bin等目录下的实用程序
用户程序:用户程序经过编译生成可执行文件后,可作为Shell命令运行
Shell脚本:由Shell语言编写的批处理文件,可作为Shell命令运行
2.4通配符学过一些正则表达式的或者有点基础的同学对通配符应该就不陌生的了,在Linux也有通配符(在搜索的时候挺有用的)
*:匹配任何字符和任何数目的字符
?:匹配单一数目的任何字符
[ ]:匹配[ ]之内的任意一个字符
[! ]:匹配除了[! ]之外的任意一个字符,!表示非的意思
2.5文件的类型在Linux下文件的类型有这么多:
普通文件-
目录d
符号链接 l
硬链接: 与普通文件没什么不同,inode 都指向同一个文件在硬盘中的区块