1、linux简介
1.1 linux发展历程
linux系统诞生于1991年,由芬兰大学生林纳斯·托瓦兹和后来陆续加入的众多爱好者共同开发完成。
linux常见的发行版有redhat、Suse、debian等。
- 1992年,Patrick Volkerding创建了Slackware
- 1993年,Lan Murdock创建了Debian
- 1995年1月,Bob Young创办了RedHat(小红帽)
- 1996年,SUSE推出了一个完全自家打造的发行版-S.u.S.E.Linux 4.2
- 2004年10月20日,Mark Shuttleworth创办了Ubuntu
linux是开源软件,是源代码开放的UNIX分支。具备现代一切功能完整的UNIX系统所具备的全部特征。
linux的发行遵守GUN的通用公共许可证。
linux可以安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频控制台、大型计算机等。
严格来讲,linux本身只表示linux内核,但实际上人们已经习惯了用linux来形容整个基于linux内容的操作系统。
1.2 关于内核版本
linux的内核版本主要由3块组成:主版本号.次版本号.修订次数
通常我们常见的版本号是2.6.18,目前最新的版本号是5.7.2
对于版本号我们需要重点关注次版本号,次版本号如果是偶数表示稳定版,奇数表示开发版。开发版通常有较多bug,不建议用于生产环境。
官网:www.kernel.org
2、文件系统
2.1 文件/目录
在linux系统中,有一个非常重要的概念,那就是,一切皆是文件。linux系统把一切都看做是文件,包括硬件设备。linux系统把每个硬件都看成是一个文件,通常称为设备文件。这样用户就可以通过读写文件的方式来实现对硬件设备的访问。linux系统在启动时,第一个挂载的是根文件系统,就是下图中的根。下图中显示的就是常见的从根开始的文件目录结构。
二级目录
- /bin 放置的是在单人维护模式下还能够被操作的指令。在in底下 的指令可以被root与一般账号所使用。
- /boot 这个目录主要放置开机会使用到的文件,包括Linux核心文件以及开机选单与开机所需配置文件等。
- /dev 在Linux系统上,任何装置与接口设备都是以文件的形态存在于这个目录当中的。
- /etc 系统主要的配置文件几乎都放置在这个目录内,例如人员的账号密码文件、各种服务的启始档等。
- /home 这是系统默认的用户家目录(home directory)。
- /lib 放置的是在开机时会用到的函式库,以及在/bin或/sbin底下的指令会呼叫的函式库。
- /media 放置的是可移除的装置,包括软盘、光盘、DVD等等装置都暂时挂载于此。
- /opt 给第三方协力软件放置的目录。
- /root 系统管理员(root)的家目录。
- /sbin 此目录下的为开机过程中所需要的,包括了开机、修复、还原系统所需要的指令。
- /srv srv可以视为service的缩写,是一些网络服务启动之后,这些服务所需要取用的数据目录。
- /tmp 这是让一般使用者或者是正在执行的程序暂时放置文件的地方。
三级目录
- /user/lib 包含各种应用软件的函式库、目标文件(Object file),以及不被一般使用者惯用的执行档或脚本(script)。
- /usr/local 系统管理员在本机自行安装自己下载的算计(非distribution默认提供者),建议安装到此目录,这样比较便于管理。
- /var/lib 程序本身执行的过程中,需要使用到的数据文件放置的目录。
- /var/log(重要) 登录文件放置的目录,里面比较重要的文件如/var/log/messages,/var/log/wtmp(记录登入者的信息)等。
- /etc/init.d/ 所有服务的预设启动script都是放在这里的。
- 账号相关的重要配置文件
- 下面我们对系统内与账号相关的重要配置文件做进一步讲解。
2.2 /etc/password
2.3 账号
系统的默认账号及其uid值如下图所示。
lp取0-499之间。
2.4 /etc/shadow
Shadow文件中MD5 HASH等算法
密码示例:root:$1$Bg1H/4mz$X89TqH7tpi9dX1B9j5YsF.:14838:0:99999:7:::
示例的密码域$1$Bg1H/4mz$X89TqH7tpi9dX1B9j5YsF.其实是由三部分组成:$id$salt$encrypted
其中id值是指的加密算法,salt是指的随机数,encrypted是指的加密密文
- id值:id为1时,采用md5进行加密;id为5时,采用SHA256进行加密;id为6时,采用SHA512进行加密。
- salt值:是某个固定长度的随机字符串,也就是每次修改passwd之后,都是随机生成该字符串。
- 密文的得来是通过char *crypt(const char *key,const char *salt);来计算出来的。
3、基本操作
文件与目录管理
在linux系统中,定位一个文件或目录时有两种方式:绝对路径和相对路径。
- 绝对路径的写法一定由根目录/写起。
- 相对路径的写法不是由/写起。相对路径意指相对于目前工作目录的路径!
目录的基本操作
- cd 变换目录
- pwd 显示目前的目录
- mkdir 创建一个新的目录
- rmdir 删除一个空的目录
- ls 文件与目录的检视
用户、组与权限管理
- 用户 UID /etc/password /etc/shadow
- 组 GID /etc/group /etc/gshadow
- 从命令行中查看权限 ls -l
- 创建用户 useradd
- 创建组 groupadd
- 更改文件所有权 chown
- 更改组所有权 chgrp
- 设置权限 chmod
- 权限赋予 sudo
用户管理
- 添加用户 useradd
- 删除用户 userdel -r
- 锁定用户 passwd -l
- 用户属性 usermod
- 当前用户 id
当前登录用户
执行w命令可以确定当前哪些用户已登录系统
输出信息中各列含义:
- USER字段显示当前登录系统的用户名
- TTY字段显示分配给用户会话的终端。ttyX表示在控制台登录,pts/X和ttypX表示网络连接
- FROM字段显示远程登录主机的IP地址
- LOGIN@字段显示登录用户的本地起始时间
- IDLE字段显示最近一个进程运行开始算起的时间长度
- JCPU字段显示在该控制台或网络连接的全部进程所用的时间
- PCPU字段显示WHAT栏中当前进程所使用的处理器时间
- WHAT字段显示用户正在运行的进程
端口开放情况
- netstat -pan命令查看当前开放的端口
- lsof -i 显示进程和端口对应关系
进程信息
- 使用命令ps -aux查看进程
服务信息
- 用chkconfig --list查看服务启动信息
- 各服务的启动脚本存放在/etc/init.d/和/etc/xinetd.d目录