一.Linux目录结构
/bin 存放最常用的命令
/sbin super user 系统管理员使用的系统管理程序
/home 存放普通用户的主目录
/root 系统管理员,超级权限的用户主目录
/lib 系统开机所需要最基本的动态连接共享库,作用类似于windowx里的DLL文件。几乎所有的应用程序都需要这些共享库
/lost+found 一般是空的 当系统非法关机,就存放了一些文件
/etc 所有的系统管理所需要的配置文件和子目录
/user 用户很多应用程序和文件都存放在这个目录下,类似于windows下的program files
/boot 存放启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件
/proc 虚拟的目录,是系统内存的映射,访问这个目录来获取系统信息
/srv service缩写,存放一些服务启动之后需要提取的数据
/sys 内存中新出现的一个文件系统
/tmp 存放临时文件
/dev 类似windows的设备管理器,,把所有的硬件用文件的形式存储
/media Linux会自动识别一些设备,例如U盘,当识别后,会把识别的设备挂载到这个目录下
/mnt 让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt上,然后进入该目录就可以查看里面的内容了
总结:
1.Linux的目录中有且只要一个根目录
2.Linux的各个目录存放的内容是规划好的,不能随便放
3.Linux是以文件的形式管理我们的设备,因此一切皆为文件
二.vim编辑器
命令行模式:
- :q 没有做任何的修改,然后退出
- :q! 修改了,然后退出,并且不保存本次修改
- :wq 保存修改并退出
三. 开机&重启
- shutdown
- shutdown -h now 立即关机
- shutdown -h 1 1分钟之后关机
- shutdown -r now 立即重启
- halt 等价于关机
- reboot 重启
- sync 把内存的数据同步到磁盘上(关机之前记得执行,以防数据丢失)
四.用户管理
4.1 用户登陆&注销
登录时少用root账号登录,可以利用普通用户登录,登录后再用su-用户名命令来切换成系统管理员身份
logout 注销用户
注意:logout注销指令在图形运行级别无效,在运行级别3下有效
1.Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先先向系统管理员申请一个账号,然后以这个账号的身份进入系统
2.Linux的用户需要至少属于一个组
添加用户
useradd 用户名
当创建用户成功后,会自动的创建和用户名同名的家目录
也可以通过useradd -d 指定目录 新的用户名,给新创建的用户指定家目录
指定/修改密码
passwd 用户名
删除用户
userdel 用户名
userdel 用户名
删除用户,但是要保留家目录
userdel -r 用户名
删除用户以及用户主目录
查询用户信息
id 用户名
uid 用户id, gid 所在组的id , 组 组名
切换用户
su - 用户名
当高权限用户向低权限用户切换的时候,不需要输入密码
exit 返回到原来的用户
查看当前用户/登录用户
whoami/who am i
用户组:系统对有共性的多个用户进行统一的管理
新增组:groupadd 组名
删除组:groupdel 组名
添加用户时直接加上组:useradd -g 用户组 用户名
更改组:usermod -g 新用户组 用户名
4.2 用户和组的配置文件
用户配置文件(用户信息)
/etc/passwd
组配置文件(组信息)
/etc/group
口令配置文件(密码和登录信息,是加密的)
/etc/shadow
五.实用指令
5.1 运行级别和找回root密码
运行级别:
- 0 关机
- 1 单用户【找回丢失密码】
- 2 多用户状态没有网络服务
- 3 多用户状态有网络
- 4 系统未使用保留给用户
- 5 图形界面
- 6 系统重启
常用的运行级别是3和5。要修改默认的运行级别可改文件/etc/inittab的id:5:initdefault:这一行中的数字(注意:这种方式在centos 7下不再使用,7里面等同于命令:systemctl islate xxx.target)
切换命令:比如init 3,切换到3级别
案例:如何找回root密码
思路:进入到单用户模式,然后修改root密码。因为进入单用户模式,root不需要密码就可以登录
总结:开机–>在引导时输入 回车—》看到一个界面输入 e—>看到一个新的界面,选中第二行(编辑内核)在输入e—》在这行最后输入 1,再输入 回车—》再次输入b,这时就会进入到单用户模式。
这时就进入了单用户模式,使用passwd指令来修改root密码
问题:安全怎么保证?此操作必须到机房去实机操作,不能远程
5.2 帮助指令
- man 获取帮助信息
- 比如查看ls命令 输入man ls即可
- help 获得shell内置命令的帮助信息
- 比如查看cd 输入 help cd
- 百度
5.3文件目录类指令
pwd 显示当前工作目录的绝对路径
ls [选项]
- -a 显示当前目录所有的文件和目录,包括隐藏的
- -l 以列表的方式显示信息
cd 切换目录
- cd~ 或者cd:回到自己的家目录
- cd.. 回到当前目录的上一级目录
mkdir 创建目录,默认只能一级一级创建
- -p 创建多级目录
rmdir 删除空目录
- 如果目录下有内容时 无法删除 要删除用rm -rf
touch 创建空文件,可以一次性创建多个文件
cp 拷贝文件到指定目录
- cp [选项] source dest
- -r 递归复制整个文件夹
- \cp 强制覆盖 不会提示
rm 移除文件或目录
- -r 递归删除
- -f 强制删除不提示
mv 移动文件与目录 或重命名
mv oldname newname 重命名
移动文件 将 /home/pig.txt 移动到 /root 下
mv pig.txt /root/
cat 查看文件内容
- -n 显示行号
- 只能浏览不能修改,为了浏览方便,一般会带上管道命令 | more
more 文本过滤器,以全屏的方式按页显示文本文件的内容。
- enter 一行一行走
- 空格 一页一页走
- ctrl+B 返回上一屏
- crtl+F 向下滚动一屏
less 分屏查看文件内容,并不是一次将整个文件加载之后才显示,而是根据需要显示加载的内容,适用大型文件
- 同样有很多快捷键,比如pageup 向上翻动一页。空格 向下翻一页
> 是输出重定向,覆盖写与>> 追加echo 输出内容到控制台
head 显示文件的开头部分内容,默认情况下显示文件的前10行
- head -n 5 文件 查看文件头5行内容
tail 用于输出文件中尾部的内容 默认情况下tail指令显示 文件的后10行内容
- tail -n 5 文件 查看文件后5行内容
- tail -f 文件 实时追踪该文档的所有更新
ln 软链接又叫符号链接。类似windows里的快捷方式,主要存放了链接其他文件的路径
- ln -s [原文件或目录] [软链接名] 给原文件创建一个软链接
- 当使用pwd查看目录时,仍然看到的是软链接所在目录
history 查看已经执行过历史命令,也可以执行历史指令
- 执行历史指令的话 可以用
!指令行号
- 执行历史指令的话 可以用
5.4 时间日期类
- date 显示当前时间
- date “+%Y-%m-%d %H:%M:%S” 2021-6-9 12:25:05
- date -s 字符串 设置日期
- cal 显示日历
5.5 搜索查找类
find 从指定目录向下递归遍历其各个子目录,将满足条件的文件或者目录输出
find [搜索范围] [选项]
-user 文件的用户
-name 文件名
案例:查找整个Linux系统下大于20m的文件(+n 大于 -n 小于 n 等于)
find / -size +20M
locate 快速定位文件路径 无需遍历整个文件系统 查询速度较快 为了保证查询结果的准确性 管理员必须定期更新locate
locate 搜索文件
由于locate指令基于数据库查询,所以第一次运行前,必须使用update指令创建locate数据库
grep 过滤查找 , 管道符“|”表示将前一个命令的处理结果输出传递给后面的命令操作
grep [选项] 查找内容 源文件
-n 显示匹配行及行号
-i 忽略大小写
案例:输出文件hello.txt中“yes”所在的行号
cat hello.txt | grep yes
5.6 压缩和解压缩类
gzip 用于压缩文件 gunzip 用于解压缩的
zip与unzip
- zip压缩会保留原文件,gzip不会
tar 打包指令 既可以压缩,也可以解压
- -c 产生.tar打包文件
- -v 显示详细信息
- -f 指定压缩后的文件名
- -z 打包同时压缩
- -x 解压.tar文件
六.组管理
在Linux中的每个用户必须属于一个组,不能独立于组外。
文件:
1.所有者
2.所在组
3.其他组。除了文件的所有者和所在组的用户外,系统的其他用户都是文件的其他组。
6.1 文件/目录 所有者
- ls -ahl 查看文件的所有者,所在组
- chown 用户名 文件名 修改文件所有者
- groupadd 组名 组的创建
6.2 文件/目录 所在组
chgrp 组名 文件名 修改文件所在组
所有者和所在组同时改变:chown newowner:newgroup file
6.3 改变用户所在组
- usermod -g 组名 用户名
- usermod -d 目录名 用户名 改变该用户登陆的初始目录
七.权限管理

