Linux基础和常用命令

一、什么是Linux

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

个人桌面版

  • 面向个人用户。由于安装了图像界面,界面美观,操作方便,比较适合新手,但相对于服务器版来说较消耗资源
  • 常见的桌面版有Ubuntu、Debian、Fedora、CentOS、openSUSE

企业服务器版

  • 面向企业用户。系统稳定性好,资源消耗较小,满足企业需求,但基本都是命令行界面,需要有一定的基础才能上手操作。
  • 常见的服务器版有RHEL、CentOS、Debian、Ubuntu、openSUSE

Linux发展史图
注意右上角:Open Source(开源的)、Mixed/shared source (半开源)、 Closed source (关源)
Linux发展史图.png

在这里我们还可以看到Mac OS它是基于Unix Version 8封装改造的,这也是为什么它和linux这么像,与之不同的是,Linux是基于Unix的特性自己开发的,而Mac OS它是直接使用改造的!
Linux发展史图2.png

Linux内核官网

在这里我们可以查询到Linux内核的最新版本

https://www.kernel.org/
Linux内核官网.png

(Windows、Linux、MacOS)三大系统的区别

三大系统的区别.png

三、Linux系统核心

  • Linux内核
  • Linux Shell
  • Linux 文件系统
  • Linux 应用系统

3.1 Linux内核是什么?

开源的类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内核图.jpg

内核、操作系统

单一的Linux内核不是一套完整的操作系统

内核 --> 操作系统

内核 --> 发行版本

3.2 Linux文件系统:一切皆文件

文件系统.png

**参考文章:**https://blog.51cto.com/12674559/2095216

四、常用命令

1.系统信息

查看系统信息

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

2.文件目录

创建目录

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切换文件

参数:

  • ctrl + F - 向前移动一屏
  • ctrl + B - 向后移动一屏
  • ctrl + D - 向前移动半屏
  • ctrl + U - 向后移动半屏
  • G - 移动到最后一行
  • g - 移动到第一行
  • q / ZZ - 退出 less 命令

当然了,还有我们的more命令

more test.log 使用方法和less类似,它俩差不多

3.搜索

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

4.统计搜索

统计文件个数

ls -l | grep “0-sec” |wc -l

这是由主要的3条命令组成

ls - l 然后利用管道符使用grep筛选,最后使用wc统计

统计文件行数

cat test.log | wc-l

搜索+统计

grep “/login” test.log >| wc -l

5.资源查看

查看磁盘

df -h

du

报告磁盘空间使用情况

du -a

du -sh *

查看带宽(需安装,这里不演示了)

iftop

查看链接数

查看某个端口的连接情况

netstat

统计80端口连接数量

netstat -ntpl | grep 80|wc -l

ok!那么今天是更新不完了,明天继续给更新下一篇文章《Linux应用性能分析及故障排查》

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章