Linux简史:
自打1946年2月14日,第一台用来计算导弹弹道轨迹的计算机——埃尼阿克诞生以后,逐渐商业化,各种大佬入场研发升级,都是外国人的恩怨故事。
Unix之父——肯•汤普森(Ken Thompson)发明了UNIX操作系统,价格昂贵,一般企业高校用,汇编语言实现,可移植性很差;C语言之父——丹尼斯·里奇(Dennis MacAlistair Ritchie)和汤普森一商量,写出了C语言版本的UNIX,随后高校的学生也能有机会上手操作使用。
这就点亮了某一位同学的技能树:Linux之父——林纳斯·托瓦兹(Linus Benedict Torvalds),写出了类UNIX的操作系统,取名Linux(Linux is not unix),开源免费。天下苦收费久矣,于是有很多人出于使命感和兴趣参与进来迭代更新,逐渐成了开源的代名词。
Linux是自由软件和开放源代码软件发展中最著名的例子。只要遵循GNU通用公共许可证,任何个人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。
Linux内核官网,基于内核版本的二次开发商业发行版本有:Debian ,Ubuntu ,CentOS,Fedora ,Kali Linux ,红帽企业级Linux等等。
严格来讲,Linux只是操作系统内核本身,但通常采用“Linux内核”来表达该意思。而Linux则常用来指基于Linux内核的完整操作系统,它包括GUI组件和许多其他实用工具。图形用户界面(Graphical User Interface,简称 GUI),是计算机图形学技术的一种,它一般由窗口、下拉菜单或者对话框等图形化的控件组成。
- 什么是Linux内核,什么是Linux发行版本
操作系统概念:
程序员不直接和这些硬件打交道,在硬件的基础之上,计算机安装了一层软件,这层软件能够通过响应用户输入的指令达到控制硬件的效果,从而满足用户需求,这种软件称之为 操作系统,它的任务就是为用户程序提供一个更好、更简单、更清晰的计算机模型。
设备驱动:
操作系统做决策,设备驱动做执行;真正的管理者,是不会和被管理者(硬件)直接打交道。
命令行 VS 图形界面:
那个年代,乔布斯的mac os借鉴施乐公司,发明了第一款图形界面os,让人体验更好。随后比尔盖茨跟进,有了windows。由于苹果软硬件都自己做,成本比较贵;
windows也试了一下,搞不赢,就和英特尔合作;降低了成本,才有了便宜的笔记本。起初windows也是盗版横行,没法对每个用户起诉,于是就对笔记本厂商起诉,逐渐的实现了捆绑销售。笔记本厂商付钱,用户相当白嫖。图形界面在用户体验上是进步的,当计算机足够便宜,方便使用,才有了现在广泛普及。起初微软是要个IBM合作的,但IBM觉得平民未来不可能用得上以及会用计算机。
Linux这种命令行操作,可以说就是给专业人用的,有门槛,不刻意讨好用户;所以在企业服务器端广泛应用,几乎处于垄断地位。另外更接近原生系统,且先有键盘后有鼠标。
移动互联网到来时,谷歌对抗苹果,买下安卓(基于Linux开发)前身的某家公司,有了安卓机的今天。
乔布斯:要不是你托,企业现在也得用我的,还有你盖茨,你抄我作业
盖茨:你也是抄的别人的
总结:Linux是一款开源的企业级后台操作系统,命令行方式交互,稳定且高效。
环境搭建:
X Shell登录与创建多个账户:
ls /home //看一下都有哪些人在用..
adduser name
passwd name //输密码是不显示的,回车结束,然后会在输一遍
whoami //显示当前是哪个用户
pwd //显示当前路径
Linux 中所有内容都是以文件的形式保存和管理的,即一切皆文件,普通文件是文件,目录(Windows 下称为文件夹)是文件,硬件设备(键盘、监视器、硬盘、打印机)是文件,就连套接字(socket)、网络通信等资源也都是文件。
/root
touch t1.xtx //创建普通文件
mkdir -p t1/t2.t3 //创建多级目录
mkdir t1 //创建t1目录
ls -l //显示当前目录下所有文件时间 用户id,组id等具体信息
ls -a //显示隐藏文件
. //当前目录
.. //上一级目录
tree . //递归显示当前路径下的所有文件
//若没有该命令,则需切回至root用户 输入:yum install -y tree
cd .. //回退上级目录
cd - //在最近的目录之间切换
cd ~ //回到家目录,用户目录
cd t1 //进入t1目录
cd t1/ //效果一样
cp -r t1 ../tt1 //递归复制t1目录 至 上一级的tt1目录下
mv t1.xtx t1.txt //重命名
mv t1.xtx ../tt1 //将文件移动至 上一级的tt1 目录下
nano t1.xtx //像记事本一样对 t1.xtx 进行编辑
cat t1.xtx //将文件内容输出到显示器
tac t1.xtx //从文件末尾行倒着显示
//适合显示小文件,多了会刷屏。
more -3 t1.xtx //只显示该文件的前三行,支持分页显示,不支持向上滚动
less t1.xtx //分页显示文件的内容,支持上下翻页 /支持搜索,显示在内容所在的那一页
rm -rf t1 //强制递归删除t1目录
rmdir t0 //删除空目录
rm t1.xtx //删除普通文件
rm -i * //逐个删除当前目录下的所有文件
rm -i *.xtx //逐个删除当前目录下的.xtx文件
* //通配符
grep -i 'hello' t1.xtx // -i 忽略大小写 显示有'hello'内容的那些行
//过滤
grep -v 'hello' t1.xtx // 显示不带有'hello'内容的那些行
grep -E -i 'hello|hhd' t1.xtx //显示有'hello'和'hhd'内容的那些行
which ls //查找命令所在的文件路径
whereis ls //在系统的特定路径下,进行命令或文档的相关查找
find ../t1 //在上一级目录下寻找t1文件
管道:一个命令的数据,传递给另一个命令
dmesg | grep -i 'error' | more —3 //系统的日志文件,过滤一下错误信息,只显示前三行。
echo "hello"
-e选项后, \n被赋予了"神奇的能力", 它实现了换行效果
echo -e "hello\nhhd"
输出重定向 > ,将原本输出到某文件的内容,输出到另一个文件当中
echo "hello" > t1.xtx //将 hello 输出到 t1文件中,会清空该文件的原来内容,写入新内容
//如何快速清空一个文件的内容?
> t1.xtx //空输入到文件中...秒清.
追加重定向 >>
echo "hello" >> t1.xtx //在文件末尾追加新内容
输入重定向
cat < t1.xtx //先输入重定向,在读取t1.xtx的内容。
cat t1.xtx //程序直接打开文件读取
alias clr='clear' //对命令clear 起别名,输入clr 调用的是clear ,清屏;旨在当次登陆有效
stat t1.xtx //显示:最近一次访问文件的时间
//最近一次修改文件内容的时间
//最近一次修改文件属性的时间
日历:
cal 1999 //显示1999年的日历
cal -3 //显示临近三个月的日历
时间戳:比较适合进行范围查找,占用内存小
date +%s //从1970年1月1日00:00:00到当前的秒数,格林威治时间
date +%X //相当于 %H:%M:%S 时分秒
date +%F //相当于 %Y-%m-%d 年月日
zip -r t1.zip t1/ //将t1目录打包压缩
-r 递归处理,将指定目录下的所有文件和子目录一并处理
unzip t1.zip -d ../tmp //解压缩到上一级的tmp目录下
head t1.xtx //默认显示一个文件的头部10行内容
head -n3 t1.xtx //显示前3行内容
tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件
tail -f filename //会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容
tail -n3 t1.xtx
head -n2001 log.txt | tail -n10 | tac
tar czvf t1.tgz t1 //打包压缩过程显示出来
tar xzvf t1.tgz //在当前目录下解压
tar xzvf t1.tgz -C tt1 //解压到tt1 目录下
[saul@VM-12-7-centos ~]$ pwd
/home/saul
[saul@VM-12-7-centos ~]$ ll
total 24
drwxrwxr-x 2 saul saul 4096 Jul 20 17:07 tt718
drwxrwxr-x 3 saul saul 4096 Jul 20 16:16 tt719
-rw-rw-r-- 1 saul saul 12102 Jul 20 16:25 tt719.tgz
drwxrwxr-x 2 saul saul 4096 Jul 20 17:34 tt720
[saul@VM-12-7-centos ~]$ rm
rm rmail rmail.postfix rmdir rmmod
[saul@VM-12-7-centos ~]$ rmdir
[saul@VM-12-7-centos ~]$ uname -a //查看具体信息
Linux VM-12-7-centos 3.10.0-1160.62.1.el7.x86_64 #1 SMP Tue Apr 5 16:57:59 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
VM-12-7-centos //主机名
3.10.0-1160.62.1.el7.x86_64 //内核版本 3 主版本 10 次版本,偶数通常代表是稳定版本;0 修正版本,修正一些小bug
x86_64 // cpu架构:微软和英特尔合作,一损俱损,一荣俱荣。Intel x86(32位),x86_64(64位操作系统)--> x64
smp //对称多处理
ctrl-c: ( kill foreground process ) 发送 SIGINT 信号给前台进程组中的所有进程,强制终止程序的执行;
ctrl-z: ( suspend foreground process ) 发送 SIGTSTP 信号给前台进程组中的所有进程,常用于挂起一个进程,而并非结束进程,用户可以使用使用fg/bg操作恢复执行前台或后台的进程。fg命令在前台恢复执行被挂起的进程,此时可以使用ctrl-z再次挂起该进程,bg命令在后台恢复执行被挂起的进程,而此时将无法使用ctrl-z再次挂起该进程。
shutdown -t 60 //60秒后关机
shutdown -h 立即关机
shutdown -r 重启
- 程序员中的那些梗,都是一些老程序员的顶级凡尔赛…hhh
- 意志不坚定如我