目录
一.文件编辑类
1.vi与vim编辑器
2.常用指令
二.用户管理类
1开机,重启,用户登录注销。
2.用户管理
1.Linux 用户和用户组管理
2.用户管理相关操作指令 :
3.系统运行级别(共七个):
三.文件目录类命令
1. pwd
2. ls指令
3.cd命令:
4.mkdir命令:
5.rmdir指令 :
6.touch指令:
7.cp指令:
8.rm指令:
9.mv指令:
10 cat指令:
11. more指令
12. less指令
13 >指令和>>指令
13 echo指令
14 head指令
15 tail指令
16 ln指令
17 histroy
四.时间日期类命令
1.date指令
2.cal指令
五.搜索查找类指令
1 .grep指令和管道符号 |
2 .find命令
3.locate指令
五.压缩和解压缩类
1.gzip/gunzip指令
2.zip/unzip指令
3.tar指令
六.组管理和权限管理
1.改变文件所有者
2.改变文件所在组
3.改变用户所在组
4.权限管理
七.定时进行时间任务调度
八.Linux磁盘分区,挂载
Windows系统的分区:
LINUX系统的分区:
指令:lsblk -f 查看系统分区与挂载情况
添加一块磁盘:
磁盘情况查询:
九. 进程管理
ps指令
终止进程kill或killall
vi和vim它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面。. vim的这些优势主要体现在以下几个方面:. 1、多级撤消. 我们知道在vi里,按 u只能撤消上次命令,而在vim里可以无限制的撤消。. 2、易用性. vi只能运行于unix中,而vim不仅可以运行于unix,windows ,mac等多操作平台。. 3、语法加亮. vim可以用不同的颜色来加亮你的代码。. 4、可视化操作.。
总体来说vim可以看作vi的增强版。
vi和vim的三种常见模式:
1.正常模式:可以使用快捷键,如移动光标,删除字符、整行,复制粘贴等。
2.编辑模式/插入模式:可以输入内容(按下i,I,o,O,a,A,r,R等即可进入编辑模式)
3.命令模式:提供相关指令,完成读取,存盘,替换,离开vim,显示行号等内容。
vim | 创建并且进入文件 |
i | 开始编辑文件内容 |
esc | 推出编辑 |
:wq | 写入并退出 |
:q | 不保存退出 |
:q! | 强制退出(不保存编辑的内容) |
注意:“:wq”,“:q”等操作需要退出编辑模式才可以执行
快捷键:1.拷贝当前行,yy,拷贝当前行向下5行,5yy。
2. 粘贴p。
3.删除当前行dd,删除当前行向下5行,5dd。
4.文件中查找某个单词(命令行下 /关键字 然后回车查找,输入n就是查找下一个)。
5.快速到达文件的末行G,快速到达首行gg。
6.撤销上一步操作,u。
7.快速移动光标,例如一定到第三行,:3。
注意:上述操作都是在正常模式下可以进行的操作,如果你在编辑,按esc后再进行上述操作。
1.shutdown -h now 立即关机;shutdown -h 1 一分钟后关机;shutdown -r now 立即重启。
2.hat (等价直机关机)
3.reboot (重启)
4.sync 把内存的数据同步到磁盘(相当于数据保存),最好每次关机前执行这句,确保数据完整。
5.logout (注销用户)
6.su - 用户名(切换管理员用户)
注意:logout注销指令在图形运行级别无效,在运行级别3下有效。对于运行级别后面会讲。
首先介绍一下Linux的用户和用户组,因为在Linux系统中,一切皆文件。所以下面介绍一下用户和用户组,以及他们之间的关系。
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
不同用户具有不问的权限,毎个用户在权限允许的范围内完成不间的任务,Linux 正是通过这种权限的划分与管理,实现了多用户多任务的运行机制。
因此,如果要使用 Linux 系统的资源,就必须向系统管理员申请一个账户,然后通过这个账户进入系统(账户和用户是一个概念)。通过建立不同属性的用户,一方面可以合理地利用和控制系统资源,另一方面也可以帮助用户组织文件,提供对用户文件的安全性保护。
每个用户都有唯一的用户名和密码。在登录系统时,只有正确输入用户名和密码,才能进入系统和自己的主目录。
用户组是 Linux 系统中对用户进行管理及控制访问权限的一种手段,通过定义用户组,很多程序上简化了对用户的管理工作。
用户和用户组的对应关系有以下 4 种:
用户和组之间的关系用下图 来表示:
总结: 用户组可以管理用户,每个用户至少属于一个用户组。
用户:
添加用户:useradd [选项] 用户名(创建添加用户)
useradd -d 地址 用户名 (创建新用户并且指定其家目录)
家目录:在/home下,目录下有各个创建的用户对应的家目录,当用户登录时,会自动进入自己的家目录。
passwd 用户(给用户设置密码)
删除用户: userdel 用户名(删除用户但是保留家目录)
userdel -r 用户名(删除用户以及家目录)
查询用户信息 :id 用户名(查询用户信息)
如果没有该用户:no such user
有该用户: uid(用户id号) gid(组id号) 组(组名称)
切换用户:su - 用户名
注意:当地权限用户切换到高权限用户时需要输入密码,而高权限用户到底权限用户不需要输入密码。输入“exit”,则返回上一个跳转用户。
查看当前用户: whoami
用户组:
添加用户组:groupadd 组名
删除用户组: groupadd 组名
添加用户到指定用户组下: useradd -g 组名 用户名(创建用户时使用)
修改用户组: usermod -g 组名 用户名(对已有的用户使用)
用户组和用户相关的文件:
用户配置文件(用户信息):/etc/passwd
组配置文件(组信息):/etc/group
口令配置文件(包含密码和登录信息,是加密的):etc/shadow
0:关机
1:单用户(可用来找回密码)
2:多用户无网络服务
3:多用户有网络服务
4:保留
5:图形界面
6:重启
切换到指定运行级别的指令: init 数字,其范围是0-6,但是对于cenos7,其相关的文件在/lib/systemd/system,而不是etc/inittab。下面是centos7修改系统运行级别的命令。新手一般是5,图形化界面。
1. multi-user
就是之前版本的 3 (多用户 命令行)
2. graphical
就是之前版本的 5 (多用户 图形化)
还给出了设置方法:
终端输入:systemctl set-default TARGET.target
下面是补充,感兴趣的可以尝试一下吧。
面试题:如何找回丢失的密码?
思路:进入到单用户模式,因为单用户模式可以不用登录密码。具体操作如下
首先我们在开启centos系统的选择界面时候按下空格键让启动停在此界面,注意此界面一般非常快就消失了。具体如下图所示。
然后我们按下"e"键。进入编辑方式,找到 “UTF-8”后添加 init=/bin/sh。具体操作如下图所示。
编辑完成后,我们输入Ctrl+x组合键,等待系统进入sh界面。具体操作如下图所示。
然后我们执行命令"mount -o remount,rw /"。具体操作如下图所示。
然后我们执行命令"passwd",两次输入新的密码即可。具体操作如下图所示。
然后我们执行命令"touch / .autorelabel" 更新系统信息。
最后强制按电源键,等待系统重启,重启后输入我们设置的密码,可以发现已经登录成功了。到此密码已经更换了。
显示当前工作目录的绝对路径
语法:ls [选项] 目录或文件
常用选项: -a 显示当前目录的所有文件和目录,包括隐藏文件(以.开头的文件)
-l 以列表的方式显示信息
语法:cd [参数] (功能是切换到指定目录)
常用参数:目录的绝对路径或者相对路径
cd ~ (添砖到当前用户的家目录)
cd /(回到根目录)
cd .. (回到上级目录)
作用是创建目录
语法: mkdir [选项] 要创建的目录
常用选项: -p 创建多级目录
例如:此时工作目录在home下
mkdir /home/animal
mkdir -p /home/animal/cat
作用是删除空目录
语法: rmidr [选项] 要删除的目录(不可以删除非空目录)
如果非要删除某个文件或者目录:rm -rf 要删除的文件或者目录
作用是创建空文件
基本语法:touch 文件名称
作用拷贝文件到指定目录
语法:cp [选项] 源 目标
常用选项:-r 递归复制整个文件夹
例如:把/home/a.txt拷贝到/home/test目录下,我们所处工作环境是home
所以可以写成 cp a .txt test/
注意:强制覆盖不提示的方法: \cp(前提是要拷贝文件与目标文件或者目录下的文件重名)
作用是删除文件或者目录
语法:rm [选项] 要删除的文件或者目录
常用选项:-r 递归删除整个文件; -f 强制删除某个文件或者目录
作用:移动文件与目录或重命名
基本语法: mv oldFilename newFilename (重命名)
mv 文件/目录 文件夹/路径 (移动)
作用:以只读方式打开文件
基本语法:cat [选项] 要查看的文件
常用选项: -n 显示行号
cat只能浏览文件,而不能修改文件,为浏览方便,一般带上命令" | more"(在这里相当于分页。按空格下一页)
其是一个vi编缉器的文本过滤器,它以全屏幕的方式页显示文本文件的内容。
基本语法: more 要查看的文件
操作说明: 查看文件时
空格——向下翻员
Enter——向下翻行
q——离开more,不再显示文件内容
ctrl+f——向下滚动一屏
ctrl+b——反回上一屏
查找文件时:
: f ——轻出文件名与当前行行号
一数字——指定每页行数
作用:与more功能相似,但其不会一次性全部加载文件,而是按需加载,对于大型文件有较高效率(推荐用来查阅大型文件)
基本语法: less 要查看的文件
>叫做重定向,>>叫做追加
基本语法:
ls -l >文件 (列表的内容写入到对应文件中,但是是以覆盖的形式写入)——若该文件不存在则自动创建
ls -l >> 文件(列表的内容写入到对应文件的尾部,不会覆盖)——若该文件不存在则自动创建
作用: 输出内容到控制台
基本语法:echo [选项] [输出内容]
作用: 显示文件的开头部分内容,默认情况下显示指令显示文件前10行
基本语法: head 文件
head -n 行数 文件
作用:输出文件尾部内容(默认为文件后10行)
基本语法: tail 文件
tail -n 行数 文件
tail -f 文件 (实时追踪该文档的所有更新)
作用: 也叫作符号连接,类似于windows里的快捷方式,主要存放了链接其他文件路径
基本语法: ln -s [原文件或目录] [软链接名] 作用是给源文件创建一个软连接
删除软链接 rm -rf 链接名
作用:显示历史所有的指令
基本语法: history
history 10 (显示之前的10条)
! 数字 (显示的是执行命令是数字对应位次的指令)
作用:显示当前日期
语法:date +%Y 输出年
date +%m 输出月
date +%d 输出年日
date +"%Y %m %d %H %M %S" 输出年月日时分秒
作用:显示日历
语法: cal 显示当前年日历
cal 年份 显示指定年份的日历
作用:grep是查找,管道符"|",表示将前一个命令的处理结果传递给后面的命令去处理,而两者联合使用就达到了过滤查找的效果。
语法: grep [选项] 查找内容 源文件
常用选项: -n 显示匹配行以及行号
-i 忽略字母大小写
例如:
1、从单个文件中查找指定的字符串
grep "this" demo_file
2、从多个文件中查找指定的字符串
grep "this" demo_*
3、查询且忽略大小写
grep -i
作用:将从指定目录下递归遍历所有子目录,将满足条件的文件或者目录显示在终端
语法:find [搜索范围] [选项]
例如:find /home -name hello.txt(找home目录下,名字为hello.txt的文件)
find /home -user xzy(找home目录下,xzy为用户名的文件)
find /home -size +20M(找home目录下,大于20M的文件)
作用:快速定位文件路径,locate利用实现建立的系统中的所有文件名称,及路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统,查询系统较快。为保证查询精度,管理员必须定期更新locate时刻。
基本语法:locate 搜索的文件
由于是第一次基于数据库查询没第一次运行前,必须用updatedb指令来更新locate数据库。
五.压缩和解压缩类
作用:gzip压缩文件,gunzip是解压
基础语法:gzip 文件(压缩文件,而且只能压缩成.gz文件,压缩后源文件不保留)
gunzip 文件(解压压缩文件)
作用:zip用于压缩文件,unzip用来解压文件
基本语法:zip [选项] xxx.zip 要压缩的内容
unzip [选项] xxx.zip
常用选项: -r 递归压缩,即压缩目录
-d 目录 解压到指定的目录
作用:打包指令,打包的文件是.tar.gz文件
基本语法:
tar -cvf 打包文件.tar 被打包的文件/路径...
tar -xvf 打包文件.tar
常用选项:
-c | 生成档案文件,创建打包文件 |
-x | 解开档案文件 |
-v | 列出归档解档的详细过程,显示进度 |
f | 指定档案文件名称,f 后面一定是 .tar 文件,所以必须放选项最后 |
对于用户和用户组的介绍与说明在前面说过了,以及对组和用户的添加和删除等操作也都有过介绍。这里主要来描述一些关于用户权限管理的操作。
查看文件所有者: ls -ahl
修改文件所有者:chown 用户名 文件
查看所在组: ls -ahl
修改文件所在组: chgrp 组名 文件
改变用户所在组: usermod -g 组名 用户名
改变用户登录初始目录: usermod -d 组名 用户名
-rwxrwxrwx 1 tom police 0 11月 1 20:30 test.txt
上面的这段字符,代表了很多信息,下面将一一进行解说:
-代表文件类型
接下来的三个rwx分别代表文件所有者拥有的权限,文件所在组拥有的权限,文件对于其他组所拥有的权限,r代表读,w代表写,x代表执行。
数字1表示文件硬连接的数;如果是目录,则代表子目录个数
0代表文件/目录大小;如果是目录,则为4096这个固定值
之后的是文件最后修改的时间
test.txt代表文件名
修改权限
第一种方式 chmod u=rwx,g=rx,o=x 文件名
第二种方式 chmod o+w 文件名(给其他组添加写的权限)
第三种方式 chmod a-x 文件名(给所有用户和组去除执行的权限)
其中u代表所有者权限,g代表组权限,o代表其他组,a代表所有人
第四种方式:chmod 722 文件目录名
其中r=4,w=2,x=1,所以7代表给所有者rwx的权限,给所在组w权限,给其他组w的权限。
概述:Linux 定时任务调度 (crontab命令) crond 是Linux下用周期性的执行某种任务或者等待处理某些事件的一个守护进程,crond 进程会每分钟定期检查是否有要执行的任务,如果有要执行的任务则自动执行该任务. Linux 下的任务调度. 系统任务调度:系统周期性所要执行的工作,如:写缓存数据到硬盘、清理日志等。. 系统任务调度的配置文件 /etc/crontab. 用户任务调度:用户定期要执行的工作,比如数据库备份、定时邮件提醒等。. 所有用户定义的crontab文件都保存在/var/spool/cron目录中。. 文件名与用户名一致。. crontab 文件的含义.
crontab 服务
查看服务是否已经运行用 ps -ax | grep cron
crontab命令选项:
新增任务调度
在以上各个字段中,还可以使用以下特殊字符: 星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。 逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9” 中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6” 正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。
例子:每一分钟,将当前日期信息追加到/tmp/mydate的文件中
第一步:编写一个shell脚本mytest.sh
date >> /tmp/mydate
第二步:给mydate.sh执行的权限 chomd 766 /tmp/mytest
第三步:crontab -e
第四步:* /1 * * * * /home/mytest.sh
一,分区基础知识:
1,MBR分区 1.最多支持四个主分区
2.系统只能安装在主分区
3.扩展分区要占用主分区
4.MBR最大支持2TB,但拥有最好的兼容性
2,gtp分区 1.支持无限多分区(受系统限制,如windows最多128分区)
2.最大支持18EB容量(1EB=1024PB)
3.windows64位以后支持gtp
Windows系统主要是将磁盘分成几个分区(C盘,D盘等等),因此Windows系统中是先有分区,再有目录(文件夹),也就是把文件放入盘中。Windows中的文件夹或者分区相当于一个容器中的容器(可以想象类似于俄罗斯套娃的做法)
1.linux无论有几个分区,无论那一目录使用,他归根结底只有一个根目录,一个独立且唯一的文件结构,linux每个分区都是用来组成整个文件系统的一部分。
2.linux采用了“载入”的处理方法,它的整个文件系统包含了一整套的文件和目录,将一个分区和一个目录联系起来,这是载入的一个分区将使他的存储空间在一个目录下获得。
name:分区情况
fstype:分区类型
uuid:唯一标识分区的40位不重复的字符串
mountpoin:挂载点
(小区)1虚拟磁盘添加硬盘
(房子)2分区 fdisk /dev/sdb(进入后输入m,选择n,p分区为主分区1,最后输入w写入分区并退出。
(装修)3格式化 mkfs -t ext4 /dev/sdb/ (ext4是分区类型)
(认证)4挂载 先创建一个/home/newdisk ,然后挂载 mount /dev/sdb/ /home/newdisk
设备名称 挂载目录
(登记)5设置可自动挂载
1磁盘具体情况查询: df -l
df -lh
2查询指定目录的磁盘占用情况
du -h /目录
-s 指定目录占用大小汇总
-h 带计量单位
-a 含文件
-c 列出明细的同时,增加汇总值
(1)在LINUX中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一
个ID号。
(2) 每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。
(3) 每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目
前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法
看到的进程,通常使用后台方式执行。
(4) 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到
关机才才结束。
• USER:用户名称
• PID:进程号
• %CPU:进程占用CPU的百分比
• %MEM:进程占用物理内存的百分比
• VSZ:进程占用的虚拟内存大小(单位:KB)
• RSS:进程占用的物理内存大小(单位:KB)
• TT:终端名称,缩写 .
• STAT:进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通
优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等
• STARTED:进程的启动时间
• TIME:CPU时间,即进程使用CPU的总时间
• COMMAND:启动进程所用的命令和参数,如果过长会被截断显示
使用ps指令即可查看当前系统中正在执行的进程的各种进程信息
基本语法
ps –选项
选项说明:
-a:显示当前终端的所有进程信息
-u:以用户的形式显示进程信息
-x:显示后台进程运行的参数
kill指令就像是Windows系统中的任务管理->结束任务一样