文章目录
Linux 基础命令
Linux 的目录结构
/
,根目录是最顶级的目录了- Linux 只有一个顶级目录:
/
- 路径描述的层次关系同样适用
/
来表示 - /home/itheima/a.txt,表示根目录下的 home 文件夹内有 itheima 文件夹,内有 a.txt
ls 命令
功能:列出文件夹信息
语法:ls [-l -h -a] [参数]
- 参数:被查看的文件夹,不提供参数,表示查看当前工作目录
- -l,以列表形式查看
- -h,配合-l,以更加人性化的方式显示文件大小
- -a,显示全部文件(包含隐藏文件)
隐藏文件、文件夹
在 Linux 中以.
开头的,均是隐藏的。
默认不显示出来,需要-a
选项才可查看到。
pwd 命令
功能:展示当前工作目录
语法:pwd
print work directory
cd 命令
功能:切换工作目录
语法:cd [目标目录]
参数:目标目录,要切换去的地方,不提供默认切换到当前登录用户HOME目录
HOME 目录
每一个用户在 Linux 系统中都有自己的专属工作目录,称之为 HOME 目录。
-
普通用户的 HOME 目录,默认在:
/home/用户名
-
root 用户的 HOME 目录,在:
/root
FinalShell 登陆终端后,默认的工作目录就是用户的 HOME 目录
相对路径、绝对路径
-
相对路径,非
/
开头的称之为相对路径相对路径表示以
当前目录
作为起点,去描述路径,如test/a.txt
,表示当前工作目录内的 test 文件夹内的 a.txt 文件 -
绝对路径,以
/
开头的称之为绝对路径绝对路径从
根
开始描述路径
特殊路径符
.
,表示当前,比如./a.txt,表示当前文件夹内的a.txt
文件..
,表示上级目录,比如../
表示上级目录,../../
表示上级的上级目录~
,表示用户的 HOME 目录,比如cd ~
,即可切回用户 HOME 目录
mkdir 命令
功能:创建文件夹
语法:mkdir [-p] 参数
- 参数:被创建文件夹的路径
- 选项:-p,可选,表示创建前置路径
touch 命令
功能:创建文件
语法:touch 参数
- 参数:被创建的文件路径
cat 命令
功能:查看文件内容
语法:cat 参数
- 参数:被查看的文件路径
more 命令
功能:查看文件,可以支持翻页查看
语法:more 参数
- 参数:被查看的文件路径
- 在查看过程中:
空格
键翻页b
向上翻页q
退出查看
cp 命令
功能:复制文件、文件夹
语法:cp [-r] 参数1 参数2
- 参数 1,被复制的
- 参数 2,要复制去的地方
- 选项:-r,可选,复制文件夹使用
示例:
- cp a.txt b.txt,复制当前目录下 a.txt 为 b.txt
- cp a.txt test/,复制当前目录 a.txt 到 test 文件夹内
- cp -r test test2,复制文件夹 test 到当前文件夹内为 test2 存在
mv 命令
功能:移动文件、文件夹
语法:mv 参数1 参数2
- 参数 1:被移动的
- 参数 2:要移动去的地方,参数 2 如果不存在,则会进行改名
rm 命令
功能:删除文件、文件夹
语法:rm [-r -f] 参数...参数
- 参数:支持多个,每一个表示被删除的,空格进行分隔
- 选项:-r,删除文件夹使用
- 选项:-f,强制删除,不会给出确认提示,一般 root 用户会用到
rm 命令很危险,一定要注意,特别是切换到 root 用户的时候。
which 命令
功能:查看命令的程序本体文件路径
语法:which 参数
- 参数:被查看的命令
find 命令
功能:搜索文件
语法 1:按文件名搜索:find 路径 -name "被查找文件名"
- 路径,搜索的起始路径
- 参数,搜索的关键字,支持通配符*, 比如:
*test
表示搜索任意以 test 结尾的文件
语法 2:按文件大小搜索: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 a.txt | grep itheima
,将 cat a.txt 的结果,作为 grep 命令的输入,用来过滤itheima
关键字
可以支持嵌套:
cat a.txt | grep itheima | grep itcast
echo 命令
功能:输出内容
语法:echo 参数
- 参数:被输出的内容
反引号
功能:被两个反引号包围的内容,会作为命令执行
示例:
- echo `pwd`,会输出当前工作目录
tail 命令
功能:查看文件尾部内容
语法:tail [-f]/[-num] 参数
- 参数:被查看的文件
- 选项:-f,持续跟踪文件修改
- 选项:-num,表示查看末尾多少行,不写默认是 10 行
- 注意:
-f
和-num
不能一起使用
head 命令
功能:查看文件头部内容
语法:head [-n] 参数
- 参数:被查看的文件
- 选项:-n,查看的行数
重定向符
功能:将符号左边的结果,输出到右边指定的文件中去
>
,表示覆盖输出>>
,表示追加输出
vi/vim 编辑器
vim 是 vi 的加强版,建议使用 vim
三种模式
命令模式快捷键
底线命令快捷键
命令的选项
我们学习的一系列 Linux 命令,它们所拥有的选项都是非常多的。
比如,简单的 ls 命令就有:-a -A -b -c -C -d -D -f -F -g -G -h -H -i -I -k -l -L -m -n -N -o -p -q -Q -r-R -s -S -t -T -u -U -v -w -x -X -1 等选项,可以发现选项是极其多的。
课程中, 并不会将全部的选项都进行讲解,否则,一个 ls 命令就可能讲解 2 小时之久。
课程中,会对常见的选项进行讲解, 足够满足绝大多数的学习、工作场景。
查看命令的帮助
可以通过:命令 --help
查看命令的帮助手册
查看命令的详细手册
可以通过:man 命令
查看某命令的详细手册
Linux 常用操作
快捷键
-
强行停止:
Ctrl+C
-
退出或登出:
Ctrl+D
-
查看历史命令:
history
主要作用复制粘贴之前输入过的命令,可搭配管道符和 grep 来过滤使用。
-
history 中从下往上匹配开头执行:
!命令前缀
用完 history 后,再使用
!命令前缀
从下往上搜索对应开头前缀的命令,来自动执行。 -
history 中匹配历史命令:
Ctrl+R
用完 history 后,如果想要查找的命令比较久远,可以使用
Ctrl+R
打开匹配输入模式,根据你输入的内容去做匹配,找到历史命令。 -
光标移动快捷键
- 跳到命令开头:
Ctrl+A
- 跳到命令结尾:
Ctrl+E
- 向左跳一个单词:
Ctrl + ←
- 向右跳一个单词:
Ctrl + →
- 跳到命令开头:
-
清屏:
Ctrl+L
也可以使用 clear 命令来执行
软件安装
-
CentOS 系统使用:
yum [install remove search] [-y] 软件名称
- install 安装
- remove 卸载
- search 搜索
- -y,自动确认
-
Ubuntu 系统使用
apt [install remove search] [-y] 软件名称
- install 安装
- remove 卸载
- search 搜索
- -y,自动确认
yum 和 apt 均需要 root 权限
systemctl
功能:控制系统服务的启动关闭等
语法:systemctl start | stop | restart | disable | enable | status 服务名
- 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 到现在的秒数
示例:
-
按照 2022-01-01 的格式显示日期
-
按照 2022-01-01 10:00:00 的格式显示日期
-
-d 选项日期计算
-
支持的时间标记为:
-
时区
修改时区为中国时区
ntp
功能:同步时间
安装:yum install -y ntp
启动管理:systemctl start | stop | restart | status | disable | enable ntpd
手动校准时间:ntpdate -u ntp.aliyun.com
ip 地址
格式:a.b.c.d
- abcd 为 0~255 的数字
特殊 IP:
-
127.0.0.1,表示本机
-
0.0.0.0
- 可以表示本机
- 也可以表示任意 IP(看使用场景)
查看 ip:ifconfig
主机名
功能:Linux 系统的名称
查看:hostname
设置:hostnamectl set-hostname 主机名
域名解析
注意,是先在本地找,找不到才联网去 DNS 服务器询问,我们可以通过更改本地文件的 hosts 文件来达到更改本地 ip 的效果。
配置 VMware 固定 IP
为什么需要固定 IP
当前我们虚拟机的 Linux 操作系统,其 IP 地址是通过 DHCP 服务获取的。
DHCP:动态获取 IP 地址,即每次重启设备后都会获取一次,可能导致 IP 地址频繁变更
原因 1:办公电脑 IP 地址变化无所谓,但是我们要远程连接到 Linux 系统,如果 IP 地址经常变化我们就要频繁修改适配很麻烦
原因 2:在刚刚我们配置了虚拟机 IP 地址和主机名的映射,如果 IP 频繁更改,我们也需要频繁更新映射关系
综上所述,我们需要 IP 地址固定下来,不要变化了。
在 VMware Workstation 中配置固定 IP 操作步骤
配置固定 IP 需要 2 个大步骤:
-
在 VMware Workstation(或 Fusion)中配置 IP 地址网关和网段(IP 地址的范围)
-
在 Linux 系统中手动修改配置文件,固定 IP
修改文件:
/etc/sysconfig/network-scripts/ifcfg-ens33
示例文件内容:
TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="static" # 改为static,固定IP DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="ens33" UUID="1b0011cb-0d2e-4eaa-8a11-af7d50ebc876" DEVICE="ens33" ONBOOT="yes" IPADDR="192.168.88.131" # IP地址,自己设置,要匹配网络范围 NETMASK="255.255.255.0" # 子网掩码,固定写法255.255.255.0 GATEWAY="192.168.88.2" # 网关,要和VMware中配置的一致 DNS1="192.168.88.2" # DNS1服务器,和网关一致即可
-
执行:systemctl restart network 重启网卡,执行 ifconfig 即可看到 ip 地址固定为 192.168.88.130 了
进程
ps 命令
功能:查看进程信息
语法:ps -ef
,查看全部进程信息,可以搭配 grep 做过滤:ps -ef | grep xxx
kill 命令
端口
nmap 命令
功能:查看端口占用情况
用法:nmap 被查看的ip地址
netstat 命令
功能:查看端口占用
需要安装:yum -y install net-tools
用法:netstat -anp | grep xxx
ping 命令
测试网络是否联通
语法:ping [-c num] 参数
wget 命令
wget http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
curl 命令
系统监控
下面介绍主机状态监控对应的命令行操作。
top 命令
功能:查看主机运行状态。
可以通过 top 命令查看 CPU、内存使用情况,类似 Windows 的任务管理器
语法:top
,查看基础信息
top 命令内容详解:
可用选项:
交互式模式中,可用快捷键:
df 命令
查看磁盘占用
iostat 命令
查看 CPU、磁盘的相关信息
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r5UMs16A-1684635037679)(null)]
sar 命令
查看网络统计
环境变量
- 临时设置:export 变量名=变量值
- 永久设置:
- 针对用户,设置用户 HOME 目录内:
.bashrc
文件 - 针对全局,设置
/etc/profile
- 针对用户,设置用户 HOME 目录内:
PATH 变量
记录了执行程序的搜索路径
可以将自定义路径加入 PATH 内,实现自定义命令在任意地方均可执行的效果
注意更改 PATH 变量的格式问题!
-
打开
/etc/profile
文件 -
在 profile 文件中最后一行添加:
这样就完成了自定义 PATH 路径。
$ 符号
可以取出指定的环境变量的值
语法:$ 变量名
示例:
echo $PATH
,输出 PATH 环境变量的值
echo ${PATH}ABC
,输出 PATH 环境变量的值以及 ABC
如果变量名和其它内容混淆在一起,可以使用${}
压缩解压
Linux 和 Mac 系统常用有 2 种压缩格式,后缀名分别是:tar 和 gz
.tar
,称之为 tarball,归档文件,即简单的将文件组装到一个.tar 的文件内,并没有太多文件体积的减少,仅仅是简单的封装.gz
,也常见为.tar.gz,gzip 格式压缩文件,即使用 gzip 压缩算法将文件压缩到一个文件内,可以极大的减少压缩后的体积
针对这两种格式,使用 tar 命令均可以进行压缩和解压缩的操作
tar 命令
语法:tar [-c -v -x -f -z -C] 参数1 参数2 参数3 ... 参数N
-c
,创建压缩文件,用于压缩模式。-v
,显示压缩、解压过程。用于查看进度,相当于给你一个进度条-x
,解压模式。-f
,要创建的文件,或要解压的文件。-f 选项必须在所有选项中位置处于最后一个-z
,gzip 模式。不使用-z 就是普通的 tarball 格式-C
,选择解压的目的地。用于解压模式
压缩
tar 压缩
tar -cvf 压缩包文件名称.tar 被压缩1...被压缩2...被压缩N
tar -zcvf 压缩包文件名称.tar.gz 被压缩1...被压缩2...被压缩N
zip 压缩
zip [-r] 参数1 参数2 参数N
解压
tar 解压
tar -zxvf 被解压的文件 -C 要解压去的地方
- -z 表示使用 gzip,可以省略
- -C,可以省略,指定要解压去的地方,不写解压到当前目录
zip 解压
unzip [-d] 参数