作为程序员我们经常需要和服务器打交道,而现在的主流服务器无疑是Linux,所以掌握好Linux对我们的日常工作能起到很大的帮助。这里我将Linux命令行与shell脚本编程大全
的主要内容记录下来,一方面是为了加深印象以及整理笔记,另一方面也是为了能够帮助其他人了解shell
,如果其中有什么错误的话,欢迎指出!
一、Linux基础介绍
1. 什么是Linux
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
2. Linux版本
2.1 核心Linux发行版含有内核、一个或多个图形化桌面环境以及预编译好的几乎所有能见到的Linux应用,它提供了一站式的完整Linux安装。以下为较流行的核心Linux发行版:
发行版 |
描述 |
Slackware |
最早的Linux发行版中的一员,在Linux极客中比较流行 |
Red Hat |
主要用于Internet服务器的商业发行版 |
Fedora |
从Red Hat中分离出的家用发行版 |
Gentoo |
为高级Linux用户设计的发行版,仅包含Linux源代码 |
openSUSE |
用于商业和家用的发行版 |
Debian |
在Linux专家和商用Linux产品中流行的发行版 |
2.2 特定用途的发行版:它们通常基于某个主流发型版,但仅包含主流发行版中一小部分用于某种特定用途的应用程序。除此之外,定制化发行版还尝试通过自动检测和自动配置常见硬件来帮助新手安装Linux。这使得Linux的安装简化了许多。如下:
发行版 |
描述 |
CentOS |
一款基于 Red Hat企业版Linux源代码构建的免费发行版 |
Ubuntu |
一款用于学校和家庭的免费发行版 |
PCLinuxOS |
一款用于家庭和办公的免费发行版 |
Mint |
一款用于家庭娱乐的免费发行版 |
dyne:bolic |
一款用于音频和MIDI应用的免费发行版 |
Pubby Linux |
一款适用于老旧PC的小型免费发行版 |
3. 文件系统
Linux内核支持通过不同类型的文件系统从硬盘中读取数据,Linux系统中用来读写数据的标准文件系统如下:
文件系统 |
描述 |
ext |
Linux扩展文件系统,最早的Linux文件系统 |
ext2 |
第二扩展文件系统,在ext的基础上提供了更多的功能 |
ext3 |
第三扩展文件系统,支持日志功能 |
ext4 |
第四扩展文件系统,支持高级日志功能 |
hpfs |
OS/2高性能文件系统 |
jfs |
IBM日志文件系统 |
iso9660 |
ISO9660文件系统(CD-ROM) |
minix |
MINIX文件系统 |
msdos |
微软的FAT16 |
ncp |
Netware文件系统 |
ntfs |
支持Microsoft NT文件系统 |
proc |
访问系统信息 |
ReiserFS |
高级Linux文件系统,能提供更好的性能和硬盘恢复功能 |
smb |
支持网络访问的Samba SMB文件系统 |
sysv |
较早期的Unix文件系统 |
ufs |
BSD文件系统 |
umsdos |
建立在msdos上的类Unix文件系统 |
vfat |
Windows 95文件系统(FAT32) |
XFS |
高性能64位日志文件系统 |
4. 常见的Linux目录及用途
目录 |
用途 |
/ |
虚拟目录的根目录。通常不会在这里存储文件 |
/bin |
二进制目录,存放许多用户级的GNU工具 |
/boot |
启动目录,存放启动文件 |
/dev |
设备目录,Linux在这里创建设备节点 |
/etc |
系统配置文件目录 |
home |
主目录,Linux在这里创建用户目录 |
/lib |
库目录,存放系统和应用程序的库文件 |
/media |
媒体目录,可移动媒体设备的常用挂载点 |
/mnt |
挂在目录,另一个可移动媒体设备的常用挂载点 |
/opt |
可选目录,常用于存放第三方软件包和数据文件 |
/proc |
进程目录,存放现有硬件和当前进程的相关信息 |
/root |
root用户的主目录 |
/sbin |
系统二进制目录,存放许多GNU管理员级工具 |
/run |
运行目录,存放系统运作时的运行时数据 |
/srv |
服务目录,存放本地服务的相关文件 |
/sys |
系统目录,存放系统硬件信息的相关文件 |
/tmp |
临时目录,可以在该目录创建和删除临时工作文件 |
/usr |
用户二进制目录,大量用户级GNU工具和数据文件都存储在这里 |
/var |
可变目录,用以存放经常变化的文件,比如日志文件 |