一、Linux 目录结构
1、基本介绍
- Linux 的文件系统是采用级层式的树状目录结构,在此结构的最上层是根目录
/ ,然后在此目录下再创建其他的目录。 - 一句经典的话:在 Linux 世界里,一切皆文件!
2、具体的目录结构
(1)/bin [常用](/usr/bin、/usr/local/bin)
是 Binary 的缩写,这个目录存放着最经常使用的命令。
(2)/sbin (usr/sbin、/usr/local/sbin)
s 就是 Super User 的意思,这里存放的是系统管理员使用的系统管理程序。
(3)/home [常用]
存放普通用户的主目录,在 Linux 中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名。
(4)/root [常用]
该目录为系统管理员,也称作超级权限者的用户主目录。
(5)/lib
系统开机所需要最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件,几乎所有的应用程序都需要用到这些共享库。
(6)/lost + found
这个目录一般情况下是空的,当系统非法关机后,这里就会存放一些文件。
(7)/etc [常用]
所有的系统管理所需要的配置文件和子目录,比如安装 MySQL 数据库 my.conf
(8)usr [常用]
这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 Windows 下的 Program Files 目录。
(9)/boot [常用]
存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。
(10)/proc [不能动]
这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息。
(11)/srv [不能动]
service 缩写,该目录存放一些服务启动之后需要提取的数据。
(12)/syx [不能动]
这是 Linux 2.6 内核的一个很大的变化,该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs
(13)/tmp
这个目录是用来存放一些临时文件的。
(14)/dev
类似于 Windows 的设备管理器,把所有的硬件用文件的形式存储。
(15)/media [常用]
Linux 系统会自动识别一些设备,例如 U盘、光驱等,当识别后,Linux 会把识别的设备挂载到这个目录下。
(16)/mnt [常用]
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在 /mnt/ 上,然后进入该目录就可以查看里面的内容了。
(17)/opt [常用]
这是给主机额外安装软件所存放的目录,比如 IDEA,默认为空。
(18)/usr/local [常用]
这是另一个给主机额外安装软件的目录,一般是通过编译源码方式安装的程序。
(19)/var [常用]
这个目录中存放着不断扩充着的东西,习惯将经常被修改的目录放在这个目录下,包括各种日志文件。
(20)/selinux [security-enhanced linux]
SeLinux 是一种安全子系统,它能控制程序只能访问特定文件,有三种工作模式,可以自行设置。
二、vi 和 vim 编辑器
1、基本介绍
Linux 会内置 vi 文本编辑器。
Vim 具有程序编辑的能力,可以看做是 Vi 的增强版本,可以主动地以字体颜色辨别语法的正确性,方便编写程序。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
2、vi 和 vim 常用的三种模式
(1)正常模式
使用 vim 打开一个文件就直接进入一般模式了(这是默认的模式),在这个模式中,你可以使用 【上下左右】按键来移动光标。
(2)插入模式
按下字母 i 即可进入插入模式。
(3)命令行模式
**输入 Esc 再输入 : **,可以输入相关指令,完成读取、存盘、替换、离开 vim、显示行号等。
3、vi 和 vim 基本使用
4、各种模式的互相切换
5、vi 和 vim 快捷键
vi 和 vim 快捷键
三、开机、重启和用户登录注销
1、常用命令
shutdown -h now
shutdown -h 1
shutdown -r now
halt
reboot
sync
注意:
- 不管是关机还是重启系统,首先要运行
sync 命令,把内存中的数据写入到磁盘中。 - 目前的
shutdown/reboot/halt 等命令均已经在关机前进行了 sync 。
2、用户登录和注销
登录时尽量少使用 root 账号进行登录,因为它是系统管理员,最大的权限,避免操作失误。可以利用普通用户进行登录,登陆后再用 su -用户名 命令来切换成系统管理员身份。
注销用户命令 logout 。
四、用户管理
1、基本介绍
Linux 是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须向系统管理员申请一个账号,然后以这个账号的身份进入系统。
2、添加用户
useradd 用户名
useradd -d 目录 用户名
3、指定或者修改密码
因为新创建的用户是没有密码的,所以需要手动指定。
passwd 用户名
4、删除用户
userdel 用户名
5、查询用户信息
id 用户名
6、切换用户
sudo - 用户名
细节:
- 从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。
- 当需要返回原来的用户时,使用
exit/logout 命令。
7、查看当前用户
whoami
who am i
8、用户组
(1)介绍
类似于角色,系统可以对有共性/权限的多个用户进行统一管理。
(2)新增组
groupadd 组名
(3)删除组
groupdel 组名
(4)添加到用户组
useradd -g 用户组名 用户名
(5)修改用户所在的用户组
usermod -g 用户组名 用户名
五、实用指令
1、指定运行级别
基本介绍
- 0:关机
- 1:单用户(找回丢失密码)
- 2:多用户状态(没有网络服务)
- 3:多用户状态(有网络服务)
- 4:系统未使用,保留给用户
- 5:图形界面
- 6:系统重启
常见的运行级别是 3 和 5,也可以指定默认运行级别。
init 运行级别
2、文件目录类
(1)pwd 指令
显示当前工作目录的绝对路径
pwd
(2)ls 指令
显示当前目录的文件和目录
ls
ls -a
ls -l
(3)cd 指令
进入到某个目录
cd 路径
cd ~
cd
cd ..
(4)mkdir 指令
用于创建目录
mkdir 目录名称
mkdir -p 目录名称
(5)rmdir 指令
删除空目录
rmdir 目录名
rm -rf 目录名
(6)touch 指令
创建一个文件
touch 文件名
(7)cp 指令
拷贝文件或者目录到指定目录
cp 源文件 目标目录
cp -r 源目录 m
(8)rm 指令
删除文件或者目录
rm -rf 文件或者目录
rm -r 文件或者目录
rm -f 文件或者目录
(9)mv 指令
移动文件或者重命名
mv 文件名 新文件名
mv 初始文件路径 目标文件路径
(10)cat 指令
cat 用于浏览文件,不能修改
cat 要查看的文件
cat -n 要查看的文件
(11)more 指令
more 指令是一个基于 vi/vim 编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。
# 查看文件
more 要查看的文件
(12)less 指令
less 指令用来分屏显示文件内容,它的功能与 more 相似,但是比 more 指令更加强大,支持各种显示终端。less 指令在显示文件内容时,并不是一次将整个文件加载后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
less 要查看的文件
(13)echo 指令
输出内容到控制台
echo 输出内容
(14)head 指令
head 用于显示文件的开头部分内容,默认为 10 行
head 文件
head -n 要显示的行数 文件
(15)tail 指令
tail 用于显示文件的结尾部分内容,默认为 10 行
tail 文件
tail -n 要显示的行数 文件
(16)> 指令和 >> 指令
> 输出重定向 >> 追加
(17)ln 指令
软连接也称符号连接
(18)history 指令
查看已经执行过的命令,也可以执行历史命令
3、时间日期类
(1)date 指令
date
date "+%Y"
date "+%m"
date "+%d"
date "+%Y-%m-%d-%H-%M-%S"
date -s "时间字符串"
cal
cal 2020
4、搜索查找类
(1)find 指令
find 指令将从指定目录向下递归地遍历各个子目录,将满足条件的文件或者目录显示在终端
find 搜索范围 -name 文件名
find 搜索范围 -user 用户名
find 搜索范围 -size 文件大小
(2)locate 指令
(3)grep 指令
过滤查找,管道符 | 表示将前一个命令的输出结果传递给下一个命令
5、压缩和解压类
(1)gzip 指令和 gunzip 指令
gzip 用于压缩文件,gunzip 用于解压文件
gzip 文件
gunzip 文件
(2)zip 指令和 unzip 指令
zip 用于压缩文件,unzip 用于解压文件,用于项目打包
zip -r 目录/文件
unzip -d 存放路径 目录/文件
(3)tar 指令
tar 指令是打包指令,最后打包的文件是 *.tar.gz 的文件
tar -zcvf 1.txt 2.txt
tar -zxvf 目录
tar -zxvf *.tar.gz
六、组管理和权限管理
1、Linux 组基本介绍
在 Linux 中的每个用户必须属于一个组,不能独立于组之外,在 Linux 中每个文件有所有者、所在组、其他组的概念。
2、文件/目录 所有者
一般为文件的创建者,谁创建了文件,就自然地成为了该文件的所有者。
(1)查看文件的所有者
ls -ahl 文件
(2)修改文件所有者
chown -ahl
3、组的创建
groupadd 组名
useradd -g 组名 用户名
4、文件/目录 所在组
当某个用户创建了一个文件之后,这个文件的所在组就是该用户所在的组(默认)。
(1)查看文件/目录 所在组
ls -ahl 文件/目录
(2)修改文件/目录 所在组
chgrp 组名 文件名
5、其他组
除了文件的所有者和所在组的用户外,系统的其他用户都是文件的其他组。
6、改变用户所在组
在添加用户时,可以指定将用户添加到哪个组中,同样的用 root 的管理员权限可以改变某个用户所在的组。
usermod -g 新组名 用户名
usermod -d 目录名 用户名
7、权限的基本介绍
0~9 位说明
(1)第 0 位确定文件类型(d,-,l,c,b)
-
- 是 文件 -
l 是链接,相当于 Windows 的快捷方式 -
d 是目录,相当于 Windows 的文件夹 -
c 是字符设备,鼠标、键盘 -
b 是块设备,比如硬盘
(2)第 1~3 位确定该文件的所有者拥有该文件的权限
(3)第 3~6 位确定所属组(同用户组)拥有该文件的权限
(4)第 7~9 位确定其他用户拥有该文件的权限
8、rwx 权限详解
(1)rwx 作用到文件
- r 代表可读,可以读取和查看
- w 代表可写,可以修改,但是不代表可以删除该文件,删除一个文件的前提是对该文件所在的目录有写权限,才能删除该文件
- x 代表可执行,可以被执行
(2)rwx 作用到目录
- r 代表可读,可以读取,ls 指令查看目录内容
- w 代表可写,可以修改,对目录内创建、删除、重命名目录
- x 代表可执行,可以进入该目录
9、权限分析实际案例
-rw-r--r-- 1 root root 58028307 Aug 23 18:07 blog-admin.jar
第 0 位 - 代表这是个文件
第 1~3 位 rw- 代表文件的拥有者对该文件的权限是 读和写
第 4~6 位 r-- 代表文件的拥有者所在组对该文件的权限是 读
第 7~9 位 r-- 代表不与文件的拥有者在同一组对该文件的权限是 读
1 代表 硬连接数(如果是目录的话,就代表有子目录数)
第 1 个 root 代表用户
第 2 个 root 代表用户组
58028307 文件大小(字节),如果是文件夹,显示 4096
Aug 23 18:07 最后修改日期
blog-admin.jar 文件名
10、修改权限
通过 chmod 指令,可以修改文件或者目录的权限。
第一种方式(以符号方式)
chmod u=rwx,g=rx,o=x 文件名/目录名
chmod o+w 文件名/目录名
chmod a-x 文件名/目录名
第二种方式(以数字方式)
r=4 w=2 x=1
chmod u=rwx,g=rx,o=x
chmod 751
11、修改文件所有者
chown 新的所有者 文件/目录
chown 新的所有者:新的所在组 文件/目录
12、修改文件/目录所在组
chgrp 新的所在组 文件/目录
七、定时任务调度
1、crond 任务调度
crontab 进行定时任务的设置。
(1)概述
任务调度:是指系统在某个时间执行特定的命令或者程序。
任务调度分类:系统工作,有些重要的工作必须周而复始地执行,如备份等。
个别用户工作:个别用户可能希望执行某些程序,比如对 MySQL 数据库的备份。
示意图:
crontab -e
crontab -l
crontab -r
2、at 定时任务
(1)基本介绍
- at 命令是一次性定时计划任务,at 的守护进程 atd 会以后台模式运行,检查作业队列来运行。
- 默认情况下,atd 守护进程每 60 秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业
- at 命令是一次定时计划任务,执行完一个任务后不再执行此任务了
- 在使用 at 命令的时候,一定要保证 atd 进程的启动,可以使用相关指令来查看
ps -ef | grep atd
八、磁盘分区、挂载
1、磁盘分区
原理介绍:
(1)Linux 无论有几个分区,分给哪一目录进行使用,它归根到底就只有一个根目录,一个独立且唯一的文件结构,Linux 中每个分区都是用来组成整个文件系统的一部分。
(2)Linux 采用了一种叫“载入”的处理办法,它的整个文件系统中包含了一整套的文件和目录,而且将一个分区和一个目录联系起来,这时要载入的一个分区将使它的存储空间在一个目录下获得。
(3)示意图
2、磁盘情况查询
df -h
九、网络配置
1、查看 Linux 的网络配置
ifconfig
十、进程管理
1、基本介绍
(1)在 Linux 中,每个执行的程序都被称为一个进程,没一个进程都被分配一个 ID(PID,进程号,唯一)
(2)每个进程都可能以两种方式进行存在的,前台与后台,所谓前台就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行
(3)一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束。
2、显示系统执行的进程
ps 指令用来查看当前系统中,有哪些正在执行,以及它们执行的状况。
ps -a
ps -u
ps -x
3、终止进程 kill 和 killall
kill 进程号
kill 进程名
killall 进程名
kill -9 进程号或进程名
4、查看进程树
pstree -p
pstree -u
5、服务管理
(1)介绍
服务本质就是进程,但是运行在后台的,通常都会监听某个端口,等待其他程序的请求,因此我们又称为守护进程,是 Linux 非常重要的知识点。
十一、RPM 与 YUM
1、RPM 介绍
rpm 用于互联网下载包的打包及安装工具,它包含在某些 Linux 分发版中,它生成具有 .rpm 扩展名的文件,类似于 Windows 的 setup.exe,理念都是相同的。
2、RPM 指令
rpm -qa | grep 名称
rpm -qa
rpm -q 软件包名
rpm -qi 软件包名
rpm -ql 软件包名
rpm -qf 文件全路径
rpm -e 软件包名
rpm -e --nodeps 软件包名
rpm -ivh 软件包全路径
3、YUM 介绍
Yum 是一个 Shell 前端软件包管理工具,基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并安装,可以自动处理依赖关系,并且一次性安装所有依赖的软件包。
4、YUM 指令
yum list
yum install YUM包名
|