1.Linux的目录结构
介绍
Linux的文件系统采用层级式的树状结构,根目录为“/”。
Linux里,一切皆文件。
常见目录
- /bin (/usr/bin /usr/local/bin)存放常用指令
- /sbin (/usr/sbin /usr/local/sbin) 系统管理员的管理程序
- /home 存放普通用户的主目录
- /root root的主目录
- /etc 存放配置文件目录
- /usr 存放用户的应用程序和文件
- /boot 存放Linux系统启动的一些核心文件
- /dev 类似windows的设备管理器,将硬件设备已文件存储
- /media 存放系统自动识别的设备如U盘/光驱等,识别后将设备挂载到该目录
- /mnt 存放用户临时挂载别的文件系统的文件,如虚拟机共享文件
- /opt 给主机额外安装软件存放的目录,如Oracle
- /usr/local 另一个给额外安装软件存放的目录,一般通过编译源码方式安装。
- /var 存放不断扩充的东西,一般将经常修改的文件放在这个目录,包括各种日志文件
2.Vi和Vim编辑器
简介
Linux系统会内置vi编辑器,vim可以看成是vi的增强版,就好比是在idea中编写代码,关键字,语句都会用不同颜色来表示,方便程序设计,代码补全,编译等操作
vi和vim的三种模式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eNMulN8w-1653476846587)(/linux.assets/linux01.png)]
vi和vim的常用快捷键
- 拷贝—>使用yy(复制) + p(粘贴)的操作即可拷贝(其效果等同于在windows下使用ctrl + c ctrl + v)
- 拷贝多行 使用(需要拷贝几行)+ yy + p
- 删除 —>使用dd,若要是删除多行需要进行和拷贝多行一样的操作,数字 + dd
- 在文件中查找某个单词—>[命令行下/需要查找的单词,使用n查找下一个]
- 设置文件的行号 [:set nu] 取消文件的行号[:set nonu]
- 进入文件之后,使用G进入到文件末尾,使用gg进入文件的最首行
- 使用u进行撤销动作(等同于windows下ctrl + z)
- 使用shift + g快速定位到某一行的行首
3.关机、重启和用户切换注销
1.关机&重启相关命令
shutdown -h now #立即关机
shutdown -h 1 #1分钟后关机
shutdown -r now #立即重启
halt #关机
reboot #重启
sync #将内存数据同步到磁盘
注意:
不管是重启系统还是关闭系统,都要先进行sync操作,把内存的数据同步到磁盘(尽管目前以上的操作均在关机前进行了sync操作)
2.用户登录&切换用户
- 用户建议不用root登录,因为root权限过高,容易造成操作失误,建议使用普通用户登录
- 切换用户相关操作 su - 用户 ,然后输入密码即可进行切换
- 使用logout或exit可以退回上一级的用户(logout注销指令在图形运行级别无效,在运行级别3一下有效)
4.用户管理
Linux是一个多用户多用户的操作系统,任何一个使用系统资源的用户,都必须向系统管理员申请一个账号,然后以这个账号进入系统
1.用户相关指令
-
添加用户
useradd 用户名 #默认家目录名为用户名 useradd -d 文件名 用户名 #指定一个家目录的目录名
-
删除用户
userdel 用户名 #只删除用户,不删除家目录 userdel -r 用户名 #表示删除包含用户的家目录
-
指定/修改密码
passwd 用户名
-
切换用户
su - 用户名
-
查询用户信息
id 用户名
-
查看当前登录用户
who am i / whoami
2.组相关指令
组概念:类似于角色,可以对有共性/相同权限的多个用户进行统一管理,创建用户时,未显式分配组,系统默认分配一个跟用户名相同的组
-
新增组
gounpadd 组名
-
删除组
groupdel 组名
-
修改已存在用户所在组
usermod -g 组名 用户名
-
新建用户时指定组
useradd -g 组名 用户名 #新建用户时指定用户所在组
3.用户和组相关文件
- /etc/passwd
- 用户配置文件,记录用户的各种信息
- 每行含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录shell
- /etc/shadow
- 口令(密码)的配置文件
- 每行含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
- /etc/group
- 组的配置文件,记录组的信息
- 每行含义:组名:口令:组标识号:组内用户列表
5.Linux运行级别
运行级别说明
-
0 关机
-
1 单用户【可用来找回丢失密码】
-
2 多用户状态但没有网络服务
-
3 多用户状态有网络服务
-
4 系统未使用保留给用户
-
5 图形界面
-
6 系统重启
切换运行级别命令
init [运行级别]
修改系统默认运行级别
-
CentOS 7以前修改默认运行级别,需修改 /etc/inittab 文件
-
CentOS 7以后进行了简化
-
multi-user.target 相当于运行级别 3
-
graphical.target相当于运行级别 5
systemctl get-default #获取系统默认运行级别 systemctl set-default 【运行级别target】 #设置系统默认运行级别
-
6.找回root密码
- 首先,启动系统,进入开机界面,在界面中按“e”进入编辑界面。如图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AxJCLJGh-1653476846589)(Linux.assets/linux02.png)]
- 进入编辑界面,使用键盘上的上下键把光标往下移动,找到以““Linux16”开头内容所在的行数”,在行的最后面输入:init=/bin/sh。如图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bfGzWJ6p-1653476846589)(Linux.assets/linux03.png)]
-
接着,输入完成后,直接按快捷键:Ctrl+x 进入单用户模式。
-
接着,在光标闪烁的位置中输入:mount -o remount,rw /(注意:各个单词间有空格),完成后按键盘的回车键(Enter)。如图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vwxKUT2l-1653476846590)(Linux.assets/image-20220510232348073.png)]
- 在新的一行最后面输入:passwd, 完成后按键盘的回车键(Enter)。输入密码,然后再次确认密码即可(提示: 密码长度最好8位以上,但不是必须的), 密码修改成功后,会显示passwd…的样式,说明密码修改成功
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2b4VGLfO-1653476846590)(Linux.assets/image-20220510232500489.png)]
-
接着,在鼠标闪烁的位置中(最后一行中)输入:touch /.autorelabel(注意:touch与 /后面有一个空格),完成后按键盘的回车键(Enter)
-
继续在光标闪烁的位置中,输入:exec /sbin/init(注意:exec与 /后面有一个空格),完成后按键盘的回车键(Enter),等待系统自动修改密码(提示:这个过程时间可能有点长,耐心等待),完成后,系统会自动重启, 新的密码生效了
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N02iWfIp-1653476846590)(Linux.assets/image-20220510232609250.png)]
7.帮助指令
man 指令
man [命令或配置文件] #获得帮助信息
help 指令
help [命令] #获得 shell 内置命令的帮助信息
8.文件目录类
- pwd 指令:显示当前工作的绝对路径
- ls 指令: 查看目录或文件
基本语法: ls [选项] [目录或文件]
常用选项: -a #显示当前目录所有文件和目录,包括隐藏的
-l #以列表方式显示信息 可简写为ll
-
cd 指令
基本语法: cd [参数] #切换到指定目录 理解: 绝对路径和相对路径 cd~ 或 cd 回到当前用户家目录 cd.. 返回当前目录的上一级目录
-
mkdir 指令:创建目录
基本语法:mkdir [选项] 要创建的目录 常用选项: -p #创建多级目录
-
rmdir 指令:删除空目录
基本语法:rmdir [选项] 要删除的目录 注意: rmdir只能删除空目录,若目录下有内容(文件或目录)无法删除,可用 rm -rf
-
touch 指令:创建空文件
- 基本语法:touch 文件名
-
cp 指令:拷贝文件到指定目录
语法: cp [选项] 源文件 要复制的地址 常用选项: -r 递归复制整个文件目录(若目标文件非空,要强制覆盖不提示用 \cp) eg: cp -r home/aa /opt
-
rm 指令: 移除文件或目录
rm [选项] 要删除文件或目录 常用选项: -r: 递归删除整个文件 -f: 强制删除不提示 eg: rm -rf /home/aaa
-
mv 指令:移动或重命名文件、目录
语法:mv 旧名 新名 #重命名 mv 要移动文件 目标目录
-
cat 指令:查看文件内容
cat [选项] 要查看文件 常用选项:-n 显示行号 提示:cat 只能查看不能修改文件,一般还会带上管道指令 |more eg: cat -n /etc/profile | more
-
more 指令:基于VI编辑器的文本过滤器,以全屏方式按页显示文本文件内容
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xBXx8EP1-1653476846591)(Linux.assets/image-20220511172932964.png)]
-
less 指令:用来分屏查看文件内容,类似more指令,但它显示内容时,并不是直接将整个文件进行加载后才显示,而是根据显示需要加载内容,对于显示大文件具有较高效率。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-52KRtXbu-1653476846591)(Linux.assets/image-20220511173018547.png)]
-
echo 指令:输出内容到控制台
-
head 指令:用于显示文件的开头部分内容
head 文件 #查看文件前10行 head -n 5 文件 #查看文件前5行
-
tail 指令:用于显示文件的结尾部分内容
tail 文件 #查看文件尾10行 tail -n 5 文件 #查看文件尾5行 tail -f 文件 #实时追踪改文件所有更新
-
> 指令和 >> 指令: > 输出重定向 、>> 追加
1. ls -l > 文件 #列表内容写入文件中(覆盖写) 2. ls -l >> 文件 #列表内容追加到文件结尾 3. cat 文件1 > 文件2 #将文件1的内容覆盖到文件2 4. echo "内容" >> 文件 #追加
-
ln 指令:软链接或符号链接,(类似Windows里的快捷方式)
基本语法 ln -s[原文件或目录] [软链接名] #给原文件创建一个软链接 注意: 当我们用pwd指令查看目录时,看到的仍是软链接所在目录
-
history 指令:查看已经执行过的历史命令
history #查看执行过的历史命令 history 10 #查看最近使用过的10条命令 !5 #执行历史编号为5的指令
9.时间日期类
date 指令
date #显示当前时间
date +%Y #显示当前年份
date +%m #显示当前月份
date +%d #显示当前日期
date "+%Y-%m-%d %H:%M:%S" #显示年月日时分秒
date -s 字符串时间 #设置系统当前时间 eg: date -s "2022-02-02 02:02:02:"
cal 指令
cal [选项] #不加选项,显示本月日历
cal 2022 #显示2022年日历
经执行过的历史命令
```sh
history #查看执行过的历史命令
history 10 #查看最近使用过的10条命令
!5 #执行历史编号为5的指令
9.时间日期类
date 指令
date #显示当前时间
date +%Y #显示当前年份
date +%m #显示当前月份
date +%d #显示当前日期
date "+%Y-%m-%d %H:%M:%S" #显示年月日时分秒
date -s 字符串时间 #设置系统当前时间 eg: date -s "2022-02-02 02:02:02:"
cal 指令
cal [选项] #不加选项,显示本月日历
cal 2022 #显示2022年日历