Linux-基础命令(黑马学习笔记)

Linux的目录结构

Linux的目录结构

Linux的目录结构是一个树形结构

Windows系统可以拥有多个盘符,如C盘、D盘、E盘

Linux没有盘符这个概念,只有一个根目录 /,所有文件都在它下面

Linux路径的描述方式

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

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

D:\data\work\hello.txt

/usr/local/hello.txt

Linux命令入门

Linux命令基础格式

无论是什么命令,用于什么用途,在Linux中,命令有其通用的格式:

command [-options] [parameter]

● command:命令本身

● -options:[可选,非必填]命令的一些选项,可以通过选项控制命令的行为细节

● parameter:[可选,非必填]命令的参数,多数用于命令的指向目标等

ls命令

ls命令的作用是列出目录下的内容,语法细节如下:

● -a -l -h 是可选的选项

● Linux路径是此命令可选的参数

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

HOME目录和工作目录

直接输入ls命令,表示列出当前工作目录下的内容,当前工作目录是?

Linux系统的命令行终端,在启动的时候,默认会加载:

● 当前登录用户的HOME目录作为当前工作目录,所以ls命令列出的是HOME目录的内容

● HOME目录:每个Linux操作用户在Linux系统的个人账户目录,路径在:/home/用户名

● 如,图中的Linux用户是itheima,其HOME目录是:/home/itheima

● Windows系统和Linux系统,均设有用户的HOME目录,如图:

ls命令的参数

● 当ls不使用参数,表示列出:当前工作目录的内容,即用户的HOME目录

● 当使用参数,ls命令的参数表示:指定一个Linux路径,列出指定路径的内容

如:

通过ls / 列出了根目录的内容,我们可以打开VMware,在Linux的图形化中对照一下

对照一下命令行的结果和图形化查看的结果

ls 命令的 -a选项

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

可以看到,ls -a 对比 ls 列出的内容更多了。

● 图中以.开头的,表示是Linux系统的隐藏文件/文件夹(只要以.开头,就能自动隐藏)

● 只有通过-a选项,才能看到这些隐藏的文件/文件夹

ls命令的 -l选项

● -l选项,表示:以列表(竖向排列)的形式展示内容,并展示更多信息

-l选项其实和图形化中,文件夹以列表形式排列是一个意思

ls命令选项的组合使用

语法中的选项是可以组合使用的,比如学习的-a和-l可以组合应用。

写法:

● ls -l -a

● ls -l -a

● ls -al

除了选项本身可以组合以外,选项和参数也可以一起使用。

ls 命令的 -h选项

● -h 表示以易于阅读的形式,列出文件大小,如K、M、G

● -h选项必须要搭配 -l 一起使用

目录切换相关命令(cd/pwd)

cd 切换工作目录

当Linux终端(命令行)打开的时候,会默认以用户的HOME目录作为当前的工作目录

我们可以通过cd命令,更改当前所在的工作目录。

cd命令来自英文:Change Directory

语法:

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

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

pwd 查看当前工作目录

通过ls来验证当前的工作目录,其实是不恰当的。

我们可以通过pwd命令,来查看当前所在的工作目录。

pwd命令来自:Print Work Directory

语法:

● pwd命令,无选项,无参数,直接输入pwd即可

相对路径、绝对路径和特殊路径符

相对路径和绝对路径

如图,通过pwd得知当前所在是HOME目录:/home/itheima

现在想要通过cd命令,切换工作目录到Desktop文件夹中去。

那么,cd命令的参数(Linux路径)如何写呢?

● cd /home/itheima/Desktop

● cd Desktop

上述两种写法,都可以正确的切换目录到指定的Desktop中。

● cd /home/itheima/Desktop 绝对路径写法

● cd Desktop 相对路径写法

绝对路径:以根目录为起点,描述路径的一种写法,路径描述以/开头

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

特殊路径符

如图,当前工作目录处于:/home/itheima/Desktop

现在想要,向上回退一级,切换目录到/home/itheima中,如何做?

● 可以直接通过cd,即可回到HOME目录

● 也可以通过特殊路径符来完成。

特殊路径符:

● . 表示当前目录,比如 cd ./Desktop 表示切换到当前目录下的Desktop目录内,和cd Desktop效果一致

● .. 表示上一级目录,比如:cd .. 即可切换到上一级目录,cd ../.. 切换到上二级的目录

