目录
1.Linux与Unix介绍
Linux和Unix是两个相关但独立的操作系统家族,它们有许多相似之处,但也存在一些重要的区别。
1.1Linux介绍:
(1)发行版本: CentOS、Ubuntu、Debian、Fedora和Arch Linux等。
(2)特性:
CentOS:专注于稳定性和长期支持,基于Red Hat Enterprise Linux。
Ubuntu和Mint:易于使用,提供丰富的图形界面和应用程序。
Debian和Fedora:注重稳定性和安全性,提供丰富的软件包和工具。
Arch Linux:强调自由度和定制性,适合喜欢构建系统的用户。
(3)特点:
开源、多用户、多任务、跨硬件平台、丰富的命令行工具。
高稳定性、长时间运行、广泛应用于各种设备。
1.2Unix介绍:
(1)特性:
多用户、多任务、支持多线程和多进程的操作系统。
简单且灵活,高效运行各种应用程序。
文件存储在抽象目录结构中,强大的命令行界面。
(2)历史:
由Bell Labs开发,逐渐成为广泛使用的操作系统,影响了Linux和MacOS等其他系统的设计。
1.3区别:
(1)发展时间:
Unix比Linux早,于20世纪60年代末和70年代初期开发。
(2)社区支持:
Linux有庞大的用户和开发者社区,提供强大的支持,而Unix社区相对较小。
(3)发展速度:
Linux的开源性质使得其发展速度可能比Unix更快。
(4)功能丰富性:
Linux拥有更丰富的功能,包括图形界面、硬件设备支持和应用程序。
总体而言,Linux和Unix在许多方面相似,但由于Linux的开源本质,它吸引了更广泛的社区支持和迭代发展,使其在现代计算环境中更为流行。 Unix系统仍然在某些特定领域和旧系统中使
2.常用命令
2.1文件处理篇
命令原型:ls [OPTION] [FILE]
功能描述:用于列出文件或目录的信息。它可以用来查看指定目录中的文件名、文件大小、文件权限和文件创建日期等信息。
常用参数:
-l:以列表形式输出文件信息。
-a:输出所有文件(包括隐藏文件)的信息。
-t:按照文件创建时间排序。
-d:输出目录本身的信息属性。
Ls
Ls -l
命令原型:cd [OPTION] [DIRECTORY]
功能描述:切换当前工作目录,可以用来快速访问不同的目录,方便用户在文件系统中移动和操作文件。
常用示例:cd / 切换到根目录
cd .. 切换到上一级目录
cd ~ 回到主目录
切换到dir目录
cd dir
回到上一级目录
cd ..
回到根目录
cd /
命令原型:pwd
功能描述:显示当前工作目录的路径
pwd
命令原型:touch [OPTION] FILE
功能描述:可以用来快速更新文件的访问时间和修改时间,也可以用来创建新的空文件,当文件存在时,默认会改变其创建时间
常用参数:
-a 将文件的访问时间更新为当前时间
-m 将文件的修改时间更新为当前时间
-c 可以忽略不存在的文件,避免创建新的空文件
创建文件file1.txt
修改file1.txt时间戳
修改file.txt的时间戳,但是当前不存在file.txt,所以加上-c参数防止创建file.txt文件
命令原型:mkdir [OPTION] DIRECTORY
功能描述:用于创建新的目录
常用参数:
-p 递归创建目录
-m 指定目录的权限
-v 打印详细信息
创建一个普通目录
makdir dirl
递归创建目录
mkdir -p dir1/dir2/dir3
cp
命令原型:cp [OPTION] SOURCE TARGET
功能描述:用于复制文件或目录
常用参数:
-i 在覆盖已有文件时询问用户
-f 强制覆盖已有文件
-r 递归复制目录
-v 打印详细信息
将file1.txt复制到dir1
cp file1.txt dir1
mv
命令原型:mv [OPTION] SOURCE TARGET
功能描述:用于移动或重命名文件或目录
常用参数:
-i 在覆盖已有文件时询问用户
-f 强制覆盖已有文件
-n 禁止覆盖已有文件
-u 只更新比目标文件新的源文件
-v 打印详细信息
--backup 在覆盖已有文件时保留已有文件的副本
将file2.txt移动到dir1
mv file2.txt dir1
rm
命令原型:rm [OPTION] [FILE]
功能描述:用于删除文件或目录
常用参数:
-i 在删除文件时询问用户
-f 强制删除文件
-r 递归删除目录
-v 打印详细信息
删除file1.txt
rm file1.txt
cat
命令原型:cat [OPTION] [FILE]
功能描述:用于连接并输出文件的内容,可以用来快速查看文件的内容
常用参数:
-n 在输出文件内容时,显示行号
-b 只在文件中有内容的行上显示行号
-s 合并多个空白行为一个空白行
-E 在每行结尾处显示"$"字符
-T 在制表符处显示"^I"字符
-v 打印不可见字符
输出一个普通的文件
cat file3.txt
more
命令原型:more [OPTION] [FILE]
功能描述:用来快速查看文件的内容,并且支持用户通过简单的命令控制文件的分页查看
命令操作:
(空格) 或f 显示下一页
(Enter) 显示下一行
q或Q 退出
常用参数:
-d 在查看文件时,显示提示信息
-c 在查看文件时,不滚屏,显示文本并清理行尾
-p 在查看文件时,不滚屏,清屏并显示文本
-NUM 在查看文件时,指定每页显示的行数
查看一个普通文件
more file3.txt
head
命令原型:head [OPTION] [FILE]
功能描述:用来快速查看文件的前面部分内容,并且支持用户指定输出的行数
常用参数:
-n 指定每个文件要查看的行数
-c 指定每个文件要查看的字节数
-v 在查看文件时,输出文件名
查看一个普通文件的前几行
head file3.txt
tail
命令原型:tail [OPTION] [FILE]
功能描述:用来快速查看文件的后面部分内容,并且支持用户指定输出的行数
常用参数:
-n 指定每个文件要查看的行数
-c 指定每个文件要查看的字节数
-v 在查看文件时,输出文件名
查看一个普通文件的后几行
tail file3.txt
ln
命令原型:
ln [OPTION] [-T] TARGET LINK_NAME
ln [OPTION] TARGET
ln [OPTION] TARGET... DIRECTORY
ln [OPTION] -t DIRECTORY TARGET...
功能描述:用于在文件系统中创建链接它可以创建硬链接和符号链接。硬链接是另一种文件名,指向相同的文件内容,而符号链接是指向另一个文件的指针。软链接=符号链接
常用参数:
-s 创建符号链接
-f 如果链接已经存在,则强制创建
创建一个文件的硬链接
ln file3.txt
2.2权限管理篇
chmod
命令原型:chmod [OPTION] MODE[,MODE] FILE
功能描述:用来设置文件所有者和用户组的读、写和执行权限,以及其他用户的读、写和执行权限
权限描述:
文件权限有rwx:r:可读4 w:可写2 x可执行1
文件权限成员有ugoa:u:拥有者 g:同组 o:其他人 a:所有人
chmod u-r file1 file的u的权限减少r
chmod u=rwx file1 file1的u权限设为rwx
chmod o+r file1 file1的o权限添加r
chmod 777 file1 file1的权限设置为读+写+执行所有成员生效
常用参数:
-r 递归更改文件和目录的权限
-c 输出更改的文件和目录的名称
-v 输出更改的详细信息
将一个普通的文件权限改为777
chmod 777 file3.txt
chown
命令原型:chown [OPTION] [OWNER][:[GROUP]] FILE
功能描述:用来更改文件或目录的所有者和用户组,以及更改所有者和用户组的名称
常用参数:
-r 递归更改文件和目录的所有者和用户组
-c 输出更改的文件和目录的名称
-v 输出更改的详细信息
将一个普通文件的所有者改为root
chown root file3.txt
umaks
命令原型:umask [MASK]
功能描述:用来设置系统中新建文件或目录的默认权限,以及查询当前系统中的默认文件权限掩码
常用参数:无
读取目前文件默认权限掩码
umask
2.3文件搜索篇
which
命令原型:which [OPTION] COMMAND
功能描述:用来查询命令是否在系统中存在,以及命令的执行路径
常用参数:
-a 显示所有匹配的命令
获取ll命令的原型及路径
which ll
find
命令原型:find [PATH] [OPTION] [EXPRESSION]
功能描述:用于查找文件或目录,可以根据文件的名称、大小、类型、权限等信息进行查找
常用参数:
-name 按照文件名查找
-size 按照文件大小查找
-type 按照文件类型查找
-perm 按照文件权限查找
-mtime 按照文件修改时间查找
在目录/etc中查找文件init
find /etc -name init
locate
命令原型:locate [OPTION] PATTERN
功能描述:用于查找文件或目录。它使用系统中的数据库,速度比 find 命令快得多。但由于 locate 命令依赖于数据库,数据库中的信息可能不是实时的,因此查找结果可能不准确。
常用参数:
-b 只查找文件名,不查找路径
-c 计算匹配的文件数量,而不是输出文件路径
-d 指定数据库文件
-i 忽略大小写
-l 限制输出结果的数量
查找sshd文件
locate sshd
updatedb
命令原型:updatedb [OPTION]
功能描述:用于更新系统中的文件数据库
命令特性:
1.这个数据库用于保存系统中所有文件的信息,并可以被 locate 命令使用
2.命令一般会在系统启动时自动执行,更新数据库。如果系统中安装了新文件或 删除了文件,可以使用 updatedb 命令手动更新数据库
常用参数:
-u 后接目录,指定更新的范围
-o 指定输出文件
更新一下文件数据库
updatedb
grep
命令原型:grep [OPTION] PATTERN [FILE]
功能描述:用于查找文件中包含指定字符串的行。它可以在一个或多个文件中查找指定的字符串,并输出包含该字符串的行
常用参数:
-i 忽略大小写
-v 输出不包含匹配字符串的行
-w 只匹配整词
-o 只输出匹配的字符串
-c 计算匹配的行数,而不是输出匹配的行
在文件file3.txt中寻找包含sshd的行
grep sshd file3.txt
2.4帮助命令篇
man
命令原型:man [OPTION] [MANUAL-SECTION] [COMMAND-NAME]
功能描述:用于查看命令的帮助信息。会显示指定命令的用法、参数说明、功能说明等信息。
额外信息:
man命令有多个可查找的章节,默认依序查询命令,只输出找到的第一个章节中的帮助
1 用户命令
2 系统调用及内核服务
3 库函数
4 特殊文件、设备驱动及硬件
常用参数:
-a 显示所有帮助信息
-f 查找并显示给定命令名称对应的简短描述
-k 查找并显示给定关键字对应的命令
查看kill命令的详细信息
man kill
info
命令原型:info [OPTION] [FILE]
功能描述:用于显示信息文档
常用参数:
-n 指定要查看的信息文档的文件路径,通常用于查看非标准目录下的文档
-d 指定要查看的信息文档的默认目录,通常用于查看标准目录下的文档
查看ls命令文档
info ls
whatis
命令原型:whatis [OPTION] [KEYWORD]
功能描述:用于查看给定命令或文件的简要描述
常用参数:不明
查询ls命令
whatis ls
2.5压缩解压命令篇
gizp
命令原型:gzip [OPTION] [FILE]
功能描述:用于将文件进行压缩,以便节省存储空间或方便文件的传输
常用参数:
-c 将压缩后的数据输出到标准输出,而不是写入文件
-f 强制执行操作,不要求确认
-r 递归处理目录中的所有文件
-v 显示压缩过程中的信息
将一个普通文件压缩
gzip file3.txt
gunzip
命令原型:gunzip [options] [filename]
功能描述:用于将由gzip命令压缩的文件进行解压缩
常用参数:
-d 解压缩gzip文件
-l 列出gzip文件的详细信息,包括文件名、大小、压缩比等
-t 测试gzip文件是否已损坏
-v 显示详细信息
解压一个压缩文件
gunzip file3.txt
tar
命令原型:tar [options] [file or directory]
功能描述:用来创建、解压缩、查看、添加和删除文件的打包压缩工具
常用参数:
-c 打包文件
-x 解包文件
-f 指定打包后的文件名
-v 显示详细信息
-z 打包同时并压缩,压缩后的后缀为 .tar.gz
解压缩
将一个普通文件打包
tar -cf file3.txt dir1
zip
命令原型:zip [options] [zipfile] [file or directory]
功能描述:用来创建、查看和修改zip文件的工具
常用参数:
-r 递归地处理目录,包括目录中的所有子目录和文件
-0 不压缩文件,只打包
-1 ~ -9 指定压缩级别,数字越大,压缩率越高,但处理速度也越慢
-v 显示详细信息
压缩一个普通文件
zip file3.txt dir1
nuzip
命令原型:unzip [options] [zipfile]
功能描述:用来解压缩zip文件的工具
常用参数:
-d 指定解压缩后文件的目标目录
-n 覆盖原有文件,不提示
-l 查看zip文件的内容
-v 显示详细信息
解压一个普通文件
unzip file3.txt
bzip2
命令原型:bzip2 [options] [file]
功能描述:将一个文件压缩成bzip2格式,后缀为.bz2
常用参数:
-f 不保留原有文件
-k 保留原有文件
压缩一个普通文件,保留原文件
bzip2 -k file3.txt
bunzip2
命令原型:bunzip2 [options] [file]
功能描述:将一个bzip2文件解压缩到当前目录或指定的目录中
常用参数:
-d 将压缩文件解压到一个与压缩文件同名的文件(默认行为)
-f 如果目标文件已经存在,则覆盖该文件
-k 在解压缩文件后,保留源压缩文件
-v 显示详细信息
解压一个普通文件
bunzip2 file3.txt.bz2
2.6网络通信指令篇
write
命令原型:write [options] username [terminal]
功能描述:用来向终端或其他用户发送消息
常用参数:无
向root发送消息
write root
wall
命令原型:wall [option] [message]
功能描述:将一条消息发送到所有登录到系统中的用户的终端上
常用参数:无
向网络中广播消息
wall hello
ping
命令原型:ping [option] host
功能描述:用于测试两台计算机之间的网络连接是否正常
常用参数:
-c 指定发送请求的次数
-i 指定每次请求的间隔时间
-t 不停止发送请求,直到按下Ctrl + C终止
测试到www.baidu.com的连通性
ping www.baidu.com
未联网
ifconfig
命令原型:ifconfig [option] interface
功能描述:用于配置和查看网络接口的信息
常用参数:
-a 查看所有网络接口的信息
-s 查看网络接口的统计信息
-v 显示详细信息
查看本系统网络信息
ifconfig
2.7系统关机命令篇
shutdown
命令原型:shutdown [option] [time] [message]
功能描述:用于关闭系统
常用参数:
-h关闭系统
-r 重启系统
-k 只发送警告消息,不做实际的关闭或重启操作
-c 取消正在进行的关闭或重启操作
-f 快速关机,重启时跳过fcsk命令
-n 快速关机,不经过init程序
reboot
命令原型:reboot [option] [time] [message]
功能描述:用于重启系统
常用参数:
-n 不关闭网络连接
-f 强制重启,不等待其他程序完成
-w 等待所有已修改的文件被写入磁盘,再重启
-d 指定系统重启后要执行的命令
3.文本编辑器Vim
Vim(Vi Improved)介绍
Vim(Vi Improved) 是一款强大的文本编辑器,是 Unix 和类 Unix 系统中最流行的文本编辑器之一。它是 Vi 编辑器的增强版,提供了许多额外的功能和改进,支持语法高亮、插件、多级撤销、代码折叠等功能。
启动 Vim: 打开终端,并键入以下命令启动 Vim:
vim 文件名
如果文件不存在,将会创建一个新文件。
Normal 模式: 进入 Vim 后的默认模式,用于浏览和移动文本。
Insert 模式: 按 i 键进入插入模式,可以编辑文本。
Visual 模式: 按 v 键切换到可视模式,用于选择文本。
保存文件: 在 Normal 模式下,按 Esc 键,然后输入 :w 并按 Enter 键。 保存并退出: 在 Normal 模式下,按 Esc ,然后输入 :wq 并按 Enter 键。
退出不保存: 在 Normal 模式下,按 Esc ,然后输入 :q! 并按 Enter 键。
使用 h、j、k、l 键进行左、下、上、右移动。
使用 Ctrl + F 和 Ctrl + B 进行翻页。
使用 gg 和 G 快捷键跳到文件开头和结尾。
进入 Visual 模式,选择文本。 复制:按 y 键。 剪切:按 d 键。
粘贴:按 p 键。
在 Normal 模式下,输入 / 进入搜索模式,输入要搜索的内容,按 Enter。
替换:在 Normal 模式,输入 :%s/old/new/g,将匹配的 "old"换为 "new"。
撤销:在 Normal 模式下,按 u 键。
重做:在 Normal 模式下,按 Ctrl + r 键。
在 Normal 模式下,输入 :q 退出。 在 Insert 模式下,按 Esc 键,然后输入 :q 退出。
4.引导流程
linux启动系统引导流程
inittab文件剖析
/etc/inittab 文件是 Unix 和类 Unix 操作系统中的一个配置文件,它主要用于初始化进程(init process)的配置。该文件通常位于系统的 /etc 目录下。在一些现代 Linux 系统中,已经不再使用 /etc/inittab 文件,而是采用其他初始化系统,比如 systemd。
在传统的 SysVinit 系统中,/etc/inittab 文件包含了关于系统运行级别(runlevel)和系统初始化进程的配置信息。以下是一些可能包含在 inittab 文件中的条目
inittab文件格式
在inittab中,所有条目采用以下格式
id:runlevels:action:process:
id 标识符,一般为两位字母或数字
run-levels 指定运行级别,可以指定多个
action 指定运行状态
process 指定要运行的脚本/命令
action常用取值:
1. initdefault:指定系统缺省启动的运行级别
2. sysinit:系统启动执行process中指定的命令
3. wait:执行process中指定的命令,并等其结束再运行其他命令
4. once:执行process中指定的命令,不等待其结束
该目录下包含各个运行级别的服务程序脚本
5.软件包管理
yum命令介绍
Yellowdog Updater Modified
yum 是一个在基于 RPM 的 Linux 发行版上广泛使用的软件包管理器,最常见于像 CentOS、Fedora 和 Red Hat Enterprise Linux(RHEL)等系统。它是一个用于管理、安装、更新和删除软件包的命令行工具。
yum命令使用
更新软件包数据库
该命令用于更新本地软件包数据库,以确保系统具有最新的可用软件包信息。
安装软件包
安装指定名称的软件包及其所有依赖项。
更新软件包
更新指定软件包,如果不指定软件包名称,则更新所有可用的软件包。
6.用户管理
用户信息文件: /etc/passwd
密码文件: /etc/shadow
用户组文件: /etc/group
用户组密码文件:/etc/gshadow
用户配置文件: /etc/login.defs
/etc/default/useradd
新用户信息文件:/etc/ske1
登录信息: /etc/motd /etc/issue
/etc/passwd文件格式
字段 | 含义 |
用户名 | 用户登录系统时使用的用户名 |
密码 | 密码位 |
UID | 用户标识号 |
GID | 缺省组标识号 |
注释性描述 | 例如存放用户全名等信息 |
宿主目录 | 用户登录系统后的缺省目录 |
命令解释器 | 用户使用的Shell,默认为bash |
Linux用户分为三种:
超级用户(root,UID=0)
普通用户(UID 500-60000)
伪用户(UID 1-499)
伪用户
1.伪用户与系统和程序服务相关
bin、daemon、shutdown、halt等,任何Linux系统默认都有这些伪用户
mail、news、games、apache、ftp、mysql及sshd等,与Linux 系统的进程相关
2. 伪用户通常不需要或无法登录系统
3. 可以没有宿主目录
/etc/shadow文件格式
字段 | 含义 |
用户名 | 用户登录系统时使用的用户名 |
密码 | 加密密码 |
最后一次修改时间 | 用户最后一次修改密码的天数 |
最小时间间隔 | 两次修改密码之间的最小天数 |
最大时间间隔 | 密码保持有效的最多天数 |
警告时间 | 从系统开始警告到密码失效的天数 |
帐号闲置时间 | 帐号闲置时间 |
失效时间 | 密码失效的绝对天数 |
标志 | 一般不使用 |
pwck 检测/etc/passwd文件
vipw 编辑/etc/passwd文件(锁定文件)
id 查看用户id和组信息
finger 查看用户详细信息
su 切换用户(su - 环境变量切换)
passwd -S 查看用户密码状态 -d -l -u
who、w 查看当前登录用户信息
groups 查看用户隶属于哪些用户组
newgrp 切换用户组
grpck 用户组配置文件检测
chgrp 修改文件所属组
vigr 编辑/etc/group文件(锁定文件)
7.进程管理
在 Linux 操作系统中,进程(Process)是计算机系统中的基本执行单元。进程是程序在执行过程中的一个实例,它拥有独立的内存空间、执行环境和系统资源。以下是关于 Linux 进程的基本概念:
每个进程都有一个唯一的标识符,称为进程标识符(PID)。PID 是一个非负整数,它唯一标识系统中的每个进程。
进程可以处于不同的状态,如运行、等待、停止、僵尸等。常见的进程状态包括:
运行(Running):进程正在执行。
等待(Waiting):进程等待某个事件发生。
停止(Stopped):进程被暂停,通常由用户或其他进程触发。
僵尸(Zombie):进程已经终止,但其父进程尚未等待其终止状态。
作用:查看用户信息
作用:查看系统中的进程
作用:指定程序的运行优先级
格式:nice -n command
例如:nice -5 myprogram
作用:安排一个或多个命令在指定的时间运行一次
格式:at [-f 文件名] 时间
at -d or atrm 删除队列中的任务
at -l or atq 查看队列中的任务
示例:指定在今天下午 17:30 执行某命令(假设现在时间是下午14:30,2011年1月11日)
at 5:30pm
at 17:30
at 17:30 today
at now + 3 hours
at now + 180 minutes
at 17:30 11.1.11
at 17:30 1/11/11
作用:安排一个或多个命令在系统负载较轻时运行一次(一般情况下负载较轻指平均负载降到0.8以下)。
使用:使用方法同at
minute hour day-of-month month-of-year day-of-week ommands
解释:
Minute 一小时中的哪一分钟 [0~59]
hour 一天中的哪个小时 [0~23]
day-of-month 一月中的哪一天 [1~31]
month-of-year 一年中的哪一月 [1~12]
day-of-week 一周中的哪一天 [0~6]
commands 执行的命令
8.文件系统管理
/usr/bin、/bin: 存放所有用户可以执行的命令
/usr/sbin、/sbin: 存放只有root可以执行的命令
/home: 用户缺省宿主目录
/proc: 虚拟文件系统,存放当前进程信息
/dev: 存放设备文件
/lib: 存放系统程序运行所需的共享库
/lost+found: 存放一些系统出错的检查结果
/tmp: 存放临时文件
/etc: 系统配置文件
/var: 包含经常发生变动的文件,如邮件、日志文件、计划任务等
/usr: 存放所有命令、库、手册页等
/boot: 内核文件及自举程序文件保存位置
/mnt: 临时文件系统的安装点
作用:查看分区使用情况
参数:
-a 包含0块空间
-h 易读方式
-k kB为单位
-l 本地
-T 显示文件系统类型
作用:查看文件、目录大小
参数:
-a:显示全部目录和其次目录下的每个文件所占的磁盘空间
-b:大小用bytes来表示 (默认值为k bytes)
-c:最后再加上总计 (默认值)
-s:只显示各文件大小的总合
-x:只计算同属同一个文件系统的文件
-L:计算所有的文件大小