Linux学习笔记(一)Centos
本博客使用的是Centos7版本
学前提醒
- 不要死记Linux命令,先敲一遍,以后在学习和工作中练习就足够了,需要的时候就查命令手册
- Centos在2024年已停止维护,这篇博客主要介绍Centos的基础命令(Linux发行版基础指令基本一样),不涉及其进阶操作。建议读者可以学一下ubuntu、Debian等其他常用的Linux发行版
初识Linux
-
什么是Linux?即服务器操作系统的一种。操作系统就是第一层软件,作为用户和计算机硬件之间的桥梁,调度和管理计算机硬件进行工作。Linux是前后端开发人员、运维测试人员、大数据分析人员等必学的内容。
-
Linux的组成:由Linux系统内核+系统级应用程序(简单理解成系统自带的软件,比如文件管理,图片查看等)组成,其他的软件都叫第三方应用程序。这其中最重要的就是内核。读者可以点开此链接Linux内核官网 下载其内核源码。
- Linux发行版:任何人都可以获得并修改内核,并且自行集成系统级程序,提供了内核+系统级程序的完整封装,称之为Linux发行版。常见的ubuntu和redhat等就是Linux的发行版。所以也不要纠结学哪一个,学会了一个,其他的都会触类旁通了。
虚拟机
虚拟机就是借助虚拟化技术,我们可以在系统中,通过软件模拟计算机硬件,并给虚拟硬件安装真实的操作系统。
学习Linux可以选择使用虚拟软件,比如VMware WorkStation,或者是买一个云服务器。
Windows网络连接(网络适配器)查看方法:win+R
输入ncpa.cpl
查看是否有VMnet1和VMnet8的网卡,有了虚拟机才能连上网。
扩展:WSL
就是Windows Subsystem for Linux,没错,Windows系统可以得到Linux系统环境,不过目前的主流还是用虚拟软件。
方法:(Windows 11)在开始中搜索-“启用或者关闭Windows功能”-“适用于Linux的Windows子系统 ”打勾,“虚拟机平台”打勾并重启,然后在应用商店里面搜索对应的Linux发行版下载即可。
Linux的安装、配置和远程连接
- 虚拟机软件安装:由于vmware被收购,对于个人用户完全免费,可以去官网上下载,参考教程一步步教你掌握VMware Workstation 17 Pro,成为虚拟化专家!-哔哩哔哩
- 查看主机的网络适配器是否正常配置:按win + r 输入ncpa.cpl回车 确保里面有VMnet1和VMnet8
- 在VMware中安装Centos系统
考虑到国内访问Centos安装包源比较困难,这里使用清华的镜像源网站,且本次使用的是Centos7.6版本,读者需要安装其他版本的都可以在清华大学镜像源网站下面找。Centos下载链接:清华大学开源软件镜像站
下载好之后打开VMWare软件,点击左上角“文件”-“新建虚拟机”
选择“典型(推荐)”
选择你下载的ISO文件的路径
设置用户名和密码
设置虚拟机的位置
设置虚拟机的内存
自定义硬件 建议内核和内存不要分配太多
后面就是自动安装了,大概需要10-20分钟左右。注意不要反复点击界面,否则可能会卡死需要重新安装。
- 登录虚拟机
用你之前设置的用户登录虚拟机
出现“Getting Started”界面,直接退出即可。出现此界面说明你已经安装好Centos了\(^o^)/~ ,不过这可不是结束的开始,而是开始的结束。
- 远程登录虚拟机
Linux上面有图形化界面(在界面中右键-“open terminal”,但是不推荐。在开发中使用命令行的效率比图形化界面更好.
但是VMware中的Linux命令行页面不方便,建议使用第三方软件远程连接到Linux上(生产环境中也是远程开发),推荐软件有Xshell和finalshell。我这里使用Xshell,finalshell同理
Xshell 下载官网 建议使用“家庭和学校用户的免费许可证”下的“免费授权界面”下载Xshell和XFTP(用于传输文件),我这里下载的是7版本
打开Xshell后点击右上角的“文件”-“新建”。
此界面重要的填写主机IP。在Centos界面中右键-“open terminal” ,命令行输入ifconfig
回车
图中方框部分就是此虚拟机的IP,
按照你自己查找的IP将其填写在主机(H)的框中即可。
会弹出如下的警告界面,点击“接收并保存”
选择你登录的用户名,建议使用一般用户而不是root用户。我这里演示用就用root用户了。出现如下图表示登录成功
但是:Linux虚拟机如果重启,有可能发生IP改变,如果IP改变需要在XShell中修改连接的IP地址。以下讲解如何固定IP地址不变。
Linux固定IP
可以在安装Centos的时候配置网络,参考链接如下day02-Docker - 飞书云文档
在VMware软件中左上角点击“编辑”-“虚拟网络编辑器”,再点击“更改设置”,点击vmnet8并点击NAT设置
按照子网设置网关IP,比如子网IP是192.188.190.0。那么网关IP就设置为192.188.190.xxx。其中xxx在0-255之间,这里建议就用2代替xxx,IP
记住以上红色方框中的内容
然后用Xshell远程登录(使用root用户登录),在命令行输入vim /etc/sysconfig/network-scripts/ifcfg-ens33
然后按i
键后输入以下内容,根据自己的实际情况改。那个``IPADDR=“建议设置成你之前ifconfig查询的IP”`
再点击esc键,输入:wq
回车就保存并退出了
在命令行中输入并执行systemctl restart network
重启网卡,执行ifconfig
即可看到ip地址固定为你设置的IP了。
扩展:用vscode远程登录Linux
如果涉及到Linux编程而又不想只用vim,可以考虑使用vscode
- 下载vscode和插件 Visual Studio Code - Code Editing. Redefined
然后按照图下载对应的插件
安装好之后点击左下角矩形中的按钮,开启远程登录
点击“连接到主机”
这里点击“配置SSH主机”
点击路径最后为\config的
注意如果你是第一次使用vscode 大概率是空的 按照以下格式填写
1 | Host 你的LinuxIP |
示例
1 | Host 200.200.200.200 |
配置完后再次远程登录,点击你所设置的IP(见图001_Linux安装_25
)
这样就远程登录成功了(^-^)V。
如果你想要打开某一文件夹进行编程,按照图片先点击”打开文件夹“然后选择即可。
扩展:虚拟机快照
在学习阶段我们无法避免的可能损坏Linux操作系统。如果损坏的话,重新安装一个Linux操作系统就会十分麻烦。,而vmware支持给Linux制作快照,简单来说就是“存档”,万一损坏了可以“回档”。
留下快照:右键虚拟机-点击“快照”-点击”拍摄快照“
恢复快照:同样右键-快照-快照管理器,点击对应的快照并点击“转到”即可。
小提醒:建议在关机之后留下快照,开机情况下会比较卡
此LloydEduCentos仅作演示安装用,后续Linux学习使用的是hspEdu01的虚拟机,读者无需担心,不影响后续学习Linux
Linux基础
学习Linux需要掌握命令来操作系统,图形化页面很少使用。图形化界面易于理解,但是命令行效率更高。
那么在哪里敲命令行呢?VMware里面可以,但是不方便。建议使用Xshell或者是FinalShell软件,这里我用的是Xshell。
Linux目录结构
一切皆文件:指的是Linux会将一切对象映射成文件。Linux中最重要的就是目录,它不像Windows有CDE盘,只有一个根目录。在生产环境中是很少使用图形化界面的,基本只用控制台。对于其他目录要了解其英文单词和实际用途。
图片演示
/
,根目录是最顶级的目录了,也就是说~
是/
的子目录- Linux有且只有一个顶级目录:
/
- 路径描述的层次关系同样适用
/
来表示:比如/usr/bin/hello.py,第一个/
是根目录,其他的是层级关系。
注意,Linux中所有的用户在登录的时候左侧显示的都是
~
,也就是自己的“根目录”,但其实是/
的子目录,其本质是/home/用户名或者是/root
Linux基础命令
最重要的部分,学Linux就是学习使用命令与计算机交互
命令:就是Linux程序,以字符的方式与计算机交流。💡其本质上都是可执行的二进制文件。
无论是什么命令,用于什么用途,在Linux中,命令有其通用的格式
command \[-options] [parameter]
- command:命令本身,比如touch\cat等
- -options:[可选,非必填]命令的一些选项,可以通过选项控制命令的行为细节,比如rm -rf 其中-r -f为选项
- parameter:[可选,非必填]命令的参数,多数用于命令的指向目标等. 语法中的[],表示可选的意思,比如touch file01.txt 后面的
file01.txt
就是命令的参数
示例:
1 | ls -l /home/hello |
ls是命令,-l是选项,/home/hello是参数,意思是以列表的形式,展示/home/hello 目录的内容。
目录切换命令
概念阐述:路径
相对路径与绝对路径
-
相对路径,非
/
开头的称之为相对路径:相对路径表示以当前目录
作为起点,去描述路径,如test/a.txt
,表示当前工作目录内的test文件夹内的a.txt文件 -
绝对路径,以
/
开头的称之为绝对路径:绝对路径从根
开始描述路径,比如/home/jerry/download/test.txt
指的就是jerry用户名下download文件内的test.txt文件。
特殊路径符
.
,表示当前,比如./a.txt,表示当前文件夹内的a.txt
文件..
,表示上级目录,比如../
表示上级目录,../../
表示上级的上级目录~
,表示用户的HOME目录,比如cd ~
,即可切回用户HOME目录
ls命令
功能:列出文件夹信息
语法:ls [-l -h -a] [Linux路径]
- Linux路径:被查看的文件夹的路径,可以是绝对路径也可以是相对路径。不提供参数表示查看当前工作目录
- -l,以列表(list)形式查看
- -h,必须配合-l使用(否则不展示文件大小),以更加人性化的方式显示文件大小
- -a,表示all的意思,即显示所有文件,包括隐藏文件(在Linux中以
.
开头的,均是隐藏的)
用的最多的一般是ls
与ls -lh
演示如下
语法中的选项是可以组合使用的,比如学习的-和-l可以组合应用,比如ls -la
绝对路径和相对路径作为参数,效果相同|这里演示-h不配合-l使用的效果
cd命令
change directory
注意:Linux登录的时候会将当前登录用户的HOME目录作为当前工作目录,所以ls
命令列出的是HOME目录的内容,不要错将~
当成根目录。HOME目录是指每个操作用户在Linux系统的个人账户目录,普通用户的HOME目录默认路径在:/home/用户
。而root用户的HOME目录,在:/root
功能:切换工作目录
语法:cd [linux路径]
参数:目标目录,要切换去的地方,不提供默认切换到当前登录用户HOME目录
pwd命令
print work directory
功能:展示当前所在的工作目录(绝对路径)
语法:pwd
文件(夹)操作命令
mkdir命令
make directory
功能:创建文件夹
语法:mkdir [-p] 参数
- 参数:被创建文件夹的路径
- 选项:-p,可选,表示创建前置路径,比如你输入
mkdir -p /usr/test/work
但是test文件夹没有创建,那么-p
会帮助创建一个test的文件夹,然后再创建work文件夹 - 此图第一个d表示这是一个文件夹,后面的与权限有关
touch命令
功能:创建文件,注意要添加后缀
语法:touch 参数
参数:被创建的文件路径
cat命令
功能:查看文件内容
语法:cat 参数
参数:被查看的文件路径
more命令
功能:查看文件,可以支持翻页查看
语法:more 参数
参数:被查看的文件路径
在查看过程中:按空格键翻页 q
退出查看 读者可以试试more /etc/services
etc(法语et cetera,表示以及其他内容)
cp命令
copy
功能:复制文件、文件夹
语法:cp [-r] 参数1 参数2
- 参数1,被复制的
- 参数2,要复制去的地方
- 选项:-r,可选,本意为递归(recursion),Linux中能递归的就是文件夹了,复制文件夹使用
示例:cp a.txt test/,复制当前目录a.txt到test文件夹内
mv命令
move
功能:移动文件、文件夹
语法:mv 参数1 参数2
- 参数1:被移动的
- 参数2:要移动去的地方,参数2如果不存在,则会进行改名
rm命令
remove
功能:删除文件、文件夹
语法:rm [-r -f] 参数1 ...参数N
- 参数:支持多个,每一个表示被删除的,空格进行分隔
- 选项:-r,删除文件夹使用
- 选项:-f,强制删除(force),不会给出确认提示,一般root用户会用到,rm命令很危险,小心使用,最好留下快照
通配符
符号*表示通配符,
即匹配任意内容(包含空),示例:
- test*,表示匹配任何以test开头的内容
- *test,表示匹配任何以test结尾的内容
- *test*,表示匹配任何包含test的内容
查找命令
which命令
功能:查看命令的程序本体文件路径
语法:which 参数
参数:被查看的命令 比如which cd
返回的是/usr/bin/cd
find命令
功能:搜索文件
语法1按文件名搜索:find 路径 -name 参数
- 路径,搜索的起始路径
- 参数,搜索的关键字,同理支持通配符
- 按文件大小查找命令:
find 起始路径 -size +|-n[KMG]
±表示大于和小于,n表示数字,KMG表示大小单位。如find / -size -10k
grep、wc和管道符
grep命令
功能:过滤关键字,就是搜索关键字,将关键字所在的行展示并标记为红色。
语法:grep [-n] 关键字 文件路径
- 选项-n,可选,表示在结果中显示匹配的行的行号。
- 参数,关键字,必填,表示过滤的关键字,带有空格或其它特殊符号,建议使用””将关键字包围起来
- 参数,文件路径,必填,表示要过滤内容的文件路径,可作为内容输入端口(就是|)
wc命令
功能:统计
语法:wc [-c -m -l -w] 文件路径
- 选项,-c,统计bytes数量
- 选项,-m,统计字符数量
- 选项,-l,统计行(line)数
- 选项,-w,统计单词(word)数量
- 参数,文件路径,被统计的文件,可作为内容输入端口
从左到右分别是行数、单词数、字符数、字节数.
管道符|
写法:|
功能:将符号左边的结果,作为符号右边的输入
示例:cat a.txt | grep itheima
,将cat a.txt的结果,作为grep命令的输入,用来过滤itheima
关键字
可以支持嵌套:cat a.txt | grep itheima | grep itcast
还比如ls -l /usr/bin | wc -l
表示展示bin文件夹内有多少个文件
echo、tail和重定向符
echo命令
功能:输出内容
语法:echo 参数
参数:被输出的内容 比如echo "hello world!"
输出内容就是hello world!
`反引号
功能:被两个反引号包围的内容,会作为命令执行
示例: echo `pwd`,会输出当前工作目录
重定向符
功能:将符号左边的结果,输出到右边指定的文件中去
>
,表示覆盖输出>>
,表示追加输出
tail命令
功能:查看文件尾部内容,就是跟踪文件的最新更改。
语法:tail [-f -num] 参数
- 参数:被查看的文件
- 选项:-f,持续跟踪文件修改。使用两个会话,一个负责修改,一个负责删除,效果会更加明显。
- num表示查看尾部多少行 示例
tail -f -10 test.txt
表示从后往前查看test.txt文件内容10行,
head命令
功能:查看文件头部内容
语法:head [-n] 参数
- 参数:被查看的文件
- 选项:-n,查看的行数,不写相当于cat命令
vi编辑器
vim(visual interface,就是文本编辑器)是vi的加强版本,兼容ⅵ的所有指令,不仅能编辑文本,而且还具有shell程序编辑的功能,可以不同颜色的字体来辨别语法的正确性,极大方便了程序的设计和编辑性。
vi\vim工作模式
- 命令模式(Command mode):所敲的按键编辑器都理解为命令,此时不能自由进行文本编辑
- 输入模式(Insert mode):编辑模式,可以对文件内容进行自由编辑
- 底线命令模式(Last line mode):以
:
开始,通常用于文件的保存和退出
示意图
语法:vim 文件路径
没有就会创建
模式 | 命令 | 描述 |
---|---|---|
命令模式(按键都是命令) | i | 在当前光标位置进入输入模式 |
命令模式 | a | 在当前光标位置之后进入输入模式 |
命令模式 | I | 在当前行的开头,进入输入模式 |
命令模式 | A | 在当前行的结尾,进入输入模式 |
命令模式 | o | 在当前光标下一行进入输入模式 |
命令模式 | O | 在当前光标上一行进入输入模式 |
输入模式(编辑模式) | esc | 任何情况下输入esc都能回到命令模式 |
命令模式 | 键盘上、键盘k | 向上移动光标(以行为单位) |
命令模式 | 键盘下、键盘j | 向下移动光标(以行为单位) |
命令模式 | 键盘左、键盆h | 向左移动光标 |
命令模式 | 键盘右、键盘1 | 向后移动光标 |
命令模式 | 0 | 移动光标到当前行的开头 |
命令模式 | $ | 移动光标到当前行的结尾 |
命令模式 | pageup(PgUp) | 向上翻页 |
命令模式 | pangdown(PgDn) | 向下翻页 |
命令模式 | / | 进入搜索模式 |
命令模式 | n | 向下继续搜索 |
命令模式 | N | 向上继续搜索 |
命令模式 | dd | 删除光标所在行的内容 |
命令模式 | ndd | n是数字,表示删除当前光标向下n行 |
命令模式 | yy | 复制当前行 |
命令模式 | nyy | n是数字,复制当前行和下面的n行 |
命令模式 | p | 粘贴复制的内容 |
命令模式 | u | 撤销修改 |
命令模式 | ctrl+r | 反向撤销修改 |
命令模式 | gg | 跳到首行 |
命令模式 | G | 跳到行尾 |
命令模式 | dG | 从当前行开始,向下全部删除 |
命令模式 | dgg | 从当前行开始,向上全部删除 |
命令模式 | d$ | 从当前光标开始,删除到本行的结尾 |
命令模式 | d0 | 从当前光标开始,删除到本行的开头 |
底线命令模式(涉及文件的退出与保存) | :wq | 保存并退出 |
底线命令模式 | :q | 仅退出 |
底线命令模式 | :q! | 强制退出 |
底线命令模式 | :w | 仅保存 |
底线命令模式 | :set nu | 显示行号 |
底线命令模式 | :set nonu | 取消显示行号 |
底线命令模式 | :set paste | 设置粘贴模式 |
帮助手册
如果想要对命令的其它选项进行查阅,可以通过如下方式
语法:命令 --help
示例:如图列出ls命令的帮助文档。就是不怎么好用ㅍ_ㅍ
如果要查看命令的详细手册,可以通过man 命令
查看(man <- manual)
一般下载的Centos默认是英文(不过我的设置成中文<(^-^)>).如果阅读吃力,可以通过重定向符:man ls > ls-man.txt,输出手册到文件然后通过翻译软件翻译内容查看
Linux用户与权限
Linux采用多用户的管理模式进行权限管理,而拥有最大权限的账户名为root;而普通用户的权限,一般在其HOME目录内是不受限的,出了HOME目录,一般普通用户仅有只读和执行权限,无修改权限。
切换用户命令:su [-] [用户名]
或者ctrl+d退回到上一个用户
为了避免长期使用root导致系统损坏,可以使用sudo
命令为普通的命令授权。
语法:sudo 其他命令
需要为普通用户配置sudo认证。
未认证的情况
sudo认证方法
-
切换到root用户,在命令行中输入
visudo
命令,打开/etc/sudoers -
文件最后(命令模式按G到文件末尾)添加
用户名 ALL=(ALL) NOPASSWD:ALL
最后退出并保存
用户管理
用户与用户组
不同的用户可以加入多个组中,用组来管理用户。
创建用户组:groupadd 用户组名
删除用户组: groupdel 用户组名
查看用户组:getend group
-
创建用户
useradd [-g-d] 用户名
:-g指定用户的组,不指定-g,会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g;-d指定用户HOME路径,不指定,HOME目录默认在:/home/用户名 -
删除用户
userdel [-r] 用户名
:-r,删除用户的HOME目录。不使用-r删除用户时,HOME目录保留 -
查看用户所属组
id [用户名]
:被查看的用户,如果不提供则查看自身 -
修改用户所属组
usermod -aG 用户组 用户名
: ,将指定用户加入指定用户组
可以看到jerry有两个组,一个是和自己同名的组,一个是之后创建并添加的组。
-
查看系统中的用户:
getent passwd
信息格式为:用户名:密码(X):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)可以使用
getent group
查看系统中有哪些组 -
查看系统所有变量:
env
.
权限信息
如图所示
序号1表示文件和文件夹的权限控制信息,序号2中的两个分别表示文件和文件夹所属的用户和用户组。
权限讲解如下图
r\w\x分别代表可读、可写(增删改等)、可执行(可以cd进入)。
chmod命令
语法:chmod [-R] 权限 参数
权限:比如755,表示:rwxr-x--x
示例chmod
序号 | 意思 |
---|---|
0 | 无任何权限,即– |
1 | 仅有x权限,即–x |
2 | 仅有w权限,即-w- |
3 | 有w和x权限,即-wx |
4 | 仅有r权限,即r– |
5 | 有r和x权限,即r-x |
6 | 有r和w权限,即rw- |
7 | 有全部权限,即rwx |
参数:被修改的文件和文件夹
-R:设置文件夹和其内容全部一样生效。
示例:chmod u=rwx,g=rx,o=x hello.txt
将文件的权限修改为rwxr-x--x
u表示user的权限,g表示组的权限,o表示其他(other)的权限
chown命令
此命令只适用于root用户使用
语法:chown [-R] [用户][:][用户组] 文件或文件夹
示例:chown jerry:emp hello.txt
将hello.txt所属的用户修改为jerry,用户组改为emp
Linux实用操作
快捷键技巧
ctrl+c
:强制停止命令运行,或者是退出当前命令的输入
ctrl+d
:退出账户,或者是某些页面
ctrl+l
:清屏
键盘上下键:查看历史命令,同样可以用history
,可以通过!命令前缀自动执行上一次匹配前缀的命令,比如!grep
ctrl+r
:输入内容匹配历史命令,是就回车;左右键得到此命令
快捷键 | 作用 |
---|---|
ctrl+c | 强制停止命令运行,或者是退出当前命令的输入 |
ctrl+d | 退出账户,或者是某些页面 |
ctrl+l | 清屏 |
键盘上下键 | 查看历史命令,同样可以用history ,可以通过!命令前缀自动执行上一次匹配前缀的命令,比如!grep |
ctrl+r | 输入内容匹配历史命令,是就回车;左右键得到此命令 |
ctrl+a | 跳到命令开头 |
ctrl+e | 跳到命令结尾 |
ctrl+左键 | 向左跳一个单词 |
ctrl+右键 | 向右跳一个单词 |
安装软件
有两种方式,一种是自行下载安装包,另一种是在系统的“应用商店”内下载安装。
yum.RPM包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题
在Centos中安装。
yum [install remove search] [-y] 软件名称
;install 安装;remove 卸载;search 搜索;-y,自动确认。常见的格式有.exe .pkg .rpm等。注意yum需要root权限且需要联网
由于Centos7在24年6月不再更新,需要自行配置yum源。方法请自行Google。
在Ubuntu系统使用“应用商店”——apt管理器。
apt [install remove search] [-y] 软件名称
;install 安装;remove 卸载;search 搜索;-y,自动确认。常见的格式有 .deb等。同样需要root权限且要联网。
系统命令
systemctl
功能:控制系统服务的启动关闭等,常用于防火墙等的开闭
语法:systemctl start | stop | restart | disable | enable | status 服务名
常见的服务有NetworkManager,主网络服务;network,副网络服务;firewalld,防火墙服务;sshd,ssh服务(远程登录Linux使用的就是这个服务)
start,启动|stop,停止|status,查看状态|disable,关闭开机自启|enable,开启开机自启|restart,重启
软链接
功能:创建文件、文件夹软链接(快捷方式)
语法:ln -s 参数1 参数2
;参数1:被链接的;参数2:要链接去的地方(快捷方式的名称和存放位置)
图中红色方框部分就是软链接.
日期及其计算
语法:date [-d] [+格式化字符串]
-
-d 按照给定的字符串显示日期,一般用于日期计算
-
格式化字符串:通过特定的字符串标记,来控制显示的日期格式
-
%Y 年%y 年份后两位数字 (00…99)
-
%m 月份 (01…12)
-
%d 日 (01…31)
-
%H 小时 (00…23)
-
%M 分钟 (00…59)
-
%S 秒 (00…60)
-
%s 自 1970-01-01 00:00:00 UTC 到现在的秒数
-
示例date "+%Y-%m-%d %H:%M:%S"
以2022-01–01 00:00:00 展示时间
计算 示例date -d "+1 [时间标记]" +%Y%m%d
如果时间标记是day ,则显示后一天的日期;如果时间标记是year,则表示后一年的日期。-
表示显示前一天;支持的时间标记为:year\month\day\hour\minutes\second.
修改:修改时区为中国时区.
原理:将系统自带的localtime文件删除,并将/usr/share/zoneinfo/Asia/Shanghai文件链接为localtime文件即可
1 | rm -f /etc/localtime |
同步:同步时间
安装:yum install -y ntp
启动管理:systemctl start | stop | restart | status | disable | enable ntpd
IP与主机
此部分内容与计算机网络密切相关,建议读者学习和掌握计算机网络相关知识,以下内容会更易理解。
ip地址
IPv4格式:a.b.c.d。abcd为0~255的数字,比如192.168.88.102
特殊IP:127.0.0.1,代指本机 ;0.0.0.0:可以表示本机也可以表示任意IP(看使用场景)
查看ip:ifconfig
ens33:
中的inet就是IP,lo:
本地回环的网卡 virbr0
:虚拟机专用的网卡
主机名
功能:Linux系统的名称
查看:hostname
设置:hostnamectl set-hostname 主机名
扩展:域名解析:简单来说就是根据输入的域名(比如百度)自动分析出服务器对应的IP地址,然后再访问,而不是先记住IP再访问。也就是说IP与域名之间存在映射关系.
配置VMware固定IP
原因:Linux操作系统,其IP地址是通过DHCP服务获取的。DHCP:动态获取IP地址,即每次重启设备后都会获取一次,可能导致IP地址频繁变更。这一部分在之前的“初识Linux”中的“Linux固定IP“中讲解过详细步骤,这里只是强调重点。
核心步骤如下:
修改文件:vim /etc/sysconfig/network-scripts/ifcfg-ens33
示例文件内容:
1 | TYPE="Ethernet" |
网络传输
ping命令
测试网络是否联通
语法:ping [-c num] 参数:-c,检查的次数,不使用-c选项,将无限次数持续检查;ip或主机名,被检查的服务器的ip地址或主机名地址 示例ping -c 3 www.baidu.com
wget命令
wgt是非交互式的文件下载器,可以在命令行内下载网络文件
语法:wget [-b] url
选项:-b,可选,后台下载,会将日志写入到当前工作目录的wget-log文件;urL,下载链接
示例:wget -b http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
监视后台下载进度 :tail -f wget-log
curl命令
curl可以发送http网络请求,可用于:下载文件、获取信息等,本质和浏览器访问网页是一样的
语法:curl [-O] ur1
选项:-O,用于下载文件,当url是下载链接时,可以使用此选项保存文件
参数:url,要发起请求的网络地址
示例:curl -O http://archive.apache.org/dist/hadoop/common/hadoop- 3.3.0/hadoop-3.3.0.tar.gz
端口
计算机程序之间的通讯,通过IP只能锁定计算机,而端口是更加精确的“地址”,能够锁定计算机上具体的程序,便于程序之间的沟通。
Linux的端口分类如下
- 公认端口:1~1023,通常用于一些系统内置或知名程序的预留使用,如SSH服务的22端口HTTPS服务的443端口,非特殊需要,不要占用这个范围的端口
- 注册端口:1024~49151,通常可以随意使用,用于松散的绑定一些程序\服务。
- 动态端口:49152~65535,通常不会固定绑定程序,而是当程序对外进行网络链接时,用于临时使用。
nmap命令
查看端口占用情况
由于Centos停止更新,镜像源波动大,其网络下载困难较大。
下载:yum -y install nmap
语法:nmap 被查看的IP地址
或者也可以使用netstat
命令查看端口的占用情况
语法:netstat -anp | grep 端口号
,需要实现安装netstat
进程
操作系统为管理运行的程序,每一个程序在运行的时候,就会被操作系统注册为系统中的一个进程,并且会为每一个进程都分配一个独有的进程ID(PID)。
ps命令
功能:查看进程信息
语法:ps -ef
,查看全部进程信息,可以搭配grep做过滤:ps -ef | grep xxx
示例如下图
从左到右分别是:UID是指进程所属的用户ID|PID:进程的进程号ID|PPID:进程的父ID(启动此进程的其它进程)|C:此进程的CPU占用率(百分比)|STIME:进程的启动时间|TTY:启动此进程的终端序号,如显示?,表示非终端启动|TIME :进程占用cpu的时间|CMD:进程的启动路径或者命令。
kill命令
语法:kill [-9] 进程ID
-9表示强制关闭进程,进程ID可以通过ps和管道符命令实现
主机状态
top命令
功能:查看主机运行状态。 相当于任务管理器
语法:top
,查看基础信息,按q
退出
示意图如下
解释:
- 第一行:top:命令名称,08:31:30:当前系统时间,up 38 min:启动了38分钟,1 users:1个用户登录,load average:1、5、15分钟负载
- 第二行:Tasks:244个进程,1 running:1个进程子在运行,243 sleeping:243个进程睡眠,0个停止进程,0个僵尸进程
- 第三行:%Cpu(s):CPU使用率,us:用户CPU使用率,sy:系统CPU使用率,ni:高优先级进程占用CPU时间百分比,id:空闲CPU率,wa:IO等待CPU占用率,hi:CPU硬件中断率,Si:CPU软件中断率,st:强制等待占用CPU率
- 第四、五行:Kib Mem:物理内存,total:总量,free:空闲,used:使用,buff/cache:buff和cache占用,KibSwap:虚拟内存(交换空间),total:总量,free:空闲,used:使用,buff/cache:buff和cache占用
表格解释
符号 | 含义 |
---|---|
PID | 进程ID |
USER | 进程所属用户 |
PR | 进程优先级,越小越高 |
NI | 负值表示高优先级,正表示低优先级 |
VIRT | 进程使用虚拟内存,单位KB |
RES | 进程使用物理内存,单位KB |
SHR | 进程使用共享内存,单位KB |
S | 进程状态(S休眠,R运行,Z僵死状态,N负数优先级,I空闲状态) |
%CPU | 进程占用CPU率 |
%MEM | 进程占用内存率 |
TIME+ | 进程使用CPU时间统计,单位10毫秒 |
COMMAND | 进程的命令或者名称或程序文件路径 |
可用选项
选项 | 功能 |
---|---|
-p | 只显示某个进程的信息 |
-d | 设置刷新时间,默认是5s |
-c | 显示产生进程的完整命令,默认是进程名 |
-n | 指定刷新次数,能如top -n 3,刷新输出3次后退出 |
-b | 以非交互非全屏模式运行,以批次的方式执行top,一般配合-n指定输出几次统计信息,将输出重定向到指定文件,比如top -b -n 3 > /tmp/top.tmp |
-i | 不显示任何闲置(idle)或无用(zombie)的进程 |
-u | 查找特定用户启动的进程 |
top的交互式选项
可以看如下黑马程序员的ppt图
df命令
查看磁盘占用
语法:df [-h]
还有iostat命令
语法:iostat [-x] [num1] [num2]
-x,显示更多信息;num1:数字,刷新间隔,num2:数字,刷新几次
具体更多信息看图
网络监控
语法:sar -n DEV num1 num2
-n表示查看网络,DEV表示查看网络接口。num1是刷新间隔(不填就查看一次结束),num2是查看次数(不填无限次数)。
环境变量
环境变量是操作系统(Windows、Linux、Mac)在运行的时候,记录的一些关键性信息,用以辅助系统运行。比如说要执行cd命令,系统就在PATH环境变量里面的路径找cd的程序(因为cd命令的本体就是:/usr/bin/cd 这个程序文件),找不到的时候再从当前路径开始查找。配置过Java的同学应该有体会。
查看环境变量:env
- 临时设置:export 变量名=变量值 ,变量值一般是路径,比如
export PATH=$PATH:/home/itheima/myenv
将myenv临时添加到环境变量中
- 永久设置:
- 针对用户,设置用户HOME目录内:
.bashrc
文件 - 针对全局,设置
/etc/profile
- 针对用户,设置用户HOME目录内:
并通过语法source配置文件进行立刻生效
PATH变量
记录了执行程序的搜索路径,可以将自定义路径加入PATH内,实现自定义命令在任意地方均可执行的效果
$符号
可以取出指定的环境变量的值
语法:$变量名
示例:
echo $PATH
,输出PATH环境变量的值
echo ${PATH}ABC
,输出PATH环境变量的值以及ABC
如果变量名和其它内容混淆在一起,可以使用${}
压缩与解压
文件上传与下载
可以安装xfcp软件进行文件上传,方法和Xshell大同小异。
在Linux中常见的压缩格式为tar、grip和zip格式。
tar命令
tar [-c -v -x -f -z -C] 参数1 参数2 ... 参数N
- -z表示使用gzip(.gz),不写就是.tar格式
- -v显示压缩和解压过程,用于查看进度
- -c创建压缩文件、用于压缩模式
- -x解压模式
- -f要创建的文件或者要解压的文件,必须在所有选项中的最后一个
- -C:要单独使用,与其他参数隔开。选择解压的目的地,用于解压模式
示例:压缩tar -zcvf test.tar.gz 1.txt 2.txt
将两个txt文件压缩到test.tar.gz内。使用gzip模式。解压:tar -zxvf test.tar.gz -C /home/Tom
将.gz文件解压到指定目录
zip命令与unzip命令
语法:zip [-r] 参数1 参数2 参数N
-r,被压缩的包含文件夹时,需要使用-r,也就是里面的东西都压缩进来。
示例:zip -r test.zip a b.txt c.txt
将后面两个txt文件和a文件夹压缩到test.zip文件内。
语法:unzip [-d] 参数
-d指定要解压的位置,参数是被解压的zip压缩包文件。
后续学习
读者在学习完Linux基础之后根据自己的需求学习如何在Linux中安装对应的软件(比如mysql、IDEA等)。可以参考黑马程序员的资料
参考
软件资源
- Xshell:家庭/学校免费 - NetSarang Website (xshell.com)
- Linux相关发行版:清华大学开源软件镜像站
- vmware station:博通
参考视频和教程
- 安装虚拟机(VMware)保姆级教程(附安装包)
- 【小白入门 通俗易懂】韩顺平 一周学会Linux ,注意韩顺平老师的视频是2021年的,视频中有些网站已经失效,请自行Google或百度查找。
- 黑马程序员新版Linux零基础快速入门到精通,全涵盖linux系统知识、常用软件环境部署、Shell脚本、云平台实践、大数据集群项目实战等
参考书籍和资料
- Linux命令大全(手册) – 真正好用的Linux命令在线查询网站 这个是学Linux必备的,相比某度、CSDN更加简洁,但是如果要更加细节的解释可能还是要依靠CSDN或者Google等搜索引擎。
- 黑马程序员资料:Linux零基础快速入门到精通