Linux学习笔记
- 系列篇:
- 1. 用户管理【用户和组的配置文件】
- 1.1 /etc/passwd 文件
- 1.2 /etc/shadow 文件
- 1.3 /etc/group 文件
- 2. Linux 实用指令
- 2.1 指定运行级别
- 2.2 切换到指定运行级别的指令
- 2.2.1 基本语法
- 2.2.2 应用案例
- 2.2.3 面试题
- 2.3 帮助指令
- 2.3.1 介绍
- 2.3.2 man 获得帮助信息
- 2.3.2.1 基本语法
- 2.3.2.2 应用实例
- 2.3.3 help 指令
- 2.3.3.1 基本语法
- 2.3.2 应用实例
- 2.4 文件目录类
- 2.4.1 pwd指令
- 2.4.2 ls 指令
- 2.4.3 cd 指令
- 2.4.4 mkdir 指令
- 2.4.5 rmdir 指令
- 2.4.6 touch 指令
- 2.4.7 cp 指令【重要】
- 2.4.8 rm 指令
- 2.4.9 mv 指令
- 2.4.10 cat 指令
- 2.4.11 more 指令
- 2.4.12 less 指令
- 2.4.12 > 指令和 >> 指令
- 2.4.14 echo 指令
- 2.4.15 head 指令
- 2.4.16 tail 指令
- 2.4.17 In 指令
- 2.4.18 history 指令
- 2.5 时间日期类
- 2.5.1 date 指令—显示当前日期
- 2.5.2 date 指令—设置日期
- 2.5.3 cal 指令
- 2.6 搜索查找类
- 2.6.1 find 指令
- 2.6.2 locate 指令
- 2.6.3 grep 指令和管道符号 |
- 2.7 压缩和解压类
- 2.7.1 gzip/gunzip 指令
- 2.7.2 zip/unzip 指令
- 2.7.3 tar 指令
1. 用户管理【用户和组的配置文件】
1.1 /etc/passwd 文件
用户 (user) 的配置文件,记录用户的各种信息
每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登陆Shell
1.2 /etc/shadow 文件
口令的配置文件
每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
1.3 /etc/group 文件
组(group)的配置文件,记录 Linux 包含的组的信息
每行含义:组名:口令:组标识号:组内用户列表
2. Linux 实用指令
2.1 指定运行级别
运行级别说明:
0:关机
1:单用户【找回丢失密码】
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图形界面
6:系统重启
常用级别是3和5,要修改默认的运行级别可以修改文件
/etc/inittabl 的 id:5:initdefault: 这一行中的数字
运行级别示意图
2.2 切换到指定运行级别的指令
2.2.1 基本语法
init [012356]
2.2.2 应用案例
通过 init 来切换不同的运行级别,比如动 5-3,然后关机
首先切换到3【发生 linux 改变成了命令行模式】
再次切换回来 【init 5】发现重新切换回图形化界面
然后关机就是 init 0
2.2.3 面试题
【注意事项:远程连接无法实现】
如何找回 root 密码,如果我们不小心忘记了 root 密码,怎么找回。
思路:进入到 单用户模式,然后修改 root 密码,因为进入单用户模式,root 不需要密码既可以登陆。
总结:
- 首先开机 > 在引导时输入 回车键
- 看到一个界面输入 e > 进入一个新界面,选中第二行(编辑内核)在输入 e
- 在这行最后输入 1,再输入 回车键 > 再次输入 b,这时就会进入到单用户模式。
- 这时我们就进入到单用户模式,使用 passwd 指令来修改 root 密码。
- 最后修改过密码,输入 reboot 重启服务器即可
首先开机 > 在引导时输入 回车键 > 看到一个界面输入 e > 进入一个新界面,选中第二行(编辑内核)在输入 e > 在这行最后输入 1,再输入 回车键 > 再次输入 b,这时就会进入到单用户模式。
这时我们就进入到单用户模式,使用 passwd 指令来修改 root 密码。
2.3 帮助指令
2.3.1 介绍
当我们对某个指令不熟悉时,我们可以使用 Linux 提供的帮助指令来了解这个指令的使用方法。
2.3.2 man 获得帮助信息
2.3.2.1 基本语法
man 【命令或配置文件】(功能描述,获得帮助信息)
2.3.2.2 应用实例
查看 ls 命令的帮助信息
2.3.3 help 指令
2.3.3.1 基本语法
help 命令(功能描述:获得 shell 内置命令的帮助信息)
2.3.2 应用实例
查看 cd 命令的帮助信息
2.4 文件目录类
2.4.1 pwd指令
基本语法:pwd
(功能描述:显示当前工作目录的绝对路径)
应用实例:显示当前工作目录的绝对路径
2.4.2 ls 指令
基本语法:ls 【选项】【目录或是文件】
常用选项:
-a:显示当前目录所有的文件和目录,包括隐藏的
-l:以列表的方式显示信息
应用实例:查看当前目录的所有内容信息
2.4.3 cd 指令
基本语法:cd 【参数】
(功能描述:切换到指定目录)
常用参数:绝对路径和相对路径
如何理解绝对路径和相对路径示意图如下:
cd ~ 或者 cd :回到自己的家目录
cd… :回到当前目录的的上一级
应用案例:
- 使用绝对路径切换到 root 目录
- 使用相对路径到 /root 目录
- 标识回到当前目录的上一级目录
- 回到家目录
2.4.4 mkdir 指令
mkdir 指令用户创建目录(make directory)
基本语法:mkdir 【选项】 要创建的目录
常用选项:-p:创建多级目录
应用案列:
创建一个目录 /home/dog
创建多级目录 /home/animal/tiger
2.4.5 rmdir 指令
rmdir 指令删除空目录
基本语法:rmdir 【选项】 要删除䣌空目录
应用实例:
删除一个目录 /home/dog
使用细节:
rmdir 删除的是空目录,如果目录下有内容是无法删除的。
提示:如果需要删除非空目录,需要使用 rm -rf 要删除的目录即可。
2.4.6 touch 指令
touch 指令创建空文件
基本语法:touch 文件名称
应用实例:创建一个空文件 hello.txt
一次也可以创建多个文件
2.4.7 cp 指令【重要】
cp 指令拷贝文件到指定目录
基本语法:cp 【选项】 source dest
常用选项:-r:递归复制整个文件夹
应用实例:
- 将 /home/aaa.txt 拷贝到 /home/bbb 目录下
- 递归复制整个文件夹,举例【将 /home/test 整个目录拷贝到 /home/zwj 目录】
使用细节:强制覆盖不提示的方法:\cp
小技巧:可以通过 上下箭头调出原来使用过的指令。
2.4.8 rm 指令
rm 指令移除【删除】文件或目录
基本语法:rm 【选项】 要删除的文件或目录
常用选项:
-r:递归删除整个文件夹
-f:强制删除不提示
应用实例:
- 将 /home/aaa.txt 删除
- 递归删除整个文件夹 /home/bbb
- 使用细节:强制删除不提示的方法,带上 -f 参数即可【删除 /home/ok1.txt 不提示删除】
2.4.9 mv 指令
mv 移动文件与目录或重命名
基本语法:
mv oldNameFile newNameFile (功能描述:重命名)
mv /temp/movefile /targetFolder (功能描述:移动文件)
在同一目录中 mv 作用是重命名
在不同目录中 mv 作用是移动文件
应用实例:
- 将 /home/aaa.txt 文件 重新命名为 pig.txt
- 将 /home/pig.txt 文件移动到 /root 目录下
2.4.10 cat 指令
cat 查看文件内容【以只读的方式打开】
基本语法:cat 【选项】 要查看的文件
常用选项:-n:显示行号
应用案列:
- 查看 /etc/profile 文件内容,并显示行号
使用细节:cat 只能浏览文件,而不能修改文件,为了浏览方便,一般会带上 管道命令 | more
2.4.11 more 指令
more 指令是要给基于 VI 编辑器的文本过滤器,他以全屏幕的方式按页显示文本文件的内容。more指令中内置了若干快捷键,详见操作说明
基本语法:more 要查看的文件
操作说明:
应用实例:
1.采用 more 查看文件 /etc/profile
2.4.12 less 指令
less 指令用来分屏查看文件内容,它的功能与 more 指令类似,但是比 more 指令更加强大,支持各种显示终端,less 指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是跟据显示需要加载内容,对于显示大型文件具有较高的效率。
基本语法:less 要查看的文件
操作说明:
应用案列:
采用 less 查看一个大文件
2.4.12 > 指令和 >> 指令
'> 输出重定向和 >> 追加
基本语法:
- ls -l >文件 (功能描述:列表的内容写入文件 a.txt 中(覆盖写))
- ls -al >>文件 (功能描述:将列表的内容追加到文件 a.txt 的末尾(不覆盖) )
- cat 文件1 > 文件2 (功能描述:将文件1的内容覆盖到文件2)
- echo “内容” >> 文件
应用实例:
- 将 /home 目录下的文件列表写入到 /home/info.txt 中
- 将当前日历信息追加到 /home/mycal 文件中【提示 cal】
2.4.14 echo 指令
echo 输出内容到控制台
基本语法:echo 【选项】 【输出内容】
应用实例:
- 使用 echo 指令输出环境变量,输出当前的环境路径
- 使用 echo 指令输出 hello,world!
2.4.15 head 指令
head 用户显示问价你的开头部门内容,默认情况下 head 指令显示文件的前 10 行内容
基本语法:head 文件
(功能描述:查看文件头10行内容)head -n 5 文件
(功能描述:查看文件头5行内容,5可以是任意行数)
应用实例:
- 查看 /etc/prifile 的前面5行代码
2.4.16 tail 指令
tail 用于输出文件中尾部的内容,默认情况下 tail 指令显示文件的后10行内容。
基本语法:tail 文件
(功能描述:查看文件后10行内容)tail -n 5 文件
(功能描述:查看文件后5行内容,5可以是任意行数)tail -f 文件
(功能描述:实时追踪该文档的所有更新)
应用实例:
- 查看 /etc/profile 最后5行代码
- 实时监控 hello.txt ,看看文件有何变化,能否实时看到追加的内容。
2.4.17 In 指令
软链接也叫符号链接,类似于 windows 里的快捷方式,主要存放了链接其他文件的路径
基本语法:ln -s 【源文件或目录】【软链接名】
(功能描述:给原文件创建一个软链接)
应用实例:
- 在 /home 目录下创建一个软链接 linkToRoot,连接到 /root 目录
- 删除软链接 linkToRoot
细节说明:当我们使用 pwd 指令查看目录时,仍然看到的是软链接所在的目录。
2.4.18 history 指令
查看已经执行过的历史命令,也可以执行历史命令
基本语法:history
(功能描述:查看已经执行过的历史命令)
应用案例:
- 显示所有的历史命令
- 显示最近使用的10个指令
- 执行历史编号为330的指令
2.5 时间日期类
2.5.1 date 指令—显示当前日期
基本语法:date
(显示当前时间)date+%Y
(显示当前年份)date+%m
(显示当前月份)date+%d
(显示当前是哪一天)date+%Y-%m-%d%H:%M:%S
(显示年月日时分秒)
应用实例:
- 显示当前时间信息
- 显示当前时间年月日
- 显示当前时间年月日时分秒
2.5.2 date 指令—设置日期
基本语法:date -s 字符串日期
应用案例:
- 设置系统当前时间,比如设置成 2020-4-14 17:55:55
2.5.3 cal 指令
查看日历指令
基本语法:cal 【选项】
(功能描述:不加选项,显示本月日历)
应用案例:
- 显示当前日历
- 显示 2025 年日期
2.6 搜索查找类
2.6.1 find 指令
find 指令将从指定目录向下递归地白能力其各个子目录,将满足条件的文件或者目录显示在终端。
基本语法:find 【搜索范围】【选项】
选项说明:
应用实例:
- 按文件名,跟据名称查找 /home 目录下的 hello.txt 文件
- 按拥有者:查找 /opt 目录下,用户名称为 nobody 的文件
- 查找整个 linux 系统下大于 20m 的文件(+n大于 -n小于 n等于)
【20M要大写】
2.6.2 locate 指令
locate 指令可以快速定位文件路径,locate 指令利用事先建立的系统中所有文件名称以及路径的 locate 数据库实现快速定位给定的文件,locate 指令无需遍历整个文件系统,查询速度较快。
基本语法:locate 搜索文件
特别说明:由于 locate 指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb 指令创建 locate 数据库。
应用案例:
- 使用 locate 指令快速定位 hello.txt 文件所在的目录
2.6.3 grep 指令和管道符号 |
grep 过滤查找,管道符,| ,表示将前一个命令的处理结果输出传递给后面的命令处理。
基本语法:grep【选项】查找内容 源文件
常用选项:
应用案例:
- 在 hello.txt 文件中,查找 yes 所在行,并且显示行号
2.7 压缩和解压类
2.7.1 gzip/gunzip 指令
gzip 用于压缩文件,gunzip 用于解压
基本语法:gzip 文件
(功能描述:压缩文件,只能将文件压缩为*.gz文件)gunzip 文件.gz
(功能描述:解压缩文件命令)
应用实例:
- gzip 压缩,将 /home 下的 hello.txt 文件进行压缩
- gunzip 压缩,将 /home 下的 hello.txt.gz 文件进行解压
2.7.2 zip/unzip 指令
zip 用于压缩文件,unzip 用户解压文件,这个在项目打包发布中很有用的
基本语法:zip 【选项】XXX.zip 将要压缩的内容
(功能描述:压缩文件和目录的命令)unzip 【选项】XXX.zip
(功能描述:解压缩文件)
zip 常用选项:
-r:递归压缩,即压缩目录
unzip 常用选项:
-d<目录>:指定解压后文件的存放目录
应用实例:
- 将 /home 下的所有文件进行压缩成 mypackage.zip
- 将 mypackage.zip 解压到 /opt/tmp 目录下
2.7.3 tar 指令
tar 指令是打包指令,最后打包后的文件是 .tag.gz 的文件
基本语法:tar 【选项】 XXX.tar.gz 打包的内容
(功能描述:打包目录,压缩后的文件格式 tar.gz)
选项说明:
应用实例:
- 压缩多个文件,将 /home/a1.txt 和 /home/a2.txt 压缩成 a.tar.gz
- 将 /home 的文件夹压缩成 myhome.tar.gz
- 将 a.tar.gz 加压到当前目录
- 将 myhome.tar.gz 解压到 /opt/tmp 目录下