● ~ 表示HOME目录,比如:cd ~ 即可切换到HOME目录或cd ~/Desktop,切换到HOME内的Desktop目录

创建目录命令(mkdir)

mkdir命令

通过mkdir命令可以创建新的目录(文件夹)

mkdir来自英文:Make Directory

语法:

● 参数必填,表示Linux路径,即要创建的文件夹的路径,相对路径或绝对路径均可

● -p选项可选,表示自动创建不存在的父目录,适用于创建连续多层级的目录

mkdir -p 选项

如果想要一次性创建多个层级的目录,如下图

会报错,因为上级目录itcast和good并不存在,所以无法创建666目录

可以通过-p选项,将一整个链条都创建完成。

文件操作命令part1(touch、cat、more)

touch 创建文件

可以通过touch命令创建文件

语法:

● touch命令无选项,参数必填,表示要创建的文件路径,相对、绝对、特殊路径符均可以使用

cat命令 查看文件内容

有了文件后,我们可以通过cat命令查看文件的内容。

不过,现在我们还未学习vi编辑器,无法向文件内编辑内容,所以,暂时,我们先通过图形化

在图形化中,手动向文件内添加内容,以测试cat命令

准备好文件内容后,可以通过cat查看内容。

语法:

● cat同样没有选项,只有必填参数,参数表示:被查看的文件路径,相对、绝对、特殊路径符都可以使用

more命令查看文件内容

more命令同样可以查看文件内容,同cat不同的是:

● cat是直接将内容全部显示出来

● more支持翻页,如果文件内容过多,可以一页页的展示

语法:

● 同样没有选项,只有必填参数,参数表示:被查看的文件路径,相对、绝对、特殊路径符都可以使用

Linux系统内置有一个文件,路径为:/etc/services,可以使用more命令查看

● more /etc/services

● 通过q退出查看

文件操作命令part2(cp、mv、rm)

cp命令复制文件文件夹

cp命令可以用于复制文件\文件夹,cp命令来自英文单词:copy

语法:

● -r选项,可选,用于复制文件夹使用,表示递归

● 参数1,Linux路径,表示被复制的文件或文件夹

● 参数2,Linux路径,表示要复制去的地方

复制文件

复制文件夹

复制文件夹,必须使用-r选项,否则不会生效

mv移动文件或文件夹

mv命令可以用于移动文件\文件夹,mv命令来自英文单词:move

语法:

● 参数1,Linux路径,表示被移动的文件或文件夹

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

rm删除文件、文件夹

rm命令可用于删除文件、文件夹

rm命令来自英文单词:remove

语法:

● 同cp命令一样,-r选项用于删除文件夹

● -f表示force,强制删除(不会弹出提示确认信息)

● 普通用户删除内容不会弹出提示,只有root管理员用户删除内容会有提示

● 所以一般普通用户用不到-f选项

参数1、参数2、......、参数N 表示要删除的文件或文件夹路径,按照空格隔开

● 删除文件

● 删除多个文件

● 删除文件夹,如下图,必须使用-r选项才可以

● 演示强制删除,-f选项

● 可以通过 su - root,并输入密码123456(和普通用户默认一样)临时切换到root用户体验

● 通过输入exit命令,退回普通用户。(临时用root,用完记得退出,不要一直用,关于root我们后面会讲解)

rm删除文件、文件夹 - 通配符

rm命令支持通配符 *,用来做模糊匹配

● 符号* 表示通配符,即匹配任意内容(包含空),示例:

● test*,表示匹配任何以test开头的内容

● *test,表示匹配任何以test结尾的内容

● *test*,表示匹配任何包含test的内容

演示:

● 删除所有以test开头的文件或文件夹

rm是一个危险的命令,特别是在处于root(超级管理员)用户的时候。 请谨慎使用。

如下命令,请千万千万不要在root管理员用户下执行:

rm -rf /

