09Linux基础命令
Linux命令相关介绍
1. 目录结构
Linux的目录结构是一个树型结构
Windows 系统可以拥有多个盘符, 如 C盘、D盘、E盘
Linux没有盘符这个概念, 只有一个根目录 /
, 所有文件都在它下面
winsows系统目录结构:
Linux系统目录结构
2. Linux路径的描述方式
在Linux系统中,路径之间的层级关系,使用 /
来表示
在Windows系统中,路径之间的层级关系,使用 \
来表示
Windows系统路径表示
D: 表示D盘
\ 表示层级关系
路径藐视: D:\data\work\hello.txt
Linux系统路径表示
开头的/
表示根目录
后面的/
表示层级关系
路径描述: /user/local/hello.txt
3. 命令和命令行
命令:即Linux操作指令,是系统内置的程序,可以以字符化的形式去使用
命令行:即Linux终端,可以提供字符化的操作页面供命令执行
4. Linux命令基础格式
Linux命令通用格式
command
: 命令本身
-options
:[可选,非必填]命令的一些选项,可以通过选项控制命令的行为细节
parameter
:[可选,非必填]命令的参数,多数用于命令的指向目标等
5. HOME目录和当前工作目录
Linux系统的命令行终端,在启动的时候,默认会加载:
当前登录用户的HOME目录作为当前工作目录,所以ls命令列出的是HOME目录的内容
HOME目录:HOME目录指:用户在系统内的专属目录。每个Linux操作用户在Linux系统的个人账户目录,路径在:/home/用户名
相对路径和绝对路径
绝对路径:
以根目录为起点,描述路径的一种写法,路径描述以/
开头
相对路径:
以当前目录为起点,描述路径的一种写法,路径描述无需以/开头
特殊路径符
.
表示当前目录,比如 cd ./Desktop 表示切换到当前目录下的Desktop目录内,和cd Desktop效果一致
..
表示上一级目录,比如:cd .. 即可切换到上一级目录,cd ../.. 切换到上二级的目录
~
表示HOME目录,比如:cd ~ 即可切换到HOME目录或cd ~/Desktop,切换到HOME内的Desktop目录
1. ls 列出目录下的内容
ls命令的作用是 列出目录下的内容**
参数说明
-a -l -h 是可选的选项
Linux路径是此命令可选的参数
-a选项
表示:all的意思,即列出全部文件(包含隐藏的文件/文件夹)
-l选项
表示:以列表(竖向排列)的形式展示内容,并展示更多信息
-h选项
表示以易于阅读的形式,列出文件大小,如K、M、G
-h选项必须要搭配 -l 一起使用 :
ls -lh /
使用
当不使用选项和参数,直接使用ls命令本体,表示:以平铺形式,列出当前工作目录下的内容
当使用参数,ls命令的参数表示:指定一个Linux路径,列出指定路径的内容
ls /
表示列出了根目录的内容
组合使用:比如-a和-l可以组合应用如下
ls -l -a
ls -la
ls -al
2. cd 切换工作目录
当Linux终端(命令行)打开的时候,会默认以用户的HOME目录作为当前的工作目录
我们可以通过cd命令,更改当前所在的工作目录
语法
参数说明
cd命令无需选项,只有参数,表示要切换到哪个目录下
cd命令直接执行,不写参数,表示回到用户的HOME目录
3. pwd 查看当前工作目录
通过pwd命令,可以查看当前所在的工作目录,无选项、无参数
4. mkdir 创建新目录或新文件夹
语法
-p
选项可选,表示自动创建不存在的父目录,适用于创建连续多层级的目录
参数必填,表示Linux路径,即要创建的文件夹的路径,相对路径或绝对路径或特殊字符均可
在test目录下面创建mm目录
mkdir test/mm
如果想要一次性创建多个层级的目录,就必须添加 -p
选项
mkdir mm/nn/test
注意:
创建文件夹需要修改权限,要确保操作均在HOME目录内,不可以在HOME外操作
5. 文件操作命令
touch 创建文件
参数必填,表示要创建的文件路径,相对、绝对、特殊路径符均可以使用
touch Linux路径
cat 查看文件内容
必填参数,参数表示:被查看的文件路径,相对、绝对、特殊路径符都可以使用
cat Linux路径
more 查看文件内容
more命令同样可以查看文件内容,同cat不同的是:
cat是直接将内容全部显示出来
more支持翻页,如果文件内容过多,可以一页页的展示
在查看的过程中,通过空格翻页,通过q退出查看
必填参数,参数表示:被查看的文件路径,相对、绝对、特殊路径符都可以使用
more Linux路径
例如:more /etc/services
cp 复制文件文件夹
-r选项,可选,用于复制文件夹使用,表示递归
参数1,Linux路径,表示被复制的文件或文件夹
参数2,Linux路径,表示要复制去的地方
复制文件夹,必须使用-r选项,否则不会生效
mv移动文件或文件夹
参数1,Linux路径,表示被移动的文件或文件夹
参数2,Linux路径,表示要移动去的地方,如果目标不存在,则进行改名,确保目标存在
rm 删除文件、文件夹
-f表示force,强制删除(不会弹出提示确认信息)
普通用户删除内容不会弹出提示,只有root管理员用户删除内容会有提示
所以一般普通用户用不到-f选项
参数1、参数2、......、参数N 表示要删除的文件或文件夹路径,按照空格隔
-r选项用于删除文件夹
删除文件
rm hello.txt
删除多个文件
rm hello.txt hello2.txt hello3.txt
删除文件夹,必须使用 -r
选项
rm text
通配符
rm命令支持通配符 *
,用来做模糊匹配
符号*
表示通配符,即匹配任意内容(包含空),示例:
test*
,表示匹配任何以test开头的内容
*test
,表示匹配任何以test结尾的内容
*test*
,表示匹配任何包含test的内容
删除所有以test开头的文件或文件夹
rm -r test*
which 查看所使用的一系列命令的程序文件存放在哪里
Linux命令,其实它们的本体就是一个个的二进制可执行程序,和Windows系统中的.exe文件,是一个意思
我们可以通过which命令,查看所使用的一系列命令的程序文件存放在哪里
find 按照文件名查找文件
在Linux系统中,我们可以通过find命令去搜索指定的文件
find 起始路径 -name "被查找的文件名"
被查找文件名,支持使用通配符 * 来做模糊查询。
符号*
表示通配符,即匹配任意内容(包含空),示例:
test*
,表示匹配任何以test开头的内容
*test
,表示匹配任何以test结尾的内容
*test*
,表示匹配任何包含test的内容
// 从根目录开始查找名为test的文件
find / -name "test"
// 查找所有以test开头的文件
find / -name "*test"
// 有以test结尾的文件
find / -name "*test"
// 查找所有包含test的文件
find / -name "*test*"
find 按文件大小查找文件
+、-
表示大于和小于
n
表示大小数字
kMG
表示大小单位,k(小写字母)表示kb,M表示MB,G表示GB
查找小于10KB的文件: find / -size -10k
查找大于100MB的文件:find / -size +100M
查找大于1GB的文件:find / -size +1G
grep 通过关键字过滤文件行
grep [-n] 关键字 文件路径
选项-n,可选,表示在结果中显示匹配的行的行号
参数,关键字,必填,表示过滤的关键字,带有空格或其它特殊符号,建议使用""将关键字包围起来
参数,文件路径,必填,表示要过滤内容的文件路径,可作为内容输入端口
// 文件 test/hello.txt 里面 ,过滤 a 关键字 并显示行号
grep -n "a" test/hello.txt
wc 文件的数量统计
wc [-c -m -l -w] 文件路径
-c
,统计bytes数量-m
,统计字符数量-l
,统计行数-w
,统计单词数量- 文件路径,被统计的文件,可作为内容输入端口
如果不加任何选项,默认就是 行数、单词数、字节数
管道符 |
管道符的含义是:将管道符左边命令的结果,作为右边命令的输入
cat hello.txt的输出结果(文件内容)
作为右边grep命令的输入(被过滤文件)
cat hello.txt | grep "a"
组合案例使用:
对创建的test.txt进行统计:
- 统计文件中带有itcast关键字的有几行
cat test.txt | grep "itcast" | wc -l
- 统计文件中带有itheima关键字的结果中有多少个单词
cat test.txt | grep itheima | wc -w
echo 在命令行内输出指定内容
只有一个参数,表示要输出的内容,复杂内容可以用""包围
带有空格或\
等特殊符号,建议使用双引号包围
echo 输出的内容
反引号 `
被 ` 包围的内容,会被作为命令执行,而非普通字符,相当于将 内容转义了
重新向符:写入内容
>
,将左侧命令的结果,覆盖写入到符号右侧指定的文件中
>>
,将左侧命令的结果,追加写入到符号右侧指定的文件中
将test/text.txt中的内容 覆盖 写入到 test/text2.txt文件中,如果文件不存在,会自动创建文件
cat test/text.txt > test/text2.txt
tail 查看文件尾部内容,跟踪文件的最新更改
tail [-f -num] Linux路径
参数,Linux路径,表示被跟踪的文件路径
选项,-f,表示持续跟踪
选项, -num,表示,查看尾部多少行,不填默认10行
查看/var/log/vmware-network.log文件的尾部3行
tail -3 /var/log/vmware-network.log
其他常用命令
强制停止,重新输入: ctrl+c
重新登录,退出当前账户 logout
重启操作系统 reboot
重启 X Window startx
切换到指定目录 cd [指定Linux路径]
查看当前工作目录 pwd
切换到 root管理: su -
切换到 普通用户管理: su - 用户名
退出或登出 当前用户: ctrl+d
或者 exit
可以用来退出账户的登录
也可以退出某些特定程序的专属页面,但是不能用于退出vi/vim
清屏 clear
ctrl+l
杀死指定进程 kill -9 进程id
查看历史输入过的命令 history
光标移动:
ctrl + a,跳到命令开头
ctrl + e,跳到命令结尾
ctrl + 键盘左键,向左跳一个单词
ctrl + 键盘右键,向右跳一个单词
自动匹配上一个命令:!命令前缀
输入内容去匹配历史命令:ctrl + r
如果搜索到的内容是你需要的,那么:
回车键可以直接执行
键盘左右键,可以得到此命令(不执行)
重启网卡:systemctl restart network
systemctl 命令
Linux系统很多软件(内置或第三方)均支持使用systemctl命令控制:启动、停止、开机自启
能够被systemctl管理的软件,一般也称之为:服务
systemctl start | stop | status | enable | disable 服务名
系统常见的内置服务:
NetworkManager:主网络服务
network:副网络服务
firewalld:防火墙服务
sshd:ssh服务(FinalShell远程登录Linux使用的就是这个服务)
软连接 ln
在系统中创建软链接,可以将文件、文件夹链接到其它位置
链接只是一个指向,并不是物理移动,类似Windows系统的快捷方式
语法:
ln -s 参数1 参数2
-s选项,创建软连接
参数1:被链接的文件或文件夹
参数2:要链接去的目的地
实例:
ln -s /etc/yum.conf ~/yum.conf
ln -s /etc/yum ~/yum
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 到现在的秒数
格式化日期
显示2021年02-12 : date +%Y年%m-%d
显示2024-03-22 17:37:20 :date "+%Y-%m-%d %H:%M:%S"
计算日期
时间标记:
year年
month月
day天
hour小时
minute分钟
second秒
显示前一天的日期:date -d "-1 day" +%Y%m%d
显示后一天的日期:date -d "+1 day" +%Y%m%d
显示上一月的日期:date -d "-1 month" +%Y%m%d
显示下一月的日期:date -d "+1 month" +%Y%m%d
时区
Linux系统默认时区不是中国的东八区,如果需要修改时区,首先需要切换到 root
用户权限
- 删除本地
rm -f /etc/localtime
- 将/usr/share/zoneinfo/Asia/Shanghai文件链接为localtime文件
// 创建一个软连接
ln -ls /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ping检查指定的网络服务器是否是可联通状态
可以通过ping命令,检查指定的网络服务器是否是可联通状态
语法:
ping [-c num] IP地址或主机名
- 选项:-c,检查的次数,不使用-c选项,将无限次数持续检查
- 参数:ip或主机名,被检查的服务器的ip地址或主机名地址
检测 baidu.com
是否连通
ping baidu.com
// 设置检测次数
ping -c 3 baidu.com
注意:
Linux下ping命令网络不可达或未知的名称与服务,可以参考:
https://blog.csdn.net/qq_44189274/article/details/126008889
wget是非交互式的文件下载器
wget是非交互式的文件下载器,可以在命令行内下载网络文件,类似于Windows系统的 迅雷软件
wget [-b] url
-
选项:-b,可选,后台下载,会将日志写入到当前工作目录的wget-log文件
-
参数:url,下载链接
注意:无论下载是否完成,都会生成要下载的文件,如果下载未完成,请及时清理未完成的不可用文件
下载apache-hadoop 3.3.0版本:
wget http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
curl 发送http网络请求
curl可以发送http网络请求,可用于:下载文件、获取信息等
curl [-o] url
- 选项:-O,用于下载文件,当url是下载链接时,可以使用此选项保存文件
- 参数:url,要发起请求的网络地址
向cip.cc发起网络请求:
curl cip.cc
向python.itheima.com发起网络请求:
curl python.itheima.com
通过curl下载hadoop-3.3.0安装包:
下载文件的时候,需要添加参数 -o
curl -O http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
安装第三方软件
yum命令需要root权限哦,可以su切换到root,或使用sudo提权。
yum命令需要联网
CentOS使用yum管理器
yum [-y] [install|remove|search] 软件包名称
选项:-y,自动确认,无需手动确认安装或卸载过程
install:安装
remove:卸载
search:搜索
Ubuntu使用apt管理器
apt [-y] [install|remove|search] 软件包名称
选项:-y,自动确认,无需手动确认安装或卸载过程
install:安装
remove:卸载
search:搜索
sudo命令
可以让一条普通命令带有root权限:
sudo 其它命令
需要以root用户执行visudo命令,增加配置方可让普通用户有sudo命令的执行权限
在visudo内配置如上内容,可以让itheima用户,无需密码直接使用sudo
用户名 ALL=(ALL) NOPASSWD: ALL
env 命令
查看系统全部的环境变量
env