一、初识Linux
章节目标:对Linux有一个简单的入门
1.操作系统概述
操作系统作用:操作系统是用户和计算机硬件之间的桥梁,调度和管理计算机硬件进行工作。
2.Linux初识
Linux系统的组成:Linux系统内核和系统级应用程序
内核提供操作系统最核心的功能,比如各种调度功能;系统级应用程序就是自带的出厂程序。
可以去 https://www.kernel.org 下载Linux内核,内核完全开源。
由于内核完全开源,只要自己自行集成系统级应用程序,那么就创建了Linux发行版,其中最著名的Linux发行版就是Ubuntu(国外)和CentOS(国内)。
3.虚拟机介绍
虚拟机就是通过虚拟化技术虚拟出硬件并搭配操作系统组成的虚拟计算机。
4.VMWare WorkStation安装
下载地址:https://www.vmware.com/cn/products/workstation-pro.html
安装完成后记着去网络连接里验证是否有VMnet1和VMnet8的网络。(Tips:可以按Win+R,然后输入ncpa.cpl来打开网络连接)
5.在VMWare上安装Linux
CentOS7.6(最稳定)下载地址:Index of /7.6.1810/isos/x86_64
下载里面的DVDiso,或者选择第二个种子文件再用迅雷下载iso。
5.1 安装步骤
- VMware中点击“创建新的虚拟机”
- 选择“典型”
- 浏览选择下载好的CentOS镜像
- 输入用户名和密码
- 更改虚拟机名称和安装位置
- 磁盘大小更改为40G,选择将虚拟硬盘拆分成多个文件
- 点击自定义硬件,内存改为4G,处理器数量改为2,内核数量改为2,点“关闭”,点“完成”
- 耐心等待后登录创建的账户
- 鼠标移动到关机键位置,选择锁屏按钮左边的设置按钮,点击Region&Language栏,语言选择为汉语并且格式选择为中国,点击“restart”和“log out”
- 重新登录账号后,再次打开设置,点击Region&Language栏,输入源添加一个汉语。然后点击“登录屏幕”,语言和格式按照上一条设置。
- 设置中点击“详细信息”、“日期和时间”、“解锁”,输入密码后关闭自动设置日期和时间,将时区更改为上海,再打开自动设置日期和时间和自动设置时区,最后“锁定”
后面的修改语言和时区是自己添加的,视频中并没有介绍修改方法。
此外,CentOS推荐直接安装操作系统,不要选择稍后安装,因为自行安装CentOS默认是不带图形界面的,此点与Ubuntu不同。所以,CentOS直接安装就好,Ubuntu推荐稍后安装。
6.Mac系统Linux环境
Mac中需要下载VMware Fusion Pro,下载地址: https://www.vmware.com/cn/products/fusion.html
在Fusion中点击左上角的加号、“新建”,然后将已经下载好的iso镜像拖动到方框中。使用快捷安装,输入账号和密码,点击“继续”;点击“自定设置”修改存储位置,点击“存储”,然后设置处理器内核等硬件参数;点击播放按钮,点击“好”就看到了虚拟机。
7.远程连接Linux操作系统
远程连接Linux使用的是FinalShell软件(还有XShell和MobaXTerm),这样就可以虚拟机打开后放在后台,然后用FinalShell来远程连接操作Linux。
7.1 FinalShell下载地址
Windows: http://www.hostbuf.com/downloads/finalshell_install.exe
Mac: http://www.hostbuf.com/downloads/finalshell_install.pkg ,下载完成后双击打开安装。
7.2 使用FinalShell远程连接
- 在虚拟机桌面右键打开终端,输入 ifconfig 命令,找到ens33的ip地址
- 打开FinalShell,点击左上角的文件夹,再点击左上角的添加icon,点击SSH连接
- 名称随便输入,主机输入查看到的ip地址,端口是默认的22,最后输入用户名和密码,点击确定
- 双击新创建的连接,点击“接受并保存”密钥,此时就可以使用了
如果发现连接不上了,可能是ip发生了改变,所以需要重新查看ip地址,并在FinalShell中重新设置连接的ip地址。
8.拓展:WSL
用于Windows系统之上的Linux子系统
8.1 打开方法
- 右键Windows图表,点击“应用和功能”
- 点击右边的“程序和功能”
- 点击左边的“启用或关闭Windows功能”
- 勾选“适用于Linux的Windows子系统”,点击“确定”,点击“立即重新启动”
- 打开微软商店,搜索Ubuntu,点击没有版本的那个Ubuntu获取
- 下载Windows Terminal,点击Terminal里的加号,选择刚安装的Ubuntu即可远程连接
9.扩展:虚拟机快照
通过快照将当前虚拟机的状态保存下来,在以后可以通过快照恢复虚拟机到保存的状态。
9.1 在VMware Workstation中制作并还原快照
- 右键虚拟机,点击“快照”→“拍摄快照”
- 填写名称和描述,“拍摄快照”
- 还原快照时点击快照管理器中的快照,然后点击“转到”
9.2 在VMware Fusion中制作并还原快照
- 点击快照按钮,右键当前状态,“拍摄快照”
- 输入名称和描述,“拍摄”
- 恢复时右键快照,“恢复快照”
二、Linux基础命令
1.Linux的目录结构
Linux没有Windows的盘符的概念,只有一个根目录/,所有文件都在它下面。
在Linux中,路径之间的层级关系用“/”来表示,但是在Windows中是用“\”来表示。
2.Linux命令入门
2.1 Linux命令基础
在Linux中命令有通用格式:command [-options] [parameter],-options就是一些选项,控制命令行为细节,parameter用于命令的指向目标。
比如:ls -l /home/itheima 命令中,ls是命令本身,意思是以列表形式显示指定目录内的内容
cp -r test1 test2 命令中,cp是命令本身,意思是复制test1文件夹,成为test2
2.2 ls命令入门
ls命令用于列出目录下的内容,语法细节如下:
ls [-a -l -h] [Linux路径]
直接输入ls命令表示以平铺方式列出当前工作目录下的内容。
默认HOME目录是当前工作目录,在 /home/用户名 路径下。
2.3 ls命令的参数和选项
ls命令不指定参数就是列出当前工作目录的内容,指定参数就是列出指定路径的内容。
-a 选项:a表示all,列出全部文件包含隐藏文件。只有通过-a选项才能查看到隐藏文件和目录。
在Linux中,所有隐藏文件的开头都是“.”,表示隐藏文件或目录。
-l 选项:l表示list,以列表竖向排列的格式展示内容和更多信息。
选项是可以结合使用的,比如-a选项和-l选项可以有三种组合方式:ls -l -a、ls -la、ls -al
选项和参数也可以组合使用,比如:ls -l -a /
-h 选项:h表示human-readable,以易于阅读的格式列出文件大小,如K、M、G(默认单位为B,即除以1024)。-h选项必须和-l选项一起使用。
3.目录切换相关命令(cd/pwd)
cd命令来自英文Change Directory,用于更改当前所在的工作目录,语法格式如下:
cd [Linux路径]
cd命令没有选项,只有参数,表示要切换到哪个目录。如果cd命令不加参数,表示回到用户的HOME目录。
pwd命令来自英文Print Work Directory,用于查看当前所在的工作目录。pwd命令无选项无参数,直接输入即可查看当前工作目录。
4.相对路径、绝对路径和特殊路径符
绝对路径是以根目录为起点,路径描述以“/”开头。相对路径以当前目录为起点,直接用名称即可。
4.1 特殊路径符
. 表示当前目录
.. 表示上一级目录,cd ../.. 可以返回上两级目录
~ 表示HOME目录
5.创建目录命令(mkdir)
mkdir命令来自英文Make Directory,用于创建新目录。
语法:mkdir [-p] Linux路径
参数为必填项,是要创建的文件夹的路径,相对路径还是绝对路径都可以。
-p选项:p表示parents,自动创建不存在的父目录,适用于创建连续多层级的目录。
6.文件操作命令part1(touch、cat、more)
6.1 touch
touch命令用于创建文件。
语法:touch Linux路径
touch命令无选项,参数必填,表示要创建的文件路径。
其实这里的Linux路径应该是文件名(包括后缀),例:touch test.txt 表示在当前目录下创建一个test.txt文件。
6.2 cat
cat命令用于查看文件内容。
语法:cat Linux路径
cat命令无选项,参数必填,表示要查看的文件路径。
其实这里的Linux路径也应该是文件名(包括后缀),例:cat test.txt 表示查看在当前目录下test.txt文件内容。
6.3 more
more命令也用于查看文件内容,在文件内容过多时支持翻页,而不同于cat命令将文件内容全部展示出来。
语法:more Linux路径
more命令无选项,参数必填,表示要查看的文件路径。
其实这里的文件路径也是指文件名(包括后缀),例:more /etc/services 表示查看在etc目录下的services文件内容,且支持翻页。翻页按空格键即可,按B回到上一页,按Q退出查看。
7.文件操作命令part2(cp、mv、rm)
7.1 cp
cp命令来自英文copy,用来复制文件或文件夹,语法格式如下:
cp [-r] 参数1 参数2
-r选项:r表示recursive(递归),用于复制文件夹时递归地将文件夹内的全部文件和文件夹复制下来,如果是复制文件夹必须带上-r选项,否则默认是复制文件。
参数1是Linux路径,即被复制的文件或文件夹;参数2也是Linux路径,表示要复制到的位置和文件或文件夹名称。
例:cp test1.txt test2.txt 表示将当前目录的test1.txt文件复制到当前目录下并更改名称为test2.txt。
7.2 mv
mv命令来自英文move,用来移动文件或文件夹,语法格式如下:
mv 参数1 参数2
参数1是Linux路径,表示被移动的文件或文件夹;参数2也是Linux路径,表示要移动到的位置和文件或文件夹名称。若参数2目标不存在,则进行改名,确保目标存在。
例:mv test.txt Desktop/ 表示将当前目录下的test.txt文件移动到当前目录的Desktop目录中。这里的斜杠带不带都可以。
7.3 rm
rm命令来自英文remove,用来删除文件或文件夹,语法格式如下:
rm [-r -f] 参数1 参数2 ... 参数N
-r选项:r表示recursive(递归),用于递归删除文件夹内的全部内容
-f选项:f表示force,用于强制删除文件或文件夹而不弹出提示。但是普通用户删除并不会出现提示,只有root用户删除时才会出现提示,所以一般用不到该选项。
参数1……N表示要删除的文件或文件夹,中间用空格分隔即可。如果删除的多个参数中有未找到的文件或文件夹,会自动略过它并提示。
7.3.1 通配符
rm命令支持通配符*,用于模糊匹配。如 rm -r test*
符号*表示通配符,表示任意内容(包含空)。比如 test* 表示所有以test开头的内容,*test* 表示任何包含了test的内容。
8.查找命令(which、find)
8.1 which
Linux命令的本体就是可执行程序,通过which命令可以查看每个命令的存放位置,语法如下:
which 要查找的命令
例:which cd
8.2 find
find命令用来通过文件名搜索指定文件,语法如下:
按照文件名查找:find 起始路径 -name "被查找文件名"
按照文件大小查找:find 起始路径 -size +/- n[kMG]
全盘搜索需要root权限。
在根据文件名查找时也可以用通配符。
按照文件大小查找中,+和-分别表示大于和小于,n表示要查找的大小,k、M和G表示大小单位(kB、MB、GB)。
例:find / -size +100M 表示查找大于100MB的文件。
9.grep、wc和管道符
9.1 grep
grep命令用来从文件中通过关键字过滤出指定行,语法如下:
grep [-n] 关键字 文件路径
-n选项:n表示number,在结果中显示匹配的行的行号
关键字建议用双引号包围。文件路径可作为内容输入端口。
9.2 wc
wc命令来自英文“word count”,用来统计文件的行数、单词数量等,语法如下:
wc [-c -m -l -w] 文件路径
-c选项:统计bytes数量;
-m选项:统计字符数量;
-l选项:l表示line,统计行数;
-w选项:w表示words,统计单词数量。
文件路径是被统计的文件,可以作为内容输入端口。
如果不加参数,按顺序显示的数据分别是:行数、单词数、字节数。
9.3 管道符
用“|”表示,将管道符左边命令的结果,作为右边命令的输入。
例:cat itheima.txt | grep itheima
10.echo、tail和重定向符
10.1 echo
echo命令用来在命令行输出指定的内容,可以理解为编程语言中的print,语法如下:
echo 输出的内容
例:echo "Hello Linux!"
10.1.1 反引号`
反引号内的内容会被当做命令执行。
比如echo pwd会直接输出“pwd”,但是 echo `pwd ` 命令会输出pwd命令的执行结果。
10.2 重定向符
>:将左侧命令的结果,覆盖写入到符号右侧的指定文件中;
>>:将左侧命令的结果,追加写入到符号右侧的指定文件中;
例:echo "Hello Linux" >> itheima.txt
10.3 tail命令
tail命令用于查看文件尾部内容,跟踪文件的最新更改,语法如下:
tail [-f -num] Linux路径 (注意-num的num是指定的数字,如-10)
-f选项:f表示follow,用于持续跟踪
-num选项:查看尾部num行,默认为10行。(注意num是自己指定的数字)
11.vi编辑器
vim是vi的加强版本,兼容vi所有指令,不仅可以编辑文本还可以编辑shell程序。
11.2 三种工作模式
11.2.1 命令模式
命令模式是核心模式。在命令模式中,所有按键都理解为命令,然后执行不同的功能。语法如下:
vim 文件路径
如果文件存在则打开文件,不存在则创建。
快捷键i:在光标当前位置进入输入模式;
快捷键a:在光标当前位置之后进入输入模式;
快捷键I:在当前行开头进入输入模式;
快捷键A:在当前行结尾进入输入模式;
快捷键o:在光标下一行进入输入模式;
快捷键O:在光标上一行进入输入模式;
快捷键Esc:回到命令模式
11.2.2 输入模式
对文本进行编辑
11.2.3 底线命令模式
以“:”开始,用于文件保存、退出
三、Linux用户和权限
1.认知root用户
root用户为超级管理员,拥有所有的权限。普通用户一般只在HOME目录内有所有的权限,在HOME目录外只有只读和执行权限,没有修改权限。
1.1 su和exit命令
su命令来自英文switch user,用于切换用户,语法如下:
su [-] [用户名]
-符号:可选,表示切换用户后是否加载环境变量(推荐带上)
用户名可选,表示要切换到的用户,若不带则切换到root用户。
切换用户后,exit命令退回上一个用户。
1.2 sudo命令
由于不建议长期使用root用户,所以用sudo命令来为普通命令授权root用户权限,语法:
sudo 其他命令
需要先为普通用户配置sudo认证。
1.2.1 为普通用户配置sudo认证
切换到root用户,输入visudo命令,在文件末尾添加“itheima ALL=(ALL) NOPASSWD:ALL",然后输入“:wq”保存文件。切换回普通用户后,所有sudo命令均不输入密码执行。
2.用户、用户组管理
在Linux系统中可以配置多个用户、配置多个用户组、用户可以加入多个用户组。在Linux中有针对用户的权限控制和针对用户组的权限控制。
2.1 用户组管理
以下命令需root用户执行。
创建用户组:groupadd 用户组名
删除用户组:groupdel 用户组名
2.2 用户管理
以下命令需root用户执行。
2.2.1 创建用户
语法:useradd [-g -d] 用户名
-g选项:g表示group,指定已经存在的用户组。如果不指定,则默认创建一个与用户同名的用户组。但若是已经存在同名用户组,则必须用-g选项指定一个新的用户组。
-d选项:d表示directory,指定用户的HOME路径。如果不指定,HOME默认在 /home/用户名 路径。
例:useradd test2 -g itcast -d /home/test222
2.2.2 删除用户
语法:userdel [-r] 用户名
-r选项:r表示remove,删除用户的HOME目录。如果不指定,则保留用户的HOME目录。
2.2.3 查看用户所属组
语法:id [用户名]
用户名参数:要查看的用户名。不指定则查看自身。
2.2.4 修改用户所属组
语法:usermod -aG 用户组 用户名
aG表示append Group,将指定用户加入指定用户组中。
2.2.5 getent命令
查看有哪些用户的语法:getent passwd
查看到的7类信息分别是:用户名:密码(x):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)
查看有哪些用户组的语法:getent group
查看到的3类信息分别是:组名称:组认证(x):组ID
3.查看权限控制
序号1的权限有10个槽位。第一个槽位中“-”表示文件、“d”表示文件夹、“l”表示软链接;第二、三、四个槽位分别是用户权限的r、w和x;第五、六、七个槽位分别是用户组的r、w和x;第八、九、十个槽位分别是其它用户的r、w和x。比如drwxr-xr-x表示一个文件夹,所属用户有rwx权限、所属用户组有r和x权限、其它用户有r和x权限。
r表示读权限,可以查看文件或文件夹的内容;
w表示写权限,可以修改文件或在文件夹内创建、删除和改名;
x表示执行权限,可以将文件作为程序执行,或cd进入该文件夹。
4.修改权限控制——chmod
用chmod命令修改文件、文件夹的权限信息。只有文件或文件夹的所属用户或root用户才有资格修改权限!语法如下:
chmod [-R] 权限 文件或文件夹
-R选项:R表示recursive,在修改文件夹权限时,对文件夹内部的全部内容应用相同操作。
例:chmod -R u=rwx,g=rx,o=x test,表示将test文件夹内部的所有文件修改权限。
权限可以用3位数字来代表,第一位表示用户权限、第二位表示用户组权限、第三位表示其它用户权限。r、w、x分别记为4、2、1(二进制),所以0代表无权限、7代表rwx权限。
所以上面的示例可以用 chmod -R 751 test 命令来代替。
5.修改权限控制——chown
用chown命令修改文件或文件夹的所属用户和用户组。只有root用户才有资格修改。语法如下:
chown [-R] [用户] [:] [用户组] 文件或文件夹
-R选项:R表示recursive,对文件夹内所有文件也应用相同操作;
用户选项:修改所属用户;
用户组选项:修改所属用户组;
:选项:分隔用户和用户组;
例:chown -R root:itheima test
四、Linux实用操作
1.各类小技巧(快捷键)
1.1 ctrl+C强制停止
适用于程序运行时想要强制停止、命令输入错误时重新输入。
1.2 ctrl+D退出或登出
适用于退出账户登录、退出某些程序(如python)的专属页面(不能用于退出vi和vim)。
1.3 历史命令搜索
输入 history 命令,可查看历史输入过的命令。它可以结合管道符和grep命令使用,比如 history | grep ch 命令可以过滤出带有ch的历史命令。
通过 !+命令前缀 可以自动执行上一次匹配前缀的命令。
可以通过 快捷键ctrl+r 输入内容去匹配历史命令,如果匹配结果刚好是需要的,那么按回车键即可运行该命令,按键盘左右键即可得到该命令而不执行。
1.4 光标移动快捷键
ctrl+a:跳到命令开头
ctrl+e:跳到命令结尾
ctrl+键盘左键:向左跳一个单词
ctrl+键盘右键:向右跳一个单词
1.5 清屏
ctrl+l快捷键 或 clear 命令。
2.软件安装
2.1 yum命令
yum等同于Linux的应用商店,是RPM包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题,语法如下:
yum [-y] [install | remove | search] 软件名称
-y选项:y表示yes,自动确认,无需手动确认安装或卸载过程。
install:安装;remove:写在;search:搜索
yum命令需要root权限,需要联网。
2.2 apt命令(扩展)
CentOS使用的是yum管理器,Ubuntu使用的是apt管理器,所以在Ubuntu环境中只能使用apt命令安装软件,语法如下:
apt [-y] [install | remove | search] 软件名称
用法与yum命令完全一致。
3.systemctl
在Linux中很多软件均支持使用systemctl命令来控制启动、停止和开机自启,这些能够被systemctl命令控制的软件被称为服务,语法如下:
systemctl start | stop | status | enable | disable 服务名
系统内置的服务有NetworkManager(主网络服务)、network(副网络服务)、firewalld(防火墙服务)、sshd、ssh服务(远程)。
yum安装ntp和httpd后,systemctl命令都可以对服务ntpd和httpd控制。但是有许多软件安装后并没有自动集成到systemctl中,此时我们可以手动添加。
4.软链接
软链接可以将文件、文件夹链接到其它位置,可以理解为快捷方式。语法如下:
ln -s 参数1 参数2
-s选项:创建软链接
参数1:被链接的文件或文件夹
参数2:要链接去的目的地
例:ln -s /etc/yum.conf ~/yum.conf
5.日期、时区
5.1 date命令
用来查看系统时间,语法如下:
date [-d] [+格式化字符串]
-d选项:按照给定的字符串显示日期,一般用于日期计算
5.1.1 格式化字符串
特定的字符串标记,控制显示的日期格式。
按照2022-01-01 10:00:00的格式显示日期:date "+%Y-%m-%d %H:%M:%S" (注意加号和双引号)
5.1.2 -d选项
例:date -d "+1 day" +%Y%m%d 命令用来显示后一天的日期;date -d "-1 day" +%Y%m%d 命令用来显示前一天的日期。也就是说,+表示未来,-表示过去。
其中支持的时间标记包括:
year(年)、month(月)、day(日)、hour(时)、minute(分)、second(秒)。
5.2 修改Linux时区
系统默认时区非中国东八区。使用root权限,执行以下命令,修改时区为东八区:
# 删除系统自带的localtime
rm -f /etc/localtime
# 重新软链接localtime
sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
5.3 ntp程序
通过ntp程序联网自动校准系统时间。首先执行 yum -y install ntp 命令安装ntp,然后执行 systemctl start ntpd命令启动ntpd服务,再执行 systemctl enable ntpd 命令设置开机自启。
也可以安装ntp后手动校准时间(root权限下):ntpdate -u ntp.aliyun.com
6.IP地址、主机名
6.1 IP和主机名
6.1.1 IP地址
每一台联网的电脑专有的地址。可以通过ifconfig命令查看本机ip地址(若没有ifconfig命令就通过yum -y install net-tools 命令安装)。主网卡是ens33。
6.1.2 特殊IP地址
127.0.0.1指代本机。0.0.0.0可以指代本机,也可以在端口绑定中确定绑定关系,也可以表示所有IP。
6.1.3 主机名
除IP地址外的主机的名字。Linux中@后边的名字就是主机名,也可以通过hostname命令看到。
hostnamectl set-hostname 主机名 命令可以用来修改主机名。
6.1.4 域名地址
IP地址太难记,用字符串来代替IP地址,这个就是域名。
也就是,先查看本地是否有记录,如果没有再去访问DNS服务器询问IP地址。
6.1.5 配置主机名映射
通过主机名直接找到对应IP。修改hosts文件时,前面是IP地址,后面是主机名,如:192.168.0.1 centos。
6.2 虚拟机配置固定IP
默认情况下,虚拟机的Linux操作系统IP地址是通过DHCP服务获取的,动态获取IP每次重启设备都会获取一次,可能导致IP变化频繁。
6.2.1 VMware Workstation配置固定IP
- 点击虚拟机任务栏“编辑”→“虚拟网络编辑器”
- 找到VMnet8,修改子网IP为192.168.88.0,子网掩码为255.255.255.0。
- 点击“NAT设置”,网关设置为192.168.88.2
- 执行: systemctl restart network重启网卡,执行ifconfig即可看到ip地址固定为192.168.88.130了
6.2.2 VMware Fusion中配置固定IP
- 打开Mac终端,输入命令sudo - 切换到个人用户
- 先备份一下文件: cp /Library/Preferences/VMware\ Fusion/networking /Library/Preferences/VMwareFusion/networking.bakcup
- 备份文件: cp /Library/Preferences/VMware\ Fusion/vmnet8/nat.conf /Library/Preferences/VMware\Fusion/vmnet8/nat.conf.backup
- 启动VMware Fusion,进入虚拟机,按照6.2.1的方法修改即可。
7.网络传输
7.1 下载和网络请求
7.1.1 ping命令
检查指定的网络服务器是否是可连通状态。语法如下:
ping [-c num] ip或主机名
-c选项:c表示count,指定检查的次数,不使用-c选项则无限制检查。
ip或主机名:被检查的服务器的ip地址或主机名地址。
例:ping -c 3 baidu.com
7.1.2 wget命令
wget是非交互式的文件下载器,可以在命令行内下载网络文件。语法如下:
wget [-b] url
-b选项:b表示background,后台下载,将日志写入到当前工作目录的wget-log文件中
url:下载链接
例:在后台下载apache-hadoop 3.3.0:wget -b http:/larchive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
通过tail命令可以监控后台下载进度:tail -f wget-log
7.1.3 curl命令
curl可以发送http网络请求,可用于下载文件、获取信息等。语法如下:
curl [-O] url
-O选项:用于下载文件,当url是下载链接时,可以使用此选项保存文件。
url参数:要发起请求的网络地址
例:curl cip.cc
7.2 端口
端口是设备与外界通讯交流的出入口,分为物理端口和虚拟端口。物理端口又被称为接口,是可见的端口,如USB等;虚拟端口是计算机内部的端口,不可见,是操作系统与外部交互用的。
通过端口可以锁定计算机上具体的程序,确保程序之间的通信。IP地址相当于小区地址,端口相当于门牌号。
Linux可以支持65535个端口,并分为三类端口:
- 公认端口:1~1023,用于系统内置或知名程序预留使用,如HTTPS服务的443端口;
- 注册端口:1024~49151,随意使用,松散绑定一些程序或服务;(服务端常用)
- 动态端口:49152~65535,不会固定绑定程序,当程序对外进行网络连接时临时使用。(客户端常用)
7.2.1 查看端口占用
使用nmap命令查看IP地址的占用情况。
安装nmap命令:yum -y install nmap
nmap语法:nmap 被查看的IP地址
例:nmap 127.0.0.1 查看自己端口占用情况。
使用netstat命令查看指定端口的占用情况。
安装netstat:yum -y install net-tools
netstat语法:netstat -anp | grep 端口号
例:netstat -anp | grep 6000
8.进程管理
每一个运行的程序被操作系统注册为一个进程,且有一个唯一的进程号。
8.1 查看进程
通过ps命令查看。语法如下:
ps [-e -f]
-e选项:e表示everything,显示出全部的进程
-f选项:f表示format,以完全格式化的形式展示信息。
一般用法就是ps -ef 列出全部进程信息。查看到的UID表示进程所属的用户ID、PID表示进程的进程号、PPID表示进程的父ID(启动该进程的其它进程)、C表示该进程的CPU占用率、STIME表示进程的启动时间、TTY表示启动该进程的终端序号(?表示非终端启动)、TIME表示进程占用CPU的时间、CMD表示进程对应的名称或启动路径或启动命令
8.2 查看指定进程
ps命令配合管道符和grep来过滤出指定的进程。比如ps -ef | grep tail 命令可以过滤出tail命令的进程信息。不仅仅只能过滤名称,还能过滤进程号等所有ps命令列出的信息。
8.3 关闭进程
用kill命令关闭进程。语法如下:
kill [-9] 进程ID
-9选项:表示强制关闭进程,不使用此选项会向进程发送信号关闭该进程,是否关闭要看进程自身的处理机制。
9.主机状态
9.1 查看系统资源占用
通过 top 命令查看CPU、内存使用情况,默认每5s刷新一次。按q或ctrl+c退出。
查看到的内容分析如下:
top命令支持的选项如下:
top命令交互式选项如下(非-b选项的top命令):
其中P键和M键最常用。
9.2 磁盘信息监控
使用df命令查看硬盘的使用情况,语法如下:
df [-h]
-h选项:h表示human,以人类可读的方式显示数据
还可以使用iostat查看CPU、磁盘的相关信息,语法如下:
iostat [-x] [num1] [num2]
-x选项:显示更多信息
num1参数:数字,刷新间隔
num2参数:数字,刷新几次
通过-x选项查看到的信息解释:
9.3 网络状态监控
使用sar命令查看网络的相关统计,语法如下:
sar -n DEV num1 num2
-n选项:查看网络,DEV表示查看网络接口
num1参数:数字,刷新间隔
num2参数:数字,查看次数
查看到的信息解读如下:
其中rxKB/S和txKB/S最常看。
10.环境变量
环境变量就是操作系统在运行的时候记录的一些关键性信息,用以辅助系统运行,是一种key-value结构。
查看环境变量可以用 env 命令。
在Linux中无论在哪个目录都能执行命令,依靠环境变量中的PATH项目值。
10.1 $符号
$符号可以用来取变量的值。
比如:echo $PATH 或 echo ${PATH}ABC ,其中PATH是变量名
10.2 自行设置环境变量
10.2.1 临时设置
语法:export 变量名 = 变量值
10.2.2 永久设置
针对当前用户生效:配置在当前用户的~/.bashrc文件中
针对所有用户生效:配置在系统的/etc/profile文件中
然后通过 source 配置文件 命令使其立刻生效。
10.3 自定义环境变量PATH
环境变量PATH记录了系统执行命令的搜索路径,这个搜索路径可以自行添加。
注意追加修改PATH的时候,用$PATH代替原有内容。如:export PATH=$PATH:/new
11.上传、下载
可以通过FinalShell完成文件的上传和下载。浏览文件系统,找到合适的文件,右键点击下载即可下载到Windows本地;Windows文件拖入到指定目录,即可上传到Linux中。
注意在FinalShell中看到的目录都是以远程连接登录的用户为基准,不是控制台的用户。
此外还可以通过rz和sz命令完成文件传输。
通过命令 yum -y install lrzsz 即可安装。
rz命令用来上传,直接输入 rz 即可(注意速度不如拖拽快);
sz命令用来下载,语法:sz 要下载的文件
12.压缩、解压
Linux中压缩格式多为tar、gzip、zip。注意:解压的时候同名内容会被覆盖掉。
12.1 tar命令
.tar是将文件归档到一起,并没有太多体积的减少,可以理解为简单的封装。.gz常见为.tar.gz,gzip格式的压缩文件,极大地压缩体积。
针对于这两种文件格式,tar命令都可以压缩和解压。语法如下:
tar [-c -v -x -f -z -C] 参数1 参数2 ... 参数N
-c选项:c表示create,创建压缩文件,用于压缩模式;
-v选项:v表示verbose(详细),显示压缩、解压过程,直观看到进度;
-x选项:解压模式;
-f选项:f表示file,要创建的文件或者要解压的文件。该选项必须在所有选项的末尾。
-z选项:z表示gzip,表示gzip压缩模式,不使用-z就表示普通的tarball格式。一般放在第一个选项。
-C选项:选择解压位置,用于解压模式。最好单独使用。
tar的常用压缩组合有:①tar -cvf test.tar 1.txt 2.txt 3.txt,该命令表示将三个txt文件压缩到test.tar文件中;②tar -zcvf test.tar.gz 1.txt 2.txt 3.txt,该命令表示将三个txt文件用gzip模式压缩到test.tar.gz文件中。
tar的常用解压组合有:①tar -xvf test.tar,该命令将test.tar文件直接解压到当前目录;②tar -xvf test.tar -C /home/itheima,该命令将test.tar文件解压到指定的目录下;③tar -zxvf test.tar.gz -C /home/itheima,该命令将test.tar.gz文件用gzip算法解压到指定目录下。
12.2 zip命令压缩文件
可以使用zip命令将文件压缩成zip格式。语法如下:
zip [-r] 参数1 参数2 ... 参数N
-r选项:r表示recursive,用于文件夹。
例:zip -r test.zip test itheima a.txt,test和itheima是文件夹。
12.3 unzip命令解压文件
使用unzip命令来解压zip文件。语法如下:
unzip [-d] 参数
-d选项:d表示directory,表示要解压到的位置。同tar命令的-C选项。
参数:被解压的zip文件
例:unzip test.zip -d /home/itheima