rm -rf /*

效果等同于在Windows上执行C盘格式化。

PS:你心里痒痒就在虚拟机试试吧,大不了恢复快照或者重新装个虚拟机哦。

查找命令(which、find)

which命令

我们在前面学习的Linux命令,其实它们的本体就是一个个的二进制可执行程序。

和Windows系统中的.exe文件,是一个意思。

我们可以通过which命令,查看所使用的一系列命令的程序文件存放在哪里

语法:

find命令 - 按文件名查找文件

在图形化中,我们可以方便的通过系统提供的搜索功能,搜索指定的文件。

同样,在Linux系统中,我们可以通过find命令去搜索指定的文件。

语法:

为了确保后续演示,拥有最大的权限,可以在整个系统完成搜索

我们可以切换到root用户以获得管理员权限

执行命令:su - root

输入密码:123456(和你普通用户的密码一样)

查找文件名叫做:test的文件,从根目录开始搜索

基于语法,可以有命令:

find / -name "test"

find命令 - 通配符

根据语法:

被查找文件名,支持使用通配符 * 来做模糊查询。

● 符号* 表示通配符,即匹配任意内容(包含空),示例:

● test*,表示匹配任何以test开头的内容

● *test,表示匹配任何以test结尾的内容

● *test*,表示匹配任何包含test的内容

基于通配符的含义,可以结合find命令做文件的模糊查询。

● 查找所有以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、wc和管道符

grep命令

可以通过grep命令,从文件中通过关键字过滤文件行。

语法:

● 选项-n,可选,表示在结果中显示匹配的行的行号。

● 参数,关键字,必填,表示过滤的关键字,带有空格或其它特殊符号,建议使用""将关键字包围起来

● 参数,文件路径,必填,表示要过滤内容的文件路径,可作为内容输入端口

现在,通过touch命令在HOME目录创建itheima.txt,并通过图形化页面编辑并保存如下内容:

● 过滤itheima关键字

● 过滤itcast关键字

● 过滤code关键字,并显示行号

wc命令做数量统计

可以通过wc命令统计文件的行数、单词数量等

语法:

● 选项,-c,统计bytes数量

● 选项,-m,统计字符数量

● 选项,-l,统计行数

● 选项,-w,统计单词数量

● 参数,文件路径,被统计的文件,可作为内容输入端口

● 不带选项,统计文件

● 统计字节数

● 统计字符数

● 统计行数

● 统计单词数

管道符

学习了grep命令后,我们在来学习一个新的特殊符号,管道符:|

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

如上图:

● cat itheima.txt的输出结果(文件内容)

● 作为右边grep命令的输入(被过滤文件)

管道符的应用非常多

● ls | grep Desktop,过滤ls的结果

● find / -name "test" | "/usr/lib64",过滤结果,只找路径带有/usr/lib64的结果

● cat itheima.txt | grep itcast | grep itheima,可以嵌套使用哦

● cat itheima.txt的结果给 grep itcast 使用

● cat itheima.txt | grep itcast 的结果给grep itheima使用

echo、tail和重定向符

echo命令

可以使用echo命令在命令行内输出指定内容

语法:

● 无需选项,只有一个参数,表示要输出的内容,复杂内容可以用""包围

演示:

● 在终端上显示:Hello Linux

● 带有空格或\等特殊符号,建议使用双引号包围

● 因为不包围的话,空格后很容易被识别为参数2,尽管echo不受影响,但是要养成习惯哦

反引号`

看一下如下命令:echo pwd

本意是想,输出当前的工作路径,但是pwd被作为普通字符输出了。

我们可以通过将命令用反引号(通常也称之为飘号)`将其包围

被`包围的内容,会被作为命令执行,而非普通字符

重定向符

我们再来学习两个特殊符号,重定向符:>和>>

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

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

演示:

● echo "Hello Linux" > itheima.txt

● echo "Hello itheima" > itheima.txt,再次执行,覆盖新内容

● echo "Hello itcast" >> itheima.txt,再次执行,使用>>追加新内容

tail命令

使用tail命令,可以查看文件尾部内容,跟踪文件的最新更改,语法如下:

● 参数,Linux路径,表示被跟踪的文件路径

● 选项,-f,表示持续跟踪

● 选项, -num,表示,查看尾部多少行,不填默认10行

● 查看/var/log/vmware-network.log文件的尾部10行:tail /var/log/vmware-network.log

● 查看/var/log/vmware-network.log文件的尾部3行:tail -3 /var/log/vmware-network.log

tail持续跟踪文件更改

使用-f选项,可以持续跟踪文件更改

● 复制一个新的FinalShell的标签

● 在第一个标签中,执行:touch test.txt,创建一个test.txt文件

● 在第一个标签中,执行:tail -f test.txt,持续跟踪文件更改

● 在第二个标签中,多次执行:echo "内容" >> test.txt,向文件追加内容

● 观察第一个标签的变化

vi编辑器

vi\vim编辑器介绍

vi\vim是visual interface的简称, 是Linux中最经典的文本编辑器

同图形化界面中的 文本编辑器一样,vi是命令行下对文本文件进行编辑的绝佳选择。

vim 是 vi 的加强版本,兼容 vi 的所有指令,不仅能编辑文本,而且还具有 shell 程序编辑的功能,可以不同颜色的字体来辨别语法的正确性,极大方便了程序的设计和编辑性。

vi\vim编辑器的三种工作模式

命令模式(Command mode)

命令模式下,所敲的按键编辑器都理解为命令,以命令驱动执行不同的功能。

此模型下,不能自由进行文本编辑。

输入模式(Insert mode)

也就是所谓的编辑模式、插入模式。

此模式下,可以对文件内容进行自由编辑。

底线命令模式(Last line mode)

以:开始,通常用于文件的保存、退出。

命令模式

如果需要通过vi/vim编辑器编辑文件,请通过如下命令:

vim兼容全部的vi功能,后续全部使用vim命令

● 如果文件路径表示的文件不存在,那么此命令会用于编辑新文件

● 如果文件路径表示的文件存在,那么此命令用于编辑已有文件

vi编辑器的快速体验

通过vi/vim命令编辑文件,会打开一个新的窗口,此时这个窗口就是:命令模式窗口

命令模式是vi编辑器的入口和出口,如右图

● 进入vi编辑器会进入命令模式

● 通过命令模式输入键盘指令,可以进入输入模式

● 输入模式需要退回到命令模式,然后通过命令可以进入底线命令模式

快速体验

使用:vim hello.txt,编辑一个新文件,执行后进入的是命令模式

在命令模式内,按键盘 i ,进入输入模式

在输入模式内输入:itheima and itcast.

输入完成后,按esc回退会命令模式

在命令模式内,按键盘 : ,进入底线命令模式

在底线命令内输入:wq,保存文件并退出vi编辑器

命令模式快捷键

现在我们来看一下,在命令模式下的一些常见快捷键。

底线命令模式

编辑模式没有什么特殊的,进入编辑模式后,任何快捷键都没有作用,就是正常输入文本而已。

唯一大家需要记住的,就是:通过esc,可以退回到命令模式中即可。

在命令模式内,输入: ,即可进入底线命令模式,支持如下命令:

命令选项的说明

查看命令帮助和手册

如果想要对命令的其它选项进行查阅,可以通过如下方式:

● 任何命令都支持:--help 选项, 可以通过这个选项,查看命令的帮助。

如:ls --help, 会列出ls命令的帮助文档

帮助文档会简单的对命令的使用方式进行说明

● 如果想要查看命令的详细手册,可以通过man(manual, 手册)命令查看

比如:

● man ls,就是查看ls命令的详细手册

● man cd,就是查看cd命令的详细手册

● 大多数手册都是全英文的,如果阅读吃力,可以通过重定向符:man ls > ls-man.txt,输出手册到文件 然后通过翻译软件翻译内容查看哦

相关推荐
石头5302 分钟前
Service 详解
linux
小鸡脚来咯2 分钟前
Linux 服务器问题排查指南(面试标准回答)
linux·服务器·面试
末日汐6 分钟前
磁盘与文件系统
linux·运维·数据库
爱吃大芒果8 分钟前
openJiuwen(Windows端)大模型添加及AI Agent创建教程
人工智能·ubuntu·openjiuwen
水天需01013 分钟前
Linux PS4 环境变量详解
linux
小新ya23 分钟前
vscode增删改查文件,一直等待中...
linux·vscode
济6171 小时前
linux(第十四期)--官方 SDK 移植实验-- Ubuntu20.04
linux·运维·服务器
云qq1 小时前
x86操作系统23——进程相关系统调用
linux·c语言·汇编·ubuntu
小猪佩奇TONY1 小时前
Linux 内核学习(16) --- linux x86-64 虚拟地址空间和区域
linux·运维·学习
L1624761 小时前
Docker 安装部署全流程使用指南(Linux 通用版)
linux·docker·容器