09Linux基础命令

Linux命令相关介绍

1. 目录结构

Linux的目录结构是一个树型结构
Windows 系统可以拥有多个盘符, 如 C盘、D盘、E盘
Linux没有盘符这个概念, 只有一个根目录 /, 所有文件都在它下面

winsows系统目录结构:
image

Linux系统目录结构
image

2. Linux路径的描述方式

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

Windows系统路径表示

D: 表示D盘
\ 表示层级关系
路径藐视: D:\data\work\hello.txt
image

Linux系统路径表示

开头的/表示根目录
后面的/表示层级关系
路径描述: /user/local/hello.txt
image

3. 命令和命令行

命令:即Linux操作指令,是系统内置的程序,可以以字符化的形式去使用
命令行:即Linux终端,可以提供字符化的操作页面供命令执行

4. Linux命令基础格式

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

5. HOME目录和当前工作目录

Linux系统的命令行终端,在启动的时候,默认会加载:
当前登录用户的HOME目录作为当前工作目录,所以ls命令列出的是HOME目录的内容
HOME目录:HOME目录指:用户在系统内的专属目录。每个Linux操作用户在Linux系统的个人账户目录,路径在:/home/用户名

相对路径和绝对路径

绝对路径:根目录为起点,描述路径的一种写法,路径描述以/开头
相对路径:当前目录为起点,描述路径的一种写法,路径描述无需以/开头
image
image

特殊路径符

. 表示当前目录,比如 cd ./Desktop 表示切换到当前目录下的Desktop目录内,和cd Desktop效果一致
.. 表示上一级目录,比如:cd .. 即可切换到上一级目录,cd ../.. 切换到上二级的目录
~ 表示HOME目录,比如:cd ~ 即可切换到HOME目录或cd ~/Desktop,切换到HOME内的Desktop目录

1. ls 列出目录下的内容

ls命令的作用是 列出目录下的内容**
image

参数说明

-a -l -h 是可选的选项
Linux路径是此命令可选的参数

-a选项
表示:all的意思,即列出全部文件(包含隐藏的文件/文件夹)

-l选项
表示:以列表(竖向排列)的形式展示内容,并展示更多信息
image
-h选项
表示以易于阅读的形式,列出文件大小,如K、M、G
-h选项必须要搭配 -l 一起使用
ls -lh /

image

使用

当不使用选项和参数,直接使用ls命令本体,表示:以平铺形式,列出当前工作目录下的内容
当使用参数,ls命令的参数表示:指定一个Linux路径,列出指定路径的内容

ls / 表示列出了根目录的内容
image

组合使用:比如-a和-l可以组合应用如下

ls -l -a
ls -la
ls -al

2. cd 切换工作目录

当Linux终端(命令行)打开的时候,会默认以用户的HOME目录作为当前的工作目录
我们可以通过cd命令,更改当前所在的工作目录

语法

image

参数说明

cd命令无需选项,只有参数,表示要切换到哪个目录下

image

cd命令直接执行,不写参数,表示回到用户的HOME目录

image

3. pwd 查看当前工作目录

通过pwd命令,可以查看当前所在的工作目录,无选项、无参数
image

4. mkdir 创建新目录或新文件夹

语法

image
-p选项可选,表示自动创建不存在的父目录,适用于创建连续多层级的目录
参数必填,表示Linux路径,即要创建的文件夹的路径,相对路径或绝对路径或特殊字符均可
在test目录下面创建mm目录

mkdir test/mm

如果想要一次性创建多个层级的目录,就必须添加 -p 选项

mkdir mm/nn/test

注意:
创建文件夹需要修改权限,要确保操作均在HOME目录内,不可以在HOME外操作

5. 文件操作命令

touch 创建文件

参数必填,表示要创建的文件路径,相对、绝对、特殊路径符均可以使用

touch Linux路径

image

cat 查看文件内容

必填参数,参数表示:被查看的文件路径,相对、绝对、特殊路径符都可以使用

cat Linux路径

more 查看文件内容

more命令同样可以查看文件内容,同cat不同的是:
cat是直接将内容全部显示出来
more支持翻页,如果文件内容过多,可以一页页的展示

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

必填参数,参数表示:被查看的文件路径,相对、绝对、特殊路径符都可以使用

more Linux路径

例如:more /etc/services

cp 复制文件文件夹

image

-r选项,可选,用于复制文件夹使用,表示递归
参数1,Linux路径,表示被复制的文件或文件夹
参数2,Linux路径,表示要复制去的地方
复制文件夹,必须使用-r选项,否则不会生效

image

mv移动文件或文件夹

image

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

image

rm 删除文件、文件夹

image
-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命令,查看所使用的一系列命令的程序文件存放在哪里
image

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 按文件大小查找文件

image
+、- 表示大于和小于
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,统计单词数量
  • 文件路径,被统计的文件,可作为内容输入端口

如果不加任何选项,默认就是 行数、单词数、字节数
image

管道符 |

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

cat hello.txt的输出结果(文件内容)
作为右边grep命令的输入(被过滤文件)
cat hello.txt | grep "a"

组合案例使用:
对创建的test.txt进行统计:

  1. 统计文件中带有itcast关键字的有几行
cat test.txt | grep "itcast" | wc -l
  1. 统计文件中带有itheima关键字的结果中有多少个单词
cat test.txt | grep itheima | wc -w

echo 在命令行内输出指定内容

只有一个参数,表示要输出的内容,复杂内容可以用""包围
带有空格或\等特殊符号,建议使用双引号包围

echo 输出的内容

反引号 `

被 ` 包围的内容,会被作为命令执行,而非普通字符,相当于将 内容转义了
image

重新向符:写入内容

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

将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命令可以在命令行中查看系统的时间
image
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 用户权限

  1. 删除本地
rm -f /etc/localtime
  1. 将/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

image

注意:
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

posted @ 2024-03-20 13:38  songxia777  阅读(9)  评论(0编辑  收藏  举报