第一天
shutdown
shutdown -h now : 立即关机
shutdown -h 1 :一分钟后关机
shutdown -r now : 立即重启
halt
直接关机
reboot
重启
sync
保存数据(保存数据到内存中)
logout
注销用户。(图形界面下的终端中logout是无效的)
useradd
useradd 用户名
useradd -d 文件目录(用户的home目录) 用户名
useradd -g 用户组 用户名
passwd
passwd 用户名:设置指定用户密码
userdel(工作中,删除用户时,保存home目录,因为每个用户都有自己的操作痕迹)
userdel 用户名:删除用户,保留home目录
userdel -r 用户名:删除用户,不保留home目录
第二天
id
id 用户名(获取用户的uid,gid【组id】,组号的相关信息)
su
su - 用户名:切换用户,当从高级别用户切换到低级别用户时,不需要密码,反之则需要。(exit 可以回退到原来用户)
whoami
查询当前用户
1、用户组相关知识
group
groupadd 组名:添加一个用户组
groupdel 组名:删除一个用户组
useradd
useradd -g 用户组 用户名
usermod
usermod -g 用户组 用户名:修改用户所属的用户组
usermod -d 目录名 用户名:修改用户启动的初始目录
用户和组的相关文件
/etc/passwd :用户配置文件,记录用户的各种信息。(每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录shell)
/etc/shadow :口令配置文件。(每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志)
/etc/group :组配置文件,记录Linux包含的组的信息。(每行的含义:组名:口令:组标识号:组内用户列表)
2、实用指令篇
1)、运行级别:(系统运行级别的配置文件 /etc/inittab)
0:关机;
1:单用户(找回丢失密码);
2:多用户无网络服务;
3:多用户有网络;(常用级别)
4:保留(未分配的)
5:图形界面;
6:重启;
- 切换到执行运行级别的指令:init 【012356】
面试题:1、如何找到 root 密码?2、修改默认运行级别
答:1、进入到单用户模式,然后修改root密码即可。
答:2、在/etc/inittab文件中,将id:5:initdefault:这一行中的数字,5这个数字改成对应的运行级别即可。
2)、帮助指令:当我们对某个指令不熟悉时,我们可以使用linux提供的帮助指令来了解这个指令的使用方法
man 【命令或者配置文件】(功能描述,获得帮助信息)
help 【命令】(功能描述,获得shell内置命令的帮助信息)
3)、文件目录类:
- pwd:显示当前工作目录的绝对路径
- ls 【选项】【目录或是文件】
- 选项
- -l :以列表的方式显示信息
- -a : 显示当前目录所有文件和目录,包含隐藏的
- 选项
- cd 【参数】【指定目录–(绝对路径/相对路径)】(切换到指定目录)
- 参数
- cd ~ :回到自己的home目录
- cd . .:回到上级目录
- 参数
- mkdir 【选项】【目录结构】(用于创建目录)
- 选项:
- -p:一次性创建多级目录
- 选项:
- rmdir 【目录结构】(删除空目录)
- 提示:rm -rf 【目录结构】 :删除非空目录。
- touch 【文件名】(创建一个空文件)
- touch 【文件名1】【文件名2】.。。。:创建多个空文件。
- cp 【选项】【源文件及其目录】【目标文件及其目录】(复制文件或者目录)
- 选项:
- -r:递归复制整个文件夹
- 提示1:这里的文件目录结构也是可以是绝对路径或者相对路径
- 提示2:\cp 【选项】【源文件及其目录】【目标文件及其目录】:强制覆盖
- 选项:
- rm 【选项】【文件或者目录】(删除文件或目录)
- 选项:
- -r:递归删除整个文件夹
- -f:强制删除不提示
- 选项:
- mv 【源文件名】【目的文件名】(移动文件和文件夹或者重命名)
- 提示:当源文件名和目的文件名属于同一个目录,则是重命名;反之则是移动,并且保留原文件名。
- cat【选项】【文件名】(以只读的方式打开文件)
- 选项:
- -n:显示行号。
- 提示:cat 【文件名】| more(分页的形式显示文件内容)
- 选项:
- more (是一个基于vi编辑器的文本过滤器,它以全屏的方式按页显示文本文件的内容)
- 快捷键:
- spcae:向下翻页
- enter:向下滚动一行
- q:离开,即退出
- Crtl+F:向下滚动一屏
- Crtl+B:向上滚动一屏
- =:输出当前行的行号
- f:输出文件名和当前行的行号
- 快捷键:
- less (根据显示需要加载内容,对于显示文件具有较高的效率。功能和more大概类似。)
- ‘>’ 和 ‘>>’(前者是输出重定向,即覆盖;后者是追加,即在原内容尾部继续拼接)
- ls -l > a.txt
- ls -l >> b.txt
- cat 文件1.txt > 文件2.txt :将文件1的内容写到文件2中,并覆盖2的原内容
- cat 文件1.txt >> 文件2.txt :将文件1的内容写到文件2的末尾部分。
- echo ‘内容’ > a.txt
- echo ‘内容’ >> a.txt
- echo【选项】【输出内容】(输出指定内容)
- 常用形式:
- echo $PATH:输出环境变量
- echo ‘hello’:输出 hello 字符串
- 常用形式:
- head【选项】【参数(整数)】【文件】(显示文件的前多少行)
- head 【文件名】:显示文件前10行
- 选项:
- head -n 5 【文件名】:显示文件前5行
- tail【选项】【参数】【文件】(与head相反)
-
- head 【文件名】:显示文件前10行
- 选项:
- head -n 5 【文件名】:显示文件前5行
- 注意:tail -f 【文件】:实时追踪该文档的所有更新,工作中经常使用。
-
- ln
- ln -s 【源文件或者目录】【目标链接】:给源文件或者目录创建软连接(类似于windows中的快捷方式)
- rm 【符号链接】:删除软链接
- 注意:进入软链接时,pwd的结果是软链接的目录。
- history
- 功能:查看已经执行过的历史命令;执行历史命令
- 常用形式:
- history:查看执行过的历史命令。
- history 【n】:查看最后执行的n条命令,包括history n。
- !n :执行编号为n的命令。
4)、时间日期类
- date
- 功能:显示当前日期。
- 基本语法
- date:显示当前时间
- date “+%Y-%m-%d %H:%M:%S”:以yy-mm-dd H:M:S的格式显示时间。(格式可以自己定义)
- date -s 【字符串时间】:设置系统时间。
- cal
- 功能:显示当前日历
- 基本语法:
- cal:显示当前日历
- cal 年份:显示某一年的日历
5)、搜索查找类
注:(此块涉及的目录必须存在)
-
find
- 功能:从指定目录向下递归遍历其各个子目录,将满足条件的文件或者目录显示在终端。
- 基本语法:find【搜索范围】【选项】
- find【搜索范围】-name 文件名:查找指定文件名的文件。
- find【搜索范围】-user 文件名:查找指定用户下的指定文件。
- find【搜索范围】-size 20m(+:代表大于;-:代表小于;默认是等于):按照大小来进行查找
-
loacate
- 功能:快速定位文件路径。
- 原理:locate利用事先建立的系统中所有文件名称及路径的locate数据库实现快速查找。
- 基本语法:
- 注意:使用前要先更新locate数据库。命令是:updatedb
- locate 文件名
-
grep和管道符号(’|‘)
- 功能:过滤查找
- 管道 | 的功能:表示将前一个命令的处理结果输出传递给后面的命令处理。
- 基本语法:grep【选项】【】查找内容 源文件
- grep -n 查找内容 源文件:显示在源文件中所查找内容的行号及内容。
- grep -i 查找内容 源文件:忽略大小写的查找所查内容。
- 例子:
- cat hello.txt | grep -ni yes
6)、压缩和解压类
- gzip和gunzip
- 功能描述:
- gzip 文件名:压缩文件,产生文件名为“原文件名.gz”的文件,并且不保留源文件。
- gunzip 文件名:解压文件,也不保留压缩文件。
- 功能描述:
- zip和unzip
- 功能描述:zip 压缩文件;unzip 解压文件
- 基本语法:
- zip -r 压缩文件名 源文件名:压缩整个目录为一个压缩文件。
- unzip -d 解压目录 源文件名:将源文件解压到指定目录。
- tar
- 功能描述:解压和压缩。俗称打包。
- 基本语法:tar【选项】【打包后的文件名】【源文件1】【源文件2】
- 选项:
- -c:建立一个打包文件
- -v:压缩的过程中显示文件
- -f:使用文件名。f 后面必须立即接文件名。
- -z:打包时同时用gzip压缩,生成.tar.gz文件
- -x:解开一个打包文件
- 例子
- 压缩:tar -zcvf
- 解压:
- tar -zxvf【源文件】:解压到当前文件夹
- tar -zxvf【源文件】 -C【目标目录】:解压到目标目录
第三天
3、组管理和权限管理
3.1 组管理
1)、查看文件或目录的所有者
- 指令:ls -ahl
- 解释:a:all;h:human;l:长形式
2)、仅改变文件或者目录的所有者
- 指令:chown 用户名 文件名或者目录
- 例子1:chown -R 用户名 目录名
- 作用:将目录下的所有文件和目录修改所有者。
- 例子1:chown -R 用户名 目录名
3)、仅改变文件胡总和目录的所在组
- 指令:chgrp 组名 文件名
- 例子1:chgrp -R 用户名 目录名
- 作用:将目录下的所有文件和目录修改所在组。
- 例子1:chgrp -R 用户名 目录名
3.2 权限管理(文件和目录)
文件类型 | |
---|---|
- | 普通文件 |
d | 目录 |
l | 软链接 |
c | 字符设备【键盘、鼠标】 |
b | 快文件、磁盘 |
1)、一个文件或者目录的权限分为三部分:
文件所有者的权限、文件所在组的用户的权限、其他组的用户的的权限。
2)、rwx作用到文件
r:代表读;可以读取查看
w:代表写;可以修改,但不代表可以删除。删除一个文件的前提条件是对该文件所在的目录有写权限。
x:代表可执行;可以被执行。
3)、rwx作用到目录
r:代表读;可以读取,ls查看目录内容。
w:代表写;可以修改,目录内创建+删除+重命名。
x:代表可执行;可以进入该目录。
4)、改变文件的权限
- 例子1:
- 基本语法:=:赋予权限;+:增加权限;-:除去权限;u:所有者;g:组;o:其他用户;a:所有用户
- chmod u=rwx,g=r,o=r 文件名
- chmod u+x 文件名
- chmod u-x 文件名
- 基本语法:=:赋予权限;+:增加权限;-:除去权限;u:所有者;g:组;o:其他用户;a:所有用户
- 例子2:
- 基本语法:r=4或0,w=2或0,x=1或0;0代表无对应权限
- chmod xxx 文件名
- 解释:三个x分别对象
- x=r+w+x
第四天
1、crond任务调度
1.1、概念:
是指系统在某个时间执行特定的命令或程序。
1.2、任务调度分类
- 系统工作:有些重要的工作必须周而复始地执行。如:病毒扫描等。
- 个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据的备份
1.3、基本语法
-
crontab 【选项】
-
常用选项:
- -e:编辑定时任务
- -l:查询定时任务
- -r:删除定时任务
- service crond restart:重启
-
基本案例:
-
crontab -e
-
*/1 * * * * ls -l /etc >> /home/test/crondab_1.txt(每一分钟执行一次命令)
-
占位符 含义 范围 第一个 一小时当中的第几分钟 0-59 第二个 一天当中的第几个小时 0-23 第三个 一个月当中的第几天 1-31 第四个 一年当中的第几个月 1-12 第五个 一周当中的星期几 0-7(0、7都代表周天) -
特殊符号 含义 * 所有,每一个 , 多个参数,1,3,5:1 3 5 - 连续,1-3:1 2 3 /n 每隔多少单位时间
-
2、磁盘分区、挂载
2.1、原理介绍
*个人见解:*与windows的磁盘分区为主,文件目录为辅,分区上放文件目录不同;linux只有一个根目录“/”,一个分区对应一个目录,即分区挂载在目录上。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jMf4GViA-1581933243421)(C:\Users\MHW\AppData\Roaming\Typora\typora-user-images\1574413045070.png)]
2.2、磁盘分区查看以及挂载情况。
lsblk 命令(帮助记忆:l(老)s(师)b(不)l(离)k(开))
2.3、挂载经典案例。
- 添加硬盘。
- 分区:fdisk /dev/sdb:n新增分区,p主分区,两次回车默认全部空间,最后w写入分区并退出。
- 格式化:mkfs -t ext4 /dev/sdb1
- 挂载:先创建一个 /home/newdisk,挂载分区mount dev/sdb1 /home/newdisk。此时只是临时挂载,重启即失效。
- 配置自动挂载:在 /etc/fstab 中配置号挂载信息保存后即可永久挂载。
- 卸载:umount /home/disk或者umount dev/sdb1.
3、磁盘查询
3.1、基本语法
- df -lh:查询系统整体磁盘使用情况
- du -h /目录:查询指定目录的磁盘占用情况,默认为当前目录
- -s 指定目录占用大小汇总。
- -h 带计量单位。
- -a 含文件。
- –max-depth=1 子目录深度。
- -c 列出明细的同时,增加汇总值。
3.2、案例练习
- 统计/home文件夹下文件的个数
- ls -l /home | grep “^-” |wc -l
- 统计/home文件夹下目录的个数
- ls -l /home | grep “^d” |wc -l
- 统计/home文件夹下文件的个数,包括子文件夹里的
- ls -lR /home | grep “^-” |wc -l
- 统计文件夹下目录的个数,包括子文件夹里的
- ls -lR /home | grep “^d” |wc -l
- 以树状显示目录结构
- tree [目录]
第五天
1、网络配置
- 1.1、网络自动连接
- 设置-网络连接-设置-自动连接即可。
- 缺点:ip可能汇编
- 1.2、指定固定IP
- 修改文件 /etc/sysconfig/network-scripts/ifcfg-ens32
- 修改内容
- ONBOOT:yes
- BOOTPROTO:static
- IPADDR:指定ip
- GATEWAY:网关(和真机的虚拟网关一致)
- DNS:和网关保持一致
- 修改后要重启服务和机器
- service network restart:重启服务
- reboot:重启机器
2、进程管理(重点)
2.1、显示系统执行的进程
-
基本命令:
- ps -a:显示当前终端的所有进程信息
- ps -u:以用户的的格式显示进程信息
- ps -x:显示后台进程运行的参数
- ps -ef:查看父进程
- pstree
- -p:显示进程的pid
- -u:显示进程的所属用户
-
ps -aux 结果
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RHrBpE3t-1581933243427)(C:\Users\MHW\AppData\Roaming\Typora\typora-user-images\1575016411885.png)]
-
每一列的含义
- user:用户名
- pid:进程id
- cpu:所占cpu的大小
- mem:占用内存
- vsz:使用的虚拟内存
- rss:使用的物理存储情况
- stat:进程的状态
- s:休眠;
- r:运行;
- n:进程拥有比普通优先级更低的优先级
- d:短期等待
- z:僵死进程
- t:被跟踪或停止等等
- start:启动时间
- time:占用cpu总时间
- command:进程执行的命令行,可以理解为指令
-
查找一部分信息
- 例如查找sshd服务:ps -aux | grep sshd
2.2、终止进程,即杀死进程
- 基本命令:kill或者killall
- kill+【选项】+进程号
- -9:强制杀死
- killall 进程名
- 将归属于该进程的所有进程都杀掉
- kill+【选项】+进程号
3、服务管理
3.1、概念
服务本质是进程。不过它是一个后台进程。通常都会监听某个端口,等待其他程序的请求,因此我们又称为守护进程,是Linux中重要的知识点。
3.2、管理指令
- service 服务名【start | stop | restart | reload | status】
- 在Centos7.0后不再使用service,而是systemctl
- service启动服务会立即生效,但不是永久的,重启后就又回到默认状。
- telnet ip地址 端口:检测某个端口是否启用。(windows)
3.3、查看服务名
方法一:
setup–系统服务–通过空格来选择服务
方法二:
/etc/init.d/目录下包含所有的服务
3.4、chkconfig指令
- 功能:获取各个服务的运行级别设置自启动/关闭
- 基本语法:
- chkconfig --list:查看所有服务
- chkconfig 服务名 --list:查看指定服务
- chkconfig --level 数字 服务名 on/off:指定服务在指定级别的开/关
4、动态监控进程
4.1、指令介绍
top与ps命令很相似。他们都用来显示正在执行的进程。top与ps最大的不同之处在于:top在执行一段时间可以更新正在运行的进程。
4.2、基本语法
- top【选项】
- 选项:
- top -d:指定刷新时间间隔
- top -i:
- top -p:
- 交互指令:
- p:按照cpu占用排序
- m:按照内存排序
- n:按pid排序
- q:退出
- 应用案例:
- top后按u,输入【用户名】监控制动用户的进程;按k,输入【pid】杀死指定进程;
5、监控网络状态
5.1、基本语法
- netstat 【选项】
- 选项:
- -an:按照一定顺序排列
- -p:显示哪个进程在调用
第六天
1、rpm包的管理
1.1、概念
软件包管理工具,和windows的setup.exe类似。
1.2、简单查询指令
- rpm -qa | grep 【软件名称】:查询当前系统是否安装某个软件。
- rpm -qi 【软件名】:查询安装rpm包的详细信息。
- rpm -ql 【软件包的名称】:查看该软件都安装了什么文件。
- rpm -qf 【文件名】:查询指定软件属于哪个软件包。
- rpm -e 【软件名】:删除软件包。
- rpm -e --nodeps 【软件名】:强制删除
- rpm -ivh 【软件名(包括指定目录)】:安装软件
- i:安装
- v:提示
- h:进度条
2、yum包管理
1.1、基本介绍
Yum是一个Shell前端软件包管理。基于rpm包管理,能够从指定的服务器自动下载rpm包并且安装,可以自动处理依赖关系,并且一次性安装所有依赖的软件包。
1.2、基本命令
- yum list | grep 软件名称:查询是否存在要安装的软件
- yum install 软件:下载并安装。
3、Linux之JavaEE定制篇
3.1、安装jdk,并配置环境变量。
JAVA_HOME=/opt/jdk1.7.0_79
PATH=/opt/jdk1.7.0_79/bin:$PATH
export JAVA_HOME PATH