第二章 Linux基础命令

目录

第二章 Linux基础命令

01 Linux的目录结构

1、掌握Linux系统的目录结构

2、掌握Linux系统的路径表达形式

02 Linux命令基础

1、什么是命令

2、Linux命令的基础格式

03 ls命令入门

1、什么是ls命令

2、HOME目录和工作目录

04 ls命令的参数和选项

1、ls命令的参数使用

2、ls命令的选项使用

05 cd 与 pwd命令

1、cd命令切换工作目录

2、pwd命令展示当前工作目录

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

1、相对路径和绝对路径

2、特殊路径符

07 mkdir命令

08 文件操作命令1:touch、cat、more

1、用touch创建文件

2、用cat、more查看文件内容

09 文件操作命令2 cp、mv、rm

1、cp命令复制文件\文件夹

2、mv移动文件\文件夹

3、rm删除文件、文件夹

【补充】rm删除文件、文件夹的通配符

10 查找命令 which、find

1、which命令

2、find命令

1)按文件名查找文件(-name)

2)按文件大小查找(-size)

11 grep、wc和管道符

1、使用grep命令过滤文件内容

2、使用wc命令统计内容数量

3、管道符的概念与应用

12 echo、tail和重定向符

1、用echo命令输出内容

2、掌握反引号 ` 的使用

3、掌握重定向符号的使用

4、掌握tail命令跟踪文件更改

13 vi编辑器

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

2、命令模式

【补充】命令模式快捷键

3、底线模式快捷指令


01 Linux的目录结构

1、掌握Linux系统的目录结构

Linux的目录结构是一个树型结构,但与Windows不同的是,Linux是没有盘符的,只有一个根目录/,所有文件都在它下面。

注:Windows的顶级目录可以有多个(比如C盘、D盘);但是Linux只有一个顶级目录:根目录

2、掌握Linux系统的路径表达形式
  • 在Linux系统中,路径之间的层级关系,使用:/来表示

/usr/local/hello.txt (开头的/表示的是根目录,后面的表示层级关系)

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

D:\data\work\hello.txt


02 Linux命令基础

1、什么是命令

学习Linux,本质上就是学习在命令行下熟练使用Linux的各类命令。

Q:什么是命令和命令行?

  • 命令行:即Linux终端,是一种命令提示符页面。

  • 命令:即Linux程序。一个命令就是一个Linux的程序。

2、Linux命令的基础格式

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

command [-options] [parameter]
  • command:命令本身

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

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

也就是 本体、选项、参数

示例:

ls - l/home/itheima

ls是命令本身,-l是选项,/home/itheima是参数

意思是以列表的形式,显示/home/itheima目录下的内容

cp -r test1 test2

cp是命令本身,-r是选项,test1和test2是参数

意思是复制文件夹test1成为test2


03 ls命令入门

1、什么是ls命令

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

ls [-a -l -h] [linux路径]
  • -a -l -h是可选的选项

  • Linux路径是此命令可选的藏书

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

2、HOME目录和工作目录

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

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

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

所以在finalshell中用ls命令,展现的就是home目录的


04 ls命令的参数和选项

1、ls命令的参数使用

这是我们上面提到过的ls命令的格式:

ls [-a -l -h] [linux路径]

其中[linux路径] 就是ls命令的参数:

  • 如果没有参数的话,就默认展示home目录。

  • 如果添加了参数,参数则表示的是ls所要展示的目标,

2、ls命令的选项使用

同样,ls命令也是可以使用选项的,我们可以看到有三个选项

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

在Linux中,只要以.开头的,就能自动隐藏,只有使用-a选项,才能看到这些隐藏的文件/文件夹

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

【注意】在语法中选项是可以组合使用的,比如-a和-l可以组合使用,写法如下:

ls -l -a 
ls -la
ls -al

以上三种写法,都是一样的,表示同时应用-l和-a的功能。

同理,选项和参数也是可以混合使用的,例:ls -la /

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

-h选项必须要搭配 -l 一起使用,例如:ls -lh


05 cd 与 pwd命令

1、cd命令切换工作目录

我们打开Linux终端的时候,总是以用户的home目录作为当前的工作目录,这个时候我们可以通过cd命令,更改当前所在的工作目录,cd来自英文:Change Directory,语法如下:

cd [linux路径]
  • cd命令无需选项,只有参数

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

2、pwd命令展示当前工作目录

我们可以通过ls命令来验证当前的工作目录,但是这是不恰当的。我们可以通过pwd命令,来查看当前所在的工作目录;pwd命令来自英文:print work directory,语法如下:

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


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

1、相对路径和绝对路径

当前,假设我们在home目录中,现在想要通过cd命令,切换工作目录到Desktop文件夹中,那么cd命令的参数应该怎么写?有两种写法:

  • cd /home/duuuzx/Desktop(绝对路径写法)

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

  • cd Desktop(相对路径写法)

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

2、特殊路径符

假设当前工作目录处于:/home/duuuzx/Desktop,如果现在想要向上回退一级,切换目录到/home/duuuzx中,如何做?

  • 可以直接cd /home/duuuzx

  • 也可以使用特殊路径符来完成。

常见的特殊路径符:

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

  • .. :表示上一级目录,比如 cd .. 切换到上一级目录,cd ../.. 切换到上二级目录

  • ~ :表示HOME目录,比如 cd ~,即可切换到home目录中,或cd ~/Desktop,即可切换到Desktop目录。


07 mkdir命令

用来创建新的目录(文件夹)

mkdir来自英文:make directory,语法如下:

mkdir [-p] Linux路径
  • 参数必填,表示Linux路径,即要创建的文件夹的路径(绝对路径或相对路径均可)

  • -p选项可选,表示自动创建不存在的父目录,适用于创建连续多层级的目录(上级也不存在)。

【补充】ctrl+l可以清楚命令行的所有显示结果;

【注意】创建文件夹需要修改权限,请确保在HOME目录中进行,在HOME外操作会涉及到权限问题,需要等学到权限管控的知识才能解决。


08 文件操作命令1:touch、cat、more

1、用touch创建文件

可以通过touch命令创建文件,语法如下:

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

例如:touch test.txt

【补充】如何区分文件夹和文件?

  • 可以看颜色:final shell中,蓝色的是文件夹、白色的是文件

  • 用ls -l命令,看前面的标识,为d的就是文件夹、-就是文件

2、用cat、more查看文件内容

1)有了文件之后,我们可以通过cat命令查看文件的内容。语法如下:

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

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

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

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

语法如下:

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

  • 显示出来后,可以通过空格来实现翻页

  • 要想退出的话,可以通过q来实现退出

  • 用more --help可以查看这个more还有什么功能(其他命令也是如此)


09 文件操作命令2 cp、mv、rm

1、cp命令复制文件\文件夹

cp命令可以用于复制文件\文件夹,cp命令来自英文:copy,语法如下:

cp [-r] 参数1 参数2
  • -r 选项,可选,用于复制文件夹使用,表示递归(只要是复制文件夹就要-r)

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

  • 参数2,Linux路径,表示要复制去的地方(要带上文件本身,也就是复制后文件的路径,例如:

cp text1.txt text2.txt
2、mv移动文件\文件夹

mv命令可以用于移动文件\文件夹,mv命令来自英文:move,语法如下:

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

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

3、rm删除文件、文件夹

rm命令可用于删除文件、文件夹,来自英文单词:remove,语法如下:

rm [-r -f] 参数1 参数2 ...... 参数N
  • 同cp命令一样,-r选项用于删除文件夹

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

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

    • 所以一般用户用不到-f选项

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

  • 关于删除:

    • 可以通过su -root,并输入密码(与普通用户默认一样)临时切换到root用户体验(ps:输密码的时候是没有显示的)

    • 通过输入exit命令,退回普通用户。(临时用root,用完记得要退出,不要一直用)

【注意】rm是一个危险的命令,特别是处于root用户的时候,要谨慎使用:

这里有个传说中的删库跑路必备技能/doge/:

rm -rf/*

但是请千万不要随便在root下执行,效果等同在Windows上执行C盘格式化。如果在公司的话,这就属于涉嫌破坏计算机系统罪,造成50台以上系统无法正常运行会被判处5年以上有期徒刑

Ps:如果你想试一试的话就在虚拟中试一试吧,大不了就恢复快照或重装虚拟机/doge/

【补充】rm删除文件、文件夹的通配符

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

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

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

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

*test * :表示匹配任何包含test的内容(Ps:这里test后面是没有空格的,隔开只是markdown会转义成斜体标识)


10 查找命令 which、find

1、which命令

我们在前面学习的Linux命令,其实它们的本体就是一个个的二进制可执行程序。和Windows中的.exe文件是一个意思。

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

which 要查找的命令

2、find命令
1)按文件名查找文件(-name)

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

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

find 起始路径 -name "被查找的文件名"

【Tips】同样,find命令也可以用*通配符来做模糊查询

2)按文件大小查找(-size)

语法:

find 起始路径 -size +|- n[kMG]
  • +、- 表示大于和小于

  • n表示大小数字

  • kMG表示大小单位,k(小写字母)表示kb,M表示MB,G表示GB

示例:

查找小于10KB的文件:find / -size - 10k

【补充】在命令运行的时候,按下ctrl + c可以强制中断命令的进程


11 grep、wc和管道符

1、使用grep命令过滤文件内容

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

比如我们要查一个文件中哪几行带有workhard这个关键字,就可以用grep查找。语法如下:

grep [-n] 关键字 文件路径
  • 参数-n 可选,表示在结果中显示匹配的行和行号。

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

  • 参数,文件路径,必填,表示要过滤内容的文件路径,可作为管道符的输入

2、使用wc命令统计内容数量

可以通过wc命令统计文件的行数、单词数量等。语法如下:

wc [-c -m -l -w] 文件路径
  • 选项-c:统计bytes数量

  • 选项-m:统计字符数量

  • 选项-l:统计行数

  • 选项-w:统计单词数量

  • 参数,文件路径,被统计的文件,可作为管道符的输入

如果不加选项,则会输出三个数字,第一个是行数、第二个是单词个数(有多少个单词)、第三个是字节数(文件的大小)

3、管道符的概念与应用

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

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

如上图:

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

  • 作为右边grep命令的输入(被过滤文件)就是筛选了itheima.txt这个文件里面itheima的行

  • 管道符也可以嵌套使用,例如:统计文件中带有itheima关键字的结果中有多少个单词?

cat test.txt|grep itheima|wc -w

对于管道符,我们后续会经常用到,可以自己探究一些好用的组合方法/doge/


12 echo、tail和重定向符

1、用echo命令输出内容

可以使用echo命令在命令行中输出指定内容,语法如下:

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

例如:

  • 在终端上显示:Hello Linux

echo Hello Linux
  • 带有空格或 \ 等特殊符号,建议使用双括号包围

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

echo "Hello Linux"
2、掌握反引号 ` 的使用

