Linux 小总结

一、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 
# 1 分钟后关机
shutdown -h 1
# 现在重新启动计算机
shutdown -r now
# 关机,和上面一样
halt
# 现在重启计算机
reboot
# 把内存中的数据同步到磁盘
sync

注意

  • 不管是关机还是重启系统,首先要运行 sync 命令,把内存中的数据写入到磁盘中。
  • 目前的 shutdown/reboot/halt 等命令均已经在关机前进行了 sync


2、用户登录和注销

登录时尽量少使用 root 账号进行登录,因为它是系统管理员,最大的权限,避免操作失误。可以利用普通用户进行登录,登陆后再用 su -用户名 命令来切换成系统管理员身份。

注销用户命令 logout




四、用户管理

1、基本介绍

Linux 是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须向系统管理员申请一个账号,然后以这个账号的身份进入系统。



2、添加用户

# 不指定目录的话,默认会home文件夹下创建一个以用户名命名的文件夹
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 /home/linux/java/style
# 此时就会创建 linux java style 三个目录
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 行

# 显示文件开头的 10 行
head 文件
# 指定显示文件开头几行
head -n 要显示的行数 文件

(15)tail 指令

tail 用于显示文件的结尾部分内容,默认为 10 行

# 显示文件结尾的 10 行
tail 文件
# 指定显示文件结尾几行
tail -n 要显示的行数 文件

(16)> 指令和 >> 指令

> 输出重定向 >> 追加

(17)ln 指令

软连接也称符号连接

(18)history 指令

查看已经执行过的命令,也可以执行历史命令



3、时间日期类

(1)date 指令

# 显示当前日期,输出:Sat Aug 21 10:39:22 CST 2021
date
# 显示当前年
date "+%Y"
# 显示当前月
date "+%m"
# 显示当前日
date "+%d"
# 显示当前年月日时分秒
date "+%Y-%m-%d-%H-%M-%S"
# 设置时间
date -s "时间字符串"
# 查看本月日历
cal
# 显示 2020 年日历
cal 2020


4、搜索查找类

(1)find 指令

find 指令将从指定目录向下递归地遍历各个子目录,将满足条件的文件或者目录显示在终端

# 按照文件名搜索
find 搜索范围 -name 文件名
# 按用户名查找
find 搜索范围 -user 用户名
# 按照文件大小查找
find 搜索范围 -size 文件大小

(2)locate 指令

(3)grep 指令

过滤查找,管道符 | 表示将前一个命令的输出结果传递给下一个命令



5、压缩和解压类

(1)gzip 指令和 gunzip 指令

gzip 用于压缩文件,gunzip 用于解压文件

# 压缩文件,只能将文件压缩成 *.gz 文件
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 指令,可以修改文件或者目录的权限

第一种方式(以符号方式)

# u:所有者,g:所有组,o:其他人,a:所有人
# 代表给所有者 读、写、执行权限,给所在组 读、执行权限,给其他人 执行权限
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 定时任务
crontab -e
# 查询 crontab 定时任务
crontab -l
# 删除当前用户所有的 crontab 定时任务
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 包
rpm -qa
# 查看软件包是否安装
rpm -q 软件包名
# 查询软件包信息
rpm -qi 软件包名
# 查询软件包中的文件
rpm -ql 软件包名
# 查询文件所属的软件包
rpm -qf 文件全路径
# 卸载软件包
rpm -e 软件包名
# 强制删除
rpm -e --nodeps 软件包名
# 安装软件包
rpm -ivh 软件包全路径
# i:install 安装
# v:version 版本
# h:hash 进度条


3、YUM 介绍

Yum 是一个 Shell 前端软件包管理工具,基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并安装,可以自动处理依赖关系,并且一次性安装所有依赖的软件包。



4、YUM 指令

# 查询服务器是否有需要安装的软件
yum list
# 安装指定的 YUM 包
yum install YUM包名
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值