一、简介
1.为什么程序员要懂Linux
- Web服务器一般运行在Linux服务器上
- Linux开源
- 更稳定
- 定制化
2.为什么有了Windows还会有Linux
- Windows都是微软封装好了的,没办法理解底层,作为程序员更喜欢底层原理以及定制化,这也是为什么许许多多服务器都是Linux的原因,因为其开源,用户有足够的权限操作底层
3.操作系统
- 没有安装操作系统的计算机称之为裸机
- 操作系统有很多类型:
- 桌面操作系统:Windows,类Unix(Mac,Linux发行版)
- 服务器操作系统:Linux安全、稳定、免费;Windows要付费,安全性稍低
- 嵌入式操作系统:Linux
- 移动设备操作系统:IOS,Android(底层是Linux)
- 虚拟机
指模拟电脑硬件的软件,可以在一台电脑上运行多种操作系统
4.Ubuntu发行版介绍
- Ubuntu是Debian的一款衍生版,也是当前最受欢迎的免费操作系统
- Ubuntu侧重于它在这个市场的应用,在服务器、云计算、甚至一些运行Ubuntu Linux的移动设备上很常见
- 使用apt软件管理工具来安装和更新软件,非常方便
- Linux主要有两个分支,Debian分支和Red Hat分支,不同分支内核相同,主要是下载软件的方式不同
5.支持互联网的开源技术(LAMP)
- L——Linux操作系统
- A——Apache Web服务器
- M——MySQL数据库
- P——PHP编程语言
6.Ubuntu必备软件
1.自定义主题图形化软件
2.gnome-shell扩展功能
- gnome-shell-extensions
- dash to dock
- plank
- coverflow alt tab
- hide top bar
3.浏览器
4.聊天工具
5.音乐
7.Linux学习技巧
- Linux常用命令不需要死记,用多了就熟了
- 命令可以用Tab补全
- 远程服务器,不允许关机,只能重启,重启时应该关闭服务
- 不要在服务器高峰运行高负载命令
- 远程配置防火墙时不要把自己提出服务器
- 定期备份重要数据和日志
8.注意事项
- Linux严格区分大小写
- Linux中所有内容以文件形式保存,包括硬件
- Linux不像Windows,它的文件没有扩展名,其中文件名含有"."一般表示隐藏文件,也会主动命名来区分文件类型
- Linux所有存储设备和硬件都有硬件文件名,如/dev/mouse,且都必须挂载之后才能使用
二、磁盘管理
1.磁盘分区
磁盘分区时使用分区编辑器在磁盘上划分几个逻辑部分。碟片一旦划分成数个分区,不同类的目录与文件可以存储进不同的分区
2.磁盘存储格式
1.FAT32
格式 | FAT32 |
---|
说明 | Windows平台的传统文件格式 |
优势 | 任何USB存储设备都会预装这种格式的文件系统,兼容性很好 |
缺陷 | 不支持4GB以上的文件 |
最小扇区 | 512bytes |
最大扇区 | 64KB |
最大单一文件 | 2bytes-4GB |
最大格式化容量 | 2TB(但NT内核系统限制为32GB) |
档案数量 | 4194304 |
2.NTFS
SSD和U盘同为闪存,但SSD还是用NTFS格式为好
格式 | NTFS |
---|
说明 | Windows平台应用最广泛的文件格式,是针对机械硬盘设计的,会对硬盘的读写操作做详细记录 |
优势 | 能够支持大容量文件和超大分区,且集合了很多高级的技术,其中包括长文件名、压缩分区、数据保护和恢复等等的功能 |
缺陷 | 会缩短闪存寿命,因为闪存储存芯片的读写次数是有限的,使用该格式会让闪存造成很大的负担和伤害 |
最小扇区 | 512bytes |
最大扇区 | 64KB |
最大单一文件 | 受最大分割容量 |
最大格式化容量 | 2TB-256TB(受MBR影响) |
档案数量 | 无 |
3.exFAT
格式 | exFAT |
---|
说明 | 设计的目的是在FAT32与NTFS之间取得一个折中,有FAT32的轻便,不需要耗损太多的效能以及记忆体来处理文件运作,又有类似NTFS的CAL存取控制机制,一起类似HPFS系统可快速整理可用丛集空间的Free Space Bitmap,来将档案破碎的情况尽量减少 |
优势 | 支持非常大的文件和存储设备,支持对未来的创新的可扩展性功能,添加Flash媒体兼容性 |
缺陷 | Windows版本要求较高 |
最小扇区 | 512bytes |
最大扇区 | 32768KB |
最大单一文件 | 16EB(理论值) |
最大格式化容量 | 16EB(理论值)(支持到256TB) |
档案数量 | 至少可以大于1000 |
3.分区类型
- 主分区:总共最多只能分4个
- 扩展分区:只能有一个,也算作主分区的一种,也就是说主分区加扩展分区最多有4个,但是扩展分区不能存储数据和格式化,必须再划分成逻辑分区才能使用
- 逻辑分区:逻辑分区是在扩展分区中划分的,如果是IDE硬盘,Linux最多支持59个逻辑分区;如果是SCSI硬盘,Linux最多支持11个逻辑分区
1.分区的设备文件名
分区 | 文件名 |
---|
主分区1 | /dev/sda1 |
主分区2 | /dev/sda2 |
主分区3 | /dev/sda3 |
扩展分区 | /dev/sda4 |
逻辑分区1 | /dev/sda5 |
逻辑分区2 | /dev/sda6 |
逻辑分区3 | /dev/sda7 |
- 其中sd代表接口类型,a表示第一块硬盘
- 1,2,3,4分区号只能给主分区或扩展分区使用,如果主分区只有1,那么逻辑分区会从5开始数
4.挂载设备
1.文件系统常用命令
1.df
- 执行权限:所有用户
- 语法:df [选项][挂载点]
- 选项及功能:
- -a:显示所有的文件系统信息,包括特殊文件系统,如/proc、/sysfs
- -h:使用习惯单位显示容量,如KB,MB或GB
- -T:显示文件系统
- -m:以MB为单位显示容量
- -k:以KB为单位显示容量,默认就是以KB为单位
- 备注:df命令是从文件系统考虑的,不光要考虑文件占用的空间,还要统计被命令或程序占用的空间(最常用的就是文件已经删除,但是程序并没有释放空间)
2.du
- 执行权限:所有用户
- 选项及功能:
- -a:显示每个子文件的磁盘占用量,默认只统计子目录的磁盘占用量
- -h:使用习惯单位显示容量,如KB,MB或GB等
- -s:统计总占用量,而不列出子目录和子文件占用量
- 备注:du命令是面向文件的,只会计算文件或目录占用的空间
3.fsck
- 执行权限:所有命令
- 语法:fsck [选项][分区或设备文件名]
- 选项及功能:
- -a:不用显示用户提示,自动修复文件系统
- -y:自动修复,和-a作用一致,不过有些文件系统只支持-y
- 备注:该命令系统会自动执行,一般不需要手动执行,知道就好
4.mount
- 执行权限:所有用户
- 语法:mount [-t 文件系统][-L 卷标名][-o 特殊选项] 设备文件名 挂载点
- 选项及功能:
- -l:查询系统中已经挂载的设备,会显示卷标名称
- -a:依据配置文件/etc/fstab的内容,自动挂载
- -t 文件系统:加入文件系统类型来制定挂载的类型
- -L 卷标名:挂载指定卷标的分区,而不是安装设备文件名挂载
- -o 特殊选项:可以制定挂载的额外选项
5.umount
- 执行权限:所有用户
- 语法:umount 挂载点/设备文件名
5.Linux根目录结构
1.基本结构
- /boot:存放的启动Linux 时使用的内核文件,包括连接文件以及镜像文件。
- /etc:存放所有的系统需要的配置文件和子目录列表,更改目录下的文件可能会导致系统不能启动。
- /lib:存放基本代码库(比如c++库),其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
- /sys: 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中
2.指令集合:
- /bin:存放着最常用的程序和指令
- /sbin:只有系统管理员能使用的程序和指令。
外部文件管理: - /dev :Device(设备)的缩写, 存放的是Linux的外部设备。注意:在Linux中访问设备和访问文件的方式是相同的。
- /media:类windows的其他设备,例如U盘、光驱等等,识别后linux会把设备放到这个目录下。
- /mnt:临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
临时文件: - /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
- /lost+found:一般情况下为空的,系统非法关机后,这里就存放一些文件。
- /tmp:这个目录是用来存放一些临时文件的。
3.账户:
- /root:系统管理员的用户主目录。
- /home:用户的主目录,以用户的账号命名的。
- /usr:用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
- /usr/bin:系统用户使用的应用程序与指令。
- /usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。
- /usr/src:内核源代码默认的放置目录。
4.运行过程中要用:
- /var:存放经常修改的数据,比如程序运行的日志文件(/var/log 目录下)。
- /proc:管理内存空间!虚拟的目录,是系统内存的映射,我们可以直接访问这个目录来,获取系统信息。这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件来做修改。
5.扩展用的:
- /opt:默认是空的,我们安装额外软件可以放在这个里面。
- /srv:存放服务启动后需要提取的数据(不用服务器就是空)