简介
Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。
Linux 的发行版
Linux 的发行版简单说就是 linux 内核和应用软件的打包目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、TurboLinux、BluePoint、RedFlag、Xterm、SlackWare 等。
系统启动过程
内核引导
BIOS 自检,由设置的启动设备启动,操作系统接管硬件,读/boot
目录的内核文件运行
init
进程
读取配置/etc/inittab
运行级别
init进程的一大任务,就是根据运行级别去执行对应的开机启动的程序
许多程序需要开机启动。它们在 Windows 叫做”服务”(service),在 Linux 就叫做”守护进程”(daemon)。不同的场合需要启动不同的程序,所以就有了运行级别Linux 系统有 7 个运行级别(runlevel):
- 运行级别0:
系统停机状态,系统默认运行级别不能设为0,否则不能正常启动 - 运行级别1:
单用户工作状态,root权限,用于系统维护,禁止远程登陆 - 运行级别2:
多用户状态(没有NFS) - 运行级别3:
完全的多用户状态(有NFS),登陆后进入控制台命令行模式 - 运行级别4:
系统未使用,保留 - 运行级别5:
X11控制台,登陆后进入图形GUI模式 - 运行级别6:
系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
使用运行级别关机和重启1
2sudo init 0 # 关机
sudo init 6 # 重启- 运行级别0:
系统初始化
真正的 rc 启动脚本,放在init.d
目录,它们有类似的用法,一般都能接受start
,stop
,restart
,status
等参数
/etc/rc5.d 中的 rc 脚本,通常都是 K 或 S 开头的链接文件,S 开头则用start
参数运行, K 开头的则用stop
参数运行建立终端
rc 脚本执行完后,init 会接着打开 6 个终端, 以便用户登录用户登录
用户有三种登录方式:- 命令行登录
- ssh 登录
- 图形界面登录 运行级别为 5,登录后进入 KDE Gnome 等窗口管理器
终端切换
ctrl+alt+F1-F6
切换终端 1-6,ctrl+alt+F7
返回图形界面
linux 关机
正确的关机流程: sync > shutdown > reboot > halt
关机指令 shutdown
, man shutdown
查看帮助
1 |
|
halt 执行时,杀死应用进程, 执行 sync 系统调用,文件系统写操作完成后就会停止内核,要手动关闭电源; shutdown 会停止应用进程 卸载文件系统 然后关闭电源
linux 系统目录结构
/bin
bin 是 binary 的缩写,该目录存放最常用的命令/boot
存放启动 linux 时用到的核心文件/dev
dev 是 device 的缩写, 存放外部设备 linux 中访问设备的方式和访问文件相同/etc
存放系统的配置文件/home
用户的主目录,每个用户都有自己的主目录 通常和用户名同名/lib
存放系统的动态链接共享库, 类似于 windows 中的 dll 文件,几乎所有应用程序都需要这些共享库/lost+found
一般为空,非法关机后,会存放一些文件/media
把识别的媒体设备挂载到该目录/mnt
用户挂载的其他文件系统/opt
存放额外安装的软件/proc
该目录是虚拟目录,是系统内存的映射,可以从中获取系统信息, 可直接修改里面的某些文件/root
超级管理员的主目录/sbin
存放系统管理相关的程序selinux
Redhat/CentOS 特有的,安全相关的文件/srv
存放服务启动后需提取的数据/sys
内核设备树的直观反映,创建内核对象时,会在这里新增对应的文件/tmp
存放临时文件usr
非常重要的目录,用户的程序和文件都放这里,类似 windows 的program files
文件夹usr/bin
普通用户使用的程序/usr/sbin
超级管理员使用的程序/usr/src
存放源码的目录/var
存放经常被修改的文件,如 日志/run
临时文件系统,存储系统启动以来的信息。系统重启时,会清空
忘记密码的解决办法: 单用户模式 或 rescue 模式
linux 远程登录
window 下远程登录客户端有 secureCRT
, Putty
, SSH Secure Shell
, Xshell
等
linux 文件基本属性
1 |
|
文件类型|属主权限|属组权限|其他用户的权限
文件类型:
d
文件夹-
文件l
链接文件b
二进制文件/可执行文件/接口设备c
字符文件/串行端口设备
文件归属
- 文件属主 文件所有者
- 文件属组 所有者的同组用户
- 其他用户
文件所有者,文件所有组和其他用户的权限。 对于 root 用户来说,一般情况下,文件的权限对其不起作用。
1 |
|
更改文件属性
chgrp 更改文件属组
1 |
|
chown 更改文件所有者,也可同时属组
1 |
|
chmod 更改文件权限
Linux 文件属性有两种设置方法,一种是数字,一种是符号。
符号:
- a = all
- u = user 所有者
- g = group
- o = other
1 |
|
linux 文件和目录管理
Linux 的目录结构为树状结构,最顶级的目录为根目录 /
- 绝对路径 从根目录开始
/home/pan
,/media/pan
- 相对路径
./pan
or../pan
目录管理命令
ls
列出目录内容cd
切换目录pwd
显示当前目录mkdir
创建目录rmdir
删除空目录rm
删除文件或目录cp
复制文件或目录cp -r folder folder2
复制目录要加-r
mv
移动文件或目录, 也可以用来重命名文件或目录
man ls 查看帮助文档
列出目录
1 |
|
切换目录
1 |
|
显示当前目录
1 |
|
创建目录
1 |
|
磁盘管理
df 列出磁盘使用量
df [-ahHikmT] [目录或文件名]
-a
:列出所有的文件系统,包括系统特有的 /proc 等文件系统;-k
:以 KBytes 的容量显示各文件系统;-m
:以 MBytes 的容量显示各文件系统;-h
:以人们较易阅读的 GBytes,MBytes,KBytes 等格式自行显示;-H
:以 M = 1000K 取代 M = 1024K 的进位方式;-T
:显示文件系统类型,连同该分区的文件系统名称(例如 ext3)也列出;-i
:不用硬盘容量,而以 inode 的数量来显示
du 查看文件/目录的使用空间
du [-ahskm] [文件或目录]
-a
:列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。-h
:以人们较易读的容量格式(G / M)显示;-s
:列出总量而已,而不列出每个各别的目录占用容量;-S
:不包括子目录下的总计(当前目录下文件的总大小),与-s 有点差别。-k
:以 KBytes 列出容量显示;-m
:以 MBytes 列出容量显示;
直接输入 du 没有加任何选项时,则 du 会分析当前所在目录的文件与目录所占用的硬盘空间。
fdisk 分区工具
fdisk -l 【设备]
显示指定设备/当前目录所在设备的分区信息fdisk /dev/sda1
对指定设备分区, (q 退出,w 保存)mkfs 分区格式化
mkfs -t 文件系统类型 设备
, 例如: mkfs -t mkfs.ext4 /dev/sda2fsck 文件系统检查
若系统掉电或磁盘发生问题,可用 fsck 进行检查, 详细用法见fsck -h
磁盘挂载(mount)或卸载(umount)
mount -L label -t 文件系统类型 挂载点
umount -fn 设备文件名或挂载点
定时任务
crontab 命令(cron table),它是 cron 的配置文件,也可以叫它作业列表,我们可以在以下文件夹内找到相关配置文件。
- /var/spool/cron/ 目录下存放的是每个用户包括 root 的 crontab 任务,每个任务以创建者的名字命名
- /etc/crontab 这个文件负责调度各种管理和维护任务。
- /etc/cron.d/ 这个目录用来存放任何要执行的 crontab 文件或脚本。
我们还可以把脚本放在/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly 目录中,让它每小时/天/星期、月执行一次。
1 |
|
常用命令
1 |
|