LINUX 学习笔记
Linux 基础命令
Linux命令基础格式
command [-options] [parameter]
- command:命令本身
- -options:[可选,非必填],命令的一些选项,可以通过选项控制命令的行为细节
- parameter:[可选,非必填],命令的参数,多数用于命令的指向目标
ls命令(查看目录下文件)
- ls 命令的参数作用,可以指定要查看的文件夹(目录)的内容,如果不给定参数,默认当前工作目录的内容
- ls 的命令选项:
- -a:可以展示出隐藏的内容
- 以
.
开头的文件或文件夹默认被隐藏,需要-a才能显示出来
- 以
- -l:以列表的形式展示内容,并展示更多细节
- -h:需要和-l 选项搭配使用,以更加人性化的方式显示文件的大小单位
- -a:可以展示出隐藏的内容
- 命令的选项是可以组合使用的,比如:
ls -lah = ls -a -l -h
cd 和 pwd (切换显示目录)
cd命令的作用
cd命令来自英文:Change Directory.
cd命令可以切换当前工作目录,语法是:
- 没有选项,只有参数,表示目标路径
- 使用参数,切换工作目录到指定路径(默认切换到当前用户的HOME)
cd [linux路径]
- pwd 命令的作用
- pwd命令来自英文:Print Work Directory
- pwd命令,没有选项,没有参数,直接使用即可
- 作用:输出当前所在的工作目录
相对、绝对路径和特殊路径符
- 绝对路径:以根目录作为起点,路径必须要以 / 开头
- 相对路径:以当前目录作为起点,描述路径的方式,路径不需要以 / 开头
- 特殊路径符
.
:表示当前目录,egcd ./Desktop
表示切换到当前目录下的Desktop 目录内..
:表示上一级目录,egcd ../..
表示切换到上二级目录~
:表示HOME目录, egcd ~/Desktop = cd ./Desktop
切换到切换到HOME下的Desktop目录
mkdir命令(创建目录)
- mkdir命令来自英文:Make Directory
- mkdir命令可以创建新的目录和文件夹
- 语法:
mkdir [-p] linux路径
- 参数必填,表示linux路径,即要创建的文件夹路径
- -p 选项可选,表示自动创建不存在的父目录,适用于创建连续多层级的目录
- 注意:创建文件夹需要修改权限,初学请确保在HOME目录下操作
- tips: Mobaxterm的命令行可以用指令
clear
清空
文件操作命令
touch 命令创建文件
- 语法:
touch linux路径
- touch 命令无选项,参数必填,表示要创建的文件路径
- eg :
touch ./wjl/test.txt
表示在HOME目录下的wjl文件夹创建test.txt 文件
- 语法:
cat 命令查看文件内容
- 语法:
cat linux路径
- cat 没有选项,只有必填参数,表示被查看的文件路径
- 语法:
more 命令查看文件内容
- 语法:
more linux路径
- 与cat 的区别:
- cat 是直接将文件内容全部展示出来
- more 支持翻页,如果文件内容过多,可以一页页的展示
- linux 系统内置一个文件,路径位:
/etc/services
,可以使用more 命令查看- 在查看中,通过空格翻页
- 通过 q 退出查看
- 语法:
cp 命令复制文件文件夹
- cp 命令用于复制文件/文件夹,英文来自:copy
- 语法:
cp [-r] 参数1 参数2
- -r 可选,用于复制文件夹使用,表示递归
- 参数1是被复制方,参数2表示要复制去的地方
- 如果参数2不存在,会被创建~ 应该是
mv 命令移动文件/文件夹
- 语法:
mv 参数1 参数2
- 参数1表示被移动的目标,参数2表示要移动去的地方,如果目标不存在,则进行改名(如果参数2的目标不存在,改的是参数1的名字),确保目标存在
mv lele.txt ../haha
,这个指令的本来目的是将当前命令目录下的lele.txt文件移动到上一级目录的haha文件夹,但是如果上一级目录下没有haha文件夹,那么就会将本目录下的lele.txt文件移动到上一级目录,并将文件改名成haha~ 太抽象了,文件名后缀没有用吗?
- 在同一路径下
mv name othername
可以实现文件/文件夹的改名,原理如上 - 注意:有时候出现了从a到b的移动,a位置的文件还存在或者b位置没有文件但a已经没有了,这种原因可能是由于源文件和目标路径位于不同的文件系统,总之最终原因就是权限不够导致写入或者删除不成功!
- 语法:
rm 命令删除文件/文件夹
- rm 命令来自英文:remove
- 语法:
rm [-r -f] 参数1 参数2 ... 参数N
- -r 用于选择删除文件夹
- -f 表示force,强制删除(不会弹出提示确认信息)
- 普通用户删除内容不会弹出提示,只有root管理员用户删除内容才会有提示
- 所以一般普通用户用不到-f 选项
- 参数1、2、3….N表示要删除的文件路径,按照空格隔开
通配符
*
- rm 命令支持通配符*(匹配任何内容,包含空),用来做模糊匹配
- test*,表示匹配任何以test开头的内容
- *test,表示匹配任何以test结尾的内容
*test*
,表示匹配任何包含test的内容
- eg:删除所有以test开头的内容
rm -r test*
- rm 命令支持通配符*(匹配任何内容,包含空),用来做模糊匹配
超级管理员用户root
- 可以通过
su - root
并输入密码临时切换到root用户体验 - 通过输入
exit
命令退回到普通用户
- 可以通过
查找命令
- Linux 命令,实际上就是一个个二进制可执行程序,类似windows系统中的.exe文件
- 通过which命令,查看使用的一系列命令的程序文件的存放位置
- 语法:
which 要查找的命令
- which 能且只能查找系统自带命令的位置
- 语法:
- find 命令可以搜索指定的文件
- 按文件名查找文件
- 语法:
find 起始路径 -name "被查找文件名"
- tips:最好在root账户下查找,以便拥有最大权限,可以在整个系统完成搜索
- 双引号可加可不加,引号的核心作用是防止 Shell 误解你的意图,尤其在复杂模式中。
- find可以配合通配符使用,做到模糊搜索~
- 语法:
- 按文件大小查找文件
- 语法:
find 起始路径 -size +|- n[ckGM]
- +、- 表示大于和小于
- n 表示大小数字
- ckMG 表示大小单位,c表示字节Bytes,k表示千字节kb,M表示兆字节MB,G表示吉字节GB,注意:
单位区分大小!
- eg: 查找小于10kb的文件:
find / -size -10k
- 语法:
- 按文件名查找文件
grep、wc、管道符
- grep 命令
- 通过grep命令,从文件中通过关键字过滤文件行(说人话就是查找文件中含有关键字的行并展示)
- 语法:
grep [-n] 关键字 文件路径
- 选项 -n,表示在结果中显示匹配的行的行号
- 参数,关键字,表示过滤的关键字,带有空格或者其他特殊字符,建议使用"“将关键字包围起来
- 参数,文件路径,表示要过滤内容的文件路径,可作为内容的输入端口
- wc 命令
- 通过wc命令,统计文件的行数、单词数量等
- 语法:
wc [-c -m -l -w] 文件路径
- -c,统计bytes的数量
- -m,统计字符的数量
- -l,统计行数
- -w,统计单词数量(不会计算符号,比如逗号)
- 文件路径,被统计的文件,同样可以作为内容的输入端口
- 注意,如果不加参数,默认输出是
-l -w -c 文件路径
,即行数,单词数,字节数
- 管道符
|
,将管道符左边命令的结果,作为右边命令的输入- eg :
grep and test.txt | wc -w
- 筛选test.txt文件中含有and的部分,计算一共有多少个单词;其中将左边筛选的内容作为右边计算的输入
- 管道符可以嵌套使用,还是非常非常哇塞的哦~
- eg :统计文件中带有关键字lele的有几行
cat test.txt | grep lele | wc -l
- eg :统计文件中带有关键字lele的有几行
- eg :
echo、tail、重定向符
- echo 命令
- 使用echo 命令在命令行输出指定内容
- 语法:
echo 要输出的内容
- 无需选项,只有一个参数,表示要输出的内容,复杂内容可以用"“包围
- 带有空格或\等特殊符号,建议使用双引号包围,因为不包围空格后很容易被识别为参数2,尽管echo命令不受影响(双引号不会输出,类似printf之于c,cout之于c++)
- 反引号
- 被反引号包围的内容,会被作为命令执行,而非普通字符
echo pwd
—> 输出字符pwdecho pwd(这里用反引号包围)
—> 输出当前目录路径
- 重定向符
>
,将左侧命令的结果,覆盖写入到符号右侧指定的文件中- eg:echo “hello, world!” > test.txt –> 将hello, world! 覆盖原来的内容写到文件
>>
,将左侧命令的结果,追加 写入到符号右侧指定的文件中- eg:echo “lele nb” » test.txt –> 将lele nb 换行写入原来文件内容末尾
- tail 命令
- 使用tail命令,可以查看文件尾部内容,跟踪文件的最新更改
- 语法:
tail [-f -num] linux路径
- -f, 表示持续跟踪文件的更新,ctrl + c 强制停止跟踪
- -num,表示查看尾部多少行,不填默认10行
vi 编辑器
- vi / vim 是visual interface 的简称,是linux 中最经典的文本编辑器
- 三种工作模式:
- 命令模式:此模式下,所敲的按键编辑器都理解为命令,以命令驱动执行不同的功能;此模式下,不能自由进行文本编辑
- 输入模式:编辑,插入文本
- 底线命令模式:以
:
开始,通常用于文件的保存和退出等
- 通过vim 编辑器编辑文件,需要先执行
vim 文件路径
命令- 如果文件路径表示的文件不存在,此命令会用于编辑新文件,即创建一个文件进行编辑
进入vim 编辑器默认进入命令模式,由键盘上
i
键进入输入模式,由Esc
退出输入模式回到命令模式;命令模式下,:
进入底线命令模式,w
表示保存,q
表示退出vim编辑器命令模式下的快捷键指令
i
:在当前光标位置进入 输入模式a
:在当前光标位置之后 进入输入模式I
:在当前行的开头进入 输入模式A
:在当前行的结尾进入 输入模式o
:在当前光标下一行进入 输入模式O
:在当前光标上一行进入 输入模式k j h l
:光标的上、下、左、右移动,全小写0、$
:分别是移动光标到当前行的开头和结尾,不进入输入msPgUp、PgDn
:向上翻页和向下翻页/
:进入搜索模式,这个比较有用n、N
:搜索模式下,向下搜索和向上搜索Esc
:任何情况下输入都能回到命令模式
dd
:删除光标所在行ndd
:n 是数字,表示删除当前光标向下一共n行yy、nyy
:复制当前行和当前向下的共n行p
:粘贴复制的内容u
:撤销修改ctrl + r
:反向撤销修改gg、G
:跳到首行和跳到行尾dG、dgg
:从当前行开始,向下全部删除和向上全部删除d$、d0
:从当前光标开始,删除到本行结尾和删除到本行开头
底线命令模式下的部分命令(冒号是为了进入该模式)
:wq
:保存并退出:q
:仅退出:q!
:强制退出:w
:仅保存:set nu
:显示行号:set paste
:设置粘贴模式(从外部复制粘贴,保证格式相同)
Linux 用户和权限
root用户和sudo命令
- Linux 系统中,拥有最大权限的账户名为:root(超级管理员)
- 通过su 命令切换账户,英文:Switch User
- 语法:
su [-] [用户名]
-
符号可选,表示是否要在切换用户后加载环境变量,建议带上- 参数用户名,表示要切换到的用户,省略默认表示切换到root
- 切换后,通过命令
exit
或者快捷键ctrl + c
退回上一个用户
- 普通用户切换到其他用户,需要输入密码;root切换到其他用户不需要密码
- 语法:
- sudo 命令
- 可以让一条普通命令带有root 权限
- 语法:
sudo 其他命令
- 需要提前为普通用户配置sudo 认证,才能正常使用sudo 命令
- 切换到root用户后,执行
visudo
命令,会自动通过vi 编辑器打开:/etc/sudoers
文件 - 在文件的最后添加
用户名 ALL=(ALL) NOPASSWD: ALL
- 其中,最后的NOPASSWD:ALL 表示使用sudo 命令无需输入密码
- 最后通过wq保存
- 切换到root用户后,执行
- 需要提前为普通用户配置sudo 认证,才能正常使用sudo 命令
- 配置好sudo认证的普通用户使用sudo命令,均会以root权限执行
用户和用户组管理
root权限才能创建和删除用户/组,因此以下命令全在root用户下执行
创建用户组:
groupadd 用户组名
;删除用户组:groupdel 用户组名
用户管理
创建用户:
useradd [-g -d] 用户名
- -g 指定用户的组,不指定-g,会创建同名组并自动加入,指定-g 必须组已经存在;如果存在同名组,必须使用-g 确定加入哪个组
- -d 指定用户的HOME路径,不指定默认HOME路径在:
/home/用户名
- eg:
useradd -g lele -d /home/luosaier xixi
- 表示创建用户名为xixi,在lele 用户组中,同时HOME目录建立在luosaier目录下
- 虽然但是,这样创建在其他用户下的HOME目录,就没有为xixi复制默认的配置文件,一般不建议更改HOME路径
删除用户:
userdel [-r] 用户名
- -r,删除用户的HOME目录,不使用-r,删除用户时会保留HOME目录
查看用户所属组:
id [用户名]
- 参数,用户名,被查看的用户,如果不提供则查看自身
usermod -aG 用户组 用户名
:将指定的用户(后一个参数)加入指定的用户组(前一个参数)getent passwd
命令,可以查看当前系统中有哪些用户- 总共7份信息:
- 用户名:密码(x):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)
- 总共7份信息:
getent group
命令,可以查看当前系统中有哪些用户组- 总共包含3份信息:
- 组名称:组认证(显示为x):组ID
- 总共包含3份信息:
Linux 可以支持多用户、多用户组、用户加入多个组
查看权限控制信息
-rw-------. 1 root root 2835 Aug 3 19:28 anaconda-ks.cfg
-rw-------
:序号1,表示文件/夹的权限控制信息- 权限细节:序号1共10个槽位,第一个槽位表明其文件类型,后面每3个槽位划分一次
- (1):
-
表示文件;d
表示文件夹;l
表示符号链接,软链接;c/b
表示设备文件 - (2 -> 4):所属用户权限
- (5 -> 7):所属用户组权限
- (8 -> 10):其他用户权限
- (1):
r
代表读权限;w
代表写权限;x
代表执行权限,excute- 文件和文件夹关于r,w,x(顺序)的具体区别:
- 针对文件:可以查看文件内容;可以修改此文件;可以将文件作为执行程序
- 针对文件夹:可以查看文件夹内容(如ls);可以在文件夹内创建、删除、改名等操作;可以更改工作目录到此文件夹,即cd 进入
- 文件和文件夹关于r,w,x(顺序)的具体区别:
- 权限细节:序号1共10个槽位,第一个槽位表明其文件类型,后面每3个槽位划分一次
-rw-------.
后的这个.
:可选,表示文件启用了SELinux安全上下文,若无则为空格-rw-------.1
后的这个1
:表示该文件的硬链接数量为1(通常文件为1,目录>=2)root
:序号2,表示文件/夹的所属用户root
:序号3,表示文件/夹的所属用户组2835
:文件大小,2835 字节Aug 3 19:28
:最后一次修改时间anaconda-ks.cfg
:文件名
修改权限控制
chmod
命令- 使用chmod命令,修改文件/夹的权限信息;注意:只有文件/夹的所属用户或root 用户可以修改
- 语法:
chmod [-R] 权限 文件/夹
- 选项-R,表示对文件夹内的全部内容应用同样的操作
- eg:
chmod u=rwx, g=rx, o=x hello.txt
,将文件权限修改成rwxr-x–x- 其中:
u
表示user所属用户权限;g
表示group组权限;o
表示other其他用户权限
- 其中:
- 快捷写法(二进制):
chmod 751 hello.txt
–> u=rwx,g=r-x,o=–x- 0: —
- 1:–x
- 2:-w-
- 3:-wx
- 4:r–
- 5:r-x
- 6:rw-
- 7:rwx
chown
命令- 使用chown命令,可以修改文件/夹的所属用户和用户组
- 普通用户无法修改所属为其他用户或组,因此此命令只适用于root用户执行
- 语法:
chown [-R] [用户] [:] [用户组] 文件/夹
- 选项-R,同chmod,对文件夹内的全部内容应用相同规则
- 选项:用户和用户组,修改所属用户和所属用户组
:
,用于分隔用户和用户组
- eg:
chown :root hello.txt
,将文件的用户组修改为root;
- 使用chown命令,可以修改文件/夹的所属用户和用户组
Linux实用操作
实用小技巧
强制停止程序的运行、命令的输入:
ctrl + c
退出、登出账户的登录或某些特定程序的专属页面:
ctrl + d
,注意:不用用于退出vi/vim- 例如退出python语言的解释器环境(输入python命令进入环境,ctrl + d 退出环境)
历史命令搜索,
命令
history
,可以作为内容输入搭配管道符,用于查看和管理当前用户在终端中执行过的命令历史记录- 选项如下表:
选项 作用 history N
仅显示最近的 N
条记录(如history 10
)history -c
清空当前会话的历史记录(不会删除 ~/.bash_history
文件)history -d 行号
删除指定行号的命令(如 history -d 3
删除第 3 条)history -a
将当前会话的命令追加到历史文件(默认退出时才会保存) history -r
从历史文件重新加载记录到当前会话 - eg :
history | grep ch
—> 搜索历史命令记录中和ch相关的命令
命令前缀
!
,自动执行历史较近上一次匹配前缀的命令!p
—-> 执行历史最近一条以p开头的匹配的命令!250
—>执行history记录中行号250的命令!!
—–>执行上一条命令
快捷键
ctrl + r
可以匹配历史久远的命令,回车键执行,键盘左右键,可以得到命令不执行
光标移动
ctrl + a
:跳到命令开头ctrl + e
:跳到命令结尾ctrl + 键盘左右键
:向左右跳一个单词
清屏,—>快捷键
ctrl + l
,或者命令clrea
使用yum为CentOS系统安装软件
操作系统安装软件的方式后许多种方法,一般分为:
- 下载安装包自行安装
- 系统的应用商店安装 —>Linux 命令行内的yum程序
yum 命令
- yum :RPM包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题
- 语法:
yum [-y] [install | remove | search] 软件名称
- 选项-y,自动安装,无需手动确认安装或卸载过程
- Install,安装;remove,卸载; search,搜索;
- yum命令需要root权限,而且!yum命令需要联网
- .rpm,Linux系统的常见的软件安装包,类似.exe之于Windows
- ok呀,不小心学习一个windows的截屏快捷键,
win + shift + s
,(乱入~~~~)
实例:使用yum安装wget程序
由于CentOS在2024 年 6 月 30 日停止维护了,同时也移除了相关的软件镜像仓库,导致网站地址访问不了,从而下载不了软件。
- —>所以要想成功使用yum命令安装软件,必须要换源
yum -y install wget
,安装很简单,主要是需要联网而且可以访问源仓库换源步骤: #切换到yum.repos.d目录下 [root@root]# cd /etc/yum.repos.d 查看该目录下的文件,已经没用了,全部删掉 rm -f /etc/yum.repos.d/CentOS-*.repo (选其中一个镜像源) #阿里云的源 [root@192 yum.repos.d]# curl -o /etc/yum.repos.d/Centos-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo #腾讯云的源 [root@192 yum.repos.d]# curl -o /etc/yum.repos.d/epel.repo https://mirrors.cloud.tencent.com/repo/epel-7.repo (后续操作) yum clean all # 清理旧缓存 yum makecache # 生成新缓存 ---->这里有点小问题,通过 强制使用公网阿里云镜像,禁用内网镜像(推荐),再重新生成缓存 yum repolist # 验证仓库列表 yum update # 更新系统(可选) 实在不行问AI,废物~~
扩展:ubuntu下载软件(apt命令)
- Ubuntu系统的软件安装包是
.deb
,下载命令是apt - 语法:
apt [-y] [install | remove | search] 软件名称
,同样需要root权限和联网
- Ubuntu系统的软件安装包是
systemctl
控制软件启动关闭
- Linux系统有很多软件(内置或第三方),均支持使用systemctl 命令控制:启动、停止、开机自启
- 能够被systemctl 管理的软件,一般也称之为:服务
- 语法:
systemctl start | stop | status | enable | disable 服务名
- start,启动
- stop,关闭
- status,查看状态
- enable和disable,开启和关闭开机自启
- 系统内置的服务很多,比如:
- NetworkManager,主网络服务
- network,副网络服务
- firewalld,防火墙服务
- sshd、ssh服务(利用MobaXterm远程登录Linux使用的就是这个服务)
- 部分第三方软件安装后也可以用systemctl 进行控制
- 安装ntp(网络时间协议),注意:ntp在系统注册的名字是ntpd,即服务名是ntpd
- 安装httpd,HTTP Daemon(HTTP守护进程),即运行在后台持续处理HTTP请求的服务程序
- 部分软件安装后没有自动集成到systemctl中,不能使用这个命令,可以手动添加~
软链接
- ln 命令创建软链接
- 在系统中创建软链接,可以把文件/夹链接到其他位置,类似Windows中的快捷方式
- 语法:
ln -s 参数1 参数2
- -s选项,创建软链接(symbolic link)
- 参数:1表示被链接的文件/夹,2表示要链接去的目的地
- 注意:参数必须是确定的指向被链接的文件的路径和要链接去的位置
- eg:
ln -s /etc/yum.conf ~/wjl
—->将文件yum.conf链接到文件夹wjl中,ls一下wjl有yum.conf -> /etc/yum.conf
日期、时区
date命令查看日期时间
- 通过date命令可以在命令行中查看系统的时间
- 语法:
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
->Fri Aug 15 20:08:21 PDT 2025
,默认无参数date +%Y-%m-%d
->2025-08-15
date +"%Y-%m-%d %H-%M-%S"
–>2025-08-15 20-12-54
,由于中间有空格,所以用双引号包围- date命令进行日期加减(-d 选项可以配合格式化字符串使用)
date -d "+1 day"
->Sat Aug 16 20:22:43 PDT 2025
,注意跟上面date比较,加一天
修改Linux系统的时区
- Linux 系统默认时区并非中国的东八区(CST)
- 使用root权限,执行如下命令,修改时区为东八区
rm -f /etc/localtime #删除本地时间的localtime文件 sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #将亚洲上海的时区信息的文件通过软链接给链接到原来的位置
使用ntp进行时间同步和校准
- 可以通过ntp程序实现自动校准系统时间
- 安装ntp:
yum -y install ntp
(在系统注册为ntpd) - 启动并设置开机自启:
systemctl start ntp; systemctl enable ntp
,之后ntp会定期帮助联网校准系统时间 - 手动校准:
ntpdate -u ntp.aliyun.com
,后面是一个ntp服务器,是阿里云提供的时间校准的服务器
IP地址、主机名
- IP地址
- IP地址:每一台联网的电脑都会有一个地址,用于和其他计算机进行通讯
- 通过命令
ifconfig
,查看本机的IP地址,如无法使用该命令,可以安装:yum -y install net-tools
- ens33:物理网卡(连接外部网络)
- lo:本地回环接口(用于本机内部不通信)
- virbr0:虚拟网络接口(网桥),管理虚拟机之间的内部通信,为虚拟机提供NAT网络
- 特殊IP地址:
- 127.0.0.1:指代本机
- 0.0.0.0:可以用于指代本机;可以在端口绑定中用来确定绑定关系;在一些IP地址限制中,表示所有IP,如放行规则设置0.0.0.0,表示允许任何IP访问
- 主机名
- 每一台电脑除了对外联络地址(IP)外,也可以有一个名字,称之为主机名
- Linux中通过命令
hostname
查看主机名 - 可以使用命令
hostnamectl set-hostname 新的主机名
,修改主机名(需要root权限)
- 域名解析(去看计网):主机名和IP地址之间的映射关系
- 通过主机名连接而不是通过IP地址–>配置记录
- 在Windows系统中
C:\windows\System32\drivers\etc\host
文件,通过记事本,以管理员身份打开,在文件末尾新增一行:IP地址 主机名(注意中间有空格)
- 在Windows系统中
- 通过主机名连接而不是通过IP地址–>配置记录
配置Linux固定IP地址
当前虚拟机的Linux操作系统,IP地址是通过DHCP(动态获取IP地址)服务获取的,每次重启设备IP地址都会改变
配置固定IP的2个大步骤:(分为Windows和MAC系统,以Windows为例)(去看黑马程序员教程)
- 在VMware Workstation(或Fusion)中配置IP地址网关和网段(IP地址的范围)
- 虚拟网络编辑器->VMnet8->子网IP:192.168.88.0; 子网掩码:255.255.255.0
- 点击NAT设置,网关:192.168.88.2
- 在Linux系统中手动修改配置文件,固定IP
- sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33,进入文件
- 修改BOOTPROTO=“dhcp"为"static”—>改为静态获取IP地址
- 注意:不要乱改配置文件的内容,不然会很难过~~
- 新增内容:
- IPADDR=“192.168.88.130” —>IP地址
- NETMASK=“255.255.255.0” —>子网掩码固定
- GATEWAY=“192.168.88.2”—>网关和VMware虚拟网络编辑器中设置的一致
- DNS1=“192.168.88.2”—>DNS1设置为网关即可
- 执行 systemctl restart network,重启网关服务(这时我遇到了网关重启不了的问题…)
- 执行ifconfig,查看网络设置是否更改成功
- 注意:将主机C:\Windows\System32\drivers\etc路径下的host文件内容更新
- 在VMware Workstation(或Fusion)中配置IP地址网关和网段(IP地址的范围)
网络请求和下载
ping命令,检查指定的网络服务器是否可以联通
语法:
ping [-c num] ip或主机名
- -c选项,检查的次数,不使用将会无限次数持续检查
书接上回,反正配置固定IP,给我系统干出毛病了, ping
baidu.com
不通,么办法只好快照恢复重新配置过好在最后结果是好的
wget命令,是非交互式的文件下载器,可以在命令行内下载网络文件
- 语法:
wget [-b] url
- 选项-b,可选,后台下载,会将日志写入到当前工作目录的wget-log文件
- 参数url,下载链接
- 链接示例:
wget https://repo.huaweicloud.com/apache/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
–>通过wget 下载Apache Hadoop的安装包
- 通过
tal -f wget-log
,查看下载进度 kill 5049(端口号) 或者 ctrl + c
, 中断下载进度rm -f hadoop-3.3.0.tar.gz
,删除文件
- 语法:
curl命令,可以发送http网络请求,可用于:下载文件,获取信息
- 语法:
curl [-O] url
- 选项-O,用于下载文件,当url是下载链接时,可以使用此选项保存文件;只是发起网络请求不需要-O
- 参数url,要发起请求的网络地址
- 案例:
- 向cip.cc发起网络请求:
curl cip.cc
,cip.cc是一个帮助获取主机的公网IP地址的公开网站 –> 等同在浏览器中打开网址 curl -O https://repo.huaweicloud.com/apache/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
—> 通过curl -O 下载网络文件
- 向cip.cc发起网络请求:
- 语法:
网络传输之端口
端口:设备和外界通讯交流的出入口。端口可以分为:物理端口和虚拟端口两类
物理端口:又称之为接口,是可见的端口,如USB接口,RJ45网口,HDMI端口
虚拟端口:是指计算机内部的端口,是不可见的,是用来操作系统和外部进行交互使用的
通过端口可以锁定计算机上具体的程序
Linux系统可以支持65535个端口,分为3类进行使用:
- 公认端口:1 ~ 1023,通常用于一些系统内置或知名程序的预留使用,如SSH服务的22端口,HTTPS服务的443端口;非特殊必要,不要占用这个范围的端口
- 注册端口:1024 ~ 49151,通常可以随便使用,用于松散的绑定一些程序、服务(用户自定义)
- 动态端口:49152 ~ 65535,通常不会固定绑定程序,而是当程序对外进行网络链接时,用于临时使用(多用于出口)
查看端口占用
可以通过nmap命令去查看端口的占用情况
使用nmap命令,安装:
yum -y install nmap
语法:
nmap 被查看的IP地址
nmap 127.0.0.1
–>使用网络扫描工具Nmap扫描本地回环地址,检测开放的端口和服务
可以通过netstat命令,查看本机指定端口号的占用情况
- 语法:
netstat -anp | grep 端口号
;安装:yum -y install net-tools
- eg:
netstat -anp | grep 6000
–> 查看6000端口号的占用情况 - 注意:netstat已经被淘汰了,
ss
是系统预装的命令,比netstat更好
- 语法:
进程管理
程序运行在操作系统中,是被操作系统所管理的。
为管理运行的程序,每一个程序在运行的时候,便被操作系统注册为系统中的一个:进程,并会为每一个进程都分配一个独有的:进程ID(pid)
- 查看进程,可以通过ps命令查看Linux系统中的进程信息
- 语法:
ps [-e -f]
- 选项-e,显示出全部的进程
- 选项-f,以完全格式化的形式展示信息(展示全部信息)
- 一般来说,固定用法就是:ps -ef 列出全部进程的全部信息
- 输出格式:
UID PID PPID C STIME TTY TIME CMD
luosaier 2165 1746 0 11:49 ? 00:00:00 /usr/libexec/gsd-media-keys
- uid:进程所属用户的id;pid:进程的进程号id;ppid:进程的父id(启动此进程的其他进程)
- c:此进程的cpu占用率;stime:进程的启动时间;tty:启动此进程的终端序号,如显示?,表示非终端启动
- time:进程占用cpu的时间;cmd:进程对应的名称或启动路径或启动命令
- 配合管道符使用进行过滤
ps -ef | grep 30001
–> 过滤带有30001关键字的进程信息(一般指代过滤30001进程号)
- 语法:
- 关闭进程
- 语法:
kill [-9] 进程ID
- 选项-9,表示强制关闭进程。不使用此选项会向进程发送信号要求其关闭,但是否关闭看进程自身的处理机制
kill 123
—>Terminated,表示已经终止,“自我了断”kill -9 123
—>killed,表示强制终止,“他杀”
- 语法:
主机状态
- 查看
系统资源
占用:通过top命令查看cpu、内存使用情况,类似Windows的任务管理器- 默认每5秒刷新一次;语法:直接输入
top
即可,按q 或者ctrl + c 退出 - top输出结果的前五行:第一行是系统相关;第二行是进程相关;第三行是cpu相关;第四、五行是内存相关
- top命令也支持选项:
- -p,只显示某个进程的信息
- -d,设置刷新时间,默认5s
- -c,显示产生进程的完整命令,默认是进程名
- -n,指定刷新次数后退出,如top -n 3 表示刷新输出3此后退出
- -i,不显示任何闲置(idle)或无用(zombie)的进程
- -u,查找特定用户启动的程序
- -b,以非交互非全屏模式运行,以批次的方式执行top,一般配合-n指定输出几次统计信息,将输出重定向到指定文件,比如:top -b -n 3 > /tem/top.tmp
- top的交互式选项(非-b选项启动)
- 按下
h
键,会显示帮助画面 c
,会显示产生进程的完整命令,等同于-cf
,可以选择需要展示的项目M
,根据驻留的内存大小(RES)排序P
,根据cpu使用百分比排序T
,根据时间/累计时间排序E、e、l、t、m
,切换顶部内存显示单位\进程内存显示单位\显示平均负载和启动时间信息\显示CPU状态信息\显示内存信息i
,不显示闲置或无用的进程,等同于-i
- 按下
- 默认每5秒刷新一次;语法:直接输入
磁盘信息
监控:使用df命令,查看硬盘的使用情况- 语法:
df [-h]
- 选项-h,以更加人性化的单位显示
- 可以使用iostat命令查看cpu、磁盘的速率等相关信息
- 语法:
iostat [-x] [num1] [num2]
- 选项-x,显示更多信息
- num1:数字,刷新时间;num2:数字,刷新次数
- 重要参数:
rKB/s
:每秒发送到设备的读取请求数wKB/s
:每秒发送到设备的写入请求数%util
:磁盘利用率
- 语法:
- 语法:
网络状态
监控:可以使用sar命令查看网络的相关统计- 语法:
sar -n DEV num1 num2
- -n,查看网络;DEV表示查看网络接口
- num1、num2同iostat命令
- 重要参数:
rxKB/s
:每秒接受的数据包大小,单位KBtxKB/s
:每秒发送的数据包大小,单位KB
- 语法:
环境变量
环境变量是操作系统在运行的时候,记录的一些关键性信息,用以辅助系统运行。在Linux系统中,执行env
命令即可查看当前系统中记录的环境变量。
环境变量是一种KeyValue型结构,即名称=值 。env | grep PATH
—> PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/luosaier/.local/bi
$
符号:在Linux系统中,该符号被用于取“变量”的值环境变量记录的值,除了给操作系统使用外,如果自己想要取用,也可以使用
取得环境变量的值就可以通过语法:
$环境变量名
来取得eg:
echo $PATH
,就可以获取改变量的值并输出;echo ${PATH}ABC
–>通过{}来标注获取的变量,ABC是其他想要输出的内容,不是环境变量
自行设置环境变量
- Linux环境变量可以由用户自行设置,其中分为
- 临时设置,语法:
export 变量名=变量值
,重启系统后失效 - 永久生效:
- 针对当前用户生效,配置在当前用户的:
~/.bashrc
文件中 - 针对所有用户生效,配置在系统的:
/etc/profile
文件中 - 并通过语法:
source 配置文件
,进行立刻生效,或者重启系统生效
- 针对当前用户生效,配置在当前用户的:
- 临时设置,语法:
- Linux环境变量可以由用户自行设置,其中分为
环境变量PATH会记录一组目录,目录之间用:隔开。这里记录的是目录的搜索路径,当执行命令会从记录中的目录中逐个搜索要执行的命令并执行->可以通过修改这个项目的值,加入自定义的命令的搜索路径
- eg:
export PATH=$PATH:/HOME/luosaier/wjl
,将后面的wjl暂时加入了搜索路径
- eg:
上传、下载
- 第一种方法很简单,就是在传输和被传输的地方拖拽文件进行上传和下载~
- 第二种方法:通过rz、sz命令进行文件的传输
- 通过:
yum -y install lrzsz
安装 rz
命令,进行上传,语法:直接输入rz(从Windows上传到Linux)sz
命令,进行下载,语法:sz 要下载的文件
,文件会自动下载到桌面的:fsdownload
文件夹
- 通过:
- 第一种方法更方便,而且更适合大文件的传输,第二种方法适合小文件的传输~
压缩、解压
Linux系统中常见的压缩格式有.tar
和.gzip
和.zip
。
.tar
,称之为tarball,归档文件,即简单的将文件组装到一个.tar
的文件内,并没有太多文件体积的减少,仅仅是简单的封装.gz
,也常见为.tar.gz
,gzip格式压缩文件,即使用gzip压缩算法将文件压缩到一个文件内,可以极大减少压缩后的体积- 针对这两种格式,使用tar命令均可以进行压缩和解压缩的操作
tar命令
语法:
tar [-c -v -x -f -z -C] 参数1 参数2...参数N
- -c,创建压缩文件,用于压缩模式 !
- -v,显示压缩,解压过程,用于查看进度
- -x,解压模式 !
- -f,要创建的文件或要解压的文件,-f 必须在所有选项中的位置处于最后一个
- -z,gzip模式,不使用-z就是普通的tarball格式,若要使用这个选项,一般处于选项第一个位置
- -C,选择解压的目的地,用于解压模式,该参数单独使用,和解压所需的其他参数分开
Eg:
- 压缩:
tar -zcvf test.tar.gz 1.txt 2.txt 3.txt
–>将123文件压缩到test.tar.gz文件内,使用gzip模式 - 解压:
tar -xvf test.tar
–>解压test.tar,将文件解压至当前目录;tar -xvf test.tar -C /home/wjl
–>解压文件,将文件解压到指定的目录中去
- 压缩:
zip命令压缩文件,可以用zip命令,压缩文件为zip压缩包
- 语法:
zip [-r] 参数1 参数2... 参数N
- -r,被压缩的包含文件夹的时候,需要使用-r选项,和rm、cp等命令的-r效果一致
- Eg:
zip -r test.zip test lele.txt
–>将test文件夹和lele.txt文件,压缩到test.zip文件内
- 语法:
unzip命令解压文件,可以方便的解压缩zip压缩包
- 语法:
unzip [-d] 参数
- -d,指定要解压去的位置,同tar中的-C选项
- 参数,被解压的zip压缩包文件
- 注意:解压的时候有同名文件会默认直接替换
- Eg:
unzip test.zip -d /home/wjl
–>解压test.zip文件到指定目录下
- 语法:
实战部分(见黑马程序员章节5,暂时先告一段落,等有空再看吧~~)
实战部分的操作文档在Linux系统软件安装,注意:实战只是涉及linux系统命令的使用,不含安装的软件的使用只是对linux系统的熟练操作