Linux基础知识

一、初识Linux

Linux创始人:林纳斯 托瓦兹

Linux诞生于1991年

Linux系统的组成:Linux系统内核系统级应用程序 两部分组成

Linux系统发行版:内无法被用户直接使用,需要配合应用程序才能被用户使用


扩展:

WSL:Windows Subsystem for Linux,是用于Windows系统之上的Linux子系统

可以在Windows系统中获取Linux系统环境,并完全直连计算机硬件,无需通过虚拟机虚拟硬件

二、Linux基础命令

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

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


Linux命令基础格式

语法:command [ -options ] [ parameter ]

  • command:命令本身
  • -options:[ 可选,非必选 ]命令的一些选项,可以通过选项控制命令的行为细节
  • parameter:[ 可选,非必填 ]命令的参数,多数用于命令的指向目标

ls命令

列出目录下的内容

语法:ls [ -a -l -h ] [ Linux路径 ]

  • -a:列出全部文件(包含隐藏的文件/文件夹)
  • -l:以列表(竖向排列)的形式展示内容,并展示更多信息
  • -h:需要和-l选项搭配使用,以易阅读的形式列出文件大小,如K、M、G

cd命令

切换工作目录

语法:cd [ Linux路径 ]

pwd命令

查看当前工作目录

语法:pwd

特殊路径符:

  • .  :表示当前目录
  • ..  :表示上一级目录
  • ~  :表示HOME目录

mkdir命令

创建新的目录

语法:mkdir [ -p ] Linux路径

  • -p:可以一次性创建多个层级的目录

touch命令

创建文件

语法:touch Linux路径

cat命令

查看文件内容

语法:cat Linux路径

more命令

查看文件内容

语法:more Linux路径

  • cat是直接将内容全部显示出来
  • more支持翻页,如果文件内容过多,可以一页页的展示

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

cp命令

复制文件文件夹

语法:cp [ -r ] 参数1 参数2

  • -r:可选,用于复制文件夹使用,表示递归
  • 参数1:Linux路径,表示被复制的文件或文件夹
  • 参数2:Linux路径,表示要复制去的地方

mv命令

移动文件或文件夹

语法:mv 参数1 参数2

  • 参数1:Linux路径,表示被移动的文件或文件夹
  • 参数2:Linux路径,表示要移动去的地方,如果目标不存在,则进行改名,确保目标存在

rm命令

删除文件、文件夹

语法:rm [ -r -f ] 参数1 参数2 ... 参数N

  • -r:同cp命令一样,-r选项用于删除文件夹
  • -f:表示强制删除,不会弹出提示确认信息
  • 参数:表示要删除的文件或文件夹路径,按照空格隔开

rm命令支持通配符*,用来做模糊匹配

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

which命令

查看所使用的一系列命令的程序文件存放位置

语法:which 要查找的命令

find命令

文件名查找文件

语法:find 起始路径 -name "被查找文件名"

被查找文件名,支持使用通配符*来做模糊查询

find命令

按文件大小查找文件

语法:find 起始路径 -size +|-n [kMG]

  • +、-:表示大于和小于
  • n:表示大小数字
  • kMG:表示大小单位,k(小写字母)表示kb,M表示MB,G表示GB

grep命令

从文件中通过关键字过滤文件行

语法:grep [-n] 关键字 文件路径

  • -n:表示在结果中显示匹配的行的行号
  • 关键字:表示过滤的关键字,带有空格或其他特殊符号,建议使用" ",将关键字包围起来
  • 文件路径:表示要过滤内容的文件路径,可作为内容输入端口

wc命令

统计文件的行数、单词数量等

语法:wc [ -c -m -l -w ] 文件路径

  • -c:统计bytes数量
  • -m:统计字符数量
  • -l:统计行数
  • -w:统计单词数量
  • 文件路径:被通缉的文件,可作为内容输入端口

| 管道符

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

示例:cat test.txt | grep java

作用:在test.txt文件中过滤java字符

echo命令

在命令行内出入指定内容

语法:echo 输出的内容

输出内容有空格或其他特殊符号,建议使用" ",将关键字包围起来

` 反引号

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

示例:echo `pwd

> 和 >>重定向符

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

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

示例:

echo "Hello Linux" > test.txt        覆盖

echo "Hello Linux" >> test.txt        追加

tail命令:查看文件尾部内容,跟踪文件的最新更改

