2021-08-09~2021-08-13
工作总结
前言
上周学习nginx的时候是部署在linux系统上,发现自己对linux的熟悉程度并不好,所以本周来对linux进行学习。
技术探索
1.Linux介绍
1.1 Linux简介
Linux是一款操作系统,免费、开源、安全、高效、稳定、处理高并发强。现在很多企业级的项目都部署在linux服务器运行。Rehat使用Linux的内核,开发出了 Centos,Redhat。
1.2 Linux目录结构
linux的文件系统采用级层式的树状目录结构,在此结构中最上层的根目录"/",在此目录下可以创建其他目录。(linux世界里,一切皆文件)
- 根目录 /
- /boot 启动linux时使用的一些核心文件,包含一些连接文件以及镜像文件
- /bin 常用的指令
- /etc 存放配置文件
- /home 创建用户的时候会产生对应的文件
- /lib、/lib64 动态库
- /opt 需要安装的软件所摆放的目录
- /usr/local 安装软件过后的文件目录
- /proc 内核文件不要动
- /root root用户的文件
- /selinux 安全子系统,安全加强目录(有黑客入侵会自动触发)
- /usr 安装软件以及应用程序软件存放处
- /sbin 高权限用户使用的文件、存放系统管理员使用的系统管理程序
- /dev 管理设备 (cpu、disk)把服务器的硬件映射成文件来管理
- /media 管理硬件(dvd、usb),当识别后linux会把识别的设备挂载道这个目录下
- /mnt 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt上,然后进入该目录就可以查看里的内容了。(识别共享文件)
- /var 日志文件存放
总结
- linux系统有且仅有一个根目录
- linux的各个目录存放的内容是规划好,不要乱放文件
- linux是以文件形式管理我们的设备的,因此linux一些皆为文件
2.Linux使用
2.1 Linux vi与vim编辑器
所有的程序都有vi编辑器,vim具有程序编辑功能,可以看错vi的增强版本。
vi和vim三钟常见模式
- 正常模式
以vim打开一个文档就直接进入正常模式,可以使用删除字符以及删除整行来管理文档,也可以使用 复制 粘贴来处理文档。 - 插入模式
该模式下程序员可以输入内容。按i、o、r等任意一个字母之后会进入编辑模式,一般来说输入i即可。 - 命令行模式
在这个模式中,可以提供相关指令、完成读取、存盘、替换、离开 vim 、显示行号等动作。
案例
- 命令行
wq :保存退出
w:保存文件
q:退出(如对内容有修改无法按此方法退出)
q!:强制退出 - vi与vim快捷键(常用) 在一般模式中
yy 复制当前行 5yy 复制当前行向下五行 p 粘贴
dd 删除当前行 5dd 删除当前行向下五行 dw 删除一个词语 == v删除光标处
命令行 / 输入要查询==的内容 回车进行匹配 输入 n查找下一个
命令行 :set nu 设置行号 :set nonu 取消行号
G文件末行 gg文件首行
0 行首 $行末
撤回 u 取消撤回动作 crtl+r
跳转到文件的某行 输入行号 shift+g
2.2 Linux关机以及重启命令
- shutdown
shutdown -h now 立刻关机
shutdown -h 1 “hello1分钟后会关机”
shutdown -r now 现在重新启动计算机 - halt
直接关机,等价于关机 - reboot
重启系统 - syn(关机或重启的时候执行)
把内存数据同步磁盘(把为保存的数据保存) - logout注销登录
2.3用户管理
Linux可以创建不同的用户,每个用户至少要属于一个组。每个用户创建过后会生成自己同名的(/home)家目录,不同用户在登录的时候会自动进入自己的家目录。
- 添加用户
useradd 用户名 - 设置用户的密码
passwd 用户 - 删除用户
userdel 用户名 (家目录保留) userdel -r 用户名(同时删除家目录) - 查询用户信息
id 用户名 - 切换用户
su - 用户名 (exit返回切换前的用户) - 查看当前用户
who am i
2.4用户组
类似于角色,系统可以对有共性的多个用户进行统一管理。
- 增加组
groupadd 组名 - 删除组
groupdel 组名 - 添加用户的时候指定组(组名必须提前建好)
useradd -g 用户组 用户名 - 修改用户的组
usermod -g 用户组 用户名
2.5用户配置文件
-
/etc/passwd 用户配置文件(用户信息)
-
/etc/group 组配置文件(组信息)
-
/etc/shadow 口令配置文件(密码以及登录信息,已加密)
2.6Linux运行级别
- 0 关机
- 1 单用户(找回丢失密码)
- 2 多用户无网络服务
- 3 多用户有网络服务
- 4 保留
- 5 图形界面
- 6 重启
系统的运行级别配置文件 /etc/inittab (id:5 initdefault:)
切换到指定运行级别的指令: init[012356] (例如 init 3)
案例:如何找回丢失的root密码
1.开机在引导时输入回车键进入单用户模式修改密码(必须用服务器操作)
2.7帮助指令
- man 查看指令的参数使用 (man [命令或配置文件])
- help 获取shell内置命令的帮助信息(help 命令)
2.8文件目录指令
- pwd 指令 (显示所在地址)
显示当前工作目录的绝对路径 - ls 指令(显示文件目录)
ls [选项] [目录或是文件]
ls -al 显示当前目录的所有文件和目录,保护隐藏的
ls -l 以列表的方式显示信息 - cd(打开文件夹)
cd [参数]
cd ~ 返回家目录
cd …返回上一级目录 - mkdir (创建文件夹)
mkdir [选项] 所需创建的目录
mkdir -p 创建多级目录 - rmdir (删除文件夹)
rmdir [选项] 所需删除的目录 rmdir 文件 只能删除空文件
rm -rf 目录 可以删除目录下的内容 - touch(创建空文件)
touch 文件.类型 (可创建多个) - cp指令(复制文件)
cp [选项] source(源) dest(目标)
cp -r source(源) dest(目标) 递归复制整个目录
\cp -r source(源) dest(目标) 针对已有文件强制覆盖 - rm(移除文件或者目录)
移除文件或者目录
rm [选项] 要删除的文件或目录
常用选项
-r 递归删除整个文件夹
-f 强制删除不提示 - mv(== 移动文件或重命名==)
移动文件或重命名
mv oldFile newFile (重命名,同文件中就是重命名文件)
mv 地址/文件名 地址 (移动文件,目标地址不带文件名) - cat(查看文件)
查看文件内容
cat [选项] 要查看的文件
cat -n 文件 (显示行号)
cat -n 文件 | more (分页显示,空格翻页)
-more(查看文件)
是一个基于vi编辑器的文本过滤器,它以全屏的方式按页显示文本文件的内容
more 要查看的文件 (ctrl+b 上一页 ctrl+f下一页 q离开文件) - less(大文件量的时候用less查看)
用来分屏查看文件,它的功能于more类似,支持各种显示终端,less根据显示的需要加载内容
less 文件 (pagedown 向下翻页 pageup 向上翻页 /字符串 ?字符串 向上或向下查找 n N控制) - > 与 >> (追加与覆盖)
> 输出重定向 (会覆盖原来文件)
> > 追加 (追加文件的尾部)
ls -l > 文件 (列表的内容写入文件中(覆盖))
ls -al >> 文件 (列表的内容追加到文件的末尾)
cat 文件1 >文件2 (文件1的内容覆盖文件2的内容)
echo “内容” >>文件 (双引号的内容追加到文件末尾) - echo(输出内容到控制台)
echo [选项] [输出内容]
echo $PATH (输出环境变量) - head (查看文件头)
用来查看文件开头内容
head 文件(默认查看文件开头前10行)
head -n 5 文件(查看文件的前5行) - tail(查看文件尾)
查看文件的末尾内容
tail 文件(默认查看文件的最后10行)
tail -n 5 文件(查看文件的最后5行)
tail -f 文件(实时查看文件追加内容,可用于查看日志) - ln(软连接)
软连接指令,主要用来存放文件路径(类似windos的快捷方式)
ln -s [源文件/目录] [软连接名]
rm -rf 软连接名 (删除软连接)
-history (历史执行命令)
查看系统执行过的指令
history 10 显示10个
!行号 (执行history查看行号的指令)
2.9 时间日期类
- date(显示日期)
显示当前日期
date+"%Y" 当前年
date+"%m" 当前月
date+"%d" 当前天
date +"%Y %m %d %H%M%S"
date -s “2021-10-10 12:12:12” 设置系统时间
-cal(显示日历)
以日历的样式 显示时间
cal 年份 (显示该年份的日历)
2.10 搜索查找类
- find(查询子文件夹)
从指定文件夹递归向下查询所有的子文件夹,最终将匹配的文件显示到终端
find [搜索范围] [选项]
选项:
-name (根据文件名字查询) 例子: find /root -name hello.txt
-user (根据用户查询) 例子: find /root -user root
-size(根据文件的大小查询) 例子: find /root -size +20m/20k (大于 + 小于 - 等于 不写)
-locate(快速查询文件)
locate指令根据事先建立的所有文件名及路劲的locate数据库实现快速定位文件。
locate 文件名(进行文件的搜索)
前置条件:安装 1. yum install locate 2.updatedb - grep 与 | 管道符
grep过滤查找,管道符 | 表示将前一个命令的处理结果输出传递给后面的命令处理
grep [选项] 查找内容 源文件
选项:
-n 显示行号
-i 忽略字母大小写
cat hello.txt | grep -n yes / cat hello.txt | grep -ni yes(在文件hello.txt查找yes是否存在)
2.11 压缩与解压缩类
- gzip与gunzip
gzip 文件(将文件压缩为 .gz文件,该指令压缩后不会保留原来的文件)
gunzip 文件.gz(解压压缩文件) - zip与unzip
zip [选项] xxx.zip 文件(压缩文件及目录)
unzip [选项] 压缩文件(解压文件)
选项
-r 递归压缩 压缩子文件夹
-d<目录> 指定解压后的文件存放到哪个文件夹
unzip -d 解压后的地址 压缩文件 - tar
tar是打包指令打包完的文件是.tar.gz
tar [选项] xxx.tar.gz
选项:
-c 产生打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z打包同事压缩
-x解压
案例:
将a.txt文件与b.txt文件 压缩成 home.tar.gz :tar -zcvf home.tar.gz a.txt b.txt
将整个文件夹压缩 tar -zcvf home.tar.gz /home/
解压到当前文件夹 tar -zxvf home.tar.gz
解压到指定的文件夹 tar -zxvf home.tar.gz -c /home/
总结
1、这次算是第一次比较系统的对linux进行学习,受益良多。
2、下周会发布下一篇有关linux的学习总结笔记。
寻找方式,探索前行--zwx