【Lunix】发展史及其基础指令
前言
Linux 是一种开源、免费的操作系统内核,由芬兰程序员林纳斯·托瓦兹(Linus Torvalds)于1991年首次发布。它以稳定性、安全性、高性能和高度可定制性著称,广泛应用于服务器、嵌入式设备、超级计算机以及个人电脑。在此之上,Linux底层是由汇编语言和C语言实现的。今天就让我们了解Linux的 基础指令吧!
一、 Linux 发展史:
1、UNIX 的起源与发展(铺垫 Linux 诞生基础)
1968 年通用电气、贝尔实验室和 MIT 联合开发了Multics 操作系统,首次尝试多任务、多用户管理,为后续系统提供概念基础。
1969-1970 年贝尔实验室的Ken Thompson和Dennis Ritchie基于 Multics 开发了UNIX,运行于小型机,支持多用户、多任务,奠定高效操作系统架构。
1970-1980 年代UNIX 早期免费供大学使用(如加州大学伯克利分校),后推出商业版本(如 AT&T 的 System 系列)。伯克利分校开发了BSD 版本 UNIX,新增网络功能(如 TCP/IP 协议),成为 UNIX 重要分支,与 AT&T 的 System V 形成竞争。
1990 年代初UNIX 版本碎片化问题凸显,AT&T 与 Novell、IBM 等厂商尝试统一标准(如 System V Release 4),但市场仍分裂为 System V 和 BSD 两大阵营。
2、Linux 的诞生与崛起(1991 年至今)
诞生:受 Minix 启发的极客项目(1991 年)芬兰⼤学⽣Linus Torvalds因不满 Minix(UNIX 简化教学版)的局限性,在 Usenet 宣布开发类似 UNIX 的操作系统,最初版本称为Linux 0.02(首个公开可用版本)。
核心目标:打造免费、开源、运行于个人计算机的类 UNIX 系统。
社区驱动的快速迭代(1991-1994 年)全球开发者通过开源社区贡献代码,版本从 0.02 迅速升级至 0.95,功能逐渐完善(支持 bash、gcc 等工具)。
1994 年,发布Linux 1.0,标志着系统正式成熟,内核代码量超 17 万行。
与 GNU 项目结合,形成完整生态(1990 年代)Linux 内核与GNU 开源软件(如编译器、编辑器、系统工具)结合,形成 “Linux+GNU” 的完整操作系统,遵循GPL 协议(强制开源修改后的代码)。
开源模式推动 Linux 快速普及,衍生出众多发行版(如 Debian、Red Hat)。商业化与多领域扩张(2000 年代至今)
服务器领域:凭借稳定性和低成本,占据 75% 以上市场份额,成为企业级应用首选(如金融、电信、云计算)。
桌面与嵌入式:Ubuntu 等发行版尝试普及桌面应用,虽未撼动 Windows,但在移动设备(如 Android 基于 Linux 内核)和物联网领域广泛应用。
云计算与大数据:86% 的企业采用 Linux 构建云平台(如 AWS、阿里云),成为开源技术栈的核心。
3、关键对比:Linux vs. UNIX
UNIX:商业闭源(如 Solaris、AIX),主要用于高端服务器和工作站,标准化进程缓慢。
Linux:开源免费,社区驱动,快速适配新技术,通过发行版(如 CentOS、Debian)满足不同场景需求。
总结:从极客玩具到技术基石
Linux 从⼀名学⽣的业余项目,凭借开源协作的⼒量,发展为全球最具影响⼒的操作系统之一。其发展史不仅是技术的胜利,更是开源文化颠覆传统软件产业的典范,如今在服务器、移动设备、云计算等领域稳居核心地位。
二、Linux基础指令
1、ls 指令
语法: ls [选项] [⽬录或⽂件]
功能:对于⽬录,该命令列出该⽬录下的所有⼦⽬录与⽂件。对于⽂件,将列出⽂件名以及其他信
息。
常⽤选项:
• -a 列出⽬录下的所有⽂件,包括以 . 开头的隐含⽂件。
• -d 将⽬录像⽂件⼀样显⽰,⽽不是显⽰其下的⽂件。 如:ls ‒d 指定⽬录
• -i 输出⽂件的 i 节点的索引信息。 如 ls ‒ai 指定⽂件
• -k 以 k 字节的形式表⽰⽂件的⼤⼩。ls ‒alk 指定⽂件
• -l 列出⽂件的详细信息
• -n ⽤数字的 UID,GID 代替名称。 (介绍 UID, GID)
• -F 在每个⽂件名后附上⼀个字符以说明该⽂件的类型,“*”表⽰可执⾏的普通⽂件;“/”表⽰
⽬录;“@”表⽰符号链接;“|”表⽰FIFOs;“=”表⽰套接字(sockets)。(⽬录类型识别)
• -r 对⽬录反向排序
• -t 以时间排序
• -s 在l⽂件名后输出该⽂件的⼤⼩。(⼤⼩排序,如何找到⽬录下最⼤的⽂件)
• -R 列出所有⼦⽬录下的⽂件。(递归)
• -1 ⼀⾏只输出⼀个⽂件。
例:
2、pwd 命令
Linux理论知识:路径的认识
• Linux系统中,磁盘上的⽂件和⽬录被组成⼀棵⽬录树,每个节点都是⽬录或⽂件
• 其中普通⽂件⼀定是⽬录树的叶⼦节点
• ⽬录可能是叶⼦(空⽬录), 也可能是路上节点
• 理解路径存在的意义: 树状组织⽅式,都是为了保证快速定位查找到指定的⽂件,⽽定位⽂件就
需要具有唯⼀性的⽅案来进⾏定位⽂件。其中任何⼀个节点,都只有⼀个⽗节点,所以,从根⽬
录开始,定位指定⽂件,路径具有唯⼀性
• 绝对路径:⼀般从/开始,不依赖其他⽬录的定位⽂件的⽅式
• 相对路径:相对于当前⽤⼾所处⽬录,定位⽂件的路径⽅式
• 绝对路径⼀般不会随着⽤⼾的路径变化⽽丧失唯⼀性,⼀般在特定服务的配置⽂件中经常被使⽤
• 相对路径因为它的便捷性,⼀般在命令⾏中使⽤较多

