Linux
(学习自b站韩顺平linux课程,按学习进度更新,已学到Linux磁盘分区、挂载)
目录结构
-
/bin [常用]:是Binary的缩写,这个目录存放着最经常使用的命令;
-
/sbin:s就是Super User的意思,存放系统管理员使用的系统管理程序;
-
/home[常用]:存放普通用户的主目录,在Linux中每个用户都有一个自己的目录;
-
/root[常用]:该目录为系统管理员,也称作超级权限者的用户主目录。
-
/ib 系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库;
-
/lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了-
一些文件。 -
/etc[常用]:所有的系统管理所需要的配置文件和子目录,比如安装mysql数据库 my.conf;
-
/usr[常用]:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。
-
/boot[常用]:存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件;
-
/proc[不能动]:该目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息;
-
/srv[不能动]:service缩写,该目录存放一些服务启动之后需要提取的数据;
-
/sys[不能动]:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs;
-
/tmp:这个目录是用来存放一些临时文件的;
-
/dev:类似于windows的设备管理器,把所有的硬件用文件的形式存储。
-
/mnt[常用]:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里的内容了。d:/myshare;
-
/opt:给主机额外安装软件安装包所存放的目录;
-
/usr/local[常用]:这是另一个给主机额外安装软件所安装的目录。一般是通过编译源码方式安装的程序(安装路径);
-
/var[常用]:这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下。包括各种日志文件;
-
/selinux [security-enhanced linux]:SELinux是一种安全子系统,它能控制程序只能访问特定文件,有三种工作模式,可以自行设置;
vim命令
- 拷贝当前行yy,拷贝当前行向下的5行 5yy,并粘贴(输入p)
- 删除当前行dd,删除当前行向下的5行 5dd
- 在文件中查找某个单词 [命令行下 /关键字 ,回车 查找 ,输入 n 就是查找下一个]
- 设置文件的行号,取消文件的行号.[命令行下:set nu 和 :set nonu]
- 在一般模式下,使用快捷键到该文档的最末行[G]和最首行[gg]
- 撤销这个动作 u
- 在一般模式下,并将光标移动到,输入 20,再输入 shift+g
更多详细指令:





开关机、注销
| 命令 | 功能 |
|---|---|
| shutdown -h now | 立刻关机 |
| shutdown -h 1 | 一分钟后关机 |
| shutdown -r now | 立刻重启 |
| halt(中文:停) | 关机 |
| reboot | 重启 |
| sync | 内存数据写入磁盘 |
| su -root | 使用root权限 |
| logout | 注销 |
用户管理
| 功能 | 命令 | 参数 |
|---|---|---|
| 创建用户 | useradd 用户名 | -d 指定目录 |
| 改密码 | passwd 用户名 | |
| 删除用户(保留目录) | userdel 用户名 | -r 删除用户主目录 |
| 查询用户信息 | id 用户名 | |
| 切换用户 | su - 用户名 | |
| 登出 | logout | |
| 查询当前用户(显示的是第一次登录的用户) | who am i |
-
/etc/passwd文件:用户的配置文件
用户名;口令;用户标识号(uid);组标识号(gid);注释性描述;主目录登录Shell
-
/etc/shadow 文件:口令的配置文件
登录名;加密口令;最后一次修改时间;最小时间间隔;最大时间间隔;警告时间;不活动时间;失效时间;标志 -
/etc/group 文件:组(group)的配置文件
组名;口令;组标识号;组内用户列表
用户组
| 功能 | 命令 | 参数 |
|---|---|---|
| 创建用户组 | groupadd 组名 | |
| 删除用户组 | groupdel 组名 | |
| 添加用户 | useradd -g 组名 用户名 | |
| 修改用户组 | usermod -g 用户组 用户名 |
实用指令
运行级别
0 :关机
1:单用户【找回丢失密码】
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图形界面
6:系统重启
常用运行级别是3和5,也可以指定默认运行级别。
| 功能 | 命令 |
|---|---|
| 切换运行级别 | init 3 |
| 查看当前默认运行级别 | systemctl get-default |
| 设置默认运行级别 | systemctl set-default multi-user.target设置为登记3 |
找回root密码
1、开机界面按“e”进入编辑界面
2、进入编辑界面,使用键盘上的上下键把光标往下移动,找到以“Limux16”开头内容所在的行数”,在行的最后面输入:init=/bin/sh.

3、快捷键“ctrl + x” 进入单用户模式
4、输入:mount -o remount,rw / 然后回车