语法:tail [ -f -num ] Linux路径

  • Linux路径:表示被跟踪的文件路径
  • -f:表示持续跟踪
  • -num:表示查看尾部多少行,不填默认10行

示例:

tail -5 test.txt

tail -f test.txt

vi \ vim编辑器

对文本进行编辑

vim是vi的加强版本,兼容vi的所有指令,不仅能编辑文本,而且还具有shell程序编辑的功能,可以不同颜色的字体来辨别语法的正确性,极大方便了程序的设计和编辑性

命令模式:

vi 文件路径

vim 文件路径

 

  

输入模式

底线命令模式:

Gedit文本编辑器

启动Gedit有两种方式,一种是在系统搜索中直接搜索Gedit打开;

还有一种是直接通过Shell命令gedit打开。

三、Linux权限管控

su和exit命令

su命令切换账户

语法:su [ - ] [ 用户名 ]

  • -符号:表示在切换用户后加载环境变量,建议带上
  • 用户名:表示要切换的用户,用户名可以省略,省略时表示切换到root
  • 切换用户后,可以通过exit命令退回上一个用户,也可以使用快捷键:CTRL + d

sudo命令

使用sudo命令,为普通的命令授权,临时以root身份执行

语法:sudo 其他命令

  • 在其他命令之前,带上sudo,即可为这一条命令临时赋予root授权
  • 但是并不是所有的用户,都有权利使用sudo,我们需要为普通用户配置sudo认证

为普通用户配置sudo认证

  1. 切换到root用户,执行visudo命令,会自动通过vi编辑器打开:/etc/sudoers
  2. 在文件的最后添加:cary ALL=(ALL)          NOPASSWD:ALL        cary为用户名
  3. 最后通过wq保存
  4. 切换回普通用户
  5. 执行的命令,均以root运行

用户组管理

以下命令需root用户执行

创建用户组

groupadd 用户组名

删除用户组

groupdel 用户组名

用户管理

创建用户

useradd [ -g -d ] 用户名

  • -g:指定用户的组,不指定-g,会创建同名组并自动加入,指定-g需要需要已经存在
  • -d:指定用户HOME路径,不指定,HOME目录默认在:/home/用户名

删除用户

userdel [ -r ] 用户名

  • -r:删除用户的HOME目录,不使用-r,删除用户时,HOME目录保留

查看用户所属组

id [ 用户名 ]

  • 用户名:被查看的用户,如果不提供则查看自身

修改用户所属组

usermod -aG 用户组 用户名 

  • 将指定用户加入指定用户组

getent命令

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

语法:getent passwd

共有7分信息,分别是:

用户名:密码(X):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)

查看当前系统中有哪些用户组

语法:getent group

包含3份信息

组名称:组认证(显示为X):组ID

rwx权限

r表示读权限

w表示写权限

x表示执行权限

针对文件、文件夹的不同,rwx的含义有细微差别

  • r,针对文件可以查看文件内容
    • 针对文件夹,可以查看文件夹内容,如ls命令
  • w,针对文件表示可修改此文件
    • 针对文件夹,可以在文件夹内:创建、删除、改名等操作
  • x,针对文件表示可以将文件作为程序执行
    • 针对文件夹,表示可以更改工作目录到此文件夹,即cd进入

chmod命令

修改文件、文件夹的权限信息

注意,只有文件、文件夹的所属用户或root用户可以修改

语法:chmod [-R] 权限 文件或文件夹

  • -R:对文件夹内的全部内容应用同样的操作

示例:chmod u=rwx,g=rx,o=x hello.txt        将文件权限修改为:rwxr-x--x

快捷写法:chmod 751 hello.txt

r记为4        w记为2        x记为1

chown命令

修改文件文件夹的所属用户和用户组

普通用户无法修改所属为其他用户或组,所有此命令只适用于root用户执行

语法:chown [-R] [用户][:][用户组] 文件或文件夹

  • -R:同chmod,对文件夹内全部内容应用相同规则
  • 用户:修改所属用户
  • 用户组:修改所属用户组
  • ::分隔用户和用户组

示例:

chown root hello.txt        将hello.txt所属用户修改为root

chown :root hello.txt        将hello.txt所属用户组修改为root

chown root:cary hello.txt  将用户修改为root,用户组修改为cary

chown -R root test    将文件夹test的所属用户修改为root并对文件夹内全部内容应用相同规则