3、touch 指令
Linux理论知识:⽂件类型的认识
语法: touch [选项]... ⽂件...
功能:touch命令参数可更改⽂档或⽬录的⽇期时间,包括存取时间和更改时间,或者新建⼀个不存在的⽂件。
常⽤选项:
• -a : change only the access time
• -c : change only the modification time
举例:

4、mkdir 指令

语法: rm [-f-i-r-v] [dirName/dir]
适⽤对象:所有使⽤者
功能:删除⽂件或⽬录
常⽤选项:
• -f 即使⽂件属性为只读(即写保护),亦直接删除
• -i 删除前逐⼀询问确认
• -r 删除⽬录及其下所有⽂件
举例:

5、man 指令
Linux的命令有很多参数,我们不可能全记住,可以通过查看联机⼿册获取帮助
语法: man [选项] 命令
常⽤选项
• -k 根据关键字搜索联机帮助
• num 只在第num章节查找
• -a 将所有章节的都显⽰出来,⽐如 man printf 它缺省从第⼀章开始搜索,知道就停⽌,⽤a选
项,当按下q退出,他会继续往后⾯搜索,直到所有章节都搜索完毕解释⼀下:man⼿册分为9章(不同系统可能会有差别)
• 1 是普通的命令
• 2 是系统调⽤,如open,write之类的(通过这个,⾄少可以很⽅便的查到调⽤这个函数,需要加什么
头⽂件)
• 3 是库函数,如printf,fread4是特殊⽂件,也就是/dev下的各种设备⽂件
• 4 略
• 5 是指⽂件的格式,⽐如passwd, 就会说明这个⽂件中各个字段的含义
• 6 是给游戏留的,由各个游戏⾃⼰定义
• 7 是附件还有⼀些变量,⽐如像environ这种全局变量在这⾥就有说明
• 8 是系统管理⽤的命令,这些命令只能由root使⽤,如ifconfig
• 9 略
举例:
6、cp 指令
语法: cp [选项] 源⽂件或⽬录 ⽬标⽂件或⽬录
功能: 复制⽂件或⽬录
说明:
• cp指令⽤于复制⽂件或⽬录
• 如同时指定两个以上的⽂件或⽬录,且最后的⽬的地是⼀个已经存在的⽬录,则它会把前⾯指定
的所有⽂件或⽬录复制到此⽬录中
常⽤选项
• -f 或 --force 强⾏复制⽂件或⽬录, 不论⽬的⽂件或⽬录是否已经存在
• -i 或 --interactive 覆盖⽂件之前先询问⽤⼾
• -r 递归处理,将指定⽬录下的⽂件与⼦⽬录⼀并处理。若源⽂件或⽬录的形态,不属于⽬录或符
号链接,则⼀律视为普通⽂件处理

