Linux对于程序员来说是至关重要的一个操作系统,在此记录一下,以后多回顾

这几篇老文章都是我之前用飞书云文档写的,因转换格式问题,本文之前已写完的文档图片太多了,不想一一转化了,大家可以访问我的飞书云文档来查看这些图片–https://miu7shl031o.feishu.cn/drive/folder/WJiBfqX9klvKNEdpTHccfrEQn3e

Linux知识点

VM的安装

安装完成检查网络适配器是否正常配置,通过快捷键:win+r输入ncpa.cpl回车即可打开

Linux的目录结构

Linux的目录结构是一个树型结构
Windows系统可以拥有多个盘符,如C盘、D盘、E盘
Linux没有盘符这个概念,只有一个根目录/,所有文件都在它下面

Linux的路径描述方式

在Linux系统中,路径之间的层级关系,使用:/来表示
在Windows:系统中,路径之间的层级关系,使用:\来表示

Linux命令

无论是什么命令,用于什么用途,在Liux中,命令有其通用的格式:
command [-options] [parameter]
command: 命令本身
-options: [可选 非必填]命令的一些选项,可以通过选项控制命令的行为细节
parameter: [可选,非必填]命令的参数,多数用于命令的指向目标等

ls命令

ls命令的作用是列出目录下的内容,语法细节如下:
ls [-a-1-h] [Linux路径]
-a-l-h是可选的选项
Linux路径是此命令可选的参数
当不使用选项和参数,直接使用S命令本体,表示:以平铺形式,列出当前工作目录下的内容

HOME目录

每个Linux操作用户在Linux系统的个人账户目录,路径在:/home/用户名

ls命令的叁数和选项

如下语法,S命令是可以使用选项的
ls [-a-1-h] [Linux路径]
-a选项,表示:all的意思,即列出全部文件(包含隐藏的文件/文件夹) 以.开头的,表示是Linux系统的隐藏文件/文件夹(只要以.开头,就能自动隐藏).只有通过-a选项,才能看到这些隐藏的文件/文件夹

-l 选项,表示:以列表(竖向排列)的形式展示内容,并展示更多信息

语法中的选项是可以组合使用的,比如学习的-和-l可以组合应用。

ls -l -a
ls -la
ls -al

-h表示以易于阅读的形式,列出文件大小,如K、M、G
-h选项必须要搭配-l一起使用

cd切换工作目录

我们可以通过cd命令,更改当前所在的工作目录。
cd命令来自英文:Change Directory
语法:cd [Linux路径]
Cd命令无需选项,只有参数,表示要切换到哪个目录下
Cd命令直接执行,不写参数,表示回到用户的HOME目录

pwd查看当前工作目录

通过ls来验证当前的工作目录,其实是不恰当的。
我们可以通过pwd命令,来查看当前所在的工作目录。
pwd命令来自:Print Work Directory
语法:pwd
·pWd命令,无选项,无参数,直接输入pWd即可

相对路径和绝对路径

绝对路径:以根目录为起点描述路径的一种写法,路径描述以/开头
相对路径:以当前目录为起点,描述路径的一种写法,路径描述无需以/开头

cd /home/itheima/Desktop 绝对路径写法

cd Desktop 相对路径写法

特殊路径符

特殊路径符:
. 表示当前目暴,比如cd/Desktop表示切换到当前目录下的Desktop目录内,和cd Desktop效果一致
.. 表示上一级目录,比如:cd.…即可切换到上一级目录,cd./.切换到上二级的目录
~ 表示HOME目录,比如:cd即可切换到HOME目录或cd/Desktop,切换到HOME内的Desktop目录

mkdir创建目录

mkdir来自英文:Make Directory
语法:mkdir [-p] Linux路径
,参数必填,表示Liux路径,即要创建的文件夹的路径,相对路径或绝对路径均可
-p选项可选,表示自动创建不存在的父目录,适用于创建连续多层级的目录

如果想要一次性创建多个层级的目录会报错,因为上级目录itcast和good并不存在,所以无法创建666目录
可以通过-p选项,将一整个链条都创建完成。

注意:创建文件夹需要修改权限,请确保操作均在HOME目录内,不要在HOME外操作
涉及到权限问题,HOME外无法成功
后续我们会讲解权限管控的知识

清屏

ctrl+L 或者 输入clear

touch创建文件

可以通过touch命令创建文件
语法:
touch Linux路径
touch命令无选项,参数必填,表示要创建的文件路径,相对、绝对、特殊路径符均可以使用

cat命令查看文件内容

