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(明天)来指定完成命令的时间。