7、mv 指令
mv命令是move的缩写,可以⽤来移动⽂件或者将⽂件改名(move (rename) files,经常⽤来备份⽂件
或者⽬录
语法: mv [选项] 源⽂件或⽬录 ⽬标⽂件或⽬录
功能:
1. 视mv命令中第⼆个参数类型的不同(是⽬标⽂件还是⽬标⽬录),mv命令将⽂件重命名或将其
移⾄⼀个新的⽬录中。
2. 当第⼆个参数类型是⽂件时,mv命令完成⽂件重命名,此时,源⽂件只能有⼀个(也可以是源⽬
录名),它将所给的源⽂件或⽬录重命名为给定的⽬标⽂件名。
3. 当第⼆个参数是已存在的⽬录名称时,源⽂件或⽬录参数可以有多个,mv命令将各参数指定的源
⽂件均移⾄⽬标⽬录中。
常⽤选项:
• -f :force 强制的意思,如果⽬标⽂件已经存在,不会询问⽽直接覆盖
• -i :若⽬标⽂件 (destination) 已经存在时,就会询问是否覆盖!
举例:

8、cat 指令
语法: cat [选项] [⽂件]
功能: 查看⽬标⽂件的内容
常⽤选项:
• -b 对⾮空输出⾏编号
• -n 对输出的所有⾏编号
• -s 不输出多⾏空⾏
举例:

9、more 指令
语法: more [选项]
功能:more命令,功能类似 cat
常⽤选项:
• -n 指定输出⾏数
• q 退出more
举例:

10、less 指令
• less ⼯具也是对⽂件或其它输出进⾏分⻚显⽰的⼯具,应该说是linux正统查看⽂件内容的⼯具,
功能极其强⼤
• less 的⽤法⽐起 more 更加的有弹性,在 more 的时候,我们并没有办法向前⾯翻, 只能往后⾯
看
• 但若使⽤了 less 时,就可以使⽤ [pageup] [pagedown] 等按键的功能来往前往后翻看⽂件,更
容易⽤来查看⼀个⽂件的内容
• 除此之外,在 less ⾥头可以拥有更多的搜索功能,不⽌可以向下搜,也可以向上搜。
语法: less [参数] ⽂件
功能:less与more类似,但使⽤less可以随意浏览⽂件,⽽more仅能向前移动,却不能向后移动,⽽
且less在查看之前不会加载整个⽂件。
选项:
• -i 忽略搜索时的⼤⼩写
• -N 显⽰每⾏的⾏号
• /字符串:向下搜索“字符串”的功能
• ?字符串:向上搜索“字符串”的功能
• n:重复前⼀个搜索(与 / 或 ? 有关)
• N:反向重复前⼀个搜索(与 / 或 ? 有关)
• q:quit
举例:

11、head 指令
head 与 tail 就像它的名字⼀样的浅显易懂,它是⽤来显⽰开头或结尾某个数量的⽂字区块,head ⽤
来显⽰档案的开头⾄标准输出中,⽽ tail 想当然尔就是看档案的结尾。
语法:
head [参数]... [⽂件]...
功能:
head ⽤来显⽰档案的开头⾄标准输出中,默认head命令打印其相应⽂件的开头10⾏。
选项:
• -n<⾏数> 显⽰的⾏数
举例:

12、tail 指令
tail 命令从指定点开始将⽂件写到标准输出.使⽤tail命令的-f选项可以⽅便的查阅正在改变的⽇志⽂
件,tail -f filename会把filename⾥最尾部的内容显⽰在屏幕上,并且不断刷新,使你看到最新的⽂件内容.
语法: tail 必要参数 [⽂件]
功能:⽤于显⽰指定⽂件末尾内容,不指定⽂件时,作为输⼊信息进⾏处理。常⽤查看⽇志⽂件。
选项:
• -f 循环读取
• -n<⾏数> 显⽰⾏数
举例:

13、date 指令
指定格式显⽰时间: date +%Y:%m:%d
⽤法: date [OPTION]... [+FORMAT]
1. 在显⽰⽅⾯,使⽤者可以设定欲显⽰的格式,格式设定为⼀个加号后接数个标记,其中常⽤的标记
列表如下
• %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
2. 在设定时间⽅⾯
• date -s 20080523 //设置成20080523,这样会把具体时间设置成空00:00:00
• date -s 01:01:01 //设置具体时间,不会对⽇期做更改
• date -s “01:01:01 2008-05-23″ //这样可以设置全部时间
• date -s “01:01:01 20080523″ //这样可以设置全部时间
• date -s “2008-05-23 01:01:01″ //这样可以设置全部时间
• date -s “20080523 01:01:01″ //这样可以设置全部时间
3. 时间戳
• 时间->时间戳:date +%s
• 时间戳->时间:date -d@1508749502
• Unix时间戳(英⽂为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1⽉1
⽇(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒
4. 举例

14、cal 指令
cal命令可以⽤来显⽰公历(阳历)⽇历。公历是现在国际通⽤的历法,⼜称格列历,通称阳历。“阳
历”⼜名“太阳历”,系以地球绕⾏太阳⼀周为⼀年,为西⽅各国所通⽤,故⼜名“西历”。
命令格式: cal 参数 [年份]
功能:⽤于查看⽇历等时间信息,如只有⼀个参数,则表⽰年份(1-9999),如有两个参数,则表⽰⽉份和年份
常⽤选项:
• -3 显⽰系统前⼀个⽉,当前⽉,下⼀个⽉的⽉历
• -j 显⽰在当年中的第⼏天(⼀年⽇期按天算,从1⽉1号算起,默认显⽰当前⽉在⼀年中的天数)
• -y 显⽰当前年份的⽇历
举例:

15、find 指令
• Linux下find命令在⽬录结构中搜索⽂件,并执⾏指定的操作。
• Linux下find命令提供了相当多的查找条件,功能很强⼤。由于find具有强⼤的功能,所以它的选
项也很多,其中⼤部分选项都值得我们花时间来了解⼀下。
• 即使系统中含有⽹络⽂件系统( NFS),find命令在该⽂件系统中同样有效,只你具有相应的权
限。
• 在运⾏⼀个⾮常消耗资源的find命令时,很多⼈都倾向于把它放在后台执⾏,因为遍历⼀个⼤的
⽂件系统可能会花费很⻓的时间(这⾥是指30G字节以上的⽂件系统)。
语法: find pathname -options
功能:⽤于在⽂件树中查找⽂件,并作出相应的处理(可能访问磁盘)
常⽤选项
• -name 按照⽂件名查找⽂件
• 其他选项需要在查,这个命令其实⽐较复杂

16、which 指令

17、whereis 指令

18、alias 指令

19、grep 指令
语法: grep [选项] 搜寻字符串 ⽂件
功能:在⽂件中搜索字符串,将找到的⾏打印出来
常⽤选项:
• -i :忽略⼤⼩写的不同,所以⼤⼩写视为相同
• -n :顺便输出⾏号
• -v :反向选择,亦即显⽰出没有 '搜寻字符串' 内容的那⼀⾏
举例:

20、zip/unzip 指令
语法: zip 压缩⽂件.zip ⽬录或⽂件
功能:将⽬录或⽂件压缩成zip格式
常⽤选项
•
-r:递归处理,将指定⽬录下的所有⽂件和⼦⽬
366
录⼀并处理
• :递归处理,将指定⽬录下的所有⽂件和⼦⽬录 并处理
举例:


21、tar 指令(重要)
打包/解包,不打开它,直接看内容
语法: tar [-cxtzjvf] ⽂件与⽬录 ....
参数:
• -c :建⽴⼀个压缩⽂件的参数指令(create 的意思);
• -x :解开⼀个压缩⽂件的参数指令!
• -t :查看 tarfile ⾥⾯的⽂件!
• -z :是否同时具有 gzip 的属性?亦即是否需要⽤ gzip 压缩?
• -j :是否同时具有 bzip2 的属性?亦即是否需要⽤ bzip2 压缩?
• -v :压缩的过程中显⽰⽂件!这个常⽤,但不建议⽤在背景执⾏过程!
• -f :使⽤档名,请留意,在 f 之后要⽴即接档名喔!不要再加参数!
• -C : 解压到指定⽬录
案例:
范例⼀:将整个 /etc ⽬录下的⽂件全部打包成为 `/tmp/etc.tar

22、bc 指令
bc命令可以很⽅便的进⾏浮点运算

uname ‒r 指令
语法:uname [选项
功能: uname⽤来获取电脑和操作系统的相关信息。
补充说明:uname可显⽰linux主机所⽤的操作系统的版本、硬件的名称等基本信息。
常⽤选项:
• -a或‒all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理
器类型,硬件平台类型,操作系统名称
重要的⼏个热键 [Tab], [ctrl]-c, [ctrl]-d
• [Tab]按键---具有『命令补全』和『档案补⻬』的功能
• [Ctrl]-c按键---让当前的程序『停掉』
• [Ctrl]-d按键---通常代表着:『键盘输⼊结束(End Of File, EOF 戒 End OfInput)』的意思;另外,
他也可以⽤来取代exit关机
语法:shutdown [选项]
常⻅选项:
• -h:将系统的服务停掉后,⽴即关机。
• -r:在将系统的服务停掉之后就重新启动
• -t sec:-t 后⾯加秒数,亦即『过⼏秒后关机』的意思
三、以下命令作为扩展
• 安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、
exit、last;
• ⽂件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln;
• 系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab;
• ⽹络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、
mail、 nslookup;
• 系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、
who;
• 其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。
总结:
openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。
更多推荐


所有评论(0)