1、Linux的目录结构
具体介绍:
目录 | 介绍 | 其他 |
---|---|---|
/bin | 存放常用的命令 | 重点 |
/sbin | 存放系统管理员使用的系统管理程序(super user bin) | |
/home | 存放普通用户的主目录 | 重点 |
/boot | 存放Linux启动时的一些核心文件,包括一些连接文件和镜像文件 | 重点 |
/proc | 一个虚拟目录,是系统内存的映射,访问这个目录可以获取系统信息 | 重点 |
/srv目录 | 存放服务启动时需要的数据 | |
/sys | 该目录下安装了linux2.6内核中的文件系统 | |
/tmp | 存放临时文件 | |
/dev | 所有的硬件设备以文件的形式存储在此 | |
/media | Linux系统会自动识别一些设备,如U盘、光驱等,识别后会将识别的设备挂载到此目录下 | 重点 |
/mnt | 此目录是给用户挂载临时的文件系统的,可以将外部的存储挂载在/mnt/上 | 重点 |
/opt | 安装额外软件的目录 | |
/user/local | 这是另一个安装额外软件的目录,一般是通过编译源码方式安装的程序 | 重点 |
/var | 存放不断扩充的东西,例如存放日志文件 | 重点 |
/selinux | 相当于windows系统中的360,是一种安全子系统,可以控制程序只能访问特定文件 |
总结:
- Linux目录中有且只有一个根目录/
- linux的各个目录存放的内容都是规划好的,不要乱放文件
- linux系统中一切皆文件
2、vi和vim编辑器
vi和vim的三种模式
-
正常模式
默认模式,可以使用快捷键
-
插入/编辑模式
在正常模式下输入i即可进入
-
命令行模式
可以使用指令完成读取、存盘、替换、离开vim和显示行号等操作
三种模式的相互切换
退出的时候分为4种情况:保存退出、正常退出、不保存退出以及强制退出
- 保存退出:按“
Esc
”键后 此时的“插入”会消失,然后按Shift+zz
就可以保存修改内容并退出 - 不保存退出:当修改修改了一部分内容后发现修改错了,此时就会进行不保存退出
按“Esc
”键后,再输入“:
”之后在输入命令时直接输入“q!
” - 强制退出: 按“
Esc
”键后,再输入“:
”之后在输入命令时直接输入“!
” - 正常退出:按“
Esc
”键后,再输入“:”之后在输入命令时直接输入“q
”
vim编辑器的快捷键
快捷键 | 说明 |
---|---|
yy | 复制当前行 |
5yy | 复制当前行向下的5行(包括当前行) |
p | 粘贴 |
dd | 删除当前行 |
5dd | 删除当前行向下的5行(包括当前行) |
u | 撤销 |
3、开机、关机和重启
-
关机:shutdown
-
shutdown -h now 立刻关机
-
shutdown -h 1 一分钟后关机
-
halt
-
-
重启
- shutdown -r now 立刻重启
- reboot 重启
-
注销
- logout:注销 在运行级别3下有效,图形运行级别无效
-
将内存数据同步到磁盘
- sync
注意:先执行sync命令,再重启或关机
4、用户管理
Linux是一个多用户多任务的操作系统,每一个用户至少属于一个组
添加(创建)用户
-
语法:useradd -m 用户名
- 说明:当用户创建成功后,会自动的创建和用户名同名的家目录
- 说明:当用户创建成功后,会自动的创建和用户名同名的家目录
-
语法:useradd -d 指定目录 用户名
- 说明:给新创建的用户指定家目录
给用户设置或修改密码
passwd 用户名
删除用户
userdel 用户名
删除用户以及用户主目录
userdel -r 用户名
注意:删除用户时,一般不会删除家目录。
查看用户信息
id 用户名
切换用户
su - 切换用户名
注意:
- 从权限高的用户切换到权限低的用户,不用输入密码,反之需要
- 用
exit
命令返回到原来用户
用户组
作用:对有共性的多个用户进行统一的管理
增加组
groupadd 组名
删除组
groupdel 组名
增加用户时直接加上组
useradd -g 组名 用户名
修改用户到指定组
usermod -g 组名 用户名
/etc/passwd文件 :用户(user)的配置文件,记录用户的各种信息
/etc/shadow文件:用户密码的配置文件
/etc/group文件:组的配置文件
5 实用指令
运行级别
级别 | 解释 |
---|---|
0 | 关机模式,系统默认运行级别不能设置为0,否则不能正常启动,一开机就自动关机。 |
1 | 单用户(可用于找回root用户密码) |
2 | 多用户状态没有网络服务 |
3 | 多用户状态有网络服务 |
4 | 系统未使用,保留一般不用 |
5 | 图形界面 |
6 | 系统重启,默认运行级别不能设为6,否则不能正常启动,就会一直开机重启开机重启。 |
修改默认运行级别:修改/etc/inittab的id (ubuntu不适用这个方法)
帮助指令
man 指令
- 语法:man [指令或者配置文件]
- 作用:获取帮助信息
- 案例:查看ls指令的帮助信息
help 指令
- 语法:help 指令
- 作用:获取shell内置指令的帮助信息
- 案例:查看cd指令的帮助信息
文件目录类指令
pwd 指令
- 语法:pwd
- 作用:显示当前目录的绝对路径
- 演示:
ls 指令
-
语法:ls [选项] [目录或者文件]
-
常用:
- ls -a:显示当前目录所有的文件和目录,包括隐藏
- ls -l:以列表的方式显示信息
-
演示:
cd 指令
-
语法:cd [参数]
-
作用:切换到指定目录
-
常用:
- cd ~ 或者 cd :切换到自己的家目录
- cd … :返回到当前目录的上一级
-
绝对路径和相对路径:
mkdir 指令
- 语法:mkdir [选项] 要创建的目录名
- 作用:创建目录
- 常用:
- -p:创建多级目录
- 案例1:创建目录 /home/dog
- 案例2:创建多级目录 /home/animal/tiger
rmdir 指令
-
语法:rmdir [选项] 要删除的空目录
-
作用:删除指定空目录
-
注意:rmdir只能删除空目录,可以使用
rm -rf 目录名
强制删除目录 -
演示:
touch 指令
-
语法:touch 文件名
-
作用:创建空文件
-
演示:
cp 指令
-
语法:cp [选项] source dest
-
作用:拷贝文件到指定目录
-
常用:
- -r:递归复制整个文件夹
-
案例1:将 /tmp/a.txt 拷贝到 /tmp/tempdir目录下
-
案例2:将 /tmp 整个目录拷贝到 /home/zilvx目录
-
注意:使用 \cp 来强制覆盖不提示
rm 指令
-
语法:rm [选项] 要删除的文件或目录
-
作用:删除指定文件或目录
-
常用:
- -r:递归删除整个文件夹
- -f:强制删除不提示
-
案例1:删除/tmp/tempdir/a.txt文件
-
案例2:递归删除整个文件夹/home/zilvx/tmp
mv指令
-
语法
- mv 老文件名 新文件名
- 作用:重命名
- mv /temp/movefile/targetFolder
- 作用:移动文件
- mv 老文件名 新文件名
-
案例1:将 /tmp/a.txt 文件重命名为 c.text
-
案例2:将 /tmp/hello.java 文件移动到 /root 目录下
cat 指令
-
语法:cat [选项] 要查看的文件
-
作用:查看文件内容,以只读方式打开
-
常用
- -n:显示行号
-
案例:查看 /etc/profile 文件内容,并显示行号
-
细节:为了浏览方便一般会带上
| more
more 指令
-
语法:more 要查看的文件名
-
作用:以全屏的方式分页显示文本内容
-
演示:
-
快捷键:
快捷键 说明 空格键 向下翻页 回车键 向下翻一行 q 不再显示文件内容 ctrl + f 向下滚动一屏 ctrl + b 返回上一屏 = 输出当前行号 :f 输出文件名和当前行号
less 指令
-
语法:less 要查看的文件名
-
作用:和more类似,但比more强大,支持各种显示终端
-
和more的区别:less在显示文件内容时,不是一次性将整个文件加载之后才显示的,而是根据需要来加载的内容,对显示大型文件具有很高的效率
-
快捷键:
快捷键 说明 空格键 向下翻一页 pagedown 向下翻一页 pageup 向上翻一页 /字符串 向下搜索字符串 ?字符串 向上搜索字符串 q 退出less
> 和 >> 指令
介绍:
- 输出重定向(会覆盖原来文件的内容):>
- 追加(不会覆盖原文件内容,而是追加到文件的尾部):>>
语法:
- ls -l > 文件名 :列表的内容覆盖写入指定文件中,如果指定文件不存在则创建该文件
- ls -al >> 文件名:列表的内容追加到指定文件中的尾部
- cat 文件1 > 文件2:文件1中内容覆盖到文件2中
- echo “内容” >> 文件
案例:
-
将/root目录下的文件列表覆盖写入到/root/hello.html中
-
将当前日历信息追加到/root/hello.html中
echo 指令
-
语法:echo [选项] [输出内容]
-
作用:输出内容到控制台
-
案例1:输出环境变量
-
案例2:输出hello world
head 指令
-
语法:
- head 文件名:查看文件头10行内容
- head -n 5 文件名:查看文件头5行内容,5可以换成任何数字
-
作用:显示文件的开头部分内容,默认是前10行
-
案例:查看 /etc/profile 的前5行内容
tail指令
-
语法
- tail 文件:查看文件后10行内容
- tail -n 5 文件:查看文件后5行内容
- tail -f 文件:实时追踪文档的所有更新,常用于日志文件中
-
作用:显示文件尾部内容,默认是文件的后10行
-
案例:查看 /etc/profile 文件最后5行内容
ln指令
-
语法:ln -s [原文件或目录] [软链接名]
-
作用:给文件或目录创建一个软连接,类似windows中的快捷方式
-
案例1:在/home目录下创建一个软链接linkToRoot,连接到/root目录
-
案例2:删除软链接linkToRoot
history 指令
-
语法:history
-
作用:查看已经执行过的历史指令,也可以执行历史指令
-
案例1:显示所有的历史指令
-
案例2:显示最近使用过的10个指令
-
案例3:执行历史编号为5的指令
时间日期类
date 指令
- 语法
- date:显示当前时间
- date +%Y:显示当前年份
- date +%m:显示当前月份
- date +%d:显示当前是哪一天
- date “+%Y-%m-%d %H:%M:%S”:显示年月日时分秒
- date -s 字符串时间:设置时间
- 演示:
cal 指令
-
语法:cal [选项]
-
作用:查看日历
-
案例1:显示当前日历
-
案例2:显示2020年日历
搜查类指令
find指令
-
语法:find [搜索范围] [选项]
-
作用:从指定目录向下递归遍历其子目录进行搜查
-
选项说明
- -name<文件名>:按指定文件名搜查
- -user<用户名>:按用户名搜查
- -size<文件大小>:按文件大小搜查
-
案例1:根据文件名查找/tmp目录下的b.html
-
案例2:查找/home目录下,用户名为zilvx的文件
-
案例3:找个linux系统中大于20m的文件 (+n:大于,-n:小于,n:等于)
-
查找所有txt文件
locate 指令
-
语法:locale 文件名
-
作用:快速定位文件路径
-
原理:事先建立了locale数据库,用于存放所有文件名和路径信息。搜查时无需遍历整个文件系统,十分快速
-
注意:第一次使用locale指令时需要先使用updatedb指令创建locale数据库
-
案例:定位hello.java
grep 指令和管道符 |
-
介绍:grep过滤查找,| 表示将前一个命令的处理结果传递给后面指令进行处理
-
语法:grep [选项] 查找内容 源文件
-
常用选项
- -n:显示匹配行和行号
- -i:忽略字母大小写
-
案例:在b.html中找到”yes“所在行并显示行号
压缩和解压类指令
gzip/gunzip 指令
-
语法:
- gzip 文件:只能将文件压缩为*.gz格式
- gunzip 文件.gz:解压
-
注意:使用gzip对文件进行压缩后不会保留原文件
-
演示:
zip/unzip 指令
-
语法:
- zip [选项] XXX.zip 压缩的内容
- unzip [选项] XXX.zip
-
zip常用选项:
- -r:递归压缩,用于压缩目录
-
unzip常用选项:
- -d<目录>:指定解压后的存放目录
-
案例1:将/home目录下内容压缩成mypackage.zip
细节:压缩后文件在/root目录下
-
案例2:解压mypackage.zip到/tmp下
tar 指令
-
语法:tar [选项] XXX.tar.gz 打包内容
-
作用:打包指令,打包后的文件是*.tar.gz文件
-
选项:
- -c:产生.tar打包文件
- -v:显示详细信息
- -f:指定压缩后的文件名字
- -z:打包的同时压缩
- -x:解包.tar文件
-
案例1:将/tmp下的b.html和c.txt压缩成a.tar.gz
-
案例2:将/home下的文件夹压缩成myhome.tar.gz
-
案例3:将a.tar.gz解压到当前文件夹
-
案例4:将myhome.tar.gz解压到/root下
注意:解压后存放的目录要实现存在,否则报错