反引号还有一个名字:飘号

看一下如下命令:

echo pwd

本来这个命令的意思是,输出但钱的工作路径,但是pwd会被作为普通字符输出,这个时候我们就可以通过将命令用反引号将其包围,被包围的内容会被命令执行,而非普通字符:

echo `pwd`
3、掌握重定向符号的使用

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

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

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

演示:

单个表示覆盖,两个表示追加

除此之外,只要是能产生输出结果的(不只是echo)都可以用在重定向符的左边:

4、掌握tail命令跟踪文件更改

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

tail [-f -num] Linux路径
  • 参数,Linux路径,表示被跟踪文件的路径

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

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


13 vi编辑器

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

vim 是 vi 的加强版本,兼容了 vi 的所有指令,不仅能编辑文本,而且还具有shell程序编程的功能。

1、vi\vim编辑器的三种工作模式
  • 命令模式(command mode)

命令模式下,所敲的按键编辑器都可以理解为命令,以命令驱动执行不同的功能。此模型下,不能自由进行文本编辑。

  • 输入模式(insert mode)

也就是所谓 的编辑模式、插入模式。此模式下,可以对文件内容进行自由编辑。

  • 底线命令模式(Last line mode)

    做一些整体文件控制的工作,以:开始,通常用于文件的保存、退出