7.1 rwx权限详解
(1)rwx作用到文件
- [r] 可以读取,查看
- [w] 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写的权限,才能删除该文件。
[x]可以被执行
(2)rwx作用到目录
- [r] 可以读取,ls查看目录内容
- [w] 可以修改,目录内创建+删除+重命名目录
[x]可以进入该目录
7.2 修改权限 chmod
方式一:+,-,= 变更权限
案例:给abc.txt的所有者rwx权限,给所在组rx权限,给其他组用户rx权限
u:所有者 g:所在组 o:其他 a:所有人(u,g,o的总和)
chmod u=rwx,g=rx,o=rx abc
方式二:通过数字变更权限
r=4 w=2 x=1 rwx=4+2+1=7
chmod u=rwx,g=rx,o=x 文件目录名
相当于 chmod 751 文件目录名
### 八.任务调度
任务调度:是指系统在某个时间执行的特定的命令或程序
分类:
1.系统工作:有些重要的工作必须周而复始地执行。如病毒扫描
2.个别用户工作:个别用户可能希望执行某些程序。比如对mysql数据库的备份
8.1 crond 任务调度
crontab [选项]
-e 编辑crontab定时任务
-l 列出当前有哪些任务调度
-r 终止任务调度
service crond restar [重启任务调度]
参数说明:5个占位符
第一个* 一小时当中的第几分钟 0-59
第二个* 一天当中的第几个小时 0-23
第三个* 一个月当中的第几天 1-31
第四个* 一年当中的第几个月 1-12
第五个* 一周当中的星期几 0-7
案例1:设置任务调度文件:/etc/crontab,设置个人任务调度,执行crontab -e命令,接着输入任务到调度文件,如:
*/1****ls -l /etc/ > /tmp/to.txt每分钟执行
ls -l /etc/ > /tmp/to.txt案例二 每隔一分钟,就将当前日期信息,追加到/tmp/mydate文件中
①先编写一个文件 /home/mytask1.sh
写入date>>/tmp/mydate
②给mytask1.sh一个可以执行权限
③crontab -e
④
*/**** /home/mytask1.sh每间隔一分钟去执行mytask1.sh1
2
3
4
5
6
7
8cd /home/
vim mytask1.sh
写入 date >> /tmp/mydate
ls -l
chmod 744 mytask1.sh
ls
crontab -e
写入 `*/**** /home/mytask1.sh`
九.磁盘分区及挂载
lsblk -f 查看系统的分区和挂载情况 (老师不离开)
分区情况 分区类型 唯一标识分区的40位不重复的字符串 挂载点
如何增加一块硬盘
1.虚拟机添加硬盘
2.分区
fdisk/dev/sdb3.格式化
mkfs -t ext4 /dev/sdb14.挂载 先创建一个/home/newdisk ,挂载mount /dev/sdb1 /home/newdisk
5.设置可以自动挂载(永久挂载,当你重启系统,仍然可以)
df -lh 查询系统整体磁盘使用情况
du -h /目录 查看指定目录的磁盘占用情况
案例:
1)统计/home 文件夹下文件的个数
ls -l /home | grep "^-" | wc -l
2)统计/home文件夹下目录的个数
ls -l /home | grep "^d" | wc -l
3)以树形结构显示文件
yum install tree
tree
十.进程管理
- ps -ef 查看父进程 为0表示没有父进程
- ps -aux 看到资源占有情况
- kill [选项] 进程号 终止进程
案例:
1.踢掉某个非法登录用户
ps -aux | grep sshd —–查看进程号
kill 进程号
2.强制杀掉一个终端
kill -9 进程号
- pstree -p 以树形显示进程