操作系统 | Linux:第二章 基础Linux命令
本文介绍了Linux系统的基础命令和操作。主要内容包括:1)Linux目录结构的特点,路径表达方式;2)常用命令如ls、cd、pwd、mkdir、touch、cat、cp、mv、rm等的基本用法和参数选项;3)文件查找命令which和find;4)grep、wc等文本处理命令及管道符的使用;5)echo、tail等命令和重定向符;6)vi/vim编辑器的三种模式和基本操作。这些命令涵盖了Linux
第二章 Linux基础命令
目录
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 |
设置粘贴模式(确保从外部复制内容进来格式不会错乱) |
参考资料:
更多推荐
所有评论(0)