四、Linux实用操作

ctrl + c 强制停止

  • Linux程序运行,想强行停止
  • 命令输入错误,可以使用ctrl + c,退出当前输入,重新输入

ctrl + d 退出或登出

  • 可以通过快捷键ctrl + d,退出账户的登录
  • 或者退出某些特定程序的专属页面(不能用于退出vi/vim

历史命令搜索

history命令

查看历史输入过的命令

!命令

可以通过 !命令前缀,自动执行上一次匹配前缀的命令

ctrl + r 

通过快捷键ctrl + r,输入内容去匹配历史命令

光标移动快捷键

  • ctrl + a,跳到命令开头
  • ctrl + e,跳到命令结尾
  • ctrl + 键盘左键,向左跳一个单词
  • ctrl + 键盘右键,向右跳一个单词

清屏

  • 通过快捷键ctrl + l,可以清空终端内容
  • 通过命令clear得到同样效果

软件安装

yum命令

yum:RPM包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题

语法:yum [-y] [install | remove | search] 软件名称

  • -y:自动确认,无需手动确认安装或卸载过程
  • install:安装
  • remove:卸载
  • search:搜索

yum命令需要root权限,可以使用su切换到root,或使用sudo提权

yum命令需要联网

apt命令 -扩展

语法:apt [-y] [install | remove | search] 软件名称

用法和yum一致,同样需要root权限

apt install wget          安装wget

apt remove wget          移除wget

apt search wget          搜索wget

systemctl命令

语法:systemctl start | stop | status | enable | disable 服务名

  • start         启动
  • stop         关闭
  • status      查看状态
  • enable     打开开机自启
  • disable    关闭开机自启

系统内置的服务较多,比如:

  • NetworkManager,主网络服务
  • network,副网络服务
  • firewalld,防火墙服务
  • sshd,ssh服务

除了内置的服务以外,部分第三方软件安装后也可以以systemctl进行控制

部分软件安装后没有自动集成到systemctl中,我们可以手动添加

软链接

ln命令创建软连接

语法:ln -s 参数1 参数2

  • -s:创建软链接
  • 参数1:被链接的文件或文件夹
  • 参数2:要链接去的目的地

示例:ln -s /etc/yum.conf  ~/yum.conf

date命令

语法:date [-d] [+格式化字符串]

  • -d:按照给定的字符串显示日期,一般用于日期计算
  • 格式化字符串:通过特定的字符串标记,来控制显示的日期格式

示例:

date +%Y-%m-%d        2023-08-01

date "+%Y-%m-%d %H:%M:%S"        2023-08-01 17:14:12 

由于中间带有空格,所以使用双引号包围格式化字符串,作为整体

data命令进行日期加减

修改Linux时区

Linux系统默认时区非中国的东八区

使用root权限,执行如下命令,修改时区为东八区

rm -f /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

将系统自带的localtime文件删除,并将/usr/share/zoneinfo/Asia/Shanghai文件链接到 localtime文件即可

ntp程序

我们可以通过ntp程序自动校准系统时间

安装ntp:yum -y install ntp

启动并设置开启自启:

  • systemctl start ntpd
  • systemctl enable ntpd

当ntpd启动后会定期的帮助我们联网校准系统的时间

  • 也可以手动校准(需要root权限):ntpdate -u ntp.aliyun.com

通过阿里云提供的服务网址配合ntpdate(安装ntp后附带这个命令)命令自动校准

IP地址

ifconfig命令:查看本机的ip地址

  • 127.0.0.1,这个ip地址用于指代本机
  • 0.0.0.0,特殊ip地址
    • 可以用于指代本机
    • 可以在端口绑定中来确定绑定关系
    • 在一些ip地址限制中,表示所有IP的意思,如放行规则设置为0.0.0.0,表示允许任意IP访问

hostname命令:查看主机名

hostnamectl set-hostname 主机名        修改主机名(需要root权限)

网络请求和下载

ping命令

语法:ping [-c num] ip或主机名

wget命令

wget是非交互式的文件下载器,可以在命令行内下载网络文件

语法:wget [-b] url

  • -b:后台下载,会将日志写入到当前工作目录的wget-log文件
  • url:下载链接

curl命令

curl可以发送http网络请求,可用于:下载文件、获取信息等

语法:curl [-O] url

  • -O:用于下载文件,当url是下载链接时,可以使用此选项保存文件
  • url:要发起请求的网络地址

端口

Linux系统是一个超大号小区,可以支持65535个端口,着6万多个端口分为3类进行使用;

  • 公认端口:1~1023,通常用于一些系统内置或知名程序的预留使用,如SSH服务的22端口,HTTPS服务的443端口,非特殊需求,不要占用这个范围的端口
  • 注册端口:1024~49151,通常可以随意使用,用于松散的绑定一些程序\服务
  • 动态端口:49152~65535,通常不会固定绑定程序,二十当程序对外进行网络连接时,用于临时使用

查看端口占用

可以使用nmap命令,安装nmap:yum -y install nmap

语法:nmap 被查看的IP地址

可以使用netstat命令,查看指定端口的占用情况

语法:netstat -anp | grep 端口号

安装netstat:yum -y install net-tools

进程

查看进程

ps命令

语法:ps [-e -f ]

  • -e:显示全部的进程
  • -f:以完全格式化的形式展示信息

一般固定用法就是:ps -ef         列出全部进程的全部信息

查看指定进程

ps -ef | grep tail        可以准确的找到tail命令的信息

关闭进程

语法:kill [-9] 进程ID

  • -9:表示强制关闭进程。不使用此选项会向进程发送信号要求其关闭,但是是否关闭看进程自身的处理机制

主机状态监控

查看系统资源占用

top命令:查看CPU、内存使用情况,类似Windows的任务管理器

默认每5秒刷新一次

语法:直接输入top即可,按q或者ctrl + c 退出

top命令内容详解

top命令选项

top交互式选项

当top以交互式运行(非-b选项启动),可以用以下交互式命令进行控制

磁盘信息监控

df命令

语法:df [-h]

  • -h:以更加人性化的单位显示

iostat命令

查看CPU、磁盘的相关信息

语法:iostat [-x] [num1] [num2]

  • -x:显示更多信息
  • num1:数字,刷新间隔
  • num2:数字,刷新几次

网络状态监控

sar命令

查看网络的相关统计

语法:sar -n DEV num1 num2

  • -n:查看网络,DEV表示查看网络接口
  • num1:刷新间隔(不填就查看一次结束)
  • num2:查看次数(不填无限次数)

环境变量

文件的上传和下载 

rz、sz命令

安装:yum -y install lrzsz

rz命令 进行上传

语法:直接输入rz即可

sz命令 进行下载

语法:sz要下载的文件

压缩和解压

tar命令

语法:tar [-c -v -x -f -z -C] 参数1 参数2 ... 参数N

  • -c:创建压缩文件,用于压缩模式
  • -v:显示压缩、解压过程,用于查看进度
  • -x:解压模式
  • -f:要创建的文件,或要解压的文件,-f选项必须在所有选项中位置处于最后一个
  • -z:gzip模式,不使用-z就是普通的tarball格式
  • -C:选择解压的目的地,用于解压模式

tar命令压缩

tar的常用组合为:

  • tar -cvf test.tar 1.txt 2.txt 3.txt        将1.txt 2.txt 3.txt压缩到test.tar文件内
  • tar -zcvf test.tar.gz 1.txt 2.txt 3.txt        将1.txt 2.txt 3.txt压缩到test.tar.gz文件内,使用gzip模式

注意:

  • -z选项如果使用的话,一把处于选项位第一个
  • -f选项,必须在选项位最后一个

tar命令解压

常用的tar解压组合有:

  • tar -xvf test.tar        解压test.tar,将文件解压至当前目录
  • tar -xvf test.tar -C /home/cary        解压test.tar,将文件解压至指定目录(/home/cary)
  • tar -zxvf test.tar.gz -C  /home/cary        以Gzip模式解压test.tar.gz,将文件解压至当前目录(/home/cary)

注意:

  • -f选项,必须在选项组合体的最后一位
  • -z选项,建议在开头位置
  • -C现象单独使用,和解压所需的其他参数分开

zip命令压缩文件

语法:zip [-r] 参数1 参数2 ... 参数N

  • -r:被压缩的包含文件夹的时候,需要使用-r选项

unzip命令解压文件

语法:unzip [-d] 参数

  • -d:指定要解压去的位置,同tar的-C选项
  • 参数:被解压的zip压缩包文件

五、项目实战

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

舒克小先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值