5、在新的一行最后输入新密码
帮助指令
| 指令 | 功能 |
|---|---|
| help [命令] | 获得shell内置命令的帮助信息 |
| man [命令或配置文件] | 获得帮助信息 |
文件目录指令
| 指令 | 功能 | 常用参数 |
|---|---|---|
| pwd | 显示当前工作目录绝对路径 | |
| ls | -a 显示当前所有文件目录,包括隐藏; | |
| cd | 切换到指定目录 | cd ~ 回到自己家目录; |
| mkdir | 创建目录 | -p 创建多级目录 |
| rmdir | 删除空目录(删除非空目录rm -rf) r:向下递归,f:强制删除 | |
| touch | 创建空文件 | touch 文件名称 |
| cp source dest | 拷贝文件到指定目录 | -r:递归复制整个文件夹 \cp -r 强制覆盖不提示 |
| rm | 删除 | -r:递归删除; -f:强制删除不提示 |
| mv | 移动文件与目录或重命名 | ![]() |
| cat | 查看文件内容 | -n:显示行号 一般带上 | more |
| more | more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more 指令中内置了若干快捷键(交互的指令) | ![]() |
| less | 分屏查看文件内容,比more | ![]() |
| echo | 输出内容的控制台 | echo $PATH 输出环境变量 |
| head | 显示文件开头部分 | -n:行数 |
| tail | 显示文件尾部 | -n:行数;-f:实时追踪文档更新 |
| > | 输出重定向(覆盖) | |
| >> | 追加 | |
| ln | 软连接,存放链接其他文件的路径 ln [参数][源文件或目录][目标文件或目录] | ln -s /root /home/myroot |
| history | 查看已经执行的历史命令,也可以执行历史指令 | !行号:执行曾经执行的某条指令 |
时间类
| 指令 | 功能 | |
|---|---|---|
| date | 显示当前时间 | |
| date +%Y | 显示当前年份 | |
| date +%m | 显示当前月份 | |
| date +%d | 显示当前是哪一天 | |
| date “+%Y-%m-%d %H:%M:%S” | 显示年月日时分秒 | |
| date -s | 设置时间 | ![]() |
| cal | 查看日历 | cal 2020:显示2020年所有日历 |
搜索查找类
| 指令 | 功能 | 参数 |
|---|---|---|
| find | 从指定目录向下递归遍历子目录 | ![]() ![]() |
| locate | locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位还给定文件。locate指令无需遍历整个文件系统,查询速度较快。 第一次运行前必须使用updatedb创建locate数据库。 | |
| which | 查看指令所在目录 | |
| grep | 过滤查找,管道符 “|”,将前一个命令的处理结果输出传递给后面的命令处理 | ![]() ![]() |
压缩和解压类
| 指令 | 功能 | 选项 |
|---|---|---|
| gzip | 压缩为.gz | |
| gunzip | 解压.gz | |
| zip | 压缩为.zip | -r:递归压缩,压缩目录 |
| unzip | 解压.zip | -d:指定解压后文件存放目录![]() |
| tar | 打包指令,打包为.tar.gz | ![]() |
所有者
| 指令 | 功能 | 选项 |
|---|---|---|
| chown 用户名 文件名 | 修改文件所有者 | -R 递归修改 |
| chgrp 组名 文件名 | 修改文件所在组 | |
| usermod -g 新组名 用户名 | 改变用户所在组 | |
| usermod -d 目录名 用户名 | 改变该用户登陆的初始目录 |
权限
0~9位说明
- 第0位确定文件类型
- -:普通文件
- l:链接
- d:目录
- c:字符设备文件,鼠标,键盘
- b:块设备,如硬盘
- 1~3位:文件所有者
- 4~6位:文件所在组
- 7~9位:其他用户
rwx作用在文件
- r:可读
- w:可写,不可删除,删除一个文件必须对该文件所在目录有写权限。
- x:可执行
rwx作用在目录
- r:可读,ls查看目录内容
- w:可写,可以修改,对文件内创建+删除+重命名目录
- x:可执行,可以进入该目录。
| 指令 | 功能 | 说明 |
|---|---|---|
| chmod | 修改权限![]() ![]() |
定时任务调度
crond任务调度
-
指令:crontab
-
常用选项:
- -e 编辑crontab定时任务;
- el 查询crontab任务;
- -r 删除当前用户所有crontab任务;
-
重启任务调度:service crond restart
-
案例:
设置任务调度文件:/etc/crontab设置个人任务调度。解决:
- 执行crontab -e命令,设置个人任务调度。;
- 接着输入任务到调度文件如:
*/1 * * * * Is -l /etc/ > /tmp/to.txt - 意思说每小时的每分钟执行ls -l /etc/ > /tmp/to.txt 命令
-
五个占位符的说明:


特殊事件执行任务案例:

at定时任务
介绍:
-
at命今是一次性定时计划任务,at的守护进程atd会以后台模式运行检查作业队列来运行。(在使用at命令的时候,一定要保证ata进程的启动,可以使用相关指令来查着)ps -ef | grep atd //可以检测atd是否在运行
-
默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业。
-
at命令是一次性定时计划任务,执行完一个任务后不再执行此任务了。
命令格式
- at [选项] [时间]
- Ctrl + D 结束at命令的输入(两次)
| 选项 | 功能 |
|---|---|
| -m | 当指定的任务被完成后,将给用户发送邮件,即使没有标准输出 |
| -I | atq的别名(查询) |
| -d | atrm的别名 (删除) |
| -v | 显示任务将被执行的时间 |
| -c | 打印任务的内容到标准输出 |
| -V | 显示版本号 |
| -q <队列> | 使用指定的队列 |
| -f <文件> | 从指定文件读入任务而不是从标准输入读入 |
| -t <时间参数> | 以时间参数的形式提交要运行的任务 |
at指定时间方法:
- 接受在当天的hh:mm(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。 例如:04:00使用;
- 使用midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4点)等比较模糊的词语来指定时间;
- 采用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午。例如:12pm;
- 指定命令执行的具体日期,指定格式为month day(月日)或mm/dd/yy(月/日/年)或dd.mm.yy4.(日.月.年),指定的日期必须跟在指定时间的后面。 例如:04:00 2021-03-1;
- **使用相对计时法。**指定格式为:now +count time-units ,now就是当前时间,time-units是时间单位5这里能够是minutes(分钟)、hours(小时)、days(天)、weeks(星期)。count是时间的数量,几天,几小时。例如:now +5 minutes;
- 直接使用today(今天)、tomorrow(明天)来指定完成命令的时间。












671

被折叠的 条评论
为什么被折叠?



