文章目录
二、Linux02——基础篇1
1. 目录结构
目录 | 含义 |
---|---|
/bin[常用] | 是Binary的缩写,这个目录存放着最经常使用的命令 |
/sbin | s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。 |
/home[常用] | 存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名 |
/root[常用] | 该目录为系统管理员,也称作超级权限者的用户主目录 |
/lib | 系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的 DLL文件。几乎所有的应用程序都需要用到这些共享库 |
/lost+found | 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件 |
/etc[常用] | 所有的系统管理所需要的配置文件和子目录,比如安装mysql数据库 my.conf |
/usr[常用] | 这是一个非常重要的目录,用户安装的很多应用程序和文件都放在这个目录下,类似与windows 下的 program files目录。 |
/boot[常用] | 存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件 |
/proc [不能动] | 这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息 |
/srv[不能动] | service缩写,该目录存放一些服务启动之后需要提取的数据 |
/sys[不能动] | 这是linux2.6内核的一个很大的变化.该目录下安装了2.6内核中新出现的一个文件系统 sysfs=》【别动】 |
/tmp | 这个目录是用来存放一些临时文件的 |
/dev | 类似于 windows的设备管理器,把所有的硬件用文件的形式存储 |
/media [常用] | linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux 会把识别的设备挂载到这个 |
/mnt[常用] | 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt上,然后进入该目录就可以查看里面的内容了。 |
/opt | 这是给主机额外安装软件所存放的目录。如安装ORACLE 数据库就可放到该目录下。默认为空 |
/usr/local[常用] | 这是另一个给主机额外安装软件所安装的目录。一般是通过编译源码方式安装的程序 |
/var[常用] | 这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下。包括各种日志文件 |
/selinux [security-enhanced linux] | SELinux 是一种安全子系统,它能控制程序只能访问特定文件,有三种工作模式,可以自行设置. |
2. 远程登录Linux服务器
2.1 XShell
-
下载地址
-
软件下载
-
链接:https://pan.baidu.com/s/1YdLFb_7OaapIOEL1qfex-g 提取码:3x96
-
2.1.1 演示
2.2 XFTP(主要用来传资源,文件可视化)
-
软件下载
-
链接:https://pan.baidu.com/s/1YdLFb_7OaapIOEL1qfex-g 提取码:3x96
-
-
界面展示
-
中文乱码问题
3. Vi 和 Vim编辑器
3.1 三种模式
模式 | 解释 |
---|---|
正常模式 | 用vim打开一个文件就直接进入一般模式了(这是默认的模式)。在这个模式中,你可以使用『上下左右」按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容,也可以使用『复制、粘贴』来处理你的文件数据。 |
插入模式 | 按下i,L, o,O, a,A, r,R等任何一个字母之后才会进入编辑模式,一般来说按i即可. |
命令行模式 | 输入esc再输入:在这个模式当中,可以提供你相关指令,完成读取、存盘、替换、离开 vim 、显示行号等动则则是在此模式中完成的 |
3.2 快捷键
3.2.1 复制-粘贴-删除-撤销-定位首行末行-定位指定行
在正常模式下
-
操作一行数据
- 拷贝当前行–
yy
- 粘贴-------
p
- 删除当前行–
dd
- 拷贝当前行–
-
操作多行数据
- 需要在个指令前键入数字:
5yy
–表示从当前光标所在行向下5行内容都会被复制 - 需要在个指令前键入数字:
5dd
–表示从当前光标所在行向下5行内容都会被删除
- 需要在个指令前键入数字:
-
撤销
- 键入字符u即可
-
定位首行末行
-
G ---定位首行 gg ---定位末行
-
-
定位指定行
-
1. 输入想要查找的行号 2. 按shift+g 3. 回车
-
3.2.2 查找字符-设置行号
在命令行模式下
-
查找字符
-
/关键字
-
回车查找
-
输入n就是查找下一个
-
-
设置行号
-
:set nu ---代表设置行号 :set nonu ---代表取消行号
-
4. 开机、重启、用户登录注销操作
- 开关机、重启
指令 | 说明 |
---|---|
shutdown -h now | 立刻进行关机 |
shutdown -h 1/shutdown | 1分钟后关机 |
shutdown -r now | 现在重启计算机 |
halt | 关机 |
reboot | 下载重启计算机 |
sync | 关机前的操作,把内存的数据同步到磁盘 |
- 用户登录注销
指令 | 说明 |
---|---|
su - 用户 | 切换用户 |
logout | 在图形运行级别无效,xshell远程操作,可以退出当前用户 |
5. 用户/用户组管理 组管理和权限管理
在root用户权限下进行操作
5.1 用户管理
5.1.1 添加用户
useradd 用户名 //默认用户的文件夹在/home下
useradd -d 指定目录 用户名 //给新创建的用户指定家目录
5.1.2 修改密码
passwd 用户名
-
pwd //显示当前用户所在的目录
5.1.3 删除用户
userdel 用户名 //仅删除用户,不删除它的家目录
userdel -r 用户名//删除用户及其家目录
5.1.4 查询用户
id 用户名 //查看指定用户信息
whoami 或者 who am i //查看当前用户
5.1.5 切换用户
su - 切换用户名
- 从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。
- 当需要返回到原来用户时,使用exit/logout指令
5.2 用户组管理
5.2.1 添加用户组
groupadd 用户组名称 //创建用户组
groupadd -g 用户组 用户名 //增加用户时直接加上组
5.2.2 修改用户的组
usermod -g 用户组 用户名
5.2.3 删除用户组
groupdel 组名
5.3 用户和组相关文件
5.3.1 读取用户的配置文件,记录用户的各种信息
cat /etc/passwd
- 每行的含义
- 用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
- Shell:是解释用户输入的指令然后翻译给Linux内核的中间处理。国内用的bash
- 用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
5.3.2 读取口令的配置文件
cat /etc/shadow
- 每行的含义
- 登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
5.3.3 读取组的配置文件,记录Linux包含的组的信息
cat /etc/group
- 每行的含义
- 组名:口令:组标识号:组内用户列表
5.4 Linux组管理和权限管理
- 在linux 中的每个用户必须属于一个组,不能独立于组外。在 linux中每个文有所有者、所在组、其它组的概念。
5.4.1 查看文件、目录的所有者/所在组
指令 | 说明 |
---|---|
ll -h (ls -ahl ) | 查看文件或目录所有者 |
5.4.2 修改文件、目录的所有者/所在组
指令 | 说明 | 举例 |
---|---|---|
chown [选项] 用户名 文件名 | 修改文件所有者 | eg: chown tom hello.txt (将hello.txt文件所有者改成tom) |
chgrp [选项] 组名 文件名 | 修改文件所在组 | eg:chgrp jerry hello.txt(修改hello.txt文件组为jerry) |
- 选项
- -R:将其下面子目录子文件递归更改(全部)
5.4.3 权限的基本介绍
位数 | 解释 |
---|---|
第0位(灰色) | 确定文件类型 1. l代表连接,相当于快捷方式(见 ln 语法)2. d代表目录,相当于文件夹 3. c是字符设备文件,比如鼠标,鼠标(比如dev目录下) 4. b是块设备,比如硬盘 5. -代表一般文件,比如 .txt 等 |
第1-3位 | 确定所有者 (该文件的所有者)拥有该文件的权限。—User rwx(代表读写执行权限) |
第4-6位 | 确定所属组 (同用户组的)拥有该文件的权限,—Group |
第7-9位 | 确定其他用户 拥有该文件的权限—Other |
第11位 | 表示里面的文件和文件夹之和数 |
第一个root | 代表用户 |
第二个root | 代表所在组 |
字符1213 | 代表字节大小 |
5.4.4 rwx权限详解
①rwx作用到文件
1、r代表可读(read):可以读取,查看
2、w代表可写(write)可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.
3、x代表可执行(execute);可以被执行
②rwx作用到目录
1、r代表可读(read):可以读取,ls查看目录内容
2、w代表可写(write);可以修改,对目录内创建+删除+重命名目录
3、x代表可执行(execute):可以进入该目录
③修改权限
-
u:所有者 g:所在组 o:其他组 a:所有的人
-
语法1
chmod u=rwx,g=rx,o=x 文件或目录名 //解释:给XX文件的所有者读写执行权限,给所在组读执行权限,给其他组读指向权限 chmod o+w 文件或目录名 //解释:给其他组添加写的权限 chmod a-x 文件或目录名 //给所有人除去执行的权限
-
r=4 w=2 x=1 rwx=4+2+1=7
-
语法2
chmod u=rwx,g=rx,o=x 文件目录名 <==> chmod751 文件目录名
6. 实用指令
6.1 指定运行级别
指令 | 说明 |
---|---|
init 0 | 关机 |
init 1 | 单用户(找回丢失密码) |
init 2 | 多用户状态没有网络服务 |
**init 3** | **多用户状态有网络服务** |
init 4 | 系统未使用保留给用户 |
init 5 | 图形界面 |
**init 6** | **系统重启** |
6.2 找回root密码
-
首先,启动系统,进入开机界面,在界面中按“e”进入编辑界面。如图
-
进入编辑界面,使用键盘上的上下键把光标往下移动,找到以““Linux16”开头内容所在的行数”,在行的最后面输入:
init=/bin/sh
。如图 -
输入完成后,按
Ctrl+x
进入单用户模式 -
接着输入
mount -o remount,rw /
,回车 -
输入
passwd
,总共需要输入两次 -
然后输入
touch /.autorelabel
,回车 -
最后输入
exec /sbin/init
,回车后,必须等待系统自动重启,即可
6.3 帮助指令类
6.3.1 获得帮助信息
man [命令或配置文件] //获得指令的帮助信息
eg: man ls //查看ls命令的帮助信息
6.3.2 获得shell内置命令的帮助信息
help 命令
6.4 文件目录类
1. 查看文件
1.1 more
–vim编辑器文本交互器
操作 | 说明 |
---|---|
空格键 | 向下翻一页 |
Enter | 向下翻一行 |
q | 立刻退出more,不显示该文件内容 |
Ctrl+F | 向下滚动给一屏 |
Ctrl+B | 返回上一屏 |
= | 输出当前行的行号 |
:f | 输出文件名和当前行的行号 |
-
语法
more 文件名
1.2 less
–查看文件内容,和more指令类似,但是更强大
操作 | 说明 |
---|---|
空白键 | 向下翻动一页 |
[pagedown] | 向下翻动一页 |
[pageup] | 向下翻动一页 |
/字串 | 向下搜寻『字串』的功能;n:向下查找;N:向上查找; |
?字串 | 向上搜寻『字串』的功能;n:向下查找;N:向上查找; |
q | 离开less |
1.3 echo
–输出内容到控制台
-
语法
echo [选项] [输出内容]
-
案例
echo $PATH //输出环境变量
1.4 head
–查看文件的开头部分内容
-
语法
head 文件 //默认看文件头10行内容 head -n 5 文件 //查看文件头5行内容,数字自定
1.5 tail
–查看文件的尾部内容
-
语法
tail 文件 //默认看文件尾10行内容 tail -n 5 文件 //查看文件尾5行内容,数字自定 tail -f 文件 //实时追踪文档的所有更新,有更新立马显示
1.6
2. 文件基本操作
2.1 创建目录mkdir
-
语法
mkdir [选项] 要创建的目录
-
常用选项
-
-p:创建多级目录,如:
mkdir -p aa/bb //当前目录下创建aa , aa下创建bb目录 mkdir /home/aa/bb //绝对路径下创建
-
2.2 删除目录rmdir
-
语法
rmdir [选项] 要删除的空目录
-
使用注意
-
rmdir
删除的是空目录,如果目录下有内容无法删除 -
删除不为空的目录需要使用
rm -rf 要删除的目录 eg:rm -rf /home/animal //解释 -f:强制删除 -r:级联递归删除
-
2.3 touch
–创建空文件
-
语法
touch 文件名称
2.4 cp
–拷贝指令
-
语法
cp [选项] 源地址 目标地址
-
常用选项
-r
:递归复制,建议使用
-
注意
-
重复覆盖可能需要多次确认是否覆盖原文件,如下可避免
\cp -r /home/source /home/dest
-
2.5 rm
–删除文件或目录
-
语法
rm [选项] 要删除的文件或目录
-
常用选项
- -r:递归删除整个文件/文件夹
- -f:强制删除不提示
2.6 mv
–重命名/移动文件
-
语法
mv oldNameFile newNameFile //重命名 mv 文件路径 /targetFolder //移动文件
2.7 >
(覆盖写)和>>
(追加写)
-
举例
ls -l>文件 //列表的内容写入文件中(覆盖写) ls -al>>文件 //列表的内容追加到文件的末尾 cat 文件1 > 文件2 //将文件1的内容覆盖到文件2 echo "内容" >> 文件 (追加)
3. 其他操作
3.1 pwd
–显示当前工作目录的绝对路径
3.2 ls
–列表显示文件名
-
语法
ls [选项] [目录或者文件]
-
常用选项
-
-a:显示当前目录所有的文件和目录,包括隐藏文件
-
-l:以列表的方式显示信息
-
**注意:**指令可以进行组合,如:
ls -al h或 ls -la //表示-a和-l一起结合的结果
-
3.3 cd
–切换到指定目录
-
语法
cd [参数]
-
常用实例
cd ~
或者cd
:回到当前用户的家目录cd ..
:回到当前目录的上一级目录
3.4 cat
–查看文件内容
-
语法
cat [选项] 要查看的文件
-
常用选项
- -n:显示行号
-
使用细节
-
cat只能游览文件,不能修改文件,为了游览方便加上管道命令 | more cat -n /home/a.txt | more
-
3.5 ln
–符号连接;类似于快捷方式
-
语法
ln -s [原文件或目录] [软连接名] //给源文件创建一个软连接
3.6 history
–查看已经执行过的历史命令
操作 | 说明 |
---|---|
history | 显示所有的历史命令 |
history 10 | 显示最近使用的10个指令 |
!5 | 执行历史编号为5的指令 |
6.5 时间日期类
1. date
–显示当前日期
-
语法
操作 说明 date 显示当前时间 date +%Y 显示当前年份 date +%m 显示当前月份 date “+%Y-%m-%d %H:%M:%S” 显示年月日时分秒 date -s “时间” 设置时间
2. cal
–显示日历
-
语法
操作 说明 cal 查看日历 cal 年份 查看当年的所有日历
6.6 搜索查找类
1. find
–查找满足条件的文件
-
语法
find [搜索范围] [选项]
-
选项说明
选项 说明 -name 按照指定的文件名查找文件 -user 查找属于指定用户名所有文件 -size 按照指定的文件大小查找文件(+n:大于 -n:小于 n:等于,单位有K,M,G) -
案例演示
1. 查找后缀名为txt的文件 find / -name *.txt 2. 按拥有者查找/home目录下,jerry的文件 find /home -user jerry 3. 查找整个系统下大于200M的文件() find / -size +200M
2. locate
–快速定位文件路径
-
locate 指令可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的 locate数据库实现快速定位给定的文件。Locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻
-
语法
1. updatedb //先执行这条,代表更新数据库 2. locate 搜索文件//再进行搜索
3. grep和管道符号
–过滤查找
- grep过滤查找,管道符,“"I’,表示将前一个命令的处理结果输出传递给后面的命令处理。
-
语法
grep [选项] 查找内容 源文件 //grep 前面查找出来的东西交给grep进行过滤
-
常用选项
选项 功能 -n 显示匹配内容所在的行号 -i 忽略字母大小写 -
案例
1. cat hello.txt | grep -n 'j' //查看hello.txt且查找j所在行
6.7 压缩和解压类
1. gzip
/gunzip
–压缩文件/解压文件(.gz)
- 只能压缩文件,不能压缩目录,即使使用选项-r压缩,也只能是对目录下的所有文件压缩
-
语法
gzip [选项] 文件 //压缩文件,只能将文件压缩为*.gz文件 gunzip [选项] 文件.gz//解压缩文件
-
选项
选项 说明 -c 将压缩数据输出到标准输出中,并保留源文件。 -d 对压缩文件进行解压缩。 -r 递归压缩,即压缩目录
2. zip
/unzip
–压缩文件/解压文件(.zip)
-
zip用于压缩文件,unzip用于解压的,这个在项目打包发布中很有用的
-
语法
zip [选项] 压缩包名 源文件或源目录列表 //压缩文件和目录的命令 unzip [选项] 压缩包名 源文件或源目录列表 //解压缩文件
-
zip常用选项
选项 说明 -r 递归压缩 -
unzip常用选项
选项 说明 -d 目录 指定解压后文件的存放目录
3 tar
–打包指令(.tar.gz)
-
语法
tar [选项] 打包后的名字.tar.gz 打包的内容
-
选项说明
选项 说明 -c 产生.tar打包文件 -v 显示详细信息 -f 指定压缩后的文件名 -z 打包同时压缩 -x 解压.tar文件 -C 解压到指定路径下 -
案例
//案例1:压缩多个文件,将/home/pig.txt和/home/cat.txt压缩成pc.tar.gz tar -zcvf pc.tar.gz/home/pig.txt /home/cat.txt //案例2:将/home 的文件夹压缩成myhome.tar.gz tar -zcvf myhomc.tar.gz /home/ //案例3:将pc.tar.gz解压到当前目录 tar -zxvf pc.tar.gz //案例4:将当前目录下的mysource.tar.gz解压到source/下 tar -zxvf mysource.tar.gz -C source/
7. 定时任务调度
7.1 crontab
1. 定义
- 进行定时任务的设置
2. 语法
crontab [选项]
3. 选项
选项 | 说明 |
---|---|
-e | 编辑crontab定时任务,开始编辑内容 |
-l | 查询crontab任务 |
-r | 删除当前用户所有的crontab任务 |
4. 案例
1. 设置任务调度文件:/etc/crontab
2. 设置个人任务调度。执行crontab -e 命令
3. 编辑如下内容:*/1 * * * * ls -l /etc/ > /tmp/to.txt //每小时的每分钟执行该命令
5. 占位符说明
占位符 | 含义 | 范围 |
---|---|---|
第一个"*" | 一小时当中的第几分钟 | 0-59 |
第二个"*" | 一天当中的第几小时 | 0-23 |
第三个"*" | 一个月当中的第几天 | 1-31 |
第四个"*" | 一年当中的第几月 | 1-12 |
第五个"*" | 一周当中的星期几 | 0-7(0、7都代表星期日) |
6. 特殊符号的说明
符号 | 含义 |
---|---|
* | 代表任何时间。 |
, | 代表不连续的时间,如:“0 8,12,16 * * * …”,代表在每天的8点0分,12点0分,16点0分都一行一次命令 |
- | 代表连续的时间范围,如:“0 5 * * 1-6 …”,代表周一到周六的凌晨5点0分执行命令 |
*/n | 代表每隔多久执行一次,如:"*/10 * * * * …"代表每隔10分钟就执行一次命令 |
7. 特殊时间执行案例
命令 | 含义 |
---|---|
45 22 * * * 命令 | 在22点45分执行命令 |
0 17 * * 1 命令 | 每周一的17点0分执行命令 |
0 5 1,15 * * 命令 | 每月1号到15号的凌晨5点0分执行命令 |
40 4 * * 1-5 命令 | 每周一到周五的凌晨4点40分执行命令 |
*/10 4 * * * 命令 | 每天的凌晨4点,每隔10分钟执行一次命令 |
0 0 1,15 * 1 命令 | 每月1号和15号,每周1的0点0分执行命令 |
8. 综合案例
8.1 每个一分钟,就将当前的日期信息,追加到文件中
1. crontab -e //进行编辑任务
2. */1 * * * * date >> /home/mydate.txt //每分钟执行date命令追加到mydate.txt文件,这个文件会自动创建
8.2 每隔1分钟,将当前日期和日历都追加到文件中
1. vim my.sh //创建一个脚本
2. date >> /home/mydate.txt cal >> /home/mydate.txt //在脚本中写入命令
3. crontab -e //编辑任务
4. */1 * * * * /home/my.sh 每分钟执行该命令
7.2 at
–一次性定时计划任务
1. 定义
-
at命令是一次性定时计划任务,at 的守护进程atd会以后台模式运行,检查作业队列来运行。
-
默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业
-
at命令是一次性定时计划任务,执行完一个任务后不再执行此任务了
-
在使用at命令的时候,一定要保证atd进程的启动,可以使用相关指令来查看
ps -ef | grep atd //可以检测atd是否在运行
2. 语法
at [选项] [时间] 注意:结束at命令需要按两次Ctrl+D
atrm 编号 //删除编号的定时任务
3. 选项
选项 | 含义 |
---|---|
-m | 当指定的任务被完成后,将给用户发送邮件,即使没有标准输出 |
-I | atq的别名 |
-d | atrm的别名 |
-v | 显示任务将被执行的时间 |
-c | 打印任务的内容到标准输出 |
-V | 显示版本信息 |
-q <队列> | 使用指定的队列 |
-f <文件> | 从指定文件读入任务而不是从标准输入读入 |
-t <时间参数> | 以时间参数的形式提交要运行的任务 |
4. 时间
时间 | 说明 |
---|---|
hh:mm形式 | 04:00 |
英文的时间词汇 | noon/midnight |
采用12小时计时制 | 12pm / 4am |
具体日期 | 04:00 2021-08-05 |
相对计时法 | now + 5 minutes |