目录
一、Linux目录结构
1.1 一切皆文件
Linux文件系统采用层级式的树形目录结构,最上层采用 / 为根目录,根目录下可以创建多个目录,深刻理解虚拟机的目录结构是非常重要的。Linux中,一切皆文件。
1.2 目录结构主要作用
目录 | 作用 |
---|---|
/bin【重点】 | 此目录存放经常使用的命令 |
/sbin | Super User 存放系统管理员使用的系统管理程序 |
/home【重点】 | 存放普通用户的主目录,Linux中每个用户都有自己的目录,一般以用户账号命名 |
/root【重点】 | 系统管理员用户目录,超级权限者的用户主目录 |
/lib | 系统开机最基本的动态链接共享库,相当于WIN中的DLL,几乎所有应用程序都有用到 |
/lost+found | 一般情况下都是空的,系统非法关机后会存放一些文件 |
/etc【重点】 | 所有系统管理所需要的配置文件与子目录 |
/usr【重点】 | 用户的所有应用程序放在这里相当于WIN下的Program Files目录 |
/boot【重点】 | 启动Linux的核心文件,包括一些连接文件与核心文件 |
/proc | 虚拟目录,用于内存映射,访问此目录来获取系统信息 |
/srv | service缩写,存放服务启动之后需要提取的数据 |
/sys | linux内核2.6的最大一个变化,安装了2.6内核中新出现的文件系统 |
/tmp | 存放一些临时文件 |
/dev | 类型WIN的设备管理器,硬件以文件方式存储 |
/media【重点】 | Linux自动识别外部设备,U盘或光驱,识别成功自动挂载到此目录下 |
/mnt【重点】 | 让用户临时挂载别的文件系统,可将外部挂载存储到此目录就可以查看到内容了 |
/opt | 主机额外安装软件的目录 |
/usr/local【重点】 | 另一个额外给主机安装软件的目录,一般是通过编译源码的方式安装的程序 |
/var【重点】 | 这个目录中存放着不断扩充的东西,习惯将经常修改的目录放在此目录下,包括日志文件 |
/selinux | 一种安全子系统,它能控制程序只能访问特定文件 |
对于所用Linux系统都有vi编辑器,vim是vi的增强版具有程序编辑的能力,方便程序编辑设计补充等操作。
通过vim指令打开文件,此时文件处于一般模式,可以通过【上下左右】按键进行移动,可以【删除字符】【删除整行】处理内容,也可以进行【复制,粘贴】处理文件数据。
常见指令:
指令 | 作用 |
---|---|
yy | 拷贝当前行,5yy表示拷贝当前行所在的5行,按【p】拷贝 |
dd | 删除当前行,5dd表示删除后面当前行的五行 |
u | 撤销修改的操作(需要回到正常模式下) |
shift + g | 定位到行号,先输入数字在输入指令 |
按下【i】进入插入模式
使用相关命令,完成读取,存盘,替换,离开vim显示行号等的动作在此模式上达成。
指令 | 作用 |
---|---|
:wq | 文件修改并保存 |
:q | 文件退出(未修改文件前提下) |
:q! | 文件强制退出,不保存 |
/ | /后面输入查找的关键字 |
:set nu | 显示行号 |
:set nonu | 取消行号 |
三种模式的转换:
三、开机,重启用户命令
3.1 关机与重启命令
指令 | 作用 |
---|---|
shutdown -h now | 立即关机 |
shutdown -h 1 | 1分钟后关机 |
shutdown -r now | 立即重启 |
halt | 立即重启 |
reboot | 立即重启 |
sync | 将内存的数据同步到磁盘 |
不管是重启还是关机,首先要运行sync命令,把内存中的数据写入磁盘中。
四、Linux用户管理操作
4.1 添加用户
Linux系统中创建不同用户时会将用户分配到不同的组当中这就是用户组(根据权限不同进行分配,比如root就在root组中)。
对于不同用户登录时,每个用户都会创建一个家目录(根目录下的/home/
下),自动进入家目录中。对于一个Linux用户至少属于一个用户组中。
指令 | 作用 |
---|---|
useradd | useradd xm 添加一个xm用户 |
useradd -d | useradd -d /home/userfie xh 在/home/userfie xh路径下添加一个xh的用户 |
passwd | passwd xm 给用户xm设置密码 |
说明:
1.创建用户成功后,会自动创建与用户同名的家目录
2.也可以通过useradd -d
制定路径名去创建用户的家目录
4.2 删除用户
指令 | 作用 |
---|---|
userdel | useradd xm 删除xm用户 不删除家目录 |
userdel -r | userdel -r xq 删除用户xq并删除家目录 |
4.3 查询用户
指令 | 作用 |
---|---|
id | id root 查询用户信息,查询不出来提示,用户不存在 |
4.4 切换用户
指令 | 作用 |
---|---|
su | su xm 切换用户到xm |
说明
- 切换到权限高的用户需要输入密码
- 返回到原来的用户时使用exit即可
五、Linux用户管理组的操作
将用户分配至组中也就相当于是分配权限的操作,便于对统一权限用户的管理。
5.1 增加组
指令 | 作用 |
---|---|
groupadd | groupadd wudang 创建组名为wudang |
上面的指令只是单纯的建了个组,我们可以通过一边建用户一边分配到指定的组中:
指令 | 作用 |
---|---|
useradd -g | useradd -g wudang zsf 新建用户zsf将其放入wudang组中 |
5.2 修改用户组
将一个用户修改对应的组
指令 | 作用 |
---|---|
usermod -g | usermod -g shaoling zsf 修改zsf至shaoling组 |
5.3 删除组
如果组有用户,则删除不了组
指令 | 作用 |
---|---|
groupdel | groupdel shaoling 删除shaoling组 |
六、用户和组的相关文件
用户与组的信息一般放在这三个目录下
- 用户组配置文件用户信息(
/etc/passwd
)
zsf: x:501:502::/home/zsf:/bin/bash
每行的含义:用户名:口令:用户标识符:组标识号:注释性描述:主目录:登录
- 组配置文件组信息(
/etc/group
)
zsf:!!:19038:0:99999:7:::
每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
- 口令配置文件,密码和登录信息加密(
/etc/shadow
)
wbpriv: x :88:
每行的含义:组名:口令:组标识号:组内用户列表
七、Linux运行级别和找回root密码
7.1、切换运行级别基础命令
系统运行级别的处理文件都在/etc/inittab
文件中,运行级别对应关系如下:
0:关机
1:单用户(找回丢失密码)
2:多用户无网络服务
3:多用户有网络服务
4:保留
5:图形界面
6:重启
常用的级别为3与5,切换运行级别的指令:
指令 | 作用 |
---|---|
init | init 3 表示将运行级别切换到3 |
7.2、找回root密码
进入单用户模式,然后修改用户密码,单用户模式 下并不用输入密码,具体操作步骤如下:
第一步:重启虚拟机并在启动页面按回车键进入以下页面,然后按“e”进入下一步
第二步:选中第二个,再按“e”进入编辑模式,进入下一步
第三步:箭头指向quiet后面加入空格输入1,回车进入下一步
第四步:按“b”进入引导模式,进入下一步修改密码
第五步:出现以下页面修改密码后重启即可
八、Linux帮助指令
8.1 基本介绍
对于不清楚的Linux指令,使用帮助指令了解其功能是有必要的
8.2 基础语法
man获取帮助信息,还要help指令
指令 | 作用 |
---|---|
man | man 【命令或配置文件】获取帮助信息 比如 man ls 等 |
help | 获取shell内置的帮助信息 比如 help cd 等 |
九、常用文件目录指令使用
9.1 常用指令表以及用法
指令 | 作用 |
---|---|
pwd | 显示当前工作目录的绝对路径 |
ls -a | 显示所有文件目录,包括隐藏文件 |
ls -l | 列表的形式显示信息 |
cd ~ | 回到自己的家目录 |
cd .. | 回到当前目录的上一级目录 |
mkdir | 创建目录 |
mkdir -p | 创建多级目录 |
rmdir | 删除目录(不可删除有目录的目录) |
rm | 删除目录或文件 |
rm -rf | 删除非空目录 |
touch | 创建文件,可以一次性创建文件 touch 1.txt 2.txt |
cp | 文件拷贝 cp a.txt bbb/ 将文件a.txt拷贝到bbb文件夹下 |
cp -r | 拷贝整个目录 cp aaa/ bbb/ 将文件夹aaa拷贝到bbb文件夹下 |
mv | 重命名文件或者移动文件 |
绝地路径:就是从根目录开始定位
相对路径:从当前目录定位到需要的目录
对于mv指令来说,如果带文件名相当于重命名,如果不带文件名相当于移动文件
mv aaa.txt bbb.txt
将aaa文件名改为bbbmv /home/aaa.txt /root
将文件aaa.txt移动到root下
9.2 cat指令
cat指令只能查看文件并不可以编辑文件,通常配合more使用:
cat -n /home/aa.txt | more #显示行号并分页显示
9.3 more指令
more指令也是通过查看文件的,使用more只后,可以通过以下快捷键进行查看文件:
more /home/aa.txt #查看文件
指令 | 作用 |
---|---|
空格 | 向下翻一页 |
Enter | 向下翻一行 |
q | 立即离开文件 |
q | 立即离开文件 |
ctrl + f | 向下滚动一屏 |
ctrl + b | 返回上一屏 |
= | 输出当前行行号 |
:f | 输出文件名与当前行行号 |
9.4 less指令
与more类似 ,但比more的指令更强大, 支持各种显示的终端,less在查看文件的时候并不是一次性将文件加载出来,因此适合查看一些大型的文件内容。
指令 | 作用 |
---|---|
空格 | 向下翻一页 |
【page down】 | 向下翻一页 |
【page up】 | 向上翻一页 |
/字符串 | n向下查找,N向上查找 |
ctrl + f | 向下滚动一屏 |
ctrl + b | 返回上一屏 |
= | 输出当前行行号 |
:f | 输出文件名与当前行行号 |
9.5 重定向与追加指令
输出重定向(>)与追加(>>)
- 基本语法
ls -l > 文件 (功能:列表内容写入文件中,覆盖写)
ls -al >> 文件 (功能:列表内容追加至文件末尾不覆盖)
cat 文件1>文件2(功能:将文件1的内容覆盖到文件2)
echo "内容" >> 文件(功能:直接将写的内容放入文件的末尾)
9.6 echo,head与tail指令
echo指令:输出内容到控制台
指令 | 作用 |
---|---|
echo $PATH | 获取当前的环境变量 |
head指令:显示文件的开头部分,默认查看前10行 | |
指令 | 作用 |
– | ----- |
head -n 5 文件 | 获取文件头5行 |
tail指令:默认显示文件后10行内容
指令 | 作用 |
---|---|
tail -f 文件 | 实时监控文件内容 |
tail -n 5 文件 | 获取文件后5行 |
9.7 ln,history指令
ln指令:相当于给文件创建一个快捷方式的软链接目录,当点击这个软链接目录会跳到原来的目录上。
指令 | 作用 |
---|---|
ln -s | ls -s /root ljRoot 相当于给root目录加一个软链接目录ljRoot |
注意,删除软链接的指令使用这个即可rm -rf ljRoot
,用pwd
看所在路径时候也是软链接所在的目录。
history指令:查看已经执行过的历史命令
指令 | 作用 |
---|---|
history | 显示全部历史指令 |
history 10 | 显示后面10个历史指令 |
!10 | 执行第十行的历史指令 |
【时间日期指令使用查看附录一】
十.查找与压缩指令
10.1 查找指令
10.1.1 find指令
find指令,会从指定目录下递归遍历各个子目录,将满足条件的文件或者目录显示在终端。
基本语法:find 【搜索范围】【选项】
【选项】说明:
选项 | 功能 |
-name<查询方式> | 按照指定文件查找模式查找文件 |
-user<用户名> | 查找属于指定用户名所有文件 |
-size<文件大小> | 按照指定的文件大小查找文件 |
案例:
1. 按名称查找/home目录下的hello.txt文件
find /home -name hello.txt
2. 按拥有者查找/opt目录下,用户名称为nobby的文件
find /opt -user noboby
3. 查找整个Linux系统下大于200M的文件(+n 大于 -n小于 n等于)
find / -size +200
10.1.2 locate指令
10.1.3 grep指令
10.2 压缩指令
附录一:时间指令(了解)
指令 | 指令描述 |
---|---|
date | 显示当前时间 |
date +%Y | 显示当前年份 |
date+%m | 显示当前月份 |
date +%d | 显示当前是哪一天 |
date +%y-%m-%d %H:%M:%S | 显示年月日时分秒 |
date -s 字符串时间 | 设置系统当前时间 |
cal | 显示日历 |