有了文件后,我们可以通过cat命令查看文件的内容。
不过,现在我们还未学习编辑器,无法向文件内编辑内容,所以,暂时,我们先通过图形化
在图形化中,手动向文件内添加内容,以测试cat命令

more命令查看文件内容

more命令同样可以查看文件内容,同cat不同的是:
cat是直接将内容全部显示出来
more支持翻页,如果文件内容过多,可以一页页的展示
语法:more Linux路径
同样没有选项,只有必填参数,参数表示:被查看的文件路径,相对、绝对、特殊路径符都可以使用

在查看的过程中,通过空格翻页
通过q退出查看

cp命令复制文件夹

cp命令可以用于复制文件文件夹,cp命令来自英文单词:copy
语法:cp [-r] 参数1 参数2
·-r选项,可选,用于复制文件夹使用,表示递归
·参数1,Linux路径,表示被复制的文件或文件夹
·参数2,Linux路径,表示要复制去的地方

mv 移动文件或者文件夹

mv命令可以用于移动文件\文件夹,mv命令来自英文单词:move
语法:mv 参数1 参数2
参数1,Linux路径,表示被移动的文件或文件夹
参数2,Linux路径,表示要移动去的地方,如果目标不存在,则进行改名,确保目标存在

rm命令可用于删除文件、文件夹

rm命令来自英文单词:remove
语法:rm[-r-f] 参数1 参数2…参数N
·同cp命令一样,-选项用于删除文件夹
·-f表示force,强制删除(不会弹出提示确认信息)
·普通用户删除内容不会弹出提示,只有Oot管理员用户删除内容会有提示
·所以一般普通用户用不到-f选项
·参数1、参数2、、参数N表示要删除的文件或文件夹路径,按照空格隔开

r命令支持通配符,用来做模糊匹配
·符号
表示通配符,即匹配任意内容(包含空),示例:
·test*,表示匹配任何以test开头的内容
·* test,表示匹配任何以test结尾的内容
test,表示匹配任何包含test的内容

which命令

我们在前面学习的Liu命令,其实它们的本体就是一个个的二进制可执行程序。
和Windows系统中的.exe文件,是一个意思。
我们可以通过whch命令,查看所使用的一系列命令的程序文件存放在哪里
语法:which要查找的命令

find命令–按文件名查找文件

find起始路径-name”被查找文件名”

为了确保后续演示,拥有最大的权限,可以在整个系统完成搜索
我们可以切换到oot用户以获得管理员权限
执行命令:
su -root
输入密码:123456(和你普通用户的密码一样)

用来做模糊匹配
·符号
表示通配符,即匹配任意内容(包含空),示例:
·test*,表示匹配任何以test开头的内容
·* test,表示匹配任何以test结尾的内容
test,表示匹配任何包含test的内容

find命令-按文件大小查找文件

语法:find起始路径 -size +/-n[kMG]
·+、-表示大于和小于
n表示大小数字
kMG表示大小单位,服小写字母)表示kb,M表示MB,G表示GB

grep命令

可以通过grep命令,从文件中通过关键字过滤文件行。
语法:grep[-n] 关键字 文件路径
选项-n,可选,表示在结果中显示匹配的行的行号。
参数,关键字,必填,表示过滤的关键字,带有空格或其它特殊符号,建议使用” ”将关键字包围起来
参数,文件路径,必填,表示要过滤内容的文件路径,可作为内容输入端口

WC命令做数量统计

可以通过WC命令统计文件的行数、单词数量等
语法:wc[-c -m -1 -w]文件路径
,选项,-c,统计bytes数量
·选项,-m,统计字符数量
·选项,-l,统计行数
选项,-W,统计单词数量
·参数,文件路径,被统计的文件,可作为内容输入端口

管道符 |

将管道符左边命令的结果,作为右边命令的输入

echo命令

可以使用echo命令在命令行内输出指定内容
语法:echo输出的内容
·无需选项,只有一个参数,表示要输出的内容,复杂内容可以用””包围 带有空格或等特殊符号,建议使用双引号包围