2、命令模式

如果需要通过vi\vim编辑器编辑文件,可以通过如下命令:

vi 文件路径
vim 文件路径(推荐)
  • 如果文件路径表示的文件不存在,那么此命令会用于编辑新文件

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

【补充】命令模式快捷键
模式 命令 描述
命令模式 i 在当前光标位置进入输入模式
命令模式 \ 进入搜索模式
命令模式 0 移动光标到当前行的开头
命令模式 $ 移动光标到当前行的结尾
命令模式 n 向下继续搜索
命令模式 N 向上继续搜索
命令模式 esc 任何情况下输入esc都能够回到命令模式
命令模式 pgup 向上翻页
命令模式 pgdn 向下翻页
命令模式 dd 删除光标所在行
命令模式 yy 复制当前行
命令模式 p 粘贴复制的内容
命令模式 u 撤销修改
命令模式 ctrl+r 反向撤销修改 == 恢复
3、底线模式快捷指令
模式 命令 描述
底线命令模式 :wq 保存并退出
底线命令模式 :q 仅退出
底线命令模式 :q! 强制退出
底线命令模式 :W 仅保存
底线命令模式 :set nu 显示行号
底线命令模式 :set paste 设置粘贴模式(确保从外部复制内容进来格式不会错乱)

参考资料:

1、第二章-01-Linux目录结构_哔哩哔哩_bilibili

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