(由于本人懒癌晚期,这是很早之前的笔记,抱着单纯想把笔记写成博客的目的才放上来)
linux内核:是操作系统最核心的软件。kernel
linus—》芬兰—》美国
企鹅—>tencent
内核是开源免费的,都可以去下载。
www.kernel.org
函数:其实就是实现某个功能的一段程序代码。
我们可以直接调用。
库(函数库)
内核的作用:
1.对cpu进行调度管理
2.对内存进行管理
3.对进程进行管理
4.对文件系统进行管理:文件的存放、读取等操作
5.对其他硬件进行管理
centos 、redhat、Ubuntu(乌班图)
CPU –>32bit or 64bit
虚拟化软件
vmware workstation
oracle VM virtualbox
====网络问题
1.vmware
网卡类型选桥接
桥接到真实的有线网卡(realtek 瑞昱或者intel)
虚拟机的ip地址172.16.70.* (1-240)
子网掩码255.255.0.0
虚拟机的ip地址一定要和你的真实机器是相同网段
1U=4.445厘米
xeon —》至强
一个机柜=24u
文件夹里可以存放文件和文件夹
==小总结
文件和文件夹的基本操作: touch vim mkdir rm cp mv file du ls
pwd cd
文件里的内容:cat more less head tail
文件的查找:which whereis locate find
文件的压缩:zip gzip bzip2 tar
标准输入(standard input)
标准输出(standard output)
标准的错误输出(standard error output)
标准的输入 –》键盘 —-》0
标准的输出 –》显示器 –>正确的 —》1
标准的错误输出 –》显示器 —》错误的 —》2
====linux下一切皆文件
所有的硬件都会和一个文件对应
/dev/ —>存放设备文件的目录 device
/dev/sda —>第1块磁盘
===输入输出重定向
标准输入:从该设备接收用户输入的数据
标准输出:通过该设备向用户输出数据
标准错误:通过该设备报告执行出错信息
Linux 内核提供了一种通过 /proc
文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。
proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。
文件系统:就是管理文件的一套系统,
例如:文件的存放,读取,命名,一个文件多大,一个文件夹里可以存放多少个文件等
PID =process id
top 查看linux里的进程信息 —》动态显示
shift+> 翻页显示进程信息 下一页
shift+< 上一页
1 显示cpu的个数(每个cpu的使用情况)
q 退出 quit
ps aux #查看进程的命令
静态显示
(查看敲命令的时候的一瞬间当前系统的进程的情况)
ps - report a snapshot of the current processes.
ps aux|grep vsftpd
root
| 管道符号:将前面命令输出送给后面的命令做为输入。
grep
是一个字符过滤命令,可以根据条件帮助我们过滤包含某些字符串的行,显示出来,不包含的不显示
killall vsftpd 杀死所有的叫vsftpd的进程
====内核:linux内部最核心的软件
1.对cpu进行调度管理
2.对进程进行管理
3.对内存进行分配管理
4.对文件系统管理
5.对其他的硬件进行管理
echo $$ 查看当前bash的进程号
free -m 以M为单位显示内存的使用情况
cat /proc/cpuinfo 查看cpu的信息
cat /proc/meminfo 查看内存信息
====内核(kernel)
利用文件描述符(file descriptor)来访问文件。
文件描述符是非负整数。
打开现存文件或新建文件时,内核会返回一个文件描述符。
读写文件也需要使用文件描述符来指定待读写的文件。
文件描述符在形式上是一个非负整数。
实际上,文件描述符是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。
文件描述符就是进程打开的每一个文件对应的一个编号,进程通过这个编号来找到相应的文件。
内核帮助进程维护一张文件描述符表:
文件名—》编号
ulimit -a 查看内核相关的限制参数
文件描述符
pipe size
ulimit -n
查看linux内核默认情况下允许的最大文件描述符的数量
ulimit -n 65535 直接修改内核允许的最大文件描述符的
ulimit -n
65535
文件描述符的范围0-1023
默认情况下
TTY = terminal type
终端程序的类型:
1.tty1 tty2 tty6
linux里控制台终端类型 —》直接进入系统的
ctrl+alt+F1 ~ F6
ctrl+alt+F1 —->tty1
ctrl+alt+F2 —->tty2
ctrl+alt+F7 —->tty7
依次类推
2.pts/0 pts/1 pts/2
伪终端(模拟出来的一个终端)
远程连接到系统、
打开terminal程序
多用户多任务—>linux
ll /dev/pts/1
crw–w—- 1 root tty 136, 1 Jan 14 15:17 /dev/pts/1 字符设备文件
输入字符,输出字符
重定向
改变标准输入、标准输出的方向就是重定向 —>乾坤大挪移
“>” 输出重定向 –》如果后面接的文件不存在,就会新建,如果文件存在会覆盖原来的内容。
“>>” 追加输出重定向 —》如果后面接的文件不存在,就会新建,如果文件存在不会覆盖原来的内容,只是追加到文件的末尾。
”< ” 输入重定向
“>”和”>>” 都是重定向输出
1> :指标准信息输出路径(也就是默认的输出方式)
2> :指错误信息输出路径
2>&1 #指将标准信息输出路径指定为错误信息输出路径(也就是都输出在一起)
2> 错误的输出,只有发生错误的时候,才会执行错误重定向
2>> 追加
&> 不论是正确的输出,还是错误的输出都往一个文件里重定向.会覆盖原来的内容
2>&1 等效于&>
&>>不会覆盖原来的内容
”>4.txt”
如果4.txt文件存在就是清空里面的内容,如果不存在就是新建这个空文件4.txt
/dev/null 垃圾桶,任何信息重定向到这里都会没有,不保存
/dev/zero 系统的零发生器,专门产生0
read -p “please input your name:”
read 是一个命令,用来提醒用户输入内容,然后将输入的内容赋值给一个变量
-p 提醒信息 print
u_name
是一个变量的名字
echo 是输出内容的命令
echo $u_name 输出u_name变量的值
mkdir aa 如果执行成功就执行echo yes命令,如果不成功就执行echo no命令
mkdir aa &>/dev/null && echo yes ||echo no
no
&& 前面的条件成立就执行后面的命令
|| 前面的条件不成立就执行后面的命令
[ -d aa ] 判断当前目录下aa是否是目录并且存在
[ -d bbb ]||mkdir bbb 如果bbb目录不存在,则直接新建