Linux是一种自由和开放源代码的类UNIX操作系统。
是linus在1991年10月5日首次发布。
开放的、子域的遵循GNU许可。
任何个人和机构都可以自由的使用Linux的所有底层源码
Linux发行版=Linux内核+软件集合
来自维基百科的释义:
https://zh.wikipedia.org/wiki/Linux%E5%8F%91%E8%A1%8C%E7%89%88
个人桌面版
企业服务器版
Linux发展史图
注意右上角:Open Source(开源的)、Mixed/shared source (半开源)、 Closed source (关源)
在这里我们还可以看到Mac OS它是基于Unix Version 8封装改造的,这也是为什么它和linux这么像,与之不同的是,Linux是基于Unix的特性自己开发的,而Mac OS它是直接使用改造的!
Linux内核官网
在这里我们可以查询到Linux内核的最新版本
(Windows、Linux、MacOS)三大系统的区别
开源的类Unix操作系统宏内核。整个Linux操作系统家族基于该内核部署在传统的计算机平台和嵌入式平台上。
包括现在的电脑、服务器、手机、路由器、交换机、机顶盒、智能电视等等。
从技术上讲:Linux是一个符合POSIX标准的内核。提供了一套应用程序接口,通过该接口用户能和内核以及硬件打交道。
宏内核:
简单来说,就是把很多东西都集成进内核,例如linux内核,除了最基本的进程、线程管理、内存管理外,文件系统,驱动,网络协议等等都在内核里面。优点是效率高。缺点是稳定性差,开发过程中的bug经常会导致整个系统挂掉。做驱动开发的应该经常有按电源键强行关机的经历。
参考文章:宏内核与微内核、Linux内核与Unix内核的区别
https://blog.csdn.net/silencegll/article/details/51496158
POSIX标准
POSIX表示可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX ),POSIX标准定义了操作系统应该为应用程序提供的接口标准。
POSIX标准意在期望获得源代码级别的软件可移植性。换句话说,为一个POSIX兼容的操作系统编写的程序,应该可以在任何其它的POSIX操作系统(即使是来自另一个厂商)上编译执行。
参考文章:
一、POSIX介绍
https://blog.csdn.net/weixin_40039738/article/details/81867577
二、POSIX API
https://www.cnblogs.com/alexliu2360/p/5674345.html
三、知乎来源
https://www.zhihu.com/question/21048638
Linux内核图
从图中可以看出,内核的最上层是系统的调用接口,简称(SCI),然后其下是进程管理(PM)、文件系统(VFS)、内存管理(MM)、网络堆栈,最底下是相关的硬件和驱动
内核、操作系统
单一的Linux内核不是一套完整的操作系统
内核 --> 操作系统
内核 --> 发行版本
**参考文章:**https://blog.51cto.com/12674559/2095216
查看系统信息
uname -a
Linux xxx.xxx.xxx.xxx.xxx.com 4.10.4-1.el7.elrepo.x86_64 #1 SMP Sat Mar 18 12:50:10 EDT 2017 x86_64 x86_64 x86_64 GNU/Linux
cat /etc/system-release
CentOS Linux release 7.3.1611 (Core)
查看cpu
cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 13
model name : QEMU Virtual CPU version (cpu64-rhel6)
stepping : 3
microcode : 0x1
cpu MHz : 2599.998
cache size : 16384 KB
physical id : 0
siblings : 1
core id : 0
cpu cores : 1
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm rep_good nopl xtopology pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt aes xsave avx f16c rdrand hypervisor lahf_lm fsgsbase smep xsaveopt
bugs :
bogomips : 5199.99
clflush size : 64
cache_alignment : 64
address sizes : 46 bits physical, 48 bits virtual
power management:
查看内存
free -m
free -g
总内存(total) 4G,用了239M(used)还剩3G(free)
total used free shared buff/cache available
Mem: 3771 239 3139 11 392 3234
Swap: 2047 0 2047
创建目录
mkdir dir_name
mkdir -p dir/dir/ 使用-p可以创建多级目录
删除目录
rm dir_name
rm -f dir_name
创建文件
touch filename
vi filename
echo “test” > filename
拷贝目录
cp -r from to
进入目录
cd dir
移动目录
mv from to
拷贝文件
cp from to
查看文件
cat
查看所有内容, 只适合查看小文件,如果文件非常大,千万不要使用它No cat
cat test.log
cat /data/server/test.log
或者
cat *.log
less
分页查看
less test.log
history | less
浏览多个文件
less test1.log test2.log 使用n和p切换文件
参数:
当然了,还有我们的more
命令
more test.log 使用方法和less类似,它俩差不多
Find(在整个文件树中查找)
find / -name test.log
find /data/server/ -name test.log
Locate(需要安装)
locate的特点是根据已生成的数据库查找,速度较快,但是查找的是快照数据,不准确。
安装使用
1.yum install mlocate
2.updatedb
然后就可以使用了,比如查看passwd
locate passwd
locate虽然查找速度特别快,但是它是基于快照数据,在本地有缓存的DB的,对于新的文件需要更新locate的数据库
updatedb
whereis
二进制的查找适合查找程序名称等等
举例:
whereis java
whereis python
which
查看执行文件的位置
which java
which python
which ls
which bash
…
统计文件个数
ls -l | grep “0-sec” |wc -l
这是由主要的3条命令组成
ls - l 然后利用管道符使用grep筛选,最后使用wc统计
统计文件行数
cat test.log | wc-l
搜索+统计
grep “/login” test.log >| wc -l
查看磁盘
df -h
du
报告磁盘空间使用情况
du -a
du -sh *
查看带宽(需安装,这里不演示了)
iftop
查看链接数
查看某个端口的连接情况
netstat
统计80端口连接数量
netstat -ntpl | grep 80|wc -l
ok!那么今天是更新不完了,明天继续给更新下一篇文章《Linux应用性能分析及故障排查》