被`包围的内容,会被作为命令执行。而非普通字符

重定向符

我们再来学习两个特殊符号,重定向符:>和>>

,>,将左侧命令的结果,覆盖写入到符号右侧指定的文件中

,>>,将左侧命令的结果,追加写入到符号右侧指定的文件中

tail命令

使用tail命令,可以查看文件尾部内容,跟踪文件的最新更改,语法如下:
tailf-f -num] Linux路径
·参数,Linux路径,表示被跟踪的文件路径
·选项,-f,表示持续跟踪
选项,-num,表示,查看尾部多少行,不填默认10行

vi \ vim编辑器

vi \ vim是visual interfacel的简称,是Linux中最经典的文本编辑器
同图形化界面中的文本编辑器一样,ⅵ是命令行下对文本文件进行编辑的绝佳选择。
vim是vi的加强版本,兼容vi的所有指令,不仅能编辑文本,而且还具有shll程序编辑的功能,可以不同颜色的字
体来辨别语法的正确性,极大方便了程序的设计和编辑性。

三种模式

1命令模式(Command mode)

命令模式下,所敲的按键编辑器都理解为命令,以命令驱动执行不同的功能 此模型下,不能自由进行文本编辑。

image-20240302142238874

image-20240302142537876

image-20240302142638197

2输入模式(Insert mode)

按 i 键进入,按esc退回到命令模式

也就是所谓的编辑模式、插入模式。
此模式下,可以对文件内容进行自由编辑。

3底线命令模式(Last line mode)

(要先退回到命令模式)按 : 进入 ,输入wq保存并退出

以:开始,通常用于文件的保存、退出。

image-20240302144143925

root用户

在前面,我们接触过su命令切换到root账户。
Su命令就是用于账户切换的系统命令,其来源英文单词:Switch User
语法:su [-] [用户名]
·-符号是可选的,表示是否在切换用户后加载环境变量(后续讲解),建议带上
参数:用户名,表示要切换的用户,用户名也可以省略,省略表示切换到root
·切换用户后,可以通过exit命令退回上一个用户,也可以使用快捷键:ctrl+d
使用普通用户,切换到其它用户需要输入密码,如切换到root用户
使用root用户切换到其它用户,无需密码,可以直接切换

sudo命令

在我们得知root密码的时候,可以通过su命令切换oot得到最大权限
但是我们不建议长期使用oot用户,避免带来系统损坏。

我们可以使用udd命令,为普通的命令授权,临时以root身份执行。
语法:
sudo 其它命令
在其它命令之前,带上sudo,即可为这一条命令临时赋予root授权
但是并不是所有的用户,都有权利使用sudo,我们需要为普通用户配置sudo认证

为普通用户配置sudo认证

切换到root用户,执行visudo命令,会自动通过vi编辑器打开:/etc/sudoers
在文件的最后添加:

用户名 ALL=(ALL) NOPASSWD:ALL

其中最后的NOPASSWD:ALL表示使用sudo命令,无需输入密码

用户、用户组

Linux系统中可以:
配置多个用户
配置多个用户组
用户可以加入多个用户组中

Linux中关于权限的管控级别有2个级别,分别是:
针对用户的权限控制
针对用户组的权限控制
比如,针对某文件,可以控制用户的权限
也可以控制用户组的权限。
所以,我们需要学习在LiuX中进行用户、用户组管理的基础命令,为后面学习权限控制打下基础。

创建用户组
groupadd用户组名

删除用户组
groupdel用户组名

·创建用户
useradd[-g-d]用户名
·选项:-g指定用户的组,不指定,会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用g
·选项:-d指定用户HOME路径,不指定,HOME目录默认在:/home/用户名

删除用户
userdel[-rl用户名
·选项:-r,删除用户的HOME目录,不使用-r,删除用户时,HOME目录保留
·查看用户所属组

id[用户名]
·参数:用户名,被查看的用户,如果不提供则查看自身

,修改用户所属组
usermod-aG用户组 用户名

getent 查看当前系统有哪些用户

查看权限控制信息

image-20240302153954274

chmod命令

image-20240302154434021

image-20240302154913315

image-20240302161602269

Linux快捷键

image-20240302163132849

安装

image-20240302163819049

systemctl命令

image-20240303154900848

image-20240303155600796

软连接

image-20240303155716395

日期和时间

date命令

image-20240303160530689

修改时区

image-20240303161106180

自动校准

image-20240303161138631

Ip地址,主机名

ifconfig命令查看本机ip

特殊ip地址

image-20240303161529779

主机名

image-20240303162132681

域名解析

image-20240303162339022

虚拟机配置固定Ip地址

image-20240303163001723

image-20240303163117793

image-20240303163314978

image-20240303163335898

网络传输

image-20240303163944242

image-20240303164200085

image-20240303164334183

端口

image-20240303165038289

image-20240303165052002

image-20240303165206531

image-20240303165305320

image-20240303170337169

image-20240303170500618

进程管理

image-20240303171258546

image-20240303171725769

image-20240303184412298

image-20240303184748256

环境变量

image-20240303185110855

image-20240303185146660

自行设置环境变量image-20240303185400130

image-20240303185821076

上传和下载

image-20240303190415567

image-20240303190553437

压缩和解压

image-20240303191535571