学习视频:黑马程序员新版Linux零基础快速入门到精通,全涵盖linux系统知识、常用软件环境部署、Shell脚本、云平台实践、大数据集群项目实战等
ls命令
可以指定要查看的文件夹(目录)的内容,如果不给定参数,就查看当前工作目录的内容
ls [-a -l -h]
-a 选项,可选,可以展示出隐藏的内容
以.开头的文件或文件夹默认被隐藏,需要-a才能显示出来
-l 选项,可选,以列表的形式展示内容,并展示更多细节
-h 选项,可选,需要和-l选项搭配使用,以更加人性化的方式显示文件的大小单位
命令的选项是可以组合使用的,比如:ls -lah
,等同于ls -l -a -h
cd命令
(Change Directory)
可以用来切换当前工作目录
cd Linux路径
pwd命令
(Print Work Directory)
输出当前所在工作目录
touch命令
用于创建一个新的文件
touch Linux路径
参数必填,表示要创建的文件的路径,相对,绝对,特殊路径都可以使用
更多用法:https://blog.csdn.net/qq_74137843/article/details/136820705
cat命令
用于查看文件内容
cat Linux路径
参数必填,表示要查看的文件的路径,相对,绝对,特殊路径都可以使用
more命令
用于查看文件内容,可翻页查看
more linux路径
参数必填,表示要查看的文件的路径,相对,绝对,特殊路径都可以使用
使用空格进行翻页,使用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 选项,可选,文件夹删除
-f 选项,可选,用于强制删除(不提示,一般用于root用户)
参数,表示被删除的文件或文件夹路径,支持多个,空格隔开
参数也支持通配符*,用作模糊匹配
需要root,作用是删除根目录下所有文件,不可恢复,虚拟机将完全损坏,执行前建议创建虚拟机快照
rm -rf /*
which命令
查找命令的程序文件
which 要查找的命令
无需选项,只要参数表示查找那个命令
find命令
用于查找指定文件
按文件名查找
find 起始路径 -name "被查找文件名"
支持通配符
按文件大小查找
find 起始路径 -size +|-n[k/M/G]
+、-表示大于和小于
n表示大小数字
k/M/G表示大小单位,k(小写字母)表示kb,M表示MB,G表示GB
grep命令
从文件中通过关键词过滤文件行
grep -n 关键字 文件路径
-n 选项,可选,表示在结果中显示匹配的行的行号
参数,关键字,必填,表示过滤的关键字,建议使用""将关键字包围起来
参数,文件路径,必填,表示要过滤内容的文件路径,可作为管道符"|"的输入
wc命令
命令统计文件的行数、单词数量、字节数、字符数等
wc [-c -m -l -w] 文件路径
不带选项默认统计:行数、单词数、字节数
-c 字节数、-m 字符数、-l 行数、-w 单词数
参数,被统计的文件路径,可作为管道符的输入
管道符 |
将管道符左边命令的结果,作为右边命令的输入
https://blog.csdn.net/qq_43768851/article/details/124380356
echo命令
可以使用echo命令在命令行内输出指定内容
echo 输出的内容
无需选项只有一个参数,表示要输出的内容,复杂内容可以用””包围
反引号符 `
被包围的内容,会被作为命令执行,而非普通字符
例如:
echo pwd
输出的是pwd三个字符
而
echo `pwd`
输出的是执行pwd命令输出的内容
重定向符 >
>,将左侧命令的结果,覆盖写入到符号右侧指定文件中
>>,将左侧命令的结果,追加写入到符号右侧指定文件中
例如:
ls > test.txt
tail命令
查看文件尾部内容,并可以持续跟踪
tail [-f -num] Linux路径
-f 持续跟踪
-num 启动的时候查看尾部多少行,默认10
例如:tail -20 test.txt
Linux路径,表示被查看的文件
vi编辑器
vi\vim编辑器,就是命令模式下的文本编辑器,用来编辑文件
vim是vi的升级版,一般用于vim即可,包含全部vi功能
vi 文件路径
vim 文件路径
命令模式,默认的模式,可以通过键盘快捷键控制文件内容
输入模式,通过命令模式进入,可以输入内容进行编辑,按esc退回命令模式
底线命令模式,通过命令模式进入,可以对文件进行保存、关闭等操作
模式 | 命令 | 描述 |
---|---|---|
命令模式 | i |
在当前光标位置进入输入模式 |
命令模式 | a |
在当前光标位置 之后 进入输入模式 |
命令模式 | I (大写i ) |
在当前行的开头,进入输入模式 |
命令模式 | A |
在当前行的结尾,进入输入模式 |
命令模式 | o |
在当前光标的下一行进入输入模式 |
命令模式 | O (大写o ) |
在当前光标的上一行进入输入模式 |
输入模式 | Esc |
任何情况下按Esc 键都能回到命令模式 |
命令模式 | 键盘上、键盘k 键 |
向上移动光标 |
命令模式 | 键盘下、键盘j 键 |
向下移动光标 |
命令模式 | 键盘左、键盘h 键 |
向左移动光标 |
命令模式 | 键盘右、键盘l 键 |
向右移动光标 |
命令模式 | 数字0 |
移动光标到当前行的开头 |
命令模式 | $ |
移动光标到当前行的结尾 |
命令模式 | pageup(PgUp ) |
向上翻页 |
命令模式 | pangdown(PgDn ) |
向下翻页 |
命令模式 | / |
进入搜索模式 |
命令模式 | n |
向上继续搜索 |
命令模式 | N |
向上继续搜索 |
命令模式 | 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 |
设置粘贴模式 |
su命令
可以切换用户
su - 用户名
- 表示切换后加载环境变量,建议带上
用户名可以省略,省略默认切换到root
exit命令
退出当前登录的用户
sudo命令
可以让一条普通命令带有root权限
sudo 其他命令
执行sudo
命令之前需要以root用户执行visudo
命令,会自动通过vi编辑器打开/etc/sudoers,在文件的末尾添加你的用户名 ALL=(ALL) NOPASSWD:ALL
后方可让普通用户有sudo
命令的权限,NOPASSWD
表示执行sudo
命令时不需要输入密码,若需要输密码就将NOPASSWD:
删除
用户、用户组相关管理命令
groupadd
添加组、groupdel
删除组
groupadd 用户组名
groupdel 用户组名
useradd
添加用户、userdel
删除用户
useradd [-g -d] 用户名
-g 选项,可选,指定用户的组,如果不指定,会创建同名组并自动加入,指定-g需要组已经存在,如以存在同名组,必须使用-g
-d 选项,可选,指定用户HOME路径,如果不指定,HOME目录默认在:/home/用户名
例如:
useradd test1 -g group1 -d /home/test
userdel -r 用户名
-r 选项,可选,删除用户的HOME路径,如果不指定,HOME目录不会删除(HOME目录默认在:/home/用户名)
usermod
修改用户组、id
命令查看用户信息
usermod -aG 用户组 用户名
将指定用户加入指定用户组
id 用户名
参数,用户名,被查看的用户,如果不指定用户名则查看当前登录用户
getent passwd
查看系统全部用户信息
共有7份信息,分别是:
用户名:密码(显示为x):用户ID:组ID:描述信息(空):HOME目录:执行终端(默认bash)
getent group
查看系统全部组信息
包含3份信息,分别是:
组名称:组认证(显示为x):组ID:
查看权限控制信息
ls -l
列出权限信息
1 表示文件、文件夹的权限控制信息
2 表示文件、文件夹所属用户
3 表示文件、文件夹所属用户组
文件类型 | 所属用户权限 | 所属用户组权限 | 其他用户权限 |
---|---|---|---|
- 或d 或l |
r 或- w 或- x 或- |
r 或- w 或- x 或- |
r 或- w 或- x 或- |
文件类型:
- 表示文件
d 表示文件夹
l 表示软连接
权限:
r 表示读权限
w 表示写权限
x 表示执行权限
- 表示无权限
chmod命令
功能:修改文件、文件夹的权限细节
限制:只能是文件、文件夹的所属用户或root用户可以修改
语法:
chmod -R 权限 文件或文件夹
-R 选项,可选,对文件夹内的全部内容应用同样规则
权限 | 数字 |
---|---|
r | 4 |
w | 2 |
x | 1 |
chmod 640 text.txt
# 分析
- 6 = 4 + 2 + 0 表示所有者具有 rw 权限
- 4 = 4 + 0 + 0 表示群组用户具有 r 权限
- 0 = 0 + 0 + 0 表示其它用户没有权限
对应文字权限为:-rw-r-----
chown命令
功能:修改文件、文件夹的所属用户
限制:只可root用户执行
语法:
chown -R 用户:用户组 文件或文件夹
-R 选项,可选,同chmod,对文件夹内的全部内容应用同样规则
: 用于分割用户和用户组
各类小技巧快捷键
快捷键 | 作用 |
---|---|
Tab |
输入命令时按Tab 键自动补全代码 |
ctrl + c |
强制停止 |
ctrl + d |
退出当前用户登录 |
history |
查看历史命令 |
! |
命令前缀,输入命令关键词,自下而上匹配history 命令中的命令,或输入history 命令中历史命令的序号 |
ctrl + r |
搜索历史命令 |
ctrl + a /e |
光标移动到开始或结束 |
ctrl + ← /→ |
光标左右跳单词 |
ctrl + l 或clear 命令 |
清屏 |
yum软件安装
在CentOS系统中,使用yum命令联网管理软件安装,需要root权限
yum语法:
yum -y [install | remove | search] 软件名称
-y 选项,可选,表示安装过程中自动同意
install 参数,表示安装软件
remove 参数,表示卸载软件
search 参数,表示查找软件
在Ubuntu系统中,使用apt命令联网管理软件安装
yum -y [install | remove | search] 软件名称
与yum命令相同
systemctl命令
功能:可以控制软件(服务)的启动、关闭、开机启动
- 系统内置服务均可被
systemctl
控制 - 第三方软件,如果自动注册了也可以被
systemctl
控制 - 第三方软件,如果没有自动注册,可以手动注册(后续学习)
语法:
systemctl [start | stop | restart | status | enable | disable] 服务名
start 开启服务
stop 停止服务
restart 重启服务
status 查看服务状态
enable 将服务设置为开机自启动
disable 关闭服务开机自启动
软连接
可以将文件、文件夹链接到其他位置
链接只是一个指向,并不是物理移动,类似Windows系统的快捷方式
语法:
ln -s 参数1 参数2
-s 选项,创建软连接
参数1:被链接的文件或文件夹
参数2:要链接去的目的地
Windows使用软连接:Windows创建软链接
date命令
功能:date命令可以查看日期和时间,并可以格式化显示形式以及做日期计算
语法:
date -d "+格式化字符串"
-d 可选,选项,按照给定的字符串显示日期,一般用于日期计算
date -d "+1 year" "+%Y%m%d" 显示后一年的日期
date -d "-2 day" "+%Y%m%d" 显示前两天的日期
支持的时间标记:
year 年
month 月
day 天
hour 小时
minute 分钟
second 秒
格式化字符串:
%Y 年
%y 年份后两位数字(2024年取24)(范围00-99)
%m 月份(范围01-12)
%d 日(范围01-31)
%H 小时(范围01-23)
%M 分钟(范围00-59)
%S 秒(范围00-59)
%s 自1970-01-01 00:00:00 UTC 到现在的秒数
例:
使用root权限,执行如下命令,修改时区为东八时区
rm -f /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
说明:将自带的localtime文件删除,并将/usr/share/zoneinfo/Asia/Shanghai文件链接为localtime文件即可
安装chrony:
yum -y install chrony
启动并设置开机自启:
systemctl start chronyd
systemctl enable chronyd
也可以手动同步时间:
chronyc makestep
更多说明:Linux服务器时间同步chrony详解+案例-CSDN博客
IP地址和主机名
IP地址是联网计算机的网络地址,用于在网络中进行定位
格式是a.b.c.d,其中abcd都是0~255的数字
特殊IP有:127.0.0.1,本地回环IP,表示本机
0.0.0.0:也可以表示本机,也可以在一些白名单中表示任意IP
命令:
ifconfig
Windows使用ipconfig
命令查看
主机名就是主机的名称,用于表示一个计算机
查看主机名:
hostname
修改主机名(需root,修改后重新登录即可查看):
hostnamectl set-hostname 主机名
可以通过主机名找到对应计算机的IP地址,这就是主机名映射(域名解析)
先通过系统本地的记录去查找,如果找不到就联网去公开DNS服务器去查找
为了方便记忆,可以修改Windows的hosts文件来设置本地域名解析
方法:以管理员身份打开计算机中C:\Windows\System32\drivers\etc
目录下的hosts
文件,在文件末尾添加IP和对应的自定义主机名
这样在连接Linux的时候可以用主机名来代替IP
虚拟机配置Linux固定IP
连接ssh的IP在电脑重启后可能会改变,可以设置成固定IP
首先将虚拟机关机,虚拟机主页选项栏中点击
编辑
-虚拟网络编辑器
在弹出的窗口中点击右下角的
更改设置
然后编辑
子网IP
为192.168.88.0
(其中的88
可自定义,范围0-255
,后续步骤都会使用88
),子网掩码
为255.255.255.0
,点击应用选择
NAT设置
,在弹出的窗口中设置网关IP
为192.168.88.2
,点击确定
,确定
将虚拟机开机,打开虚拟机的终端,切换到root用户,执行
nmcli connection show
查看DEVICE选项下前缀为ens的名称,后面的数字可能不一样,记住这个名称
执行
vim /etc/sysconfig/network-scripts/ifcfg-上一步记住的名称 例: vim /etc/sysconfig/network-scripts/ifcfg-ens160
复制下面内容到上一步打开的文件里面
NAME="随意名称" DEVICE="第5步记住的名称" BOOTPROTO="static" ONBOOT="yes" IPADDR="192.168.88.130(其中的88与第3步一样,130可自定义,范围0-255)" NETMASK="255.255.255.0" GATEWAY="192.168.88.2(其中的88与第3步一样)" DNS1="192.168.88.2(其中的88与第3步一样)"
重启虚拟机
reboot
查看是否生效
nmcli connection show
看绿色的一行,NAME
与第7步中的NAME
相同就表示生效了,后续使用ssh连接IP都不会改变
也可以输入ifconfig
命令查看IP地址是否是自定义的IP地址
网络请求和下载
语法:
ping -c num IP或主机名
-c num 测试次数,可选,num:测试的次数数字
例:ping -c 10 127.0.0.1
语法:
wget -b url
-b 选项,可选,表示后台下载
url是下载文件的链接
可以发送http网络请求,可用于下载文件、获取信息等
curl -O url
-O 可选,大写字母o,用于下载文件,当url是链接时,可使用此选项保存文件
url表示要发起请求的网络地址
端口
端口是指计算机和外部交互的出入口,可以分为物理端口和虚拟端口
- 物理端口:USB、HDMI、DP、VGA、RG45等
- 虚拟端口:操作系统和外部交互的出入口
IP只能确定计算机,通过端口才能锁定要交互的程序
公认端口:1~ 1023,用于系统内置或常用知名软件绑定使用
注册端口:1024~49151,用于松散绑定使用(用户自定义)
动态端口:49152~65535,用于临时使用(多用于出口)
安装nmap
yum -y install nmap
查看指定IP对外暴露端口
nmap IP地址
安装netstat
yum -y install net-tools
查看本机指定端口号的占用情况
netstat -anp|grep 端口号
关闭指定PID(进程号)的进程
kill -9 PID
-9 选项,可选,表示强制停止
进程管理
进程是指程序在操作系统内运行后被注册为系统内的一个进程,并拥有独立的进程ID(进行号)
查看进程信息
ps -ef
-e 选项,可选,显示出全部的进程
-f 选项,可选,以完全格式化的形式展示信息(展示全部信息)
一般来说,固定用法就是:ps -ef列出全部进程的全部信息
从左到右分别是:
UID 进程所属的用户ID
PID 进程的进程号
PPID 进程的父ID(启动此进程的其它进程)
C 此进程的CPU占用率(百分比)
STIME 进程的启动时间
TTY 启动此进程的终端序号,如显示?,表示非终端启动
TIME 进程占用CPU的时间
CMD 进程对应的名称或启动路径或启动命令
过滤指定关键词进程信息
ps -ef|grep 关键字
关闭指定PID(进程号)的进程
kill -9 PID
-9 选项,可选,表示强制停止
主机状态监控
类似Windows任务管理器
查看CPU、内存、进程的信息
df -h
-h 选项,可选,以更加人性化的单位显示
查看磁盘使用率
查看磁盘速率
查看网络情况
环境变量
- 什么是环境变量?
环境变量是一组信息记录,类型是KeyValue型(名称=值),用于操作系统运行的时候记录关键信息
通过env命令可以查看当前系统配置的环境变量信息
通过$符号,可以取出环境变量的值
什么是PATH,作用是?
环境变量PATH会记录一组目录,目录之间用
:
隔开。这里记录的是命令的搜索路径,当执行命令会从记录中记录的目录挨个搜索要执行的命令并执行。
可以通过修改这个项目的值,加入自定义的命令搜索路径
如:
export PATH=$PATH:自定义路径
如何修改环境变量?
临时生效:export 名称=值 永久生效: 针对用户:~/.bashrc 文件中添加配置:export 名称=值 针对全部用户:/etc/profile 文件中添加配置:同上 配置完成后,可以通过 source 配置文件 命令立即生效
!注意
修改PATH变量添加
export 名称=值
中的值时需要在=
后面加上$PATH:
表示追加命令,否则将覆盖PATH变量
Linux文件的上传和下载
使用Windows
FinalShell
软件对Linux系统进行上传和下载操作上传:将文件拖进软件下方文件窗口或右击下方文件窗口内点击上传
下载:右击下方文件窗口内的文件点击下载
rz
、sz
命令通过
yum -y install lrzsz
可以安装此命令rz
进行文件上传sz
进行文件下载
压缩和解压
Linux系统常用的压缩格式有:
tar格式,归档文件,简单的将文件整合到一个文件内,无压缩效果
gzip格式,gzip压缩文件,不仅能整合到一个文件中,同时有体积压缩效果
tar命令
tar [-z -x -v -c -f -C] 参数1 参数2 ... 参数N -c 可选,创建压缩文件 -v 可选,查看压缩\解压过程 -x 可选,解压模式 -f 可选,指定压缩\解压的文件,在选项组内必须在尾部 -z 可选,gzip模式,在选项组内建议在开头 -C 可选,指定解压的路径,单独使用 例如: 压缩:tar -zcvf test.tar.gz test1.txt test2.txt -C /home/test 解压:tar -xvf test.tar.gz
zip命令
zip -r 参数1 参数2 ... 参数N -r 可选,压缩文件夹使用,和rm、cp等命令的-r效果一致 例: zip -r test.zip test test3.txt test4.txt
unzip命令
unzip -d 参数 -d 可选,指定解压去的目录,不指定默认当前目录 例: unzip -d /home/centos test.zip 或 unzip test.zip -d /home/centos