一、Linux基础命令
(一)Linux的目录结构
1、盘符
Linux中无盘符的概念,只有一个根目录 “/” 也就是只有一棵树)
而windows里面有多棵树,每个盘符都是一棵树的根
在Linux系统中,路径之间的层级关系,使用:/ 来表示 (顶级目录只有一个/)
在Windows系统中,路径之间的层级关系,使用: \ 来表示(顶级目录有多个盘符)
2、图示
"bin"文件夹通常包含已编译的二进制文件,这些文件是计算机程序的可执行文件。
这些二进制文件包含计算机能够直接执行的机器代码,与源代码相比,它们是经过编译的、不可读的形式
3、HOME目录
linux路径在:/home/用户名
windows C://user//admin
4、工作目录
即为当前执行之命令所在的目录
当前登录用户的HOME目录默认作为当前工作目录,所以ls命令列出的是HOME目录的内容
(二)Linux命令入门
1、命令行和命令
命令行即Linux终端(Terminal), 是一种命令提示符页面。以纯“字符”的形式操作系统,可以使用各种字符化命令对系统发出操作指令。
命令即Linux程序。一个命令就是一个Linux的程序。命令没有图形化页面,可以在命令行(终端中)提供字符化的反馈
2、命令的基础格式
3、ls命令入门(别名ll)
list show(ll—>ls -l)
-h 表示以易于阅读的形式,列出文件大小,如K、M、G
4、目录切换相关命令(cd/pwd)
(1)掌握cd切换工作目录命令
(2)掌握pwd展示当前工作目录命令
pwd的全称是"print working directory",表示打印当前工作目录。
通过ls来验证当前的工作目录,其实是不恰当的。
我们可以通过pwd命令,来查看当前所在的工作目录。
6、相对路径、绝对路径和特殊路径符
(1)相对路径
相对路径:以当前目录为起点,描述路径的一种写法,路径描述无需以/开头
(2)绝对路径
绝对路径:以根目录为起点,描述路径的一种写法,路径描述以/开头
(3)特殊路径符
-
. 表示当前目录,
比如 cd ./Desktop 表示切换到当前目录下的Desktop目录内,和cd Desktop效果一致 -
… 表示上一级目录,
比如:cd … 即可切换到上一级目录,cd …/… 切换到上二级的目录 -
~ 表示HOME目录,
比如:cd ~ 即可切换到HOME目录或cd ~/Desktop,切换到HOME内的Desktop目录
7、创建目录(文件夹)命令(mkdir)
(1)mkdir -p 选项(多层级)
(2)创建目录的权限
8、文件操作命令(touch、cat、more)
(1)touch 创建文件
可以通过touch命令创建文件
• touch命令无选项,参数必填,表示要创建的文件路径,相对、绝对、特殊路径符均可以使用
(文件白色,文件夹是深色)
(2)cat 查看文件内容
有了文件后,我们可以通过cat命令查看文件的内容。
语法:
• cat同样没有选项,只有必填参数,参数表示:被查看的文件路径,相对、绝对、特殊路径符都可以使用
(3)more 查看文件内容
9、文件操作命令(cp、mv、rm)
(1)cp复制文件、文件夹
cp命令可以用于复制文件\文件夹,cp命令来自英文单词:copy
语法:
• -r选项,可选,用于复制文件夹使用,表示递归
• 参数1,Linux路径,表示被复制的文件或文件夹
• 参数2,Linux路径,表示要复制去的地方
(2)mv移动文件、文件夹
mv命令可以用于移动文件\文件夹,mv命令来自英文单词:move
语法:
• 参数1,Linux路径,表示被移动的文件或文件夹
• 参数2,Linux路径,表示要移动去的地方,如果目标不存在,则进行改名,确保目标存在
(3)rm删除文件、文件夹
i删除文件
ii rm删除文件夹
iii模糊删除
iv注意:危险的命令
10、查找命令(which、find)
(1)which命令 - 查找命令的程序文件
我们在前面学习的Linux命令,其实它们的本体就是一个个的二进制可执行程序。
和Windows系统中的.exe文件,是一个意思。
我们可以通过which命令,查看所使用的一系列命令的程序文件存放在哪里
语法:
(2)find命令 - 按文件名查找文件
作业:
查找文件名叫做:test的文件,从根目录开始搜索
(3)模糊查询*
(4)按文件大小查找文件
11、grep、wc和管道符
(1)grep命令(通过关键字过滤文件行)
举例:
(2)wc命令做数量统计
举例
(3)管道符 |
举例:
(4)echo、tail和重定向符
(i)echo
(ii) 反引号`
(iii)重定向符
(5)tail命令
12、vim
(1)介绍
(2)vi\vim编辑器的三种工作模式
(i)命令模式
(ii)快捷键
(iii)输入模式
(iv)底线命令模式
以:开始,通常用于文件的保存、退出。
write and quit===>wq
13、查看命令帮助和手册-help & -man
如果想要对命令的其它选项进行查阅,可以通过如下方式:
• 任何命令都支持:–help 选项, 可以通过这个选项,查看命令的帮助。
二、Linux权限管理
(一)认知root用户
(二)用户、用户组管理
(三)权限控制
1、查看权限控制
2、修改权限控制
三、Linux实用操作
(一)各类小技巧(快捷键)
1、ctrl + c 强制停止
2、ctrl + d 退出或登出
3、历史命令搜索
(1)history
(2)ctrl + r
输入内容去匹配历史命令
如果搜索到的内容是你需要的,那么:
• 回车键可以直接执行
• 键盘左右键,可以得到此命令(不执行)
4、光标移动快捷键
• ctrl + a,跳到命令开头
• ctrl + e,跳到命令结尾
• ctrl + 键盘左键,向左跳一个单词
• ctrl + 键盘右键,向右跳一个单词
• ctrl + l,可以清空终端内容
(二) 软件安装
1、Linux系统的应用商店
操作系统安装软件有许多种方式,一般分为:
一、下载安装包自行安装
• 如win系统使用exe文件、msi文件等
• 如mac系统使用dmg文件、pkg文件等
二、系统的应用商店内安装
• 如win系统有Microsoft Store商店
• 如mac系统有AppStore商店
Linux系统同样支持这两种方式,我们首先,先来学习使用:
Linux命令行内的”应用商店”,yum命令安装软件
2、yum命令
yum:RPM包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题语法:
• 选项:-y,自动确认,无需手动确认安装或卸载过程
• install:安装
• remove:卸载
• search:搜索
yum命令需要root权限哦,可以su切换到root,或使用sudo提权。
yum命令需要联网
举例;
(三) systemctl
Linux系统很多软件(内置或第三方)均支持使用systemctl命令控制:启动、停止、开机自启
能够被systemctl管理的软件,一般也称之为:服务
语法:
系统内置的服务比较多,比如:
• NetworkManager,主网络服务
• network,副网络服务
• firewalld,防火墙服务
• sshd,ssh服务(FinalShell远程登录Linux使用的就是这个服务)
现在可以使用systemctl去尝试一下,控制这些服务的启动、关闭、自启动啦
(四)软连接
ln命令创建软连接
在系统中创建软链接,可以将文件、文件夹链接到其它位置。
类似Windows系统中的快捷方式
语法:
• 参数1:被链接的文件或文件夹
• 参数2:要链接去的目的地
实例:
• ln -s /etc/yum.conf ~/yum.conf
• ln -s /etc/yum ~/yum
(五)日期、时区
1、date
使用date命令本体,无选项,直接查看时间
2、date +%Y-%m-%d
3、date “+%Y-%m-%d %H:%M:%S”
(六)IP地址、主机名
1、IP地址
每一台联网的电脑都会有一个地址,用于和其它计算机进行通讯
IP地址主要有2个版本,V4版本和V6版本(V6很少用,课程暂不涉及)
IPv4版本的地址格式是:a.b.c.d,其中abcd表示0~255的数字,如192.168.88.101就是一个标准的IP地址
可以通过命令:ifconfig,查看本机的ip地址,如无法使用ifconfig命令,可以安装:yum -y install net-tools
2、特殊IP地址
除了标准的IP地址以外,还有几个特殊的IP地址需要我们了解:
• 127.0.0.1,这个IP地址用于指代本机
• 0.0.0.0,特殊IP地址
• 可以用于指代本机
• 可以在端口绑定中用来确定绑定关系(后续讲解)
• 在一些IP地址限制中,表示所有IP的意思,如放行规则设置为0.0.0.0,表示允许任意IP访问
3、127.0.0.1和localhost和本机IP三者的区别
127.0.0.1和localhost和本机IP三者的区别!!!
4、主机名
每一台电脑除了对外联络地址(IP地址)以外,也可以有一个名字,称之为主机名
无论是Windows或Linux系统,都可以给系统设置主机名。
• Windows系统主机名
• Linux系统主机名
- 修改主机名
5、域名解析
IP地址实在是难以记忆,有没有什么办法可以通过主机名或替代的字符地址去代替数字化的IP地址呢?
实际上,我们一直都是通过字符化的地址去访问服务器,很少指定IP地址
比如,我们在浏览器内打开:www.baidu.com,会打开百度的网址
其中,www.baidu.com,是百度的网址,我们称之为:域名
不是说通过IP地址才能访问服务器吗?
为什么域名这一串好记的字符,也可以呢?
这一切,都是域名解析帮助我们解决的。
6、虚拟机配置固定IP
(七)网络传输
1、下载和网络请求
(1)使用ping命令检查服务器是否可联通
可以通过ping命令,检查指定的网络服务器是否是可联通状态
• 选项:-c,检查的次数,不使用-c选项,将无限次数持续检查
• 参数:ip或主机名,被检查的服务器的ip地址或主机名地址
示例:
• 检查到baidu.com是否联通
(2)使用wget命令下载文件
wget命令
wget是非交互式的文件下载器,可以在命令行内下载网络文件
• 选项:-b,可选,后台下载,会将日志写入到当前工作目录的wget-log文件
• 参数:url,下载链接
示例:
• 下载apache-hadoop 3.3.0版本:
wget http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
• 在后台下载:wget -b http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
• 通过tail命令可以监控后台下载进度:tail -f wget-log
注意:无论下载是否完成,都会生成要下载的文件,如果下载未完成,请及时清理未完成的不可用文件。
(3)使用curl命令发起网络请求
curl可以发送http网络请求,可用于:下载文件、获取信息等
语法:
• 选项:-O,用于下载文件,当url是下载链接时,可以使用此选项保存文件
• 参数:url,要发起请求的网络地址
示例:
• 向cip.cc发起网络请求:curl cip.cc
• 向python.itheima.com发起网络请求:curl python.itheima.com
• 通过curl下载hadoop-3.3.0安装包:curl -O http://archive.apache.org/dist/hadoop/common/hadoop-
3.3.0/hadoop-3.3.0.tar.gz
2、端口
(1)物理端口与虚拟端口
端口,是设备与外界通讯交流的出入口。端口可以分为:物理端口和虚拟端口两类
• 物理端口:又可称之为接口,是可见的端口,如USB接口,RJ45网口,HDMI端口等
• 虚拟端口:是指计算机内部的端口,是不可见的,是用来操作系统和外部进行交互使用的
(2)虚拟端口
但是虚拟端口,有什么用?为什么需要它呢?
计算机程序之间的通讯,通过IP只能锁定计算机,但是无法锁定具体的程序。
通过端口可以锁定计算机上具体的程序,确保程序之间进行沟通
IP地址相当于小区地址,在小区内可以有许多住户(程序),而门牌号(端口)就是各个住户(程序)的联系地
(3)Linux上的端口
Linux系统是一个超大号小区,可以支持65535个端口,这6万多个端口分为3类进行使用:
• 公认端口:1~1023,通常用于一些系统内置或知名程序的预留使用,如SSH服务的22端口,HTTPS服务的443端口。非特殊需要,不要占用这个范围的端口
• 注册端口:1024~49151,通常可以随意使用,用于松散的绑定一些程序\服务
• 动态端口:49152~65535,通常不会固定绑定程序,而是当程序对外进行网络链接时,用于临时使用。
如图中,计算机A的微信连接计算机B的微信,A使用的50001即动态端口,临时找一个端口作为出口,计算机B的微信使用端口5678,即注册端口,长期绑定此端口等待别人连接
(4)查看端口占用
-
nmap
可以通过Linux命令去查看端口的占用情况
• 使用nmap命令,安装nmap:yum -y install nmap
语法:nmap 被查看的IP地址
可以看到,本机(127.0.0.1)上有5个端口现在被程序占用了。
其中:
• 22端口,一般是SSH服务使用,即FinalShell远程连接Linux所使用的端口 -
netstat命令
可以通过netstat命令,查看指定端口的占用情况
语法:netstat -anp | grep 端口号,安装netstat:yum -y install net-tools
如图,可以看到当前系统6000端口被程序(进程号7174)占用了
其中,0.0.0.0:6000,表示端口绑定在0.0.0.0这个IP地址上,表示允许外部访问
可以看到,当前系统12345端口,无人使用哦。
(八) 进程管理
***1、进程
程序运行在操作系统中,是被操作系统所管理的。
为管理运行的程序,每一个程序在运行的时候,便被操作系统注册为系统中的一个:进程
并会为每一个进程都分配一个独有的:进程ID(进程号)
2、查看指定进程
• 在FinalShell中,执行命令:tail,可以看到,此命令一直阻塞在那里
• 在FinalShell中,复制一个标签页,执行:ps -ef 找出tail这个程序的进程信息
• 问题:是否会发现,列出的信息太多,无法准确的找到或很麻烦怎么办?
我们可以使用管道符配合grep来进行过滤,如:
ps -ef | grep tail,即可准确的找到tail命令的信息
• 过滤不仅仅过滤名称,进程号,用户ID等等,都可以被grep过滤哦
• 如:ps -ef | grep 30001,过滤带有30001关键字的进程信息(一般指代过滤30001进程号)
3、关闭进程
在Windows系统中,可以通过任务管理器选择进程后,点击结束进程从而关闭它。
同样,在Linux中,可以通过kill命令关闭进程。
语法:
选项:-9,表示强制关闭进程。不使用此选项会向进程发送信号要求其关闭,但是否关闭看进程自身的处理机制。
(九)主机